@zonos/elements 1.2.3 → 1.2.4-alpha.2

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 (541) hide show
  1. package/dist/cjs/cart-4ddc2af5.js +616 -0
  2. package/dist/cjs/getBorderRadius-a97a5f75.js +18 -0
  3. package/dist/cjs/getHasMoreSpaceOnRight-4c94667f.js +10 -0
  4. package/dist/cjs/{index-9542d2e7.js → index-20cb112f.js} +127 -26
  5. package/dist/cjs/index.cjs.js +6 -6
  6. package/dist/cjs/isColorVariable-41cacd82.js +16 -0
  7. package/dist/cjs/{isDarkColor-f3446afd.js → isDarkColor-261fcf3d.js} +2 -2
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/localization-11360fed.js +3629 -0
  10. package/dist/cjs/submitGtag-bb093547.js +27 -0
  11. package/dist/cjs/zonos-address_2.cjs.entry.js +108 -108
  12. package/dist/cjs/zonos-badge.cjs.entry.js +25 -22
  13. package/dist/cjs/zonos-banner.cjs.entry.js +65 -53
  14. package/dist/cjs/zonos-button_2.cjs.entry.js +100 -99
  15. package/dist/cjs/zonos-card_2.cjs.entry.js +32 -27
  16. package/dist/cjs/zonos-cart-items_10.cjs.entry.js +422 -419
  17. package/dist/cjs/zonos-checkout.cjs.entry.js +356 -356
  18. package/dist/cjs/zonos-component.cjs.entry.js +15 -15
  19. package/dist/cjs/zonos-controller.cjs.entry.js +231 -193
  20. package/dist/cjs/zonos-country-flag_4.cjs.entry.js +85 -77
  21. package/dist/cjs/zonos-elements.cjs.js +3 -3
  22. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +101 -101
  23. package/dist/cjs/zonos-hello.cjs.entry.js +349 -349
  24. package/dist/cjs/zonos-icon.cjs.entry.js +22 -20
  25. package/dist/cjs/zonos-notification.cjs.entry.js +60 -57
  26. package/dist/cjs/zonos-payment.cjs.entry.js +45 -45
  27. package/dist/cjs/zonos-shipping-rich-radio.cjs.entry.js +40 -40
  28. package/dist/cjs/zonos-text.cjs.entry.js +145 -143
  29. package/dist/cjs/{zonosStore-a430ec5b.js → zonosStore-a0fa5b77.js} +102 -97
  30. package/dist/collection/__mocks__/vercel-app/loadZonos.js +492 -0
  31. package/dist/collection/__mocks__/vercel-app/localization.js +1 -0
  32. package/dist/collection/__mocks__/vercel-app/zonos-hello.entry.js +1 -0
  33. package/dist/collection/__mocks__/zonos-url/loadZonos.js +492 -0
  34. package/dist/{esm-es5/localization-f3828793.js → collection/__mocks__/zonos-url/localization.js} +1 -1
  35. package/dist/collection/__mocks__/zonos-url/zonos-hello.entry.js +1 -0
  36. package/dist/collection/__tests__/build-utils/urlCheckOne.js +59 -0
  37. package/dist/collection/collection-manifest.json +2 -2
  38. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.css +4 -1
  39. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +37 -37
  40. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.css +4 -1
  41. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +44 -44
  42. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.css +4 -1
  43. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +164 -164
  44. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.css +4 -1
  45. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +149 -149
  46. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.css +4 -1
  47. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +559 -559
  48. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.css +4 -1
  49. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.js +153 -153
  50. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.css +4 -1
  51. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.js +107 -107
  52. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.css +4 -1
  53. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.js +164 -164
  54. package/dist/collection/components/common/countries.js +261 -261
  55. package/dist/collection/components/common/zonos-badge/zonos-badge.css +4 -1
  56. package/dist/collection/components/common/zonos-badge/zonos-badge.js +189 -186
  57. package/dist/collection/components/common/zonos-banner/zonos-banner.css +4 -1
  58. package/dist/collection/components/common/zonos-banner/zonos-banner.js +140 -128
  59. package/dist/collection/components/common/zonos-button/zonos-button.css +5 -5
  60. package/dist/collection/components/common/zonos-button/zonos-button.js +407 -406
  61. package/dist/collection/components/common/zonos-card/zonos-card.css +4 -1
  62. package/dist/collection/components/common/zonos-card/zonos-card.js +165 -162
  63. package/dist/collection/components/common/zonos-collapse/zonos-collapse.css +4 -1
  64. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +85 -83
  65. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.css +4 -1
  66. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.js +101 -96
  67. package/dist/collection/components/common/zonos-country-select/zonos-country-select.css +4 -1
  68. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +73 -70
  69. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.css +4 -1
  70. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +62 -59
  71. package/dist/collection/components/common/zonos-dialog/zonos-dialog.css +4 -1
  72. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +373 -371
  73. package/dist/collection/components/common/zonos-icon/zonos-icon.css +4 -1
  74. package/dist/collection/components/common/zonos-icon/zonos-icon.js +123 -121
  75. package/dist/collection/components/common/zonos-logo/zonos-logo.css +4 -1
  76. package/dist/collection/components/common/zonos-logo/zonos-logo.js +92 -90
  77. package/dist/collection/components/common/zonos-notification/zonos-notification.css +4 -1
  78. package/dist/collection/components/common/zonos-notification/zonos-notification.js +128 -125
  79. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.css +4 -1
  80. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.js +168 -168
  81. package/dist/collection/components/common/zonos-spinner/zonos-spinner.css +4 -1
  82. package/dist/collection/components/common/zonos-spinner/zonos-spinner.js +71 -71
  83. package/dist/collection/components/common/zonos-text/zonos-text.css +4 -1
  84. package/dist/collection/components/common/zonos-text/zonos-text.js +193 -191
  85. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.css +4 -1
  86. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +70 -67
  87. package/dist/collection/components/component-template/zonos-component/zonos-component.css +4 -1
  88. package/dist/collection/components/component-template/zonos-component/zonos-component.js +81 -81
  89. package/dist/collection/components/hello/zonos-hello/zonos-hello.css +4 -2
  90. package/dist/collection/components/hello/zonos-hello/zonos-hello.js +447 -446
  91. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.css +4 -1
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +70 -70
  93. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.css +4 -1
  94. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +272 -272
  95. package/dist/collection/components/main/zonos-controller.css +4 -1
  96. package/dist/collection/components/main/zonos-controller.js +400 -319
  97. package/dist/collection/components/store/checkout/cart.js +162 -162
  98. package/dist/collection/components/store/checkout/stripe.js +264 -264
  99. package/dist/collection/components/store/hello/localization.js +112 -112
  100. package/dist/collection/components/store/translationStore/strings.arabic.js +147 -147
  101. package/dist/collection/components/store/translationStore/strings.base.js +147 -147
  102. package/dist/collection/components/store/translationStore/strings.chinese.js +147 -147
  103. package/dist/collection/components/store/translationStore/strings.danish.js +147 -147
  104. package/dist/collection/components/store/translationStore/strings.dutch.js +147 -147
  105. package/dist/collection/components/store/translationStore/strings.french.js +147 -147
  106. package/dist/collection/components/store/translationStore/strings.german.js +147 -147
  107. package/dist/collection/components/store/translationStore/strings.hebrew.js +147 -147
  108. package/dist/collection/components/store/translationStore/strings.indonesian.js +147 -147
  109. package/dist/collection/components/store/translationStore/strings.italian.js +147 -147
  110. package/dist/collection/components/store/translationStore/strings.japanese.js +147 -147
  111. package/dist/collection/components/store/translationStore/strings.korean.js +147 -147
  112. package/dist/collection/components/store/translationStore/strings.norwegian.js +147 -147
  113. package/dist/collection/components/store/translationStore/strings.polish.js +147 -147
  114. package/dist/collection/components/store/translationStore/strings.portuguese.js +147 -147
  115. package/dist/collection/components/store/translationStore/strings.russian.js +147 -147
  116. package/dist/collection/components/store/translationStore/strings.spanish.js +147 -147
  117. package/dist/collection/components/store/translationStore/strings.swedish.js +147 -147
  118. package/dist/collection/components/store/translationStore/strings.turkish.js +147 -147
  119. package/dist/collection/components/store/translationStore/strings.vietnamese.js +147 -147
  120. package/dist/collection/components/store/translationStore.js +65 -65
  121. package/dist/collection/components/store/zonosStore.js +98 -94
  122. package/dist/collection/components/stripe/zonos-address/zonos-address.css +4 -1
  123. package/dist/collection/components/stripe/zonos-address/zonos-address.js +142 -142
  124. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.css +4 -1
  125. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.js +76 -76
  126. package/dist/collection/components/stripe/zonos-payment/zonos-payment.css +4 -1
  127. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +81 -81
  128. package/dist/collection/components/utils/addDays.js +5 -5
  129. package/dist/collection/components/utils/api/calculateLandedCost.js +11 -11
  130. package/dist/collection/components/utils/api/checkItemRestrictions.js +13 -13
  131. package/dist/collection/components/utils/api/getCountries.js +11 -11
  132. package/dist/collection/components/utils/api/getCountryLandedCost.js +11 -11
  133. package/dist/collection/components/utils/api/getExchangeRate.js +17 -17
  134. package/dist/collection/components/utils/api/getLocaleMessages.js +9 -9
  135. package/dist/collection/components/utils/api/getLocalization.js +24 -19
  136. package/dist/collection/components/utils/api/getShippingZones.js +9 -9
  137. package/dist/collection/components/utils/api/getZonosSetting.js +7 -7
  138. package/dist/collection/components/utils/api/prepCalculateLandedCost.js +26 -26
  139. package/dist/collection/components/utils/checkout/initCheckout.js +16 -16
  140. package/dist/collection/components/utils/checkout/isCheckoutMobile.js +1 -1
  141. package/dist/collection/components/utils/darkenColor.js +4 -4
  142. package/dist/collection/components/utils/formatCurrency.js +8 -8
  143. package/dist/collection/components/utils/formatDate.js +2 -2
  144. package/dist/collection/components/utils/getBorderRadius.js +5 -5
  145. package/dist/collection/components/utils/getButtonTheme.js +8 -8
  146. package/dist/collection/components/utils/getDaysDifference.js +4 -4
  147. package/dist/collection/components/utils/handleFetch.js +89 -77
  148. package/dist/collection/components/utils/hello/currencyConversion/currencyConvert.js +9 -9
  149. package/dist/collection/components/utils/hello/currencyConversion/currencyConvertAndFormat.js +3 -3
  150. package/dist/collection/components/utils/hello/currencyConversion/currencyDisplay.js +10 -10
  151. package/dist/collection/components/utils/hello/currencyConversion/currencyFormat.js +29 -29
  152. package/dist/collection/components/utils/hello/currencyConversion/defaultCurrencyConverter.js +35 -35
  153. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyCode.js +6 -6
  154. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyElements.js +13 -13
  155. package/dist/collection/components/utils/hello/currencyConversion/getInitialElementAmount.js +12 -12
  156. package/dist/collection/components/utils/hello/currencyConversion/getLanguageCode.js +6 -6
  157. package/dist/collection/components/utils/hello/detectItemRestrictions.js +23 -23
  158. package/dist/collection/components/utils/hello/getCurrentHelloLocalePage.js +17 -17
  159. package/dist/collection/components/utils/hello/getHasMoreSpaceAbove.js +5 -5
  160. package/dist/collection/components/utils/hello/getHasMoreSpaceOnRight.js +5 -5
  161. package/dist/collection/components/utils/hello/getProductsOnPage.js +42 -42
  162. package/dist/collection/components/utils/hello/getZCountryUrlParam.js +5 -0
  163. package/dist/collection/components/utils/hello/initHello.js +15 -15
  164. package/dist/collection/components/utils/hello/setZCountryUrlParam.js +9 -0
  165. package/dist/collection/components/utils/isColorVariable.js +10 -10
  166. package/dist/collection/components/utils/isDarkColor.js +1 -1
  167. package/dist/collection/components/utils/isValidSelector.js +8 -8
  168. package/dist/collection/components/utils/jsonParse.js +10 -10
  169. package/dist/collection/components/utils/lightenColor.js +4 -4
  170. package/dist/collection/components/utils/logging/log.js +22 -22
  171. package/dist/collection/components/utils/logging/logError.js +2 -2
  172. package/dist/collection/components/utils/mergeConfig.js +3 -3
  173. package/dist/collection/components/utils/submitGtag.js +9 -9
  174. package/dist/collection/environment.js +139 -116
  175. package/dist/collection/scripts/extractZonosQaUrl.js +26 -0
  176. package/dist/collection/scripts/loadStripe.js +7 -7
  177. package/dist/collection/scripts/stripe.js +80 -80
  178. package/dist/collection/scripts/zonos.js +279 -254
  179. package/dist/collection/styles/stripe/addressRuleStyle.js +14 -14
  180. package/dist/collection/styles/stripe/defaultVariable.js +14 -14
  181. package/dist/collection/types/generated/graphql.customer.types.js +1424 -1424
  182. package/dist/collection/types/generated/graphql.frontend.types.js +376 -376
  183. package/dist/collection/types/stripe/Apperance.js +56 -56
  184. package/dist/collection/types/styles/Color.js +18 -18
  185. package/dist/collection/types/styles/Text.js +97 -97
  186. package/dist/collection/utils/format.js +1 -1
  187. package/dist/collection/utils/generateVercelDeployUrl.js +17 -17
  188. package/dist/components/cart.js +497 -497
  189. package/dist/components/formatCurrency.js +8 -8
  190. package/dist/components/getBorderRadius.js +5 -5
  191. package/dist/components/isColorVariable.js +10 -10
  192. package/dist/components/isDarkColor.js +1 -1
  193. package/dist/components/localization.js +3448 -3426
  194. package/dist/components/submitGtag.js +9 -9
  195. package/dist/components/zonos-address.d.ts +2 -2
  196. package/dist/components/zonos-address2.js +90 -90
  197. package/dist/components/zonos-badge.d.ts +2 -2
  198. package/dist/components/zonos-badge2.js +52 -43
  199. package/dist/components/zonos-banner.d.ts +2 -2
  200. package/dist/components/zonos-banner2.js +88 -76
  201. package/dist/components/zonos-button.d.ts +2 -2
  202. package/dist/components/zonos-button2.js +120 -119
  203. package/dist/components/zonos-card.d.ts +2 -2
  204. package/dist/components/zonos-card2.js +48 -39
  205. package/dist/components/zonos-cart-items.d.ts +2 -2
  206. package/dist/components/zonos-cart-items2.js +43 -43
  207. package/dist/components/zonos-cart-subtotal.d.ts +2 -2
  208. package/dist/components/zonos-cart-subtotal2.js +65 -65
  209. package/dist/components/zonos-checkout-finish.d.ts +2 -2
  210. package/dist/components/zonos-checkout-finish2.js +101 -101
  211. package/dist/components/zonos-checkout-payment.d.ts +2 -2
  212. package/dist/components/zonos-checkout-payment2.js +82 -82
  213. package/dist/components/zonos-checkout.d.ts +2 -2
  214. package/dist/components/zonos-checkout.js +498 -498
  215. package/dist/components/zonos-collapse.d.ts +2 -2
  216. package/dist/components/zonos-collapse2.js +48 -46
  217. package/dist/components/zonos-component.d.ts +2 -2
  218. package/dist/components/zonos-component.js +32 -32
  219. package/dist/components/zonos-controller.d.ts +2 -2
  220. package/dist/components/zonos-controller.js +259 -219
  221. package/dist/components/zonos-country-flag.d.ts +2 -2
  222. package/dist/components/zonos-country-flag2.js +41 -36
  223. package/dist/components/zonos-country-select.d.ts +2 -2
  224. package/dist/components/zonos-country-select2.js +82 -79
  225. package/dist/components/zonos-custom-message.d.ts +2 -2
  226. package/dist/components/zonos-custom-message2.js +44 -41
  227. package/dist/components/zonos-customer-info.d.ts +2 -2
  228. package/dist/components/zonos-customer-info2.js +82 -82
  229. package/dist/components/zonos-dialog.d.ts +2 -2
  230. package/dist/components/zonos-dialog2.js +105 -103
  231. package/dist/components/zonos-hello-dialog-footer.d.ts +2 -2
  232. package/dist/components/zonos-hello-dialog-footer2.js +46 -46
  233. package/dist/components/zonos-hello-dialog.d.ts +2 -2
  234. package/dist/components/zonos-hello-dialog2.js +182 -182
  235. package/dist/components/zonos-hello.d.ts +2 -2
  236. package/dist/components/zonos-hello.js +437 -437
  237. package/dist/components/zonos-icon.d.ts +2 -2
  238. package/dist/components/zonos-icon2.js +40 -38
  239. package/dist/components/zonos-link-authentication.d.ts +2 -2
  240. package/dist/components/zonos-link-authentication2.js +60 -60
  241. package/dist/components/zonos-logo.d.ts +2 -2
  242. package/dist/components/zonos-logo2.js +37 -35
  243. package/dist/components/zonos-notification.d.ts +2 -2
  244. package/dist/components/zonos-notification2.js +82 -79
  245. package/dist/components/zonos-payment.d.ts +2 -2
  246. package/dist/components/zonos-payment2.js +64 -64
  247. package/dist/components/zonos-review.d.ts +2 -2
  248. package/dist/components/zonos-review2.js +72 -72
  249. package/dist/components/zonos-shipping-rich-radio.d.ts +2 -2
  250. package/dist/components/zonos-shipping-rich-radio2.js +62 -62
  251. package/dist/components/zonos-shipping.d.ts +2 -2
  252. package/dist/components/zonos-shipping2.js +114 -114
  253. package/dist/components/zonos-spinner.d.ts +2 -2
  254. package/dist/components/zonos-spinner2.js +31 -31
  255. package/dist/components/zonos-text.d.ts +2 -2
  256. package/dist/components/zonos-text2.js +166 -164
  257. package/dist/components/zonos-v-stack.d.ts +2 -2
  258. package/dist/components/zonos-v-stack2.js +29 -26
  259. package/dist/components/zonosStore.js +101 -97
  260. package/dist/esm/cart-cd87f476.js +598 -0
  261. package/dist/esm/getBorderRadius-35e8acce.js +16 -0
  262. package/dist/esm/getHasMoreSpaceOnRight-70eb913a.js +8 -0
  263. package/dist/esm/{index-d1aa9293.js → index-3617e24c.js} +127 -26
  264. package/dist/esm/index.js +6 -6
  265. package/dist/esm/isColorVariable-91c33804.js +14 -0
  266. package/dist/esm/{isDarkColor-6fbb9b14.js → isDarkColor-44e9e451.js} +2 -2
  267. package/dist/esm/loader.js +3 -3
  268. package/dist/esm/localization-f573428e.js +3614 -0
  269. package/dist/esm/submitGtag-75af52be.js +24 -0
  270. package/dist/esm/zonos-address_2.entry.js +108 -108
  271. package/dist/esm/zonos-badge.entry.js +25 -22
  272. package/dist/esm/zonos-banner.entry.js +65 -53
  273. package/dist/esm/zonos-button_2.entry.js +100 -99
  274. package/dist/esm/zonos-card_2.entry.js +32 -27
  275. package/dist/esm/zonos-cart-items_10.entry.js +422 -419
  276. package/dist/esm/zonos-checkout.entry.js +356 -356
  277. package/dist/esm/zonos-component.entry.js +15 -15
  278. package/dist/esm/zonos-controller.entry.js +231 -193
  279. package/dist/esm/zonos-country-flag_4.entry.js +85 -77
  280. package/dist/esm/zonos-elements.js +4 -4
  281. package/dist/esm/zonos-hello-dialog.entry.js +101 -101
  282. package/dist/esm/zonos-hello.entry.js +349 -349
  283. package/dist/esm/zonos-icon.entry.js +22 -20
  284. package/dist/esm/zonos-notification.entry.js +60 -57
  285. package/dist/esm/zonos-payment.entry.js +45 -45
  286. package/dist/esm/zonos-shipping-rich-radio.entry.js +40 -40
  287. package/dist/esm/zonos-text.entry.js +145 -143
  288. package/dist/esm/{zonosStore-05a62104.js → zonosStore-e0b7a5cf.js} +102 -98
  289. package/dist/esm-es5/{cart-17650017.js → cart-cd87f476.js} +1 -1
  290. package/dist/esm-es5/getBorderRadius-35e8acce.js +1 -0
  291. package/dist/esm-es5/getHasMoreSpaceOnRight-70eb913a.js +1 -0
  292. package/dist/esm-es5/index-3617e24c.js +2 -0
  293. package/dist/esm-es5/index.js +1 -1
  294. package/dist/esm-es5/{isDarkColor-6fbb9b14.js → isDarkColor-44e9e451.js} +1 -1
  295. package/dist/esm-es5/loader.js +1 -1
  296. package/dist/esm-es5/localization-f573428e.js +1 -0
  297. package/dist/esm-es5/{submitGtag-a901ece5.js → submitGtag-75af52be.js} +1 -1
  298. package/dist/esm-es5/zonos-address_2.entry.js +1 -1
  299. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  300. package/dist/esm-es5/zonos-banner.entry.js +1 -1
  301. package/dist/esm-es5/zonos-button_2.entry.js +1 -1
  302. package/dist/esm-es5/zonos-card_2.entry.js +1 -1
  303. package/dist/esm-es5/zonos-cart-items_10.entry.js +1 -1
  304. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  305. package/dist/esm-es5/zonos-component.entry.js +1 -1
  306. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  307. package/dist/esm-es5/zonos-country-flag_4.entry.js +1 -1
  308. package/dist/esm-es5/zonos-elements.js +1 -1
  309. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  310. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  311. package/dist/esm-es5/zonos-icon.entry.js +1 -1
  312. package/dist/esm-es5/zonos-notification.entry.js +1 -1
  313. package/dist/esm-es5/zonos-payment.entry.js +1 -1
  314. package/dist/esm-es5/zonos-shipping-rich-radio.entry.js +1 -1
  315. package/dist/esm-es5/zonos-text.entry.js +1 -1
  316. package/dist/esm-es5/zonosStore-e0b7a5cf.js +1 -0
  317. package/dist/scripts/extractZonosQaUrl.js +30 -0
  318. package/dist/scripts/loadZonos.js +99 -48
  319. package/dist/scripts/zonos.js +99 -48
  320. package/dist/types/__tests__/build-utils/urlCheckOne.d.ts +6 -0
  321. package/dist/types/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.d.ts +2 -2
  322. package/dist/types/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.d.ts +1 -1
  323. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.d.ts +28 -28
  324. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.d.ts +31 -31
  325. package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +77 -77
  326. package/dist/types/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.d.ts +31 -31
  327. package/dist/types/components/checkout/zonos-checkout/zonos-review/zonos-review.d.ts +14 -14
  328. package/dist/types/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.d.ts +29 -29
  329. package/dist/types/components/common/zonos-badge/zonos-badge.d.ts +35 -35
  330. package/dist/types/components/common/zonos-banner/zonos-banner.d.ts +21 -21
  331. package/dist/types/components/common/zonos-button/zonos-button.d.ts +92 -92
  332. package/dist/types/components/common/zonos-card/zonos-card.d.ts +29 -29
  333. package/dist/types/components/common/zonos-collapse/zonos-collapse.d.ts +14 -14
  334. package/dist/types/components/common/zonos-country-flag/zonos-country-flag.d.ts +16 -16
  335. package/dist/types/components/common/zonos-country-select/zonos-country-select.d.ts +9 -9
  336. package/dist/types/components/common/zonos-custom-message/zonos-custom-message.d.ts +9 -9
  337. package/dist/types/components/common/zonos-dialog/zonos-dialog.d.ts +75 -75
  338. package/dist/types/components/common/zonos-icon/zonos-icon.d.ts +27 -27
  339. package/dist/types/components/common/zonos-logo/zonos-logo.d.ts +13 -13
  340. package/dist/types/components/common/zonos-notification/zonos-notification.d.ts +28 -28
  341. package/dist/types/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.d.ts +35 -35
  342. package/dist/types/components/common/zonos-spinner/zonos-spinner.d.ts +11 -11
  343. package/dist/types/components/common/zonos-text/zonos-text.d.ts +30 -30
  344. package/dist/types/components/common/zonos-v-stack/zonos-v-stack.d.ts +10 -10
  345. package/dist/types/components/component-template/zonos-component/zonos-component.d.ts +14 -14
  346. package/dist/types/components/hello/zonos-hello/zonos-hello.d.ts +68 -68
  347. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.d.ts +10 -10
  348. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog.d.ts +41 -41
  349. package/dist/types/components/main/zonos-controller.d.ts +47 -38
  350. package/dist/types/components/store/checkout/cart.d.ts +64 -64
  351. package/dist/types/components/store/checkout/stripe.d.ts +43 -43
  352. package/dist/types/components/store/hello/localization.d.ts +15 -15
  353. package/dist/types/components/store/translationStore/strings.arabic.d.ts +147 -147
  354. package/dist/types/components/store/translationStore/strings.base.d.ts +147 -147
  355. package/dist/types/components/store/translationStore/strings.chinese.d.ts +147 -147
  356. package/dist/types/components/store/translationStore/strings.danish.d.ts +147 -147
  357. package/dist/types/components/store/translationStore/strings.dutch.d.ts +147 -147
  358. package/dist/types/components/store/translationStore/strings.french.d.ts +147 -147
  359. package/dist/types/components/store/translationStore/strings.german.d.ts +147 -147
  360. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +147 -147
  361. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +147 -147
  362. package/dist/types/components/store/translationStore/strings.italian.d.ts +147 -147
  363. package/dist/types/components/store/translationStore/strings.japanese.d.ts +147 -147
  364. package/dist/types/components/store/translationStore/strings.korean.d.ts +147 -147
  365. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +147 -147
  366. package/dist/types/components/store/translationStore/strings.polish.d.ts +147 -147
  367. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +147 -147
  368. package/dist/types/components/store/translationStore/strings.russian.d.ts +147 -147
  369. package/dist/types/components/store/translationStore/strings.spanish.d.ts +147 -147
  370. package/dist/types/components/store/translationStore/strings.swedish.d.ts +147 -147
  371. package/dist/types/components/store/translationStore/strings.turkish.d.ts +147 -147
  372. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +147 -147
  373. package/dist/types/components/store/translationStore.d.ts +2 -2
  374. package/dist/types/components/store/zonosStore.d.ts +23 -22
  375. package/dist/types/components/stripe/zonos-address/zonos-address.d.ts +17 -17
  376. package/dist/types/components/stripe/zonos-link-authentication/zonos-link-authentication.d.ts +9 -9
  377. package/dist/types/components/stripe/zonos-payment/zonos-payment.d.ts +10 -10
  378. package/dist/types/components/utils/addDays.d.ts +6 -6
  379. package/dist/types/components/utils/api/checkItemRestrictions.d.ts +14 -14
  380. package/dist/types/components/utils/api/getCountryLandedCost.d.ts +6 -6
  381. package/dist/types/components/utils/api/getExchangeRate.d.ts +17 -17
  382. package/dist/types/components/utils/api/getLocaleMessages.d.ts +15 -15
  383. package/dist/types/components/utils/api/getLocalization.d.ts +2 -2
  384. package/dist/types/components/utils/api/getZonosSetting.d.ts +4 -4
  385. package/dist/types/components/utils/changeDeepProperty.d.ts +3 -3
  386. package/dist/types/components/utils/changeDeepPropertyAtIndex.d.ts +4 -4
  387. package/dist/types/components/utils/darkenColor.d.ts +2 -2
  388. package/dist/types/components/utils/formatCurrency.d.ts +3 -3
  389. package/dist/types/components/utils/formatDate.d.ts +6 -6
  390. package/dist/types/components/utils/handleFetch.d.ts +7 -7
  391. package/dist/types/components/utils/hello/detectItemRestrictions.d.ts +10 -10
  392. package/dist/types/components/utils/hello/getZCountryUrlParam.d.ts +2 -0
  393. package/dist/types/components/utils/hello/setZCountryUrlParam.d.ts +2 -0
  394. package/dist/types/components/utils/lightenColor.d.ts +2 -2
  395. package/dist/types/components/utils/mergeConfig.d.ts +1 -1
  396. package/dist/types/components/utils/submitGtag.d.ts +3 -3
  397. package/dist/types/components.d.ts +96 -0
  398. package/dist/types/environment.d.ts +39 -34
  399. package/dist/types/scripts/extractZonosQaUrl.d.ts +11 -0
  400. package/dist/types/scripts/stripe.d.ts +2 -2
  401. package/dist/types/scripts/zonos.d.ts +50 -40
  402. package/dist/types/stencil-public-runtime.d.ts +29 -0
  403. package/dist/types/styles/stripe/addressRuleStyle.d.ts +1 -1
  404. package/dist/types/styles/stripe/defaultVariable.d.ts +2 -2
  405. package/dist/types/types/ICountryJson.d.ts +20 -20
  406. package/dist/types/types/JsonError.d.ts +3 -3
  407. package/dist/types/types/Translation.d.ts +1 -1
  408. package/dist/types/types/checkout/CheckoutConfig.d.ts +52 -52
  409. package/dist/types/types/checkout/api/CalculateLandedCostRequest.d.ts +16 -16
  410. package/dist/types/types/generated/graphql.customer.types.d.ts +1968 -1968
  411. package/dist/types/types/generated/graphql.frontend.types.d.ts +449 -449
  412. package/dist/types/types/hello/HelloConfig.d.ts +20 -20
  413. package/dist/types/types/hello/Product.d.ts +3 -3
  414. package/dist/types/types/hello/RestrictedItem.d.ts +1 -1
  415. package/dist/types/types/online-store/OnlineStoreConfig.d.ts +1 -1
  416. package/dist/types/types/stripe/Apperance.d.ts +3 -3
  417. package/dist/types/types/styles/Text.d.ts +90 -90
  418. package/dist/types/types/utils/deep/IDeepKeyof.d.ts +1 -1
  419. package/dist/types/types/utils/deep/IDeepKeyofAtIndex.d.ts +2 -2
  420. package/dist/types/utils/generateVercelDeployUrl.d.ts +2 -2
  421. package/dist/zonos-elements/index.esm.js +1 -1
  422. package/dist/zonos-elements/p-0175125e.system.js +1 -0
  423. package/dist/zonos-elements/p-03923a86.system.entry.js +1 -0
  424. package/dist/zonos-elements/p-08298e74.entry.js +1 -0
  425. package/dist/zonos-elements/p-1bddc7ca.system.entry.js +1 -0
  426. package/dist/zonos-elements/{p-770c959e.js → p-1f8b684a.js} +1 -1
  427. package/dist/zonos-elements/p-2228b050.entry.js +1 -0
  428. package/dist/zonos-elements/p-23e7c655.system.js +1 -1
  429. package/dist/zonos-elements/p-2466df77.entry.js +1 -0
  430. package/dist/zonos-elements/p-29b993c2.system.entry.js +1 -0
  431. package/dist/zonos-elements/p-2a32dc0a.system.entry.js +1 -0
  432. package/dist/zonos-elements/p-2a666084.entry.js +1 -0
  433. package/dist/zonos-elements/p-2f1e9192.system.entry.js +1 -0
  434. package/dist/zonos-elements/{p-f7875c40.js → p-39a5e8e0.js} +1 -1
  435. package/dist/zonos-elements/p-44ddebe4.system.entry.js +1 -0
  436. package/dist/zonos-elements/p-4e8b5d86.system.entry.js +1 -0
  437. package/dist/zonos-elements/p-534dcbd4.system.js +1 -0
  438. package/dist/zonos-elements/p-5a41b5fd.entry.js +1 -0
  439. package/dist/zonos-elements/p-5d0eceaa.entry.js +1 -0
  440. package/dist/zonos-elements/{p-a1fa50fb.entry.js → p-62ccb686.entry.js} +1 -1
  441. package/dist/zonos-elements/p-643eeb24.system.js +1 -0
  442. package/dist/zonos-elements/p-660a588b.entry.js +1 -0
  443. package/dist/zonos-elements/p-6affe5cc.entry.js +1 -0
  444. package/dist/zonos-elements/p-72ea628d.system.js +1 -0
  445. package/dist/zonos-elements/{p-85ab35c9.system.js → p-754bdfdb.system.js} +1 -1
  446. package/dist/zonos-elements/{p-164fae93.system.js → p-779621e4.system.js} +1 -1
  447. package/dist/zonos-elements/{p-08695f4e.js → p-77a7929b.js} +1 -1
  448. package/dist/zonos-elements/p-7a15d841.entry.js +1 -0
  449. package/dist/zonos-elements/p-7a81ccb5.system.entry.js +1 -0
  450. package/dist/zonos-elements/p-80ba24a8.system.js +1 -0
  451. package/dist/zonos-elements/p-83d100b8.entry.js +1 -0
  452. package/dist/zonos-elements/{p-bf070bf6.js → p-8bbad467.js} +1 -1
  453. package/dist/zonos-elements/p-8ebc3ca5.system.entry.js +1 -0
  454. package/dist/zonos-elements/p-9c78d0ca.entry.js +1 -0
  455. package/dist/zonos-elements/p-9ef86de7.entry.js +1 -0
  456. package/dist/zonos-elements/p-ab46cee9.system.entry.js +1 -0
  457. package/dist/zonos-elements/p-b0268bc5.entry.js +1 -0
  458. package/dist/zonos-elements/p-b4db1620.entry.js +1 -0
  459. package/dist/zonos-elements/p-bc7bf53e.system.js +1 -0
  460. package/dist/zonos-elements/p-bec05c21.system.js +2 -0
  461. package/dist/zonos-elements/p-bec21999.system.js +1 -0
  462. package/dist/zonos-elements/{p-8378d94e.js → p-c299049e.js} +1 -1
  463. package/dist/zonos-elements/p-cd4f8e13.system.entry.js +1 -0
  464. package/dist/zonos-elements/p-ceb2cd7b.system.entry.js +1 -0
  465. package/dist/zonos-elements/p-cf4545ed.system.entry.js +1 -0
  466. package/dist/zonos-elements/p-cf8aaa17.js +2 -0
  467. package/dist/zonos-elements/p-dc9b318c.system.entry.js +1 -0
  468. package/dist/zonos-elements/p-dcf64928.system.entry.js +1 -0
  469. package/dist/zonos-elements/p-e1de2a1f.js +1 -0
  470. package/dist/zonos-elements/{p-3f3fbcea.entry.js → p-e694312d.entry.js} +1 -1
  471. package/dist/zonos-elements/p-ec26fe57.entry.js +1 -0
  472. package/dist/zonos-elements/p-edbea8df.system.js +1 -0
  473. package/dist/zonos-elements/p-f8198015.system.entry.js +1 -0
  474. package/dist/zonos-elements/p-fcd4fc66.system.entry.js +1 -0
  475. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  476. package/dist/zonos-elements/zonos-elements.js +15 -15
  477. package/package.json +55 -54
  478. package/dist/cjs/cart-55512e32.js +0 -616
  479. package/dist/cjs/getBorderRadius-fdd605c6.js +0 -18
  480. package/dist/cjs/getHasMoreSpaceOnRight-2855491b.js +0 -10
  481. package/dist/cjs/isColorVariable-c1ed7303.js +0 -16
  482. package/dist/cjs/localization-d7fe7290.js +0 -3606
  483. package/dist/cjs/submitGtag-d65003f9.js +0 -27
  484. package/dist/collection/components/utils/hello/setZonosCountryUrlParam.js +0 -9
  485. package/dist/esm/cart-17650017.js +0 -598
  486. package/dist/esm/getBorderRadius-45764ad7.js +0 -16
  487. package/dist/esm/getHasMoreSpaceOnRight-feba1ae2.js +0 -8
  488. package/dist/esm/isColorVariable-4cda28c9.js +0 -14
  489. package/dist/esm/localization-f3828793.js +0 -3592
  490. package/dist/esm/submitGtag-a901ece5.js +0 -24
  491. package/dist/esm-es5/getBorderRadius-45764ad7.js +0 -1
  492. package/dist/esm-es5/getHasMoreSpaceOnRight-feba1ae2.js +0 -1
  493. package/dist/esm-es5/index-d1aa9293.js +0 -2
  494. package/dist/esm-es5/zonosStore-05a62104.js +0 -1
  495. package/dist/types/components/utils/hello/setZonosCountryUrlParam.d.ts +0 -2
  496. package/dist/zonos-elements/p-0190f7c4.entry.js +0 -1
  497. package/dist/zonos-elements/p-0e0b46a5.js +0 -1
  498. package/dist/zonos-elements/p-0ed3bb9f.system.entry.js +0 -1
  499. package/dist/zonos-elements/p-15b71f0b.system.entry.js +0 -1
  500. package/dist/zonos-elements/p-224125da.system.entry.js +0 -1
  501. package/dist/zonos-elements/p-23204b78.system.entry.js +0 -1
  502. package/dist/zonos-elements/p-28681677.entry.js +0 -1
  503. package/dist/zonos-elements/p-2b6325ab.entry.js +0 -1
  504. package/dist/zonos-elements/p-36425562.system.entry.js +0 -1
  505. package/dist/zonos-elements/p-3a56c240.entry.js +0 -1
  506. package/dist/zonos-elements/p-43a25dab.entry.js +0 -1
  507. package/dist/zonos-elements/p-4a5096d2.system.js +0 -1
  508. package/dist/zonos-elements/p-64fdb7b6.system.js +0 -1
  509. package/dist/zonos-elements/p-68d06767.system.js +0 -2
  510. package/dist/zonos-elements/p-6d82986c.system.entry.js +0 -1
  511. package/dist/zonos-elements/p-6dcd752e.system.js +0 -1
  512. package/dist/zonos-elements/p-6e7cd3f7.entry.js +0 -1
  513. package/dist/zonos-elements/p-7bacecf7.entry.js +0 -1
  514. package/dist/zonos-elements/p-824395fd.system.entry.js +0 -1
  515. package/dist/zonos-elements/p-84b00605.system.entry.js +0 -1
  516. package/dist/zonos-elements/p-8a75b765.system.entry.js +0 -1
  517. package/dist/zonos-elements/p-8aabbb9b.system.js +0 -1
  518. package/dist/zonos-elements/p-8b415737.system.entry.js +0 -1
  519. package/dist/zonos-elements/p-8c867835.system.js +0 -1
  520. package/dist/zonos-elements/p-9202375f.entry.js +0 -1
  521. package/dist/zonos-elements/p-9688bb12.entry.js +0 -1
  522. package/dist/zonos-elements/p-98a6e093.system.entry.js +0 -1
  523. package/dist/zonos-elements/p-aca66238.system.entry.js +0 -1
  524. package/dist/zonos-elements/p-b618cf03.entry.js +0 -1
  525. package/dist/zonos-elements/p-b75ffe64.system.entry.js +0 -1
  526. package/dist/zonos-elements/p-bc2c42f5.entry.js +0 -1
  527. package/dist/zonos-elements/p-c8ad044e.system.entry.js +0 -1
  528. package/dist/zonos-elements/p-cc070c1c.entry.js +0 -1
  529. package/dist/zonos-elements/p-cc1c785c.system.entry.js +0 -1
  530. package/dist/zonos-elements/p-cd71e41e.entry.js +0 -1
  531. package/dist/zonos-elements/p-cf97cc68.system.entry.js +0 -1
  532. package/dist/zonos-elements/p-d6b8563b.system.entry.js +0 -1
  533. package/dist/zonos-elements/p-dc8d7000.js +0 -2
  534. package/dist/zonos-elements/p-e5908de2.entry.js +0 -1
  535. package/dist/zonos-elements/p-f6add79c.system.js +0 -1
  536. package/dist/zonos-elements/p-f8491335.system.js +0 -1
  537. package/dist/zonos-elements/p-f868ed42.entry.js +0 -1
  538. package/dist/zonos-elements/p-f95ac9ec.system.js +0 -1
  539. /package/dist/esm-es5/{isColorVariable-4cda28c9.js → isColorVariable-91c33804.js} +0 -0
  540. /package/dist/zonos-elements/{p-0636859b.js → p-4c414a92.js} +0 -0
  541. /package/dist/zonos-elements/{p-b6c499d4.js → p-5883217a.js} +0 -0
@@ -4,421 +4,421 @@ import { i as isDarkColor } from './isDarkColor.js';
4
4
  import { g as getBorderRadius } from './getBorderRadius.js';
5
5
 
6
6
  const prepCalculateLandedCost = () => {
7
- // maybe we don't need email now for prefetch the landed cost
8
- const stripeLinkData = stripeStore.stripeLinkEventData;
9
- const stripeAddressData = stripeStore.stripeAddressEventData;
10
- if (!stripeAddressData || !stripeAddressData.complete) {
11
- throw new Error('Missing stripe address data');
12
- }
13
- return {
14
- checkoutSessionId: cartStore.checkoutSessionId || '',
15
- contact: {
16
- email: (stripeLinkData === null || stripeLinkData === void 0 ? void 0 : stripeLinkData.value.email) || '',
17
- // firstName and lastName should be valid now since stripe only mark
18
- // the address as complete when both fields are filled.
19
- firstName: stripeAddressData.value.firstName || '',
20
- lastName: stripeAddressData.value.lastName || '',
21
- phone: stripeAddressData.value.phone || '',
22
- },
23
- items: cartStore.items.map(item => item),
24
- shippingAddress: {
25
- addressLine1: stripeAddressData.value.address.line1,
26
- addressLine2: stripeAddressData.value.address.line2 || '',
27
- city: stripeAddressData.value.address.city,
28
- country: stripeAddressData.value.address.country,
29
- postalCode: stripeAddressData.value.address.postal_code,
30
- state: stripeAddressData.value.address.state,
31
- },
32
- };
7
+ // maybe we don't need email now for prefetch the landed cost
8
+ const stripeLinkData = stripeStore.stripeLinkEventData;
9
+ const stripeAddressData = stripeStore.stripeAddressEventData;
10
+ if (!stripeAddressData || !stripeAddressData.complete) {
11
+ throw new Error('Missing stripe address data');
12
+ }
13
+ return {
14
+ checkoutSessionId: cartStore.checkoutSessionId || '',
15
+ contact: {
16
+ email: (stripeLinkData === null || stripeLinkData === void 0 ? void 0 : stripeLinkData.value.email) || '',
17
+ // firstName and lastName should be valid now since stripe only mark
18
+ // the address as complete when both fields are filled.
19
+ firstName: stripeAddressData.value.firstName || '',
20
+ lastName: stripeAddressData.value.lastName || '',
21
+ phone: stripeAddressData.value.phone || '',
22
+ },
23
+ items: cartStore.items.map(item => item),
24
+ shippingAddress: {
25
+ addressLine1: stripeAddressData.value.address.line1,
26
+ addressLine2: stripeAddressData.value.address.line2 || '',
27
+ city: stripeAddressData.value.address.city,
28
+ country: stripeAddressData.value.address.country,
29
+ postalCode: stripeAddressData.value.address.postal_code,
30
+ state: stripeAddressData.value.address.state,
31
+ },
32
+ };
33
33
  };
34
34
 
35
35
  const calculateLandedCost = async (abortController) => {
36
- // request to get landed cost info
37
- const url = `${"https://v1.route.js.zonos.com"}/api/calculate-landed-cost`;
38
- const { errors, json } = await handleFetch(url, {
39
- body: prepCalculateLandedCost(),
40
- method: 'POST',
41
- signal: abortController === null || abortController === void 0 ? void 0 : abortController.signal,
42
- });
43
- if (errors.length || !json) {
44
- throw new Error('Failed to calculate landed cost');
45
- }
46
- return json;
36
+ // request to get landed cost info
37
+ const url = `${"https://v1.route.js.zonos.com"}/api/calculate-landed-cost`;
38
+ const { errors, json } = await handleFetch(url, {
39
+ body: prepCalculateLandedCost(),
40
+ method: 'POST',
41
+ signal: abortController === null || abortController === void 0 ? void 0 : abortController.signal,
42
+ });
43
+ if (errors.length || !json) {
44
+ throw new Error('Failed to calculate landed cost');
45
+ }
46
+ return json;
47
47
  };
48
48
 
49
49
  const addressRuleStyle = ({ theme, }) => {
50
- switch (theme) {
51
- default:
52
- return {
53
- '.Input': {
54
- // need to reset everything and the paddingTop to default, otherwise the paddingTop will not be updated.
55
- padding: '0',
56
- paddingBottom: '8px',
57
- paddingLeft: '16px',
58
- paddingRight: '8px',
59
- // any value here will be add up to the default paddingTop (20px).
60
- paddingTop: '6px',
61
- },
62
- };
63
- }
50
+ switch (theme) {
51
+ default:
52
+ return {
53
+ '.Input': {
54
+ // need to reset everything and the paddingTop to default, otherwise the paddingTop will not be updated.
55
+ padding: '0',
56
+ paddingBottom: '8px',
57
+ paddingLeft: '16px',
58
+ paddingRight: '8px',
59
+ // any value here will be add up to the default paddingTop (20px).
60
+ paddingTop: '6px',
61
+ },
62
+ };
63
+ }
64
64
  };
65
65
 
66
66
  const defaultVariable = ({ borderStyle, theme, }) => {
67
- switch (theme) {
68
- case 'DARK':
69
- return {
70
- borderRadius: getBorderRadius(borderStyle),
71
- colorBackground: '#101117',
72
- colorBackgroundText: '#C5C6CA',
73
- colorText: '#C5C6CA',
74
- colorTextPlaceholder: '#C5C6CA',
75
- };
76
- default:
77
- return {
78
- borderRadius: getBorderRadius(borderStyle),
79
- };
80
- }
67
+ switch (theme) {
68
+ case 'DARK':
69
+ return {
70
+ borderRadius: getBorderRadius(borderStyle),
71
+ colorBackground: '#101117',
72
+ colorBackgroundText: '#C5C6CA',
73
+ colorText: '#C5C6CA',
74
+ colorTextPlaceholder: '#C5C6CA',
75
+ };
76
+ default:
77
+ return {
78
+ borderRadius: getBorderRadius(borderStyle),
79
+ };
80
+ }
81
81
  };
82
82
 
83
83
  const { onChange: onChange$1, reset: reset$1, state: stripeStore, } = createStore(() => ({
84
- clientSecret: sessionStorage.getItem('zonos--client-secret') || null,
85
- fetchingLandedCostAbordController: null,
86
- isFetchingLandedCost: false,
87
- isFetchingSession: false,
88
- stripe: null,
89
- stripeAddressElement: null,
90
- stripeAddressEventData: null,
91
- stripeAddressUsedWhenFetchingLC: null,
92
- stripeElements: null,
93
- stripeElementsOptions: null,
94
- stripeLinkElement: null,
95
- stripeLinkEventData: null,
96
- stripeLinkUsedWhenFetchingLC: null,
97
- stripePaymentElement: null,
98
- stripePaymentEventData: null,
84
+ clientSecret: sessionStorage.getItem('zonos--client-secret') || null,
85
+ fetchingLandedCostAbordController: null,
86
+ isFetchingLandedCost: false,
87
+ isFetchingSession: false,
88
+ stripe: null,
89
+ stripeAddressElement: null,
90
+ stripeAddressEventData: null,
91
+ stripeAddressUsedWhenFetchingLC: null,
92
+ stripeElements: null,
93
+ stripeElementsOptions: null,
94
+ stripeLinkElement: null,
95
+ stripeLinkEventData: null,
96
+ stripeLinkUsedWhenFetchingLC: null,
97
+ stripePaymentElement: null,
98
+ stripePaymentEventData: null,
99
99
  }));
100
100
  const getStripeOptions = ({ clientSecret, overrideBorderRaidus, overridePrimaryColor, overrideTheme, }) => {
101
- const primaryColor = overridePrimaryColor || zonosStore.appearance.colorPrimary;
102
- const themeBasedColor = primaryColor && isDarkColor(primaryColor) ? 'night' : 'flat';
103
- // if overrideTheme is provided, use it. Otherwise, use theme based on primary color
104
- const theme = overrideTheme === 'DARK' ? 'night' : 'flat';
105
- return {
106
- appearance: {
107
- labels: 'floating',
108
- rules: Object.assign({}, addressRuleStyle({ theme: 'LIGHT' })),
109
- // get contrast theme color base on primary color
110
- theme: overrideTheme ? theme : themeBasedColor,
111
- variables: Object.assign({}, defaultVariable({
112
- borderStyle: overrideBorderRaidus,
113
- theme: 'LIGHT',
114
- })),
115
- },
116
- clientSecret,
117
- locale: localizationStore.selectedLocale,
118
- };
101
+ const primaryColor = overridePrimaryColor || zonosStore.appearance.colorPrimary;
102
+ const themeBasedColor = primaryColor && isDarkColor(primaryColor) ? 'night' : 'flat';
103
+ // if overrideTheme is provided, use it. Otherwise, use theme based on primary color
104
+ const theme = overrideTheme === 'DARK' ? 'night' : 'flat';
105
+ return {
106
+ appearance: {
107
+ labels: 'floating',
108
+ rules: Object.assign({}, addressRuleStyle({ theme: 'LIGHT' })),
109
+ // get contrast theme color base on primary color
110
+ theme: overrideTheme ? theme : themeBasedColor,
111
+ variables: Object.assign({}, defaultVariable({
112
+ borderStyle: overrideBorderRaidus,
113
+ theme: 'LIGHT',
114
+ })),
115
+ },
116
+ clientSecret,
117
+ locale: localizationStore.selectedLocale,
118
+ };
119
119
  };
120
120
  const initStripeElements = async (props) => {
121
- var _a;
122
- const clientSecret = stripeStore.clientSecret;
123
- if (!stripeStore.stripe) {
124
- log('Skip. Stripe is not initialized');
125
- return;
126
- }
127
- if (clientSecret) {
128
- const stripeOptions = getStripeOptions({
129
- clientSecret,
130
- overrideBorderRaidus: props === null || props === void 0 ? void 0 : props.overrideBorderRaidus,
131
- overridePrimaryColor: props === null || props === void 0 ? void 0 : props.overridePrimaryColor,
132
- overrideTheme: props === null || props === void 0 ? void 0 : props.overrideTheme,
133
- });
134
- // compare with the previous options to see if we need to update
135
- const isSameOptions = JSON.stringify(stripeOptions) ===
136
- JSON.stringify(stripeStore.stripeElementsOptions);
137
- if (!stripeStore.stripeElements) {
138
- // init stripe elements if it doesn't exist
139
- stripeStore.stripeElements = (_a = stripeStore.stripe) === null || _a === void 0 ? void 0 : _a.elements(stripeOptions);
140
- // save stripe elements options for later comparison
141
- stripeStore.stripeElementsOptions = stripeOptions;
142
- log('Stripe elements initialized');
143
- return;
121
+ var _a;
122
+ const clientSecret = stripeStore.clientSecret;
123
+ if (!stripeStore.stripe) {
124
+ log('Skip. Stripe is not initialized');
125
+ return;
144
126
  }
145
- if (!isSameOptions) {
146
- // update elements with new option if it already exists
147
- stripeStore.stripeElements.update(stripeOptions);
148
- // save stripe elements options for later comparison
149
- stripeStore.stripeElementsOptions = stripeOptions;
127
+ if (clientSecret) {
128
+ const stripeOptions = getStripeOptions({
129
+ clientSecret,
130
+ overrideBorderRaidus: props === null || props === void 0 ? void 0 : props.overrideBorderRaidus,
131
+ overridePrimaryColor: props === null || props === void 0 ? void 0 : props.overridePrimaryColor,
132
+ overrideTheme: props === null || props === void 0 ? void 0 : props.overrideTheme,
133
+ });
134
+ // compare with the previous options to see if we need to update
135
+ const isSameOptions = JSON.stringify(stripeOptions) ===
136
+ JSON.stringify(stripeStore.stripeElementsOptions);
137
+ if (!stripeStore.stripeElements) {
138
+ // init stripe elements if it doesn't exist
139
+ stripeStore.stripeElements = (_a = stripeStore.stripe) === null || _a === void 0 ? void 0 : _a.elements(stripeOptions);
140
+ // save stripe elements options for later comparison
141
+ stripeStore.stripeElementsOptions = stripeOptions;
142
+ log('Stripe elements initialized');
143
+ return;
144
+ }
145
+ if (!isSameOptions) {
146
+ // update elements with new option if it already exists
147
+ stripeStore.stripeElements.update(stripeOptions);
148
+ // save stripe elements options for later comparison
149
+ stripeStore.stripeElementsOptions = stripeOptions;
150
+ }
151
+ log('Stripe elements initialized');
150
152
  }
151
- log('Stripe elements initialized');
152
- }
153
153
  };
154
154
  const stripeStoreReset = () => {
155
- // clean clientSecret so that we can start the new one.
156
- sessionStorage.removeItem('zonos--client-secret');
157
- // cleanup stripe elements
158
- reset$1();
159
- // set stripe back to window.Zonos.stripe
160
- stripeStore.stripe = window.Zonos.stripe;
155
+ // clean clientSecret so that we can start the new one.
156
+ sessionStorage.removeItem('zonos--client-secret');
157
+ // cleanup stripe elements
158
+ reset$1();
159
+ // set stripe back to window.Zonos.stripe
160
+ stripeStore.stripe = window.Zonos.stripe;
161
161
  };
162
162
  /**
163
163
  * Check if the address and email info used when fetching landed cost with the current email and address info are different
164
164
  * Purpose is to resend the request if the info used when fetching landed cost is different from the current info
165
165
  */
166
166
  const isPrefetchInfoOutdated = () => {
167
- var _a, _b, _c, _d;
168
- const hasAbortController = stripeStore.fetchingLandedCostAbordController;
169
- if (!hasAbortController) {
170
- // if there is no abort controller, this is a new request
171
- return false;
172
- }
173
- const isLinkDataDirty = JSON.stringify((_a = stripeStore.stripeLinkUsedWhenFetchingLC) === null || _a === void 0 ? void 0 : _a.value) !==
174
- JSON.stringify((_b = stripeStore.stripeLinkEventData) === null || _b === void 0 ? void 0 : _b.value);
175
- const isAddressDataDirty = JSON.stringify((_c = stripeStore.stripeAddressUsedWhenFetchingLC) === null || _c === void 0 ? void 0 : _c.value) !==
176
- JSON.stringify((_d = stripeStore.stripeAddressEventData) === null || _d === void 0 ? void 0 : _d.value);
177
- return isLinkDataDirty || isAddressDataDirty;
167
+ var _a, _b, _c, _d;
168
+ const hasAbortController = stripeStore.fetchingLandedCostAbordController;
169
+ if (!hasAbortController) {
170
+ // if there is no abort controller, this is a new request
171
+ return false;
172
+ }
173
+ const isLinkDataDirty = JSON.stringify((_a = stripeStore.stripeLinkUsedWhenFetchingLC) === null || _a === void 0 ? void 0 : _a.value) !==
174
+ JSON.stringify((_b = stripeStore.stripeLinkEventData) === null || _b === void 0 ? void 0 : _b.value);
175
+ const isAddressDataDirty = JSON.stringify((_c = stripeStore.stripeAddressUsedWhenFetchingLC) === null || _c === void 0 ? void 0 : _c.value) !==
176
+ JSON.stringify((_d = stripeStore.stripeAddressEventData) === null || _d === void 0 ? void 0 : _d.value);
177
+ return isLinkDataDirty || isAddressDataDirty;
178
178
  };
179
179
  const stripeStorePrefetchLandedCost = async () => {
180
- var _a, _b, _c, _d;
181
- const stripeAddressReady = !!((_a = stripeStore.stripeAddressEventData) === null || _a === void 0 ? void 0 : _a.complete);
182
- const stripeLinkReady = !!((_b = stripeStore.stripeLinkEventData) === null || _b === void 0 ? void 0 : _b.complete);
183
- const shouldRefetch = isPrefetchInfoOutdated();
184
- if (shouldRefetch) {
185
- // if the info used when fetching landed cost is different from the current info, abort the previous request
186
- (_c = stripeStore.fetchingLandedCostAbordController) === null || _c === void 0 ? void 0 : _c.abort();
187
- stripeStore.fetchingLandedCostAbordController = null;
188
- }
189
- // only fetch if we are not fetching or we need to refetch
190
- if (stripeAddressReady &&
191
- stripeLinkReady &&
192
- (shouldRefetch || !stripeStore.isFetchingLandedCost)) {
193
- stripeStore.isFetchingLandedCost = true;
194
- if (stripeStore.stripeAddressEventData) {
195
- stripeStore.stripeAddressUsedWhenFetchingLC = Object.assign({}, stripeStore.stripeAddressEventData);
196
- }
197
- if (stripeStore.stripeLinkEventData) {
198
- stripeStore.stripeLinkUsedWhenFetchingLC = Object.assign({}, stripeStore.stripeLinkEventData);
180
+ var _a, _b, _c, _d;
181
+ const stripeAddressReady = !!((_a = stripeStore.stripeAddressEventData) === null || _a === void 0 ? void 0 : _a.complete);
182
+ const stripeLinkReady = !!((_b = stripeStore.stripeLinkEventData) === null || _b === void 0 ? void 0 : _b.complete);
183
+ const shouldRefetch = isPrefetchInfoOutdated();
184
+ if (shouldRefetch) {
185
+ // if the info used when fetching landed cost is different from the current info, abort the previous request
186
+ (_c = stripeStore.fetchingLandedCostAbordController) === null || _c === void 0 ? void 0 : _c.abort();
187
+ stripeStore.fetchingLandedCostAbordController = null;
199
188
  }
200
- try {
201
- const abortController = new AbortController();
202
- stripeStore.fetchingLandedCostAbordController = abortController;
203
- const { checkoutSessionWorkflow, shipmentRatingCalculateWorkflow } = await calculateLandedCost(abortController);
204
- // reset abort controller after we are done
205
- stripeStore.fetchingLandedCostAbordController = null;
206
- // update cart store with landed cost info
207
- cartStore.landedCostData =
208
- (checkoutSessionWorkflow === null || checkoutSessionWorkflow === void 0 ? void 0 : checkoutSessionWorkflow.filter(Boolean)) || null;
209
- cartStore.shippingData =
210
- (shipmentRatingCalculateWorkflow === null || shipmentRatingCalculateWorkflow === void 0 ? void 0 : shipmentRatingCalculateWorkflow.filter(Boolean)) || null;
211
- // apply new subtotal and total, this is mainly to show items in the presentment currency
212
- const firstLandedCostData = (_d = cartStore.landedCostData) === null || _d === void 0 ? void 0 : _d.find(Boolean);
213
- const subtotals = !!firstLandedCostData
214
- ? firstLandedCostData.subtotals
215
- : null;
216
- if (subtotals) {
217
- // prefetch landed cost will not update shipping and taxes since we haven't selected shipping method yet
218
- cartStoreApplySubtotals({
219
- exchangeRate: subtotals.exchangeRate,
220
- items: subtotals.items,
221
- landedCostTotal: 0,
222
- presentmentCurrencyCode: subtotals.presentmentCurrencyCode,
223
- shipping: 0,
224
- total: subtotals.items,
225
- });
226
- }
227
- }
228
- catch (err) {
229
- logError(err);
189
+ // only fetch if we are not fetching or we need to refetch
190
+ if (stripeAddressReady &&
191
+ stripeLinkReady &&
192
+ (shouldRefetch || !stripeStore.isFetchingLandedCost)) {
193
+ stripeStore.isFetchingLandedCost = true;
194
+ if (stripeStore.stripeAddressEventData) {
195
+ stripeStore.stripeAddressUsedWhenFetchingLC = Object.assign({}, stripeStore.stripeAddressEventData);
196
+ }
197
+ if (stripeStore.stripeLinkEventData) {
198
+ stripeStore.stripeLinkUsedWhenFetchingLC = Object.assign({}, stripeStore.stripeLinkEventData);
199
+ }
200
+ try {
201
+ const abortController = new AbortController();
202
+ stripeStore.fetchingLandedCostAbordController = abortController;
203
+ const { checkoutSessionWorkflow, shipmentRatingCalculateWorkflow } = await calculateLandedCost(abortController);
204
+ // reset abort controller after we are done
205
+ stripeStore.fetchingLandedCostAbordController = null;
206
+ // update cart store with landed cost info
207
+ cartStore.landedCostData =
208
+ (checkoutSessionWorkflow === null || checkoutSessionWorkflow === void 0 ? void 0 : checkoutSessionWorkflow.filter(Boolean)) || null;
209
+ cartStore.shippingData =
210
+ (shipmentRatingCalculateWorkflow === null || shipmentRatingCalculateWorkflow === void 0 ? void 0 : shipmentRatingCalculateWorkflow.filter(Boolean)) || null;
211
+ // apply new subtotal and total, this is mainly to show items in the presentment currency
212
+ const firstLandedCostData = (_d = cartStore.landedCostData) === null || _d === void 0 ? void 0 : _d.find(Boolean);
213
+ const subtotals = !!firstLandedCostData
214
+ ? firstLandedCostData.subtotals
215
+ : null;
216
+ if (subtotals) {
217
+ // prefetch landed cost will not update shipping and taxes since we haven't selected shipping method yet
218
+ cartStoreApplySubtotals({
219
+ exchangeRate: subtotals.exchangeRate,
220
+ items: subtotals.items,
221
+ landedCostTotal: 0,
222
+ presentmentCurrencyCode: subtotals.presentmentCurrencyCode,
223
+ shipping: 0,
224
+ total: subtotals.items,
225
+ });
226
+ }
227
+ }
228
+ catch (err) {
229
+ logError(err);
230
+ }
231
+ stripeStore.isFetchingLandedCost = false;
230
232
  }
231
- stripeStore.isFetchingLandedCost = false;
232
- }
233
233
  };
234
234
  const getStripeMessageBasedOnStatus = (status) => {
235
- let messages = [];
236
- let isError = true;
237
- // Inspect the PaymentIntent `status` to indicate the status of the payment
238
- // to your customer.
239
- //
240
- // Some payment methods will [immediately succeed or fail][0] upon
241
- // confirmation, while others will first enter a `processing` state.
242
- //
243
- // [0]: https://stripe.com/docs/payments/payment-methods#payment-notification
244
- switch (status) {
245
- case 'succeeded': {
246
- messages = [
247
- translate('Your payment went through successfully! Thank you for shopping with us! We hope you had an enjoyable experience and your support means the world to us.'),
248
- '',
249
- '',
250
- translate("We've sent an email confirmation of the order details for your review. And our team is carefully preparing your order so it arrives on time."),
251
- ];
252
- isError = false;
253
- break;
254
- }
255
- case 'requires_capture':
256
- case 'processing': {
257
- messages = [
258
- translate("Payment processing. We'll update you when payment is received."),
259
- ];
260
- isError = false;
261
- break;
262
- }
263
- case 'requires_payment_method': {
264
- messages = [
265
- translate('Payment failed. Please try another payment method.'),
266
- ];
267
- break;
268
- }
269
- default: {
270
- messages = [translate('Something went wrong.')];
271
- break;
235
+ let messages = [];
236
+ let isError = true;
237
+ // Inspect the PaymentIntent `status` to indicate the status of the payment
238
+ // to your customer.
239
+ //
240
+ // Some payment methods will [immediately succeed or fail][0] upon
241
+ // confirmation, while others will first enter a `processing` state.
242
+ //
243
+ // [0]: https://stripe.com/docs/payments/payment-methods#payment-notification
244
+ switch (status) {
245
+ case 'succeeded': {
246
+ messages = [
247
+ translate('Your payment went through successfully! Thank you for shopping with us! We hope you had an enjoyable experience and your support means the world to us.'),
248
+ '',
249
+ '',
250
+ translate("We've sent an email confirmation of the order details for your review. And our team is carefully preparing your order so it arrives on time."),
251
+ ];
252
+ isError = false;
253
+ break;
254
+ }
255
+ case 'requires_capture':
256
+ case 'processing': {
257
+ messages = [
258
+ translate("Payment processing. We'll update you when payment is received."),
259
+ ];
260
+ isError = false;
261
+ break;
262
+ }
263
+ case 'requires_payment_method': {
264
+ messages = [
265
+ translate('Payment failed. Please try another payment method.'),
266
+ ];
267
+ break;
268
+ }
269
+ default: {
270
+ messages = [translate('Something went wrong.')];
271
+ break;
272
+ }
272
273
  }
273
- }
274
- return {
275
- isError,
276
- messages,
277
- };
274
+ return {
275
+ isError,
276
+ messages,
277
+ };
278
278
  };
279
279
  const stripeStoreRetrievePayment = async ({ clientSecret: _clientSecret, storybookForceStatus, }) => {
280
- if (storybookForceStatus) {
281
- // return status right away if we are in storybook mode
282
- const { isError, messages } = getStripeMessageBasedOnStatus(storybookForceStatus);
280
+ if (storybookForceStatus) {
281
+ // return status right away if we are in storybook mode
282
+ const { isError, messages } = getStripeMessageBasedOnStatus(storybookForceStatus);
283
+ return { error: isError, messages };
284
+ }
285
+ const clientSecret = _clientSecret || stripeStore.clientSecret;
286
+ if (!stripeStore.stripe || !clientSecret) {
287
+ logError('Failed to retrieve payment intent. Stripe is not initialized');
288
+ return { error: true, message: [translate('Something went wrong.')] };
289
+ }
290
+ const { paymentIntent } = await stripeStore.stripe.retrievePaymentIntent(clientSecret);
291
+ const status = paymentIntent === null || paymentIntent === void 0 ? void 0 : paymentIntent.status;
292
+ const { isError, messages } = getStripeMessageBasedOnStatus(status);
283
293
  return { error: isError, messages };
284
- }
285
- const clientSecret = _clientSecret || stripeStore.clientSecret;
286
- if (!stripeStore.stripe || !clientSecret) {
287
- logError('Failed to retrieve payment intent. Stripe is not initialized');
288
- return { error: true, message: [translate('Something went wrong.')] };
289
- }
290
- const { paymentIntent } = await stripeStore.stripe.retrievePaymentIntent(clientSecret);
291
- const status = paymentIntent === null || paymentIntent === void 0 ? void 0 : paymentIntent.status;
292
- const { isError, messages } = getStripeMessageBasedOnStatus(status);
293
- return { error: isError, messages };
294
294
  };
295
295
  const stripeStoreConfirmPayment = async () => {
296
- var _a, _b, _c;
297
- const stripePaymentReady = !!((_a = stripeStore.stripePaymentEventData) === null || _a === void 0 ? void 0 : _a.complete);
298
- const stripeElements = stripeStore.stripeElements;
299
- const stripe = stripeStore.stripe;
300
- const stripeClientSecret = stripeStore.clientSecret;
301
- if (stripe && stripeElements && stripePaymentReady && stripeClientSecret) {
302
- const { error } = await stripe.confirmPayment({
303
- confirmParams: {
304
- receipt_email: (_c = (_b = stripeStore.stripeLinkEventData) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.email,
305
- return_url: window.location.href,
306
- },
307
- elements: stripeElements,
308
- redirect: 'if_required',
309
- });
310
- if (error) {
311
- if (error.type === 'card_error' || error.type === 'validation_error') {
312
- throw new Error(error.message);
313
- }
314
- if (error.type === 'invalid_request_error') {
315
- if (error.code === 'payment_intent_unexpected_state') {
316
- // PaymentIntent was canceled or expired, or status is `require_capture`.
317
- // don't throw error here because we will reset the checkout session last step
318
- return;
296
+ var _a, _b, _c;
297
+ const stripePaymentReady = !!((_a = stripeStore.stripePaymentEventData) === null || _a === void 0 ? void 0 : _a.complete);
298
+ const stripeElements = stripeStore.stripeElements;
299
+ const stripe = stripeStore.stripe;
300
+ const stripeClientSecret = stripeStore.clientSecret;
301
+ if (stripe && stripeElements && stripePaymentReady && stripeClientSecret) {
302
+ const { error } = await stripe.confirmPayment({
303
+ confirmParams: {
304
+ receipt_email: (_c = (_b = stripeStore.stripeLinkEventData) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.email,
305
+ return_url: window.location.href,
306
+ },
307
+ elements: stripeElements,
308
+ redirect: 'if_required',
309
+ });
310
+ if (error) {
311
+ if (error.type === 'card_error' || error.type === 'validation_error') {
312
+ throw new Error(error.message);
313
+ }
314
+ if (error.type === 'invalid_request_error') {
315
+ if (error.code === 'payment_intent_unexpected_state') {
316
+ // PaymentIntent was canceled or expired, or status is `require_capture`.
317
+ // don't throw error here because we will reset the checkout session last step
318
+ return;
319
+ }
320
+ }
321
+ throw new Error('An unexpected error occurred.');
319
322
  }
320
- }
321
- throw new Error('An unexpected error occurred.');
322
323
  }
323
- }
324
324
  };
325
325
  /**
326
326
  * Init checkout session
327
327
  * @returns {boolean} whether or not the checkout session is successfully created
328
328
  */
329
329
  const stripeStoreInitCheckoutSession = async () => {
330
- var _a;
331
- const total = cartStore.items.reduce((amount, item) => amount + item.amount * item.quantity, 0);
332
- if (!total || !localizationStore.targetCurrency) {
333
- logError('Fail to create checkout session - invalid total or currency');
334
- return false;
335
- }
336
- stripeStore.isFetchingSession = true;
337
- const { errors, json } = await handleFetch(`${"https://v1.route.js.zonos.com"}/api/create-checkout-session`, {
338
- body: {
339
- currency: ((_a = cartStore.items.find(Boolean)) === null || _a === void 0 ? void 0 : _a.currencyCode) || '',
340
- itemsAmount: total,
341
- presentmentCountryCode: localizationStore.selectedCountryCode || null,
342
- },
343
- method: 'POST',
344
- });
345
- stripeStore.isFetchingSession = false;
346
- if (errors.length || !json) {
347
- logError('Error occurs when creating checkout session', JSON.stringify(errors, null, 2));
348
- return false;
349
- }
350
- const result = json.checkoutSessionCreate;
351
- stripeStore.clientSecret = result.clientSecret;
352
- // update cart store with updated informations
353
- cartStore.checkoutSessionId = result.id;
354
- cartStoreApplySubtotals(Object.assign(Object.assign({}, result.subtotals), { landedCostTotal: 0, shipping: 0, total: result.subtotals.items }));
355
- log('Exchange rate updated for cart items (checkout session create)', 'info', cartStore.exchangeRate);
356
- log('done-init-checkout-session');
357
- return true;
330
+ var _a;
331
+ const total = cartStore.items.reduce((amount, item) => amount + item.amount * item.quantity, 0);
332
+ if (!total || !localizationStore.targetCurrency) {
333
+ logError('Fail to create checkout session - invalid total or currency');
334
+ return false;
335
+ }
336
+ stripeStore.isFetchingSession = true;
337
+ const { errors, json } = await handleFetch(`${"https://v1.route.js.zonos.com"}/api/create-checkout-session`, {
338
+ body: {
339
+ currency: ((_a = cartStore.items.find(Boolean)) === null || _a === void 0 ? void 0 : _a.currencyCode) || '',
340
+ itemsAmount: total,
341
+ presentmentCountryCode: localizationStore.selectedCountryCode || null,
342
+ },
343
+ method: 'POST',
344
+ });
345
+ stripeStore.isFetchingSession = false;
346
+ if (errors.length || !json) {
347
+ logError('Error occurs when creating checkout session', JSON.stringify(errors, null, 2));
348
+ return false;
349
+ }
350
+ const result = json.checkoutSessionCreate;
351
+ stripeStore.clientSecret = result.clientSecret;
352
+ // update cart store with updated informations
353
+ cartStore.checkoutSessionId = result.id;
354
+ cartStoreApplySubtotals(Object.assign(Object.assign({}, result.subtotals), { landedCostTotal: 0, shipping: 0, total: result.subtotals.items }));
355
+ log('Exchange rate updated for cart items (checkout session create)', 'info', cartStore.exchangeRate);
356
+ log('done-init-checkout-session');
357
+ return true;
358
358
  };
359
359
  /**
360
360
  * Update checkout session. Use for updating amount with landed cost id, or update session when cart items change
361
361
  */
362
362
  const stripeStoreUpdateCheckoutSession = async ({ currency, id, itemsAmount, landedCostId, presentmentCountryCode, }) => {
363
- // No need to set loading state here because this function will be called under the hood to update
364
- // landed cost id for the section.
365
- const { errors, json } = await handleFetch(`${"https://v1.route.js.zonos.com"}/api/update-checkout-session`, {
366
- body: {
367
- currency,
368
- id,
369
- itemsAmount,
370
- landedCostId,
371
- presentmentCountryCode,
372
- },
373
- method: 'POST',
374
- });
375
- if (errors.length || !json) {
376
- logError('Error occurs when updating checkout session', JSON.stringify(errors, null, 2));
377
- return { errors, json };
378
- }
379
- return { errors: [], json };
363
+ // No need to set loading state here because this function will be called under the hood to update
364
+ // landed cost id for the section.
365
+ const { errors, json } = await handleFetch(`${"https://v1.route.js.zonos.com"}/api/update-checkout-session`, {
366
+ body: {
367
+ currency,
368
+ id,
369
+ itemsAmount,
370
+ landedCostId,
371
+ presentmentCountryCode,
372
+ },
373
+ method: 'POST',
374
+ });
375
+ if (errors.length || !json) {
376
+ logError('Error occurs when updating checkout session', JSON.stringify(errors, null, 2));
377
+ return { errors, json };
378
+ }
379
+ return { errors: [], json };
380
380
  };
381
381
  onChange$1('clientSecret', clientSecret => {
382
- // update stripe elements when client secret changes
383
- if (clientSecret && stripeStore.stripe) {
384
- sessionStorage.setItem('zonos--client-secret', clientSecret);
385
- }
386
- if (!clientSecret) {
387
- sessionStorage.removeItem('zonos--client-secret');
388
- }
382
+ // update stripe elements when client secret changes
383
+ if (clientSecret && stripeStore.stripe) {
384
+ sessionStorage.setItem('zonos--client-secret', clientSecret);
385
+ }
386
+ if (!clientSecret) {
387
+ sessionStorage.removeItem('zonos--client-secret');
388
+ }
389
389
  });
390
390
 
391
391
  const formatDate = ({ date, formatOptions = { day: 'numeric', weekday: 'long', year: 'numeric' }, }) => {
392
- // format date to Thursday 3, 2023
393
- return new Intl.DateTimeFormat('en-US', formatOptions).format(date);
392
+ // format date to Thursday 3, 2023
393
+ return new Intl.DateTimeFormat('en-US', formatOptions).format(date);
394
394
  };
395
395
 
396
396
  const getDaysDifference = (targetDate) => {
397
- const currentDate = new Date();
398
- const timeDifference = targetDate.getTime() - currentDate.getTime();
399
- const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // Convert milliseconds to days
400
- return daysDifference;
397
+ const currentDate = new Date();
398
+ const timeDifference = targetDate.getTime() - currentDate.getTime();
399
+ const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // Convert milliseconds to days
400
+ return daysDifference;
401
401
  };
402
402
 
403
403
  const { onChange, reset, state: cartStore, } = createStore(() => ({
404
- checkoutSessionId: sessionStorage.getItem('zonos--checkout-session-id') || null,
405
- currency: 'USD',
406
- dutiesTaxFees: 0,
407
- error: null,
408
- exchangeRate: null,
409
- isSelectedShippingAboveDeminimis: false,
410
- isSelectedShippingGuarantee: false,
411
- items: [],
412
- landedCostData: null,
413
- selectedLandedCost: null,
414
- selectedShippingOption: null,
415
- selectedShippingOptionExpectedDate: '',
416
- selectedShippingOptionTransitTime: '',
417
- shipping: 0,
418
- shippingData: null,
419
- step: 'customer-info',
420
- subtotal: 0,
421
- total: 0,
404
+ checkoutSessionId: sessionStorage.getItem('zonos--checkout-session-id') || null,
405
+ currency: 'USD',
406
+ dutiesTaxFees: 0,
407
+ error: null,
408
+ exchangeRate: null,
409
+ isSelectedShippingAboveDeminimis: false,
410
+ isSelectedShippingGuarantee: false,
411
+ items: [],
412
+ landedCostData: null,
413
+ selectedLandedCost: null,
414
+ selectedShippingOption: null,
415
+ selectedShippingOptionExpectedDate: '',
416
+ selectedShippingOptionTransitTime: '',
417
+ shipping: 0,
418
+ shippingData: null,
419
+ step: 'customer-info',
420
+ subtotal: 0,
421
+ total: 0,
422
422
  }));
423
423
  /**
424
424
  * Format shipping transit info to be displayed on UI
@@ -428,171 +428,171 @@ const { onChange, reset, state: cartStore, } = createStore(() => ({
428
428
  * - minTransit: 3
429
429
  */
430
430
  const cartStoreGetShippingTransitInfo = (item) => {
431
- const minTransit = item.minTransitAt
432
- ? getDaysDifference(new Date(item.minTransitAt))
433
- : '';
434
- const maxTransit = item.maxTransitAt
435
- ? getDaysDifference(new Date(item.maxTransitAt))
436
- : '';
437
- const expectedDate = item.minTransitAt
438
- ? formatDate({
439
- date: new Date(item.minTransitAt),
440
- })
441
- : '';
442
- return {
443
- expectedDate,
444
- maxTransit,
445
- minTransit,
446
- };
431
+ const minTransit = item.minTransitAt
432
+ ? getDaysDifference(new Date(item.minTransitAt))
433
+ : '';
434
+ const maxTransit = item.maxTransitAt
435
+ ? getDaysDifference(new Date(item.maxTransitAt))
436
+ : '';
437
+ const expectedDate = item.minTransitAt
438
+ ? formatDate({
439
+ date: new Date(item.minTransitAt),
440
+ })
441
+ : '';
442
+ return {
443
+ expectedDate,
444
+ maxTransit,
445
+ minTransit,
446
+ };
447
447
  };
448
448
  const cartStoreReset = () => {
449
- sessionStorage.removeItem('zonos--checkout-session-id');
450
- // reset cart store
451
- reset();
449
+ sessionStorage.removeItem('zonos--checkout-session-id');
450
+ // reset cart store
451
+ reset();
452
452
  };
453
453
  const cartStoreUpdateToErrorState = ({ messages, title, }) => {
454
- cartStore.step = 'error';
455
- cartStore.error = {
456
- messages,
457
- title,
458
- };
454
+ cartStore.step = 'error';
455
+ cartStore.error = {
456
+ messages,
457
+ title,
458
+ };
459
459
  };
460
460
  const cartStoreApplySubtotals = (subtotals) => {
461
- // update exchange rate so we can use it to display cart items
462
- cartStore.exchangeRate = subtotals.exchangeRate;
463
- cartStore.dutiesTaxFees = subtotals.landedCostTotal;
464
- cartStore.subtotal = subtotals.items;
465
- cartStore.total = subtotals.total;
466
- cartStore.currency = subtotals.presentmentCurrencyCode;
461
+ // update exchange rate so we can use it to display cart items
462
+ cartStore.exchangeRate = subtotals.exchangeRate;
463
+ cartStore.dutiesTaxFees = subtotals.landedCostTotal;
464
+ cartStore.subtotal = subtotals.items;
465
+ cartStore.total = subtotals.total;
466
+ cartStore.currency = subtotals.presentmentCurrencyCode;
467
467
  };
468
468
  const cartStoreReCalculateTotal = async ({ currency, itemsAmount, landedCostId, }) => {
469
- if (landedCostId && cartStore.selectedLandedCost) {
470
- // update cart total right away if we have landed cost id to avoid order total flickering
471
- const subtotals = cartStore.selectedLandedCost.subtotals;
472
- cartStoreApplySubtotals(subtotals);
473
- log('Exchange rate updated for cart items (landed cost subtotal)', 'info', cartStore.exchangeRate);
474
- }
475
- // update checkout session
476
- if (!cartStore.checkoutSessionId) {
477
- logError('Could update cart total without checkout session id');
478
- return false;
479
- }
480
- const { json } = await stripeStoreUpdateCheckoutSession({
481
- currency,
482
- id: cartStore.checkoutSessionId,
483
- itemsAmount,
484
- landedCostId,
485
- presentmentCountryCode: localizationStore.selectedCountryCode,
486
- });
487
- if (!json) {
488
- // do nothing if we can't get checkout session
489
- logError('Error occurs when updating checkout session');
490
- cartStoreUpdateToErrorState({
491
- messages: [
492
- translate("There's been an error updating your checkout session. Please reload and try again or contact support if the error persists"),
493
- ],
494
- title: translate('Error updating Checkout'),
469
+ if (landedCostId && cartStore.selectedLandedCost) {
470
+ // update cart total right away if we have landed cost id to avoid order total flickering
471
+ const subtotals = cartStore.selectedLandedCost.subtotals;
472
+ cartStoreApplySubtotals(subtotals);
473
+ log('Exchange rate updated for cart items (landed cost subtotal)', 'info', cartStore.exchangeRate);
474
+ }
475
+ // update checkout session
476
+ if (!cartStore.checkoutSessionId) {
477
+ logError('Could update cart total without checkout session id');
478
+ return false;
479
+ }
480
+ const { json } = await stripeStoreUpdateCheckoutSession({
481
+ currency,
482
+ id: cartStore.checkoutSessionId,
483
+ itemsAmount,
484
+ landedCostId,
485
+ presentmentCountryCode: localizationStore.selectedCountryCode,
495
486
  });
496
- return false;
497
- }
498
- if (!landedCostId) {
499
- // This is when first open the checkout modal and we just want to get info from the old cart session.
500
- // use subtotals from checkout session to update cart total
501
- cartStoreApplySubtotals(json.checkoutSessionUpdate.subtotals);
502
- log('Exchange rate updated for cart items (checkout session update)', 'info', cartStore.exchangeRate);
503
- }
504
- return true;
487
+ if (!json) {
488
+ // do nothing if we can't get checkout session
489
+ logError('Error occurs when updating checkout session');
490
+ cartStoreUpdateToErrorState({
491
+ messages: [
492
+ translate("There's been an error updating your checkout session. Please reload and try again or contact support if the error persists"),
493
+ ],
494
+ title: translate('Error updating Checkout'),
495
+ });
496
+ return false;
497
+ }
498
+ if (!landedCostId) {
499
+ // This is when first open the checkout modal and we just want to get info from the old cart session.
500
+ // use subtotals from checkout session to update cart total
501
+ cartStoreApplySubtotals(json.checkoutSessionUpdate.subtotals);
502
+ log('Exchange rate updated for cart items (checkout session update)', 'info', cartStore.exchangeRate);
503
+ }
504
+ return true;
505
505
  };
506
506
  const cartStoreUpdateSelectedShippingOption = async (selectedShippingOption) => {
507
- var _a, _b, _c, _d, _e;
508
- cartStore.selectedShippingOption = selectedShippingOption;
509
- // update shipping transit info
510
- const { expectedDate, maxTransit, minTransit } = cartStoreGetShippingTransitInfo(cartStore.selectedShippingOption);
511
- cartStore.selectedShippingOptionExpectedDate = expectedDate;
512
- cartStore.selectedShippingOptionTransitTime =
513
- minTransit && maxTransit
514
- ? `${minTransit}-${maxTransit}`
515
- : `${minTransit || maxTransit}`;
516
- const selectedLandedCost = (_a = cartStore.landedCostData) === null || _a === void 0 ? void 0 : _a.find(checkoutSessionPresentment => {
517
- var _a, _b, _c;
518
- return ((_b = (_a = checkoutSessionPresentment.landedCost) === null || _a === void 0 ? void 0 : _a.shipmentRating) === null || _b === void 0 ? void 0 : _b.id) ===
519
- ((_c = cartStore.selectedShippingOption) === null || _c === void 0 ? void 0 : _c.id);
520
- });
521
- // save selected landed cost for later use
522
- cartStore.selectedLandedCost = selectedLandedCost || null;
523
- if (!selectedLandedCost) {
524
- // do nothing if we can't find landed cost for selected shipping option
525
- return false;
526
- }
527
- // update shipping value and dutiesTaxFees on selectedShippingOption change
528
- cartStore.shipping = selectedLandedCost.subtotals.shipping;
529
- // update deminimis status
530
- const isGuarantee = ((_b = selectedLandedCost === null || selectedLandedCost === void 0 ? void 0 : selectedLandedCost.landedCost) === null || _b === void 0 ? void 0 : _b.landedCostGuaranteeCode) === 'ZONOS';
531
- // one item in deminimis with type of duty and tax has threshold value is "ABOVE"
532
- const isAboveDeminimis = !!((_d = (_c = selectedLandedCost === null || selectedLandedCost === void 0 ? void 0 : selectedLandedCost.landedCost) === null || _c === void 0 ? void 0 : _c.deMinimis) === null || _d === void 0 ? void 0 : _d.find(item => ['DUTY', 'TAX'].includes(item.type) && item.threshold === 'ABOVE'));
533
- cartStore.isSelectedShippingAboveDeminimis = isAboveDeminimis;
534
- cartStore.isSelectedShippingGuarantee = isGuarantee;
535
- // update session with selected landed cost
536
- const updateCalulateStatus = await cartStoreReCalculateTotal({
537
- landedCostId: (_e = selectedLandedCost.landedCost) === null || _e === void 0 ? void 0 : _e.id,
538
- });
539
- return updateCalulateStatus;
507
+ var _a, _b, _c, _d, _e;
508
+ cartStore.selectedShippingOption = selectedShippingOption;
509
+ // update shipping transit info
510
+ const { expectedDate, maxTransit, minTransit } = cartStoreGetShippingTransitInfo(cartStore.selectedShippingOption);
511
+ cartStore.selectedShippingOptionExpectedDate = expectedDate;
512
+ cartStore.selectedShippingOptionTransitTime =
513
+ minTransit && maxTransit
514
+ ? `${minTransit}-${maxTransit}`
515
+ : `${minTransit || maxTransit}`;
516
+ const selectedLandedCost = (_a = cartStore.landedCostData) === null || _a === void 0 ? void 0 : _a.find(checkoutSessionPresentment => {
517
+ var _a, _b, _c;
518
+ return ((_b = (_a = checkoutSessionPresentment.landedCost) === null || _a === void 0 ? void 0 : _a.shipmentRating) === null || _b === void 0 ? void 0 : _b.id) ===
519
+ ((_c = cartStore.selectedShippingOption) === null || _c === void 0 ? void 0 : _c.id);
520
+ });
521
+ // save selected landed cost for later use
522
+ cartStore.selectedLandedCost = selectedLandedCost || null;
523
+ if (!selectedLandedCost) {
524
+ // do nothing if we can't find landed cost for selected shipping option
525
+ return false;
526
+ }
527
+ // update shipping value and dutiesTaxFees on selectedShippingOption change
528
+ cartStore.shipping = selectedLandedCost.subtotals.shipping;
529
+ // update deminimis status
530
+ const isGuarantee = ((_b = selectedLandedCost === null || selectedLandedCost === void 0 ? void 0 : selectedLandedCost.landedCost) === null || _b === void 0 ? void 0 : _b.landedCostGuaranteeCode) === 'ZONOS';
531
+ // one item in deminimis with type of duty and tax has threshold value is "ABOVE"
532
+ const isAboveDeminimis = !!((_d = (_c = selectedLandedCost === null || selectedLandedCost === void 0 ? void 0 : selectedLandedCost.landedCost) === null || _c === void 0 ? void 0 : _c.deMinimis) === null || _d === void 0 ? void 0 : _d.find(item => ['DUTY', 'TAX'].includes(item.type) && item.threshold === 'ABOVE'));
533
+ cartStore.isSelectedShippingAboveDeminimis = isAboveDeminimis;
534
+ cartStore.isSelectedShippingGuarantee = isGuarantee;
535
+ // update session with selected landed cost
536
+ const updateCalulateStatus = await cartStoreReCalculateTotal({
537
+ landedCostId: (_e = selectedLandedCost.landedCost) === null || _e === void 0 ? void 0 : _e.id,
538
+ });
539
+ return updateCalulateStatus;
540
540
  };
541
541
  onChange('checkoutSessionId', () => {
542
- if (!cartStore.checkoutSessionId) {
543
- sessionStorage.removeItem('zonos--checkout-session-id');
544
- return;
545
- }
546
- sessionStorage.setItem('zonos--checkout-session-id', cartStore.checkoutSessionId);
542
+ if (!cartStore.checkoutSessionId) {
543
+ sessionStorage.removeItem('zonos--checkout-session-id');
544
+ return;
545
+ }
546
+ sessionStorage.setItem('zonos--checkout-session-id', cartStore.checkoutSessionId);
547
547
  });
548
548
  const cartStoreUpdateItems = async (items) => {
549
- var _a;
550
- cartStore.items = items;
551
- const currency = (_a = items.find(Boolean)) === null || _a === void 0 ? void 0 : _a.currencyCode;
552
- const total = items.reduce((amt, item) => {
553
- return amt + item.amount * item.quantity;
554
- }, 0);
555
- if (!currency || !total) {
556
- // do nothing if we can't get currency or total
557
- return;
558
- }
559
- cartStore.currency = currency;
560
- // set loading state here because this is first load checkout session when we already have checkout session id stored
561
- stripeStore.isFetchingSession = true;
562
- await cartStoreReCalculateTotal({
563
- currency: currency,
564
- itemsAmount: total,
565
- });
566
- stripeStore.isFetchingSession = false;
549
+ var _a;
550
+ cartStore.items = items;
551
+ const currency = (_a = items.find(Boolean)) === null || _a === void 0 ? void 0 : _a.currencyCode;
552
+ const total = items.reduce((amt, item) => {
553
+ return amt + item.amount * item.quantity;
554
+ }, 0);
555
+ if (!currency || !total) {
556
+ // do nothing if we can't get currency or total
557
+ return;
558
+ }
559
+ cartStore.currency = currency;
560
+ // set loading state here because this is first load checkout session when we already have checkout session id stored
561
+ stripeStore.isFetchingSession = true;
562
+ await cartStoreReCalculateTotal({
563
+ currency: currency,
564
+ itemsAmount: total,
565
+ });
566
+ stripeStore.isFetchingSession = false;
567
567
  };
568
568
  const cartStoreResetSelectedShippingOption = () => {
569
- cartStore.selectedShippingOption = null;
570
- cartStore.isSelectedShippingAboveDeminimis = false;
571
- cartStore.isSelectedShippingGuarantee = false;
572
- cartStore.selectedShippingOptionExpectedDate = '';
573
- cartStore.selectedShippingOptionTransitTime = '';
574
- cartStore.shipping = 0;
569
+ cartStore.selectedShippingOption = null;
570
+ cartStore.isSelectedShippingAboveDeminimis = false;
571
+ cartStore.isSelectedShippingGuarantee = false;
572
+ cartStore.selectedShippingOptionExpectedDate = '';
573
+ cartStore.selectedShippingOptionTransitTime = '';
574
+ cartStore.shipping = 0;
575
575
  };
576
576
  const cartStoreNextStep = () => {
577
- if (cartStore.step === 'customer-info') {
578
- cartStore.step = 'shipping';
579
- }
580
- else if (cartStore.step === 'shipping') {
581
- cartStore.step = 'payment';
582
- }
583
- else if (cartStore.step === 'payment') {
584
- cartStore.step = 'finish';
585
- }
577
+ if (cartStore.step === 'customer-info') {
578
+ cartStore.step = 'shipping';
579
+ }
580
+ else if (cartStore.step === 'shipping') {
581
+ cartStore.step = 'payment';
582
+ }
583
+ else if (cartStore.step === 'payment') {
584
+ cartStore.step = 'finish';
585
+ }
586
586
  };
587
587
  const cartStorePreviousStep = () => {
588
- if (cartStore.step === 'payment') {
589
- cartStore.step = 'shipping';
590
- }
591
- else if (cartStore.step === 'shipping') {
592
- cartStore.step = 'customer-info';
593
- // reset selected shipping option
594
- cartStoreResetSelectedShippingOption();
595
- }
588
+ if (cartStore.step === 'payment') {
589
+ cartStore.step = 'shipping';
590
+ }
591
+ else if (cartStore.step === 'shipping') {
592
+ cartStore.step = 'customer-info';
593
+ // reset selected shipping option
594
+ cartStoreResetSelectedShippingOption();
595
+ }
596
596
  };
597
597
 
598
598
  export { cartStoreApplySubtotals as a, cartStoreGetShippingTransitInfo as b, cartStore as c, cartStoreNextStep as d, cartStorePreviousStep as e, cartStoreReCalculateTotal as f, cartStoreReset as g, cartStoreUpdateItems as h, cartStoreUpdateSelectedShippingOption as i, cartStoreUpdateToErrorState as j, stripeStorePrefetchLandedCost as k, initStripeElements as l, stripeStoreInitCheckoutSession as m, stripeStoreConfirmPayment as n, stripeStoreReset as o, stripeStoreRetrievePayment as p, stripeStore as s };