@zonos/elements 1.2.3 → 1.2.4-alpha.10

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 (553) hide show
  1. package/README.md +15 -1
  2. package/dist/cjs/cart-90f7c8c0.js +644 -0
  3. package/dist/cjs/getBorderRadius-bf4a4276.js +18 -0
  4. package/dist/cjs/getHasMoreSpaceOnRight-4c94667f.js +10 -0
  5. package/dist/cjs/{index-9542d2e7.js → index-0dcccc22.js} +154 -42
  6. package/dist/cjs/index.cjs.js +6 -6
  7. package/dist/cjs/isColorVariable-41cacd82.js +16 -0
  8. package/dist/cjs/{isDarkColor-f3446afd.js → isDarkColor-ff6ff183.js} +2 -2
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/localization-9caf3397.js +3667 -0
  11. package/dist/cjs/submitGtag-b141b45d.js +27 -0
  12. package/dist/cjs/zonos-address_2.cjs.entry.js +108 -108
  13. package/dist/cjs/zonos-badge.cjs.entry.js +25 -22
  14. package/dist/cjs/zonos-banner.cjs.entry.js +65 -53
  15. package/dist/cjs/zonos-button_2.cjs.entry.js +100 -99
  16. package/dist/cjs/zonos-card_2.cjs.entry.js +32 -27
  17. package/dist/cjs/zonos-cart-items_10.cjs.entry.js +464 -419
  18. package/dist/cjs/zonos-checkout.cjs.entry.js +358 -356
  19. package/dist/cjs/zonos-component.cjs.entry.js +15 -15
  20. package/dist/cjs/zonos-controller.cjs.entry.js +232 -194
  21. package/dist/cjs/zonos-country-flag_4.cjs.entry.js +85 -77
  22. package/dist/cjs/zonos-elements.cjs.js +3 -3
  23. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +101 -101
  24. package/dist/cjs/zonos-hello.cjs.entry.js +349 -349
  25. package/dist/cjs/zonos-icon.cjs.entry.js +22 -20
  26. package/dist/cjs/zonos-notification.cjs.entry.js +60 -57
  27. package/dist/cjs/zonos-payment.cjs.entry.js +45 -45
  28. package/dist/cjs/zonos-shipping-rich-radio.cjs.entry.js +40 -40
  29. package/dist/cjs/zonos-text.cjs.entry.js +145 -143
  30. package/dist/cjs/{zonosStore-a430ec5b.js → zonosStore-b43ef5db.js} +102 -97
  31. package/dist/collection/__mocks__/vercel-app/loadZonos.js +492 -0
  32. package/dist/collection/__mocks__/vercel-app/localization.js +1 -0
  33. package/dist/collection/__mocks__/vercel-app/zonos-hello.entry.js +1 -0
  34. package/dist/collection/__mocks__/zonos-url/loadZonos.js +492 -0
  35. package/dist/{esm-es5/localization-f3828793.js → collection/__mocks__/zonos-url/localization.js} +1 -1
  36. package/dist/collection/__mocks__/zonos-url/zonos-hello.entry.js +1 -0
  37. package/dist/collection/__tests__/build-utils/urlCheckOne.js +59 -0
  38. package/dist/collection/collection-manifest.json +2 -2
  39. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.css +5 -1
  40. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +37 -37
  41. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.css +5 -1
  42. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +44 -44
  43. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.css +5 -1
  44. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +209 -163
  45. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.css +5 -1
  46. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +149 -149
  47. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.css +5 -1
  48. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +562 -559
  49. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.css +5 -1
  50. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.js +153 -153
  51. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.css +5 -1
  52. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.js +107 -107
  53. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.css +5 -1
  54. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.js +164 -164
  55. package/dist/collection/components/common/countries.js +261 -261
  56. package/dist/collection/components/common/zonos-badge/zonos-badge.css +5 -1
  57. package/dist/collection/components/common/zonos-badge/zonos-badge.js +189 -186
  58. package/dist/collection/components/common/zonos-banner/zonos-banner.css +5 -1
  59. package/dist/collection/components/common/zonos-banner/zonos-banner.js +140 -128
  60. package/dist/collection/components/common/zonos-button/zonos-button.css +6 -5
  61. package/dist/collection/components/common/zonos-button/zonos-button.js +407 -406
  62. package/dist/collection/components/common/zonos-card/zonos-card.css +5 -1
  63. package/dist/collection/components/common/zonos-card/zonos-card.js +165 -162
  64. package/dist/collection/components/common/zonos-collapse/zonos-collapse.css +5 -1
  65. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +85 -83
  66. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.css +5 -1
  67. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.js +101 -96
  68. package/dist/collection/components/common/zonos-country-select/zonos-country-select.css +5 -1
  69. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +73 -70
  70. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.css +5 -1
  71. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +62 -59
  72. package/dist/collection/components/common/zonos-dialog/zonos-dialog.css +5 -1
  73. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +373 -371
  74. package/dist/collection/components/common/zonos-icon/zonos-icon.css +5 -1
  75. package/dist/collection/components/common/zonos-icon/zonos-icon.js +123 -121
  76. package/dist/collection/components/common/zonos-logo/zonos-logo.css +5 -1
  77. package/dist/collection/components/common/zonos-logo/zonos-logo.js +92 -90
  78. package/dist/collection/components/common/zonos-notification/zonos-notification.css +5 -1
  79. package/dist/collection/components/common/zonos-notification/zonos-notification.js +129 -125
  80. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.css +5 -1
  81. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.js +168 -168
  82. package/dist/collection/components/common/zonos-spinner/zonos-spinner.css +5 -1
  83. package/dist/collection/components/common/zonos-spinner/zonos-spinner.js +71 -71
  84. package/dist/collection/components/common/zonos-text/zonos-text.css +5 -1
  85. package/dist/collection/components/common/zonos-text/zonos-text.js +193 -191
  86. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.css +5 -1
  87. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +70 -67
  88. package/dist/collection/components/component-template/zonos-component/zonos-component.css +5 -1
  89. package/dist/collection/components/component-template/zonos-component/zonos-component.js +81 -81
  90. package/dist/collection/components/hello/zonos-hello/zonos-hello.css +5 -2
  91. package/dist/collection/components/hello/zonos-hello/zonos-hello.js +450 -446
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.css +5 -1
  93. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +70 -70
  94. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.css +5 -1
  95. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +272 -272
  96. package/dist/collection/components/main/zonos-controller.css +5 -1
  97. package/dist/collection/components/main/zonos-controller.js +403 -320
  98. package/dist/collection/components/store/checkout/cart.js +162 -162
  99. package/dist/collection/components/store/checkout/stripe.js +265 -264
  100. package/dist/collection/components/store/hello/localization.js +112 -112
  101. package/dist/collection/components/store/translationStore/strings.arabic.js +147 -147
  102. package/dist/collection/components/store/translationStore/strings.base.js +147 -147
  103. package/dist/collection/components/store/translationStore/strings.chinese.js +147 -147
  104. package/dist/collection/components/store/translationStore/strings.danish.js +147 -147
  105. package/dist/collection/components/store/translationStore/strings.dutch.js +147 -147
  106. package/dist/collection/components/store/translationStore/strings.french.js +147 -147
  107. package/dist/collection/components/store/translationStore/strings.german.js +147 -147
  108. package/dist/collection/components/store/translationStore/strings.hebrew.js +147 -147
  109. package/dist/collection/components/store/translationStore/strings.indonesian.js +147 -147
  110. package/dist/collection/components/store/translationStore/strings.italian.js +147 -147
  111. package/dist/collection/components/store/translationStore/strings.japanese.js +147 -147
  112. package/dist/collection/components/store/translationStore/strings.korean.js +147 -147
  113. package/dist/collection/components/store/translationStore/strings.norwegian.js +147 -147
  114. package/dist/collection/components/store/translationStore/strings.polish.js +147 -147
  115. package/dist/collection/components/store/translationStore/strings.portuguese.js +147 -147
  116. package/dist/collection/components/store/translationStore/strings.russian.js +147 -147
  117. package/dist/collection/components/store/translationStore/strings.spanish.js +147 -147
  118. package/dist/collection/components/store/translationStore/strings.swedish.js +147 -147
  119. package/dist/collection/components/store/translationStore/strings.turkish.js +147 -147
  120. package/dist/collection/components/store/translationStore/strings.vietnamese.js +147 -147
  121. package/dist/collection/components/store/translationStore.js +65 -65
  122. package/dist/collection/components/store/zonosStore.js +98 -94
  123. package/dist/collection/components/stripe/zonos-address/zonos-address.css +5 -1
  124. package/dist/collection/components/stripe/zonos-address/zonos-address.js +142 -142
  125. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.css +5 -1
  126. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.js +76 -76
  127. package/dist/collection/components/stripe/zonos-payment/zonos-payment.css +5 -1
  128. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +81 -81
  129. package/dist/collection/components/utils/addDays.js +5 -5
  130. package/dist/collection/components/utils/api/calculateLandedCost.js +19 -11
  131. package/dist/collection/components/utils/api/checkItemRestrictions.js +13 -13
  132. package/dist/collection/components/utils/api/getCountries.js +11 -11
  133. package/dist/collection/components/utils/api/getCountryLandedCost.js +11 -11
  134. package/dist/collection/components/utils/api/getExchangeRate.js +17 -17
  135. package/dist/collection/components/utils/api/getLocaleMessages.js +9 -9
  136. package/dist/collection/components/utils/api/getLocalization.js +24 -19
  137. package/dist/collection/components/utils/api/getShippingZones.js +9 -9
  138. package/dist/collection/components/utils/api/getZonosSettings.js +11 -0
  139. package/dist/collection/components/utils/api/prepCalculateLandedCost.js +26 -26
  140. package/dist/collection/components/utils/api/triggerBuildLandedCost.js +22 -0
  141. package/dist/collection/components/utils/checkout/initCheckout.js +16 -16
  142. package/dist/collection/components/utils/checkout/isCheckoutMobile.js +1 -1
  143. package/dist/collection/components/utils/darkenColor.js +4 -4
  144. package/dist/collection/components/utils/formatCurrency.js +8 -8
  145. package/dist/collection/components/utils/formatDate.js +2 -2
  146. package/dist/collection/components/utils/getBorderRadius.js +5 -5
  147. package/dist/collection/components/utils/getButtonTheme.js +8 -8
  148. package/dist/collection/components/utils/getDaysDifference.js +4 -4
  149. package/dist/collection/components/utils/handleFetch.js +107 -77
  150. package/dist/collection/components/utils/hello/currencyConversion/currencyConvert.js +9 -9
  151. package/dist/collection/components/utils/hello/currencyConversion/currencyConvertAndFormat.js +3 -3
  152. package/dist/collection/components/utils/hello/currencyConversion/currencyDisplay.js +10 -10
  153. package/dist/collection/components/utils/hello/currencyConversion/currencyFormat.js +29 -29
  154. package/dist/collection/components/utils/hello/currencyConversion/defaultCurrencyConverter.js +35 -35
  155. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyCode.js +6 -6
  156. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyElements.js +13 -13
  157. package/dist/collection/components/utils/hello/currencyConversion/getInitialElementAmount.js +12 -12
  158. package/dist/collection/components/utils/hello/currencyConversion/getLanguageCode.js +6 -6
  159. package/dist/collection/components/utils/hello/detectItemRestrictions.js +23 -23
  160. package/dist/collection/components/utils/hello/getCurrentHelloLocalePage.js +17 -17
  161. package/dist/collection/components/utils/hello/getHasMoreSpaceAbove.js +5 -5
  162. package/dist/collection/components/utils/hello/getHasMoreSpaceOnRight.js +5 -5
  163. package/dist/collection/components/utils/hello/getProductsOnPage.js +42 -42
  164. package/dist/collection/components/utils/hello/getZCountryUrlParam.js +5 -0
  165. package/dist/collection/components/utils/hello/initHello.js +15 -15
  166. package/dist/collection/components/utils/hello/setZCountryUrlParam.js +9 -0
  167. package/dist/collection/components/utils/isColorVariable.js +10 -10
  168. package/dist/collection/components/utils/isDarkColor.js +1 -1
  169. package/dist/collection/components/utils/isValidSelector.js +8 -8
  170. package/dist/collection/components/utils/jsonParse.js +10 -10
  171. package/dist/collection/components/utils/lightenColor.js +4 -4
  172. package/dist/collection/components/utils/logging/log.js +42 -22
  173. package/dist/collection/components/utils/logging/logError.js +2 -2
  174. package/dist/collection/components/utils/mergeConfig.js +3 -3
  175. package/dist/collection/components/utils/submitGtag.js +9 -9
  176. package/dist/collection/environment.js +139 -116
  177. package/dist/collection/scripts/extractZonosQaUrl.js +26 -0
  178. package/dist/collection/scripts/loadStripe.js +7 -7
  179. package/dist/collection/scripts/stripe.js +80 -80
  180. package/dist/collection/scripts/zonos.js +331 -253
  181. package/dist/collection/styles/stripe/addressRuleStyle.js +14 -14
  182. package/dist/collection/styles/stripe/defaultVariable.js +14 -14
  183. package/dist/collection/types/generated/graphql.customer.types.js +1513 -1424
  184. package/dist/collection/types/generated/graphql.frontend.types.js +452 -378
  185. package/dist/collection/types/stripe/Apperance.js +56 -56
  186. package/dist/collection/types/styles/Color.js +18 -18
  187. package/dist/collection/types/styles/Text.js +97 -97
  188. package/dist/collection/utils/format.js +1 -1
  189. package/dist/collection/utils/generateVercelDeployUrl.js +17 -17
  190. package/dist/components/cart.js +529 -501
  191. package/dist/components/formatCurrency.js +8 -8
  192. package/dist/components/getBorderRadius.js +5 -5
  193. package/dist/components/isColorVariable.js +10 -10
  194. package/dist/components/isDarkColor.js +1 -1
  195. package/dist/components/localization.js +3486 -3426
  196. package/dist/components/submitGtag.js +9 -9
  197. package/dist/components/zonos-address.d.ts +2 -2
  198. package/dist/components/zonos-address2.js +90 -90
  199. package/dist/components/zonos-badge.d.ts +2 -2
  200. package/dist/components/zonos-badge2.js +52 -43
  201. package/dist/components/zonos-banner.d.ts +2 -2
  202. package/dist/components/zonos-banner2.js +88 -76
  203. package/dist/components/zonos-button.d.ts +2 -2
  204. package/dist/components/zonos-button2.js +120 -119
  205. package/dist/components/zonos-card.d.ts +2 -2
  206. package/dist/components/zonos-card2.js +48 -39
  207. package/dist/components/zonos-cart-items.d.ts +2 -2
  208. package/dist/components/zonos-cart-items2.js +43 -43
  209. package/dist/components/zonos-cart-subtotal.d.ts +2 -2
  210. package/dist/components/zonos-cart-subtotal2.js +65 -65
  211. package/dist/components/zonos-checkout-finish.d.ts +2 -2
  212. package/dist/components/zonos-checkout-finish2.js +146 -103
  213. package/dist/components/zonos-checkout-payment.d.ts +2 -2
  214. package/dist/components/zonos-checkout-payment2.js +82 -82
  215. package/dist/components/zonos-checkout.d.ts +2 -2
  216. package/dist/components/zonos-checkout.js +500 -498
  217. package/dist/components/zonos-collapse.d.ts +2 -2
  218. package/dist/components/zonos-collapse2.js +48 -46
  219. package/dist/components/zonos-component.d.ts +2 -2
  220. package/dist/components/zonos-component.js +32 -32
  221. package/dist/components/zonos-controller.d.ts +2 -2
  222. package/dist/components/zonos-controller.js +260 -220
  223. package/dist/components/zonos-country-flag.d.ts +2 -2
  224. package/dist/components/zonos-country-flag2.js +41 -36
  225. package/dist/components/zonos-country-select.d.ts +2 -2
  226. package/dist/components/zonos-country-select2.js +82 -79
  227. package/dist/components/zonos-custom-message.d.ts +2 -2
  228. package/dist/components/zonos-custom-message2.js +44 -41
  229. package/dist/components/zonos-customer-info.d.ts +2 -2
  230. package/dist/components/zonos-customer-info2.js +82 -82
  231. package/dist/components/zonos-dialog.d.ts +2 -2
  232. package/dist/components/zonos-dialog2.js +105 -103
  233. package/dist/components/zonos-hello-dialog-footer.d.ts +2 -2
  234. package/dist/components/zonos-hello-dialog-footer2.js +46 -46
  235. package/dist/components/zonos-hello-dialog.d.ts +2 -2
  236. package/dist/components/zonos-hello-dialog2.js +182 -182
  237. package/dist/components/zonos-hello.d.ts +2 -2
  238. package/dist/components/zonos-hello.js +437 -437
  239. package/dist/components/zonos-icon.d.ts +2 -2
  240. package/dist/components/zonos-icon2.js +40 -38
  241. package/dist/components/zonos-link-authentication.d.ts +2 -2
  242. package/dist/components/zonos-link-authentication2.js +60 -60
  243. package/dist/components/zonos-logo.d.ts +2 -2
  244. package/dist/components/zonos-logo2.js +37 -35
  245. package/dist/components/zonos-notification.d.ts +2 -2
  246. package/dist/components/zonos-notification2.js +82 -79
  247. package/dist/components/zonos-payment.d.ts +2 -2
  248. package/dist/components/zonos-payment2.js +64 -64
  249. package/dist/components/zonos-review.d.ts +2 -2
  250. package/dist/components/zonos-review2.js +72 -72
  251. package/dist/components/zonos-shipping-rich-radio.d.ts +2 -2
  252. package/dist/components/zonos-shipping-rich-radio2.js +62 -62
  253. package/dist/components/zonos-shipping.d.ts +2 -2
  254. package/dist/components/zonos-shipping2.js +114 -114
  255. package/dist/components/zonos-spinner.d.ts +2 -2
  256. package/dist/components/zonos-spinner2.js +31 -31
  257. package/dist/components/zonos-text.d.ts +2 -2
  258. package/dist/components/zonos-text2.js +166 -164
  259. package/dist/components/zonos-v-stack.d.ts +2 -2
  260. package/dist/components/zonos-v-stack2.js +29 -26
  261. package/dist/components/zonosStore.js +101 -97
  262. package/dist/esm/cart-b439be00.js +626 -0
  263. package/dist/esm/getBorderRadius-178a0a05.js +16 -0
  264. package/dist/esm/getHasMoreSpaceOnRight-70eb913a.js +8 -0
  265. package/dist/esm/{index-d1aa9293.js → index-36ff6342.js} +154 -42
  266. package/dist/esm/index.js +6 -6
  267. package/dist/esm/isColorVariable-91c33804.js +14 -0
  268. package/dist/esm/{isDarkColor-6fbb9b14.js → isDarkColor-416d6047.js} +2 -2
  269. package/dist/esm/loader.js +3 -3
  270. package/dist/esm/localization-a51ccbc2.js +3652 -0
  271. package/dist/esm/submitGtag-521826a2.js +24 -0
  272. package/dist/esm/zonos-address_2.entry.js +108 -108
  273. package/dist/esm/zonos-badge.entry.js +25 -22
  274. package/dist/esm/zonos-banner.entry.js +65 -53
  275. package/dist/esm/zonos-button_2.entry.js +100 -99
  276. package/dist/esm/zonos-card_2.entry.js +32 -27
  277. package/dist/esm/zonos-cart-items_10.entry.js +464 -419
  278. package/dist/esm/zonos-checkout.entry.js +358 -356
  279. package/dist/esm/zonos-component.entry.js +15 -15
  280. package/dist/esm/zonos-controller.entry.js +232 -194
  281. package/dist/esm/zonos-country-flag_4.entry.js +85 -77
  282. package/dist/esm/zonos-elements.js +4 -4
  283. package/dist/esm/zonos-hello-dialog.entry.js +101 -101
  284. package/dist/esm/zonos-hello.entry.js +349 -349
  285. package/dist/esm/zonos-icon.entry.js +22 -20
  286. package/dist/esm/zonos-notification.entry.js +60 -57
  287. package/dist/esm/zonos-payment.entry.js +45 -45
  288. package/dist/esm/zonos-shipping-rich-radio.entry.js +40 -40
  289. package/dist/esm/zonos-text.entry.js +145 -143
  290. package/dist/esm/{zonosStore-05a62104.js → zonosStore-61e74f58.js} +102 -98
  291. package/dist/esm-es5/cart-b439be00.js +1 -0
  292. package/dist/esm-es5/getBorderRadius-178a0a05.js +1 -0
  293. package/dist/esm-es5/getHasMoreSpaceOnRight-70eb913a.js +1 -0
  294. package/dist/esm-es5/index-36ff6342.js +2 -0
  295. package/dist/esm-es5/index.js +1 -1
  296. package/dist/esm-es5/{isDarkColor-6fbb9b14.js → isDarkColor-416d6047.js} +1 -1
  297. package/dist/esm-es5/loader.js +1 -1
  298. package/dist/esm-es5/localization-a51ccbc2.js +1 -0
  299. package/dist/esm-es5/{submitGtag-a901ece5.js → submitGtag-521826a2.js} +1 -1
  300. package/dist/esm-es5/zonos-address_2.entry.js +1 -1
  301. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  302. package/dist/esm-es5/zonos-banner.entry.js +1 -1
  303. package/dist/esm-es5/zonos-button_2.entry.js +1 -1
  304. package/dist/esm-es5/zonos-card_2.entry.js +1 -1
  305. package/dist/esm-es5/zonos-cart-items_10.entry.js +1 -1
  306. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  307. package/dist/esm-es5/zonos-component.entry.js +1 -1
  308. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  309. package/dist/esm-es5/zonos-country-flag_4.entry.js +1 -1
  310. package/dist/esm-es5/zonos-elements.js +1 -1
  311. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  312. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  313. package/dist/esm-es5/zonos-icon.entry.js +1 -1
  314. package/dist/esm-es5/zonos-notification.entry.js +1 -1
  315. package/dist/esm-es5/zonos-payment.entry.js +1 -1
  316. package/dist/esm-es5/zonos-shipping-rich-radio.entry.js +1 -1
  317. package/dist/esm-es5/zonos-text.entry.js +1 -1
  318. package/dist/esm-es5/zonosStore-61e74f58.js +1 -0
  319. package/dist/scripts/extractZonosQaUrl.js +30 -0
  320. package/dist/scripts/loadZonos.js +172 -48
  321. package/dist/scripts/zonos.js +172 -48
  322. package/dist/types/__tests__/build-utils/urlCheckOne.d.ts +6 -0
  323. package/dist/types/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.d.ts +2 -2
  324. package/dist/types/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.d.ts +1 -1
  325. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.d.ts +33 -29
  326. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.d.ts +31 -31
  327. package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +77 -77
  328. package/dist/types/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.d.ts +31 -31
  329. package/dist/types/components/checkout/zonos-checkout/zonos-review/zonos-review.d.ts +14 -14
  330. package/dist/types/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.d.ts +29 -29
  331. package/dist/types/components/common/zonos-badge/zonos-badge.d.ts +35 -35
  332. package/dist/types/components/common/zonos-banner/zonos-banner.d.ts +21 -21
  333. package/dist/types/components/common/zonos-button/zonos-button.d.ts +92 -92
  334. package/dist/types/components/common/zonos-card/zonos-card.d.ts +29 -29
  335. package/dist/types/components/common/zonos-collapse/zonos-collapse.d.ts +14 -14
  336. package/dist/types/components/common/zonos-country-flag/zonos-country-flag.d.ts +16 -16
  337. package/dist/types/components/common/zonos-country-select/zonos-country-select.d.ts +9 -9
  338. package/dist/types/components/common/zonos-custom-message/zonos-custom-message.d.ts +9 -9
  339. package/dist/types/components/common/zonos-dialog/zonos-dialog.d.ts +75 -75
  340. package/dist/types/components/common/zonos-icon/zonos-icon.d.ts +27 -27
  341. package/dist/types/components/common/zonos-logo/zonos-logo.d.ts +13 -13
  342. package/dist/types/components/common/zonos-notification/zonos-notification.d.ts +28 -28
  343. package/dist/types/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.d.ts +35 -35
  344. package/dist/types/components/common/zonos-spinner/zonos-spinner.d.ts +11 -11
  345. package/dist/types/components/common/zonos-text/zonos-text.d.ts +30 -30
  346. package/dist/types/components/common/zonos-v-stack/zonos-v-stack.d.ts +10 -10
  347. package/dist/types/components/component-template/zonos-component/zonos-component.d.ts +14 -14
  348. package/dist/types/components/hello/zonos-hello/zonos-hello.d.ts +68 -68
  349. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.d.ts +10 -10
  350. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog.d.ts +41 -41
  351. package/dist/types/components/main/zonos-controller.d.ts +47 -38
  352. package/dist/types/components/store/checkout/cart.d.ts +64 -64
  353. package/dist/types/components/store/checkout/stripe.d.ts +44 -43
  354. package/dist/types/components/store/hello/localization.d.ts +15 -15
  355. package/dist/types/components/store/translationStore/strings.arabic.d.ts +147 -147
  356. package/dist/types/components/store/translationStore/strings.base.d.ts +147 -147
  357. package/dist/types/components/store/translationStore/strings.chinese.d.ts +147 -147
  358. package/dist/types/components/store/translationStore/strings.danish.d.ts +147 -147
  359. package/dist/types/components/store/translationStore/strings.dutch.d.ts +147 -147
  360. package/dist/types/components/store/translationStore/strings.french.d.ts +147 -147
  361. package/dist/types/components/store/translationStore/strings.german.d.ts +147 -147
  362. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +147 -147
  363. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +147 -147
  364. package/dist/types/components/store/translationStore/strings.italian.d.ts +147 -147
  365. package/dist/types/components/store/translationStore/strings.japanese.d.ts +147 -147
  366. package/dist/types/components/store/translationStore/strings.korean.d.ts +147 -147
  367. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +147 -147
  368. package/dist/types/components/store/translationStore/strings.polish.d.ts +147 -147
  369. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +147 -147
  370. package/dist/types/components/store/translationStore/strings.russian.d.ts +147 -147
  371. package/dist/types/components/store/translationStore/strings.spanish.d.ts +147 -147
  372. package/dist/types/components/store/translationStore/strings.swedish.d.ts +147 -147
  373. package/dist/types/components/store/translationStore/strings.turkish.d.ts +147 -147
  374. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +147 -147
  375. package/dist/types/components/store/translationStore.d.ts +2 -2
  376. package/dist/types/components/store/zonosStore.d.ts +23 -22
  377. package/dist/types/components/stripe/zonos-address/zonos-address.d.ts +17 -17
  378. package/dist/types/components/stripe/zonos-link-authentication/zonos-link-authentication.d.ts +9 -9
  379. package/dist/types/components/stripe/zonos-payment/zonos-payment.d.ts +10 -10
  380. package/dist/types/components/utils/addDays.d.ts +6 -6
  381. package/dist/types/components/utils/api/checkItemRestrictions.d.ts +14 -14
  382. package/dist/types/components/utils/api/getCountryLandedCost.d.ts +6 -6
  383. package/dist/types/components/utils/api/getExchangeRate.d.ts +17 -17
  384. package/dist/types/components/utils/api/getLocaleMessages.d.ts +15 -15
  385. package/dist/types/components/utils/api/getLocalization.d.ts +2 -2
  386. package/dist/types/components/utils/api/getZonosSettings.d.ts +8 -0
  387. package/dist/types/components/utils/api/triggerBuildLandedCost.d.ts +5 -0
  388. package/dist/types/components/utils/changeDeepProperty.d.ts +4 -4
  389. package/dist/types/components/utils/changeDeepPropertyAtIndex.d.ts +5 -5
  390. package/dist/types/components/utils/darkenColor.d.ts +2 -2
  391. package/dist/types/components/utils/formatCurrency.d.ts +3 -3
  392. package/dist/types/components/utils/formatDate.d.ts +6 -6
  393. package/dist/types/components/utils/handleFetch.d.ts +7 -7
  394. package/dist/types/components/utils/hello/detectItemRestrictions.d.ts +10 -10
  395. package/dist/types/components/utils/hello/getZCountryUrlParam.d.ts +2 -0
  396. package/dist/types/components/utils/hello/setZCountryUrlParam.d.ts +2 -0
  397. package/dist/types/components/utils/lightenColor.d.ts +2 -2
  398. package/dist/types/components/utils/mergeConfig.d.ts +1 -1
  399. package/dist/types/components/utils/submitGtag.d.ts +3 -3
  400. package/dist/types/components.d.ts +96 -0
  401. package/dist/types/environment.d.ts +39 -34
  402. package/dist/types/scripts/extractZonosQaUrl.d.ts +11 -0
  403. package/dist/types/scripts/stripe.d.ts +2 -2
  404. package/dist/types/scripts/zonos.d.ts +51 -40
  405. package/dist/types/stencil-public-runtime.d.ts +29 -0
  406. package/dist/types/styles/stripe/addressRuleStyle.d.ts +1 -1
  407. package/dist/types/styles/stripe/defaultVariable.d.ts +2 -2
  408. package/dist/types/types/ICountryJson.d.ts +20 -20
  409. package/dist/types/types/JsonError.d.ts +3 -3
  410. package/dist/types/types/Translation.d.ts +1 -1
  411. package/dist/types/types/checkout/CheckoutConfig.d.ts +55 -53
  412. package/dist/types/types/checkout/api/CalculateLandedCostRequest.d.ts +16 -16
  413. package/dist/types/types/generated/graphql.customer.types.d.ts +2217 -1970
  414. package/dist/types/types/generated/graphql.customer.types.ts +310 -7
  415. package/dist/types/types/generated/graphql.frontend.types.d.ts +649 -450
  416. package/dist/types/types/generated/graphql.frontend.types.ts +358 -11
  417. package/dist/types/types/global.d.ts +12 -0
  418. package/dist/types/types/hello/HelloConfig.d.ts +20 -20
  419. package/dist/types/types/hello/Product.d.ts +3 -3
  420. package/dist/types/types/hello/RestrictedItem.d.ts +1 -1
  421. package/dist/types/types/online-store/OnlineStoreConfig.d.ts +1 -1
  422. package/dist/types/types/stripe/Apperance.d.ts +3 -3
  423. package/dist/types/types/styles/Text.d.ts +90 -90
  424. package/dist/types/types/utils/deep/IDeepKeyof.d.ts +1 -1
  425. package/dist/types/types/utils/deep/IDeepKeyofAtIndex.d.ts +2 -2
  426. package/dist/types/utils/generateVercelDeployUrl.d.ts +2 -2
  427. package/dist/zonos-elements/assets/RemoveIcon.svg +1 -1
  428. package/dist/zonos-elements/index.esm.js +1 -1
  429. package/dist/zonos-elements/p-06fb9d1f.system.entry.js +1 -0
  430. package/dist/zonos-elements/{p-08695f4e.js → p-089ba905.js} +1 -1
  431. package/dist/zonos-elements/{p-f7875c40.js → p-1685c8df.js} +1 -1
  432. package/dist/zonos-elements/p-18904b7c.system.js +2 -0
  433. package/dist/zonos-elements/p-1d4a970b.entry.js +1 -0
  434. package/dist/zonos-elements/p-23e7c655.system.js +1 -1
  435. package/dist/zonos-elements/p-24eed2a8.system.js +1 -0
  436. package/dist/zonos-elements/p-24fbe845.system.js +1 -0
  437. package/dist/zonos-elements/p-2801d868.entry.js +1 -0
  438. package/dist/zonos-elements/p-2a307c55.system.entry.js +1 -0
  439. package/dist/zonos-elements/p-2f43da39.system.entry.js +1 -0
  440. package/dist/zonos-elements/{p-770c959e.js → p-3c6988d7.js} +1 -1
  441. package/dist/zonos-elements/p-3cea383b.system.entry.js +1 -0
  442. package/dist/zonos-elements/p-47390db7.system.entry.js +1 -0
  443. package/dist/zonos-elements/p-4846796a.js +1 -0
  444. package/dist/zonos-elements/p-494c77a7.entry.js +1 -0
  445. package/dist/zonos-elements/p-49f09b91.entry.js +1 -0
  446. package/dist/zonos-elements/p-4a15c5c7.system.entry.js +1 -0
  447. package/dist/zonos-elements/p-4bee0bff.system.entry.js +1 -0
  448. package/dist/zonos-elements/p-4d93275c.entry.js +1 -0
  449. package/dist/zonos-elements/p-4ed71bd7.entry.js +1 -0
  450. package/dist/zonos-elements/{p-bf070bf6.js → p-55f49f1e.js} +1 -1
  451. package/dist/zonos-elements/p-560aa686.system.entry.js +1 -0
  452. package/dist/zonos-elements/p-639396bb.entry.js +1 -0
  453. package/dist/zonos-elements/p-67154df2.system.entry.js +1 -0
  454. package/dist/zonos-elements/p-67aec665.entry.js +1 -0
  455. package/dist/zonos-elements/p-684ed483.entry.js +1 -0
  456. package/dist/zonos-elements/p-89c210d6.entry.js +1 -0
  457. package/dist/zonos-elements/p-8c48b75e.system.js +1 -0
  458. package/dist/zonos-elements/p-8c5595d9.system.entry.js +1 -0
  459. package/dist/zonos-elements/p-938803f4.entry.js +1 -0
  460. package/dist/zonos-elements/p-956efa27.js +2 -0
  461. package/dist/zonos-elements/{p-3f3fbcea.entry.js → p-a0e36ed3.entry.js} +1 -1
  462. package/dist/zonos-elements/p-a376a37f.entry.js +1 -0
  463. package/dist/zonos-elements/p-a504f64f.system.js +1 -0
  464. package/dist/zonos-elements/p-afe26069.entry.js +1 -0
  465. package/dist/zonos-elements/p-b4601210.system.entry.js +1 -0
  466. package/dist/zonos-elements/{p-164fae93.system.js → p-b51de536.system.js} +1 -1
  467. package/dist/zonos-elements/p-b6148206.entry.js +1 -0
  468. package/dist/zonos-elements/p-b85be1ab.system.js +1 -0
  469. package/dist/zonos-elements/p-bc7bf53e.system.js +1 -0
  470. package/dist/zonos-elements/p-c9348bb0.system.entry.js +1 -0
  471. package/dist/zonos-elements/p-d2217f09.system.js +1 -0
  472. package/dist/zonos-elements/p-d856a200.system.entry.js +1 -0
  473. package/dist/zonos-elements/{p-85ab35c9.system.js → p-da060b1c.system.js} +1 -1
  474. package/dist/zonos-elements/p-e1f6ab97.entry.js +1 -0
  475. package/dist/zonos-elements/p-e5ae22a9.system.entry.js +1 -0
  476. package/dist/zonos-elements/p-e98be2d0.system.entry.js +1 -0
  477. package/dist/zonos-elements/p-e9b832c5.entry.js +1 -0
  478. package/dist/zonos-elements/p-edbea8df.system.js +1 -0
  479. package/dist/zonos-elements/p-f141519c.system.entry.js +1 -0
  480. package/dist/zonos-elements/p-f367f2fe.system.entry.js +1 -0
  481. package/dist/zonos-elements/p-ff95f098.js +1 -0
  482. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  483. package/dist/zonos-elements/zonos-elements.js +15 -15
  484. package/package.json +60 -58
  485. package/dist/cjs/cart-55512e32.js +0 -616
  486. package/dist/cjs/getBorderRadius-fdd605c6.js +0 -18
  487. package/dist/cjs/getHasMoreSpaceOnRight-2855491b.js +0 -10
  488. package/dist/cjs/isColorVariable-c1ed7303.js +0 -16
  489. package/dist/cjs/localization-d7fe7290.js +0 -3606
  490. package/dist/cjs/submitGtag-d65003f9.js +0 -27
  491. package/dist/collection/components/utils/api/getZonosSetting.js +0 -11
  492. package/dist/collection/components/utils/hello/setZonosCountryUrlParam.js +0 -9
  493. package/dist/esm/cart-17650017.js +0 -598
  494. package/dist/esm/getBorderRadius-45764ad7.js +0 -16
  495. package/dist/esm/getHasMoreSpaceOnRight-feba1ae2.js +0 -8
  496. package/dist/esm/isColorVariable-4cda28c9.js +0 -14
  497. package/dist/esm/localization-f3828793.js +0 -3592
  498. package/dist/esm/submitGtag-a901ece5.js +0 -24
  499. package/dist/esm-es5/cart-17650017.js +0 -1
  500. package/dist/esm-es5/getBorderRadius-45764ad7.js +0 -1
  501. package/dist/esm-es5/getHasMoreSpaceOnRight-feba1ae2.js +0 -1
  502. package/dist/esm-es5/index-d1aa9293.js +0 -2
  503. package/dist/esm-es5/zonosStore-05a62104.js +0 -1
  504. package/dist/types/components/utils/api/getZonosSetting.d.ts +0 -8
  505. package/dist/types/components/utils/hello/setZonosCountryUrlParam.d.ts +0 -2
  506. package/dist/zonos-elements/p-0190f7c4.entry.js +0 -1
  507. package/dist/zonos-elements/p-0e0b46a5.js +0 -1
  508. package/dist/zonos-elements/p-0ed3bb9f.system.entry.js +0 -1
  509. package/dist/zonos-elements/p-15b71f0b.system.entry.js +0 -1
  510. package/dist/zonos-elements/p-224125da.system.entry.js +0 -1
  511. package/dist/zonos-elements/p-23204b78.system.entry.js +0 -1
  512. package/dist/zonos-elements/p-28681677.entry.js +0 -1
  513. package/dist/zonos-elements/p-2b6325ab.entry.js +0 -1
  514. package/dist/zonos-elements/p-36425562.system.entry.js +0 -1
  515. package/dist/zonos-elements/p-3a56c240.entry.js +0 -1
  516. package/dist/zonos-elements/p-43a25dab.entry.js +0 -1
  517. package/dist/zonos-elements/p-4a5096d2.system.js +0 -1
  518. package/dist/zonos-elements/p-64fdb7b6.system.js +0 -1
  519. package/dist/zonos-elements/p-68d06767.system.js +0 -2
  520. package/dist/zonos-elements/p-6d82986c.system.entry.js +0 -1
  521. package/dist/zonos-elements/p-6dcd752e.system.js +0 -1
  522. package/dist/zonos-elements/p-6e7cd3f7.entry.js +0 -1
  523. package/dist/zonos-elements/p-7bacecf7.entry.js +0 -1
  524. package/dist/zonos-elements/p-824395fd.system.entry.js +0 -1
  525. package/dist/zonos-elements/p-8378d94e.js +0 -1
  526. package/dist/zonos-elements/p-84b00605.system.entry.js +0 -1
  527. package/dist/zonos-elements/p-8a75b765.system.entry.js +0 -1
  528. package/dist/zonos-elements/p-8aabbb9b.system.js +0 -1
  529. package/dist/zonos-elements/p-8b415737.system.entry.js +0 -1
  530. package/dist/zonos-elements/p-8c867835.system.js +0 -1
  531. package/dist/zonos-elements/p-9202375f.entry.js +0 -1
  532. package/dist/zonos-elements/p-9688bb12.entry.js +0 -1
  533. package/dist/zonos-elements/p-98a6e093.system.entry.js +0 -1
  534. package/dist/zonos-elements/p-a1fa50fb.entry.js +0 -1
  535. package/dist/zonos-elements/p-aca66238.system.entry.js +0 -1
  536. package/dist/zonos-elements/p-b618cf03.entry.js +0 -1
  537. package/dist/zonos-elements/p-b75ffe64.system.entry.js +0 -1
  538. package/dist/zonos-elements/p-bc2c42f5.entry.js +0 -1
  539. package/dist/zonos-elements/p-c8ad044e.system.entry.js +0 -1
  540. package/dist/zonos-elements/p-cc070c1c.entry.js +0 -1
  541. package/dist/zonos-elements/p-cc1c785c.system.entry.js +0 -1
  542. package/dist/zonos-elements/p-cd71e41e.entry.js +0 -1
  543. package/dist/zonos-elements/p-cf97cc68.system.entry.js +0 -1
  544. package/dist/zonos-elements/p-d6b8563b.system.entry.js +0 -1
  545. package/dist/zonos-elements/p-dc8d7000.js +0 -2
  546. package/dist/zonos-elements/p-e5908de2.entry.js +0 -1
  547. package/dist/zonos-elements/p-f6add79c.system.js +0 -1
  548. package/dist/zonos-elements/p-f8491335.system.js +0 -1
  549. package/dist/zonos-elements/p-f868ed42.entry.js +0 -1
  550. package/dist/zonos-elements/p-f95ac9ec.system.js +0 -1
  551. /package/dist/esm-es5/{isColorVariable-4cda28c9.js → isColorVariable-91c33804.js} +0 -0
  552. /package/dist/zonos-elements/{p-0636859b.js → p-4c414a92.js} +0 -0
  553. /package/dist/zonos-elements/{p-b6c499d4.js → p-5883217a.js} +0 -0
@@ -19,583 +19,586 @@ import MessageIcon from "./assets/MessageIcon.svg";
19
19
  // eslint-disable-next-line no-relative-import-paths/no-relative-import-paths
20
20
  import RemoveIcon from "./assets/RemoveIcon.svg";
21
21
  export class ZonosCheckout {
22
- constructor() {
23
- this.applyStripeTheme = async () => {
24
- var _a, _b, _c;
25
- const theme = ((_a = this.appearanceSettingsOverride) === null || _a === void 0 ? void 0 : _a.theme) || zonosStore.appearance.theme;
26
- await initStripeElements({
27
- overrideBorderRaidus: (_b = this.appearanceSettingsOverride) === null || _b === void 0 ? void 0 : _b.style,
28
- overridePrimaryColor: (_c = this.appearanceSettingsOverride) === null || _c === void 0 ? void 0 : _c.colorPrimary,
29
- // only override theme or theme from appearance if it's mobile
30
- overrideTheme: this.isMobile ? theme : undefined,
31
- });
32
- };
33
- this.isShippableCountry = (showLog = true) => {
34
- if (!localizationStore.localizationLoaded) {
35
- return false;
36
- }
37
- // if localization is loaded and the localization is not a shippable country, keep the original click event
38
- if (!localizationStore.isShippableCountry) {
39
- if (showLog) {
40
- log(`Checkout: not shippable country`);
41
- }
42
- return false;
43
- }
44
- return true;
45
- };
46
- this.getCurrentLocalePageEnum = () => {
47
- switch (cartStore.step) {
48
- case 'customer-info':
49
- return 'checkout_customer_info';
50
- case 'shipping':
51
- return 'checkout_shipping_info';
52
- case 'payment':
53
- return 'checkout_payment_info';
54
- default:
55
- return null;
56
- }
57
- };
58
- this.appearanceSettingsOverride = undefined;
59
- this.preview = false;
60
- this.mobile = false;
61
- this.defaultAddress = null;
62
- this.forceDialogOpen = false;
63
- this.open = this.forceDialogOpen;
64
- this.stripe = window.Zonos.stripe;
65
- this.submitLoading = false;
66
- this.paymentError = false;
67
- this.collapseReviewMobile = false;
68
- this.isAttachError = false;
69
- this.isMobile = false;
70
- this.zonosReviewRef = undefined;
71
- this.storybookPaymentStatusOverride = undefined;
72
- }
73
- /**
74
- * Init cart info handler event
75
- */
76
- async initCartInfoHandler(e) {
77
- const cartItems = e.detail;
78
- void cartStoreUpdateItems(cartItems);
79
- }
80
- /**
81
- * Close dialog action
82
- */
83
- async closeDialogHandler() {
84
- submitGtag('zonos-checkout-close');
85
- this.open = this.forceDialogOpen || false;
86
- if (!this.preview && cartStore.step === 'finish') {
87
- // reset cart store if it's not preview mode and only when checkout is in the finish step.
88
- cartStoreReset();
22
+ constructor() {
23
+ this.applyStripeTheme = async () => {
24
+ var _a, _b, _c;
25
+ const theme = ((_a = this.appearanceSettingsOverride) === null || _a === void 0 ? void 0 : _a.theme) || zonosStore.appearance.theme;
26
+ await initStripeElements({
27
+ overrideBorderRaidus: (_b = this.appearanceSettingsOverride) === null || _b === void 0 ? void 0 : _b.style,
28
+ overridePrimaryColor: (_c = this.appearanceSettingsOverride) === null || _c === void 0 ? void 0 : _c.colorPrimary,
29
+ // only override theme or theme from appearance if it's mobile
30
+ overrideTheme: this.isMobile ? theme : undefined,
31
+ });
32
+ };
33
+ this.isShippableCountry = (showLog = true) => {
34
+ if (!localizationStore.localizationLoaded) {
35
+ return false;
36
+ }
37
+ // if localization is loaded and the localization is not a shippable country, keep the original click event
38
+ if (!localizationStore.isShippableCountry) {
39
+ if (showLog) {
40
+ log(`Checkout: not shippable country`);
41
+ }
42
+ return false;
43
+ }
44
+ return true;
45
+ };
46
+ this.getCurrentLocalePageEnum = () => {
47
+ switch (cartStore.step) {
48
+ case 'customer-info':
49
+ return 'checkout_customer_info';
50
+ case 'shipping':
51
+ return 'checkout_shipping_info';
52
+ case 'payment':
53
+ return 'checkout_payment_info';
54
+ default:
55
+ return null;
56
+ }
57
+ };
58
+ this.appearanceSettingsOverride = undefined;
59
+ this.preview = false;
60
+ this.mobile = false;
61
+ this.defaultAddress = null;
62
+ this.forceDialogOpen = false;
63
+ this.open = this.forceDialogOpen;
64
+ this.stripe = window.Zonos.stripe;
65
+ this.submitLoading = false;
66
+ this.paymentError = false;
67
+ this.collapseReviewMobile = false;
68
+ this.isAttachError = false;
69
+ this.isMobile = false;
70
+ this.zonosReviewRef = undefined;
71
+ this.storybookPaymentStatusOverride = undefined;
72
+ }
73
+ /**
74
+ * Init cart info handler event
75
+ */
76
+ async initCartInfoHandler(e) {
77
+ const cartItems = e.detail;
78
+ void cartStoreUpdateItems(cartItems);
89
79
  }
90
- // reset step to customer info
91
- cartStore.step = 'customer-info';
92
- }
93
- async buildCartAndInit() {
94
- if (zonosStore.checkoutSettings.buildCartDetail) {
95
- log('build cart detail');
96
- const cartItems = await zonosStore.checkoutSettings.buildCartDetail();
97
- await cartStoreUpdateItems(cartItems);
80
+ /**
81
+ * Close dialog action
82
+ */
83
+ async closeDialogHandler() {
84
+ submitGtag('zonos-checkout-close');
85
+ this.open = this.forceDialogOpen || false;
86
+ if (!this.preview && cartStore.step === 'finish') {
87
+ // reset cart store if it's not preview mode and only when checkout is in the finish step.
88
+ cartStoreReset();
89
+ }
90
+ // reset step to customer info
91
+ cartStore.step = 'customer-info';
98
92
  }
99
- // if client secret doesn't exist, request a new one.
100
- if (!stripeStore.clientSecret) {
101
- const success = await stripeStoreInitCheckoutSession();
102
- log(`stripeStoreInitCheckoutSession: ${success}`);
103
- if (!success) {
104
- return false;
105
- }
93
+ async buildCartAndInit() {
94
+ if (zonosStore.checkoutSettings.buildCartDetail) {
95
+ log('build cart detail');
96
+ const cartItems = await zonosStore.checkoutSettings.buildCartDetail();
97
+ await cartStoreUpdateItems(cartItems);
98
+ }
99
+ // if client secret doesn't exist, request a new one.
100
+ if (!stripeStore.clientSecret) {
101
+ const success = await stripeStoreInitCheckoutSession();
102
+ log(`stripeStoreInitCheckoutSession: ${success}`);
103
+ if (!success) {
104
+ return false;
105
+ }
106
+ }
107
+ // apply theme to stripe elements
108
+ await this.applyStripeTheme();
109
+ return true;
106
110
  }
107
- // apply theme to stripe elements
108
- await this.applyStripeTheme();
109
- return true;
110
- }
111
- attachCheckout() {
112
- const buttonAnchorSelector = zonosStore.checkoutSettings.placeOrderButtonSelector;
113
- if (!buttonAnchorSelector) {
114
- // do nothing if button element is not found
115
- return;
111
+ attachCheckout() {
112
+ const buttonAnchorSelector = zonosStore.checkoutSettings.placeOrderButtonSelector;
113
+ if (!buttonAnchorSelector) {
114
+ // do nothing if button element is not found
115
+ return;
116
+ }
117
+ const buttonAnchorElements = document.querySelectorAll(buttonAnchorSelector);
118
+ // only attach event once, and looping through all of the button elements
119
+ buttonAnchorElements.forEach(button => {
120
+ const isEventAttached = button.getAttribute('data-zonos-checkout-attached');
121
+ if (isEventAttached) {
122
+ // do nothing if event is already attached
123
+ return;
124
+ }
125
+ button.addEventListener('click', async (e) => {
126
+ // do nothing if it's not shippable country
127
+ if (!this.isShippableCountry()) {
128
+ return;
129
+ }
130
+ e.preventDefault();
131
+ e.stopPropagation();
132
+ log('zonos checkout button clicked');
133
+ // start loading
134
+ stripeStore.isFetchingSession = true;
135
+ this.open = true;
136
+ try {
137
+ // buildCartDetail need to be catch since it may throw error
138
+ const result = await this.buildCartAndInit();
139
+ if (!result) {
140
+ throw new Error('Error building cart');
141
+ }
142
+ submitGtag('zonos-checkout-start');
143
+ }
144
+ catch (err) {
145
+ // stop loading
146
+ stripeStore.isFetchingSession = false;
147
+ cartStoreUpdateToErrorState({
148
+ messages: [
149
+ translate("There's been an error creating your checkout session. Please reload and try again or contact support if the error persists"),
150
+ ],
151
+ title: translate('Error creating Checkout'),
152
+ });
153
+ }
154
+ });
155
+ button.setAttribute('data-zonos-checkout-attached', 'true');
156
+ });
116
157
  }
117
- const buttonAnchorElements = document.querySelectorAll(buttonAnchorSelector);
118
- // only attach event once, and looping through all of the button elements
119
- buttonAnchorElements.forEach(button => {
120
- const isEventAttached = button.getAttribute('data-zonos-checkout-attached');
121
- if (isEventAttached) {
122
- // do nothing if event is already attached
123
- return;
124
- }
125
- button.addEventListener('click', async (e) => {
126
- // do nothing if it's not shippable country
127
- if (!this.isShippableCountry()) {
128
- return;
158
+ appearanceSettingsOverrideChanged() {
159
+ if (!this.appearanceSettingsOverride) {
160
+ return;
129
161
  }
130
- e.preventDefault();
131
- e.stopPropagation();
132
- log('zonos checkout button clicked');
133
- // start loading
134
- stripeStore.isFetchingSession = true;
135
- this.open = true;
162
+ // apply theme to stripe elements
163
+ void this.applyStripeTheme();
164
+ }
165
+ /**
166
+ * Setup all of the event listeners for the component on first load
167
+ */
168
+ async init() {
169
+ stripeStore.stripe = window.Zonos.stripe;
170
+ this.stripe = window.Zonos.stripe;
171
+ const hideInternationalOrderInterval = setInterval(() => {
172
+ const internationalSelector = window.Zonos.internationalHideSelector;
173
+ if (!internationalSelector) {
174
+ // cleanup right away if selector is not found
175
+ clearInterval(hideInternationalOrderInterval);
176
+ return;
177
+ }
178
+ // hide the selector if it's international
179
+ const isInternationalOrder = this.isShippableCountry(false);
180
+ const selector = document.querySelectorAll(internationalSelector);
181
+ if (!isInternationalOrder) {
182
+ // show the selector when it's domestic
183
+ selector === null || selector === void 0 ? void 0 : selector.forEach(el => {
184
+ const element = el;
185
+ const display = element.getAttribute('data-zonos-checkout-original-display') ||
186
+ getComputedStyle(element).display;
187
+ // fallback to initial (browser value) if "display" is not found
188
+ element.style.display = display || 'initial';
189
+ });
190
+ return;
191
+ }
192
+ selector === null || selector === void 0 ? void 0 : selector.forEach(el => {
193
+ const element = el;
194
+ const display = element.style.display;
195
+ // save the display state so we can restore it later
196
+ element.setAttribute('data-zonos-checkout-original-display', display);
197
+ element.style.display = 'none';
198
+ });
199
+ }, 100);
200
+ // only init checkout if visitor's country is in the shipping zones.
201
+ const interval = setInterval(() => {
202
+ stripeStore.stripe = window.Zonos.stripe;
203
+ this.stripe = window.Zonos.stripe;
204
+ if (!this.stripe) {
205
+ log('waiting for stripe to be loaded');
206
+ return;
207
+ }
208
+ if (this.storybookPaymentStatusOverride) {
209
+ clearInterval(interval);
210
+ return;
211
+ }
212
+ log('init checkout');
213
+ if (this.preview || this.forceDialogOpen) {
214
+ void this.buildCartAndInit();
215
+ }
216
+ else {
217
+ this.attachCheckout();
218
+ // keep checking for checkout selector every 50ms just in case the selector is not loaded in the DOM yet
219
+ setInterval(() => {
220
+ this.attachCheckout();
221
+ }, 50);
222
+ }
223
+ clearInterval(interval);
224
+ }, 50);
225
+ setTimeout(() => {
226
+ // if localization is not loaded after 10 seconds, stop the interval and don't init checkout
227
+ clearInterval(interval);
228
+ }, 10000);
229
+ }
230
+ /**
231
+ * For storybook to set to finish step, this is to trigger in the story for zonos-checkout-finish
232
+ */
233
+ async setToFinishStep(forcePaymentStatus) {
234
+ cartStore.step = 'finish';
235
+ this.storybookPaymentStatusOverride = forcePaymentStatus;
236
+ }
237
+ async handleCustomerInfoContinue() {
238
+ this.submitLoading = true;
239
+ // fetch landed cost data if we not fetching.
240
+ await stripeStorePrefetchLandedCost();
241
+ // keep checking landed cost data until it's ready to move to next screen
242
+ const interval = setInterval(() => {
243
+ if (cartStore.landedCostData || !stripeStore.isFetchingLandedCost) {
244
+ if (cartStore.landedCostData) {
245
+ // only go to next step if landed cost data is ready
246
+ cartStoreNextStep();
247
+ }
248
+ this.submitLoading = false;
249
+ clearInterval(interval);
250
+ }
251
+ }, 500);
252
+ }
253
+ async handleShippingContinue() {
254
+ this.submitLoading = true;
255
+ // show loading for the button for a bit
256
+ setTimeout(() => {
257
+ cartStoreNextStep();
258
+ this.submitLoading = false;
259
+ }, 500);
260
+ }
261
+ async handleCheckoutPaymentContinue() {
262
+ // reset error state
263
+ this.paymentError = false;
264
+ this.submitLoading = true;
136
265
  try {
137
- // buildCartDetail need to be catch since it may throw error
138
- const result = await this.buildCartAndInit();
139
- if (!result) {
140
- throw new Error('Error building cart');
141
- }
142
- submitGtag('zonos-checkout-start');
266
+ await stripeStoreConfirmPayment();
267
+ cartStoreNextStep();
143
268
  }
144
269
  catch (err) {
145
- // stop loading
146
- stripeStore.isFetchingSession = false;
147
- cartStoreUpdateToErrorState({
148
- messages: [
149
- translate("There's been an error creating your checkout session. Please reload and try again or contact support if the error persists"),
150
- ],
151
- title: translate('Error creating Checkout'),
152
- });
270
+ // eslint-disable-next-line no-console
271
+ console.error(err);
272
+ this.paymentError = true;
153
273
  }
154
- });
155
- button.setAttribute('data-zonos-checkout-attached', 'true');
156
- });
157
- }
158
- appearanceSettingsOverrideChanged() {
159
- if (!this.appearanceSettingsOverride) {
160
- return;
274
+ this.submitLoading = false;
161
275
  }
162
- // apply theme to stripe elements
163
- void this.applyStripeTheme();
164
- }
165
- /**
166
- * Setup all of the event listeners for the component on first load
167
- */
168
- async init() {
169
- stripeStore.stripe = window.Zonos.stripe;
170
- this.stripe = window.Zonos.stripe;
171
- const hideInternationalOrderInterval = setInterval(() => {
172
- const internationalSelector = window.Zonos.internationalHideSelector;
173
- if (!internationalSelector) {
174
- // cleanup right away if selector is not found
175
- clearInterval(hideInternationalOrderInterval);
176
- return;
177
- }
178
- // hide the selector if it's international
179
- const isInternationalOrder = this.isShippableCountry(false);
180
- const selector = document.querySelectorAll(internationalSelector);
181
- if (!isInternationalOrder) {
182
- // show the selector when it's domestic
183
- selector === null || selector === void 0 ? void 0 : selector.forEach(el => {
184
- const element = el;
185
- const display = element.getAttribute('data-zonos-checkout-original-display') ||
186
- getComputedStyle(element).display;
187
- // fallback to initial (browser value) if "display" is not found
188
- element.style.display = display || 'initial';
189
- });
190
- return;
191
- }
192
- selector === null || selector === void 0 ? void 0 : selector.forEach(el => {
193
- const element = el;
194
- const display = element.style.display;
195
- // save the display state so we can restore it later
196
- element.setAttribute('data-zonos-checkout-original-display', display);
197
- element.style.display = 'none';
198
- });
199
- }, 100);
200
- // only init checkout if visitor's country is in the shipping zones.
201
- const interval = setInterval(() => {
202
- stripeStore.stripe = window.Zonos.stripe;
203
- this.stripe = window.Zonos.stripe;
204
- if (!this.stripe) {
205
- log('waiting for stripe to be loaded');
206
- return;
207
- }
208
- if (this.storybookPaymentStatusOverride) {
209
- clearInterval(interval);
210
- return;
211
- }
212
- log('init checkout');
213
- if (this.preview || this.forceDialogOpen) {
214
- void this.buildCartAndInit();
215
- }
216
- else {
217
- this.attachCheckout();
218
- // keep checking for checkout selector every 50ms just in case the selector is not loaded in the DOM yet
219
- setInterval(() => {
220
- this.attachCheckout();
221
- }, 50);
222
- }
223
- clearInterval(interval);
224
- }, 50);
225
- setTimeout(() => {
226
- // if localization is not loaded after 10 seconds, stop the interval and don't init checkout
227
- clearInterval(interval);
228
- }, 10000);
229
- }
230
- /**
231
- * For storybook to set to finish step, this is to trigger in the story for zonos-checkout-finish
232
- */
233
- async setToFinishStep(forcePaymentStatus) {
234
- cartStore.step = 'finish';
235
- this.storybookPaymentStatusOverride = forcePaymentStatus;
236
- }
237
- async handleCustomerInfoContinue() {
238
- this.submitLoading = true;
239
- // fetch landed cost data if we not fetching.
240
- await stripeStorePrefetchLandedCost();
241
- // keep checking landed cost data until it's ready to move to next screen
242
- const interval = setInterval(() => {
243
- if (cartStore.landedCostData || !stripeStore.isFetchingLandedCost) {
244
- if (cartStore.landedCostData) {
245
- // only go to next step if landed cost data is ready
246
- cartStoreNextStep();
276
+ async handleFinishClick() {
277
+ // reset stripe store
278
+ stripeStoreReset();
279
+ if (this.preview) {
280
+ cartStore.step = 'customer-info';
281
+ await this.init();
282
+ return;
247
283
  }
248
- this.submitLoading = false;
249
- clearInterval(interval);
250
- }
251
- }, 500);
252
- }
253
- async handleShippingContinue() {
254
- this.submitLoading = true;
255
- // show loading for the button for a bit
256
- setTimeout(() => {
257
- cartStoreNextStep();
258
- this.submitLoading = false;
259
- }, 500);
260
- }
261
- async handleCheckoutPaymentContinue() {
262
- // reset error state
263
- this.paymentError = false;
264
- this.submitLoading = true;
265
- try {
266
- await stripeStoreConfirmPayment();
267
- cartStoreNextStep();
284
+ // reset cart store
285
+ cartStoreReset();
286
+ // reset url
287
+ const url = window.location.href;
288
+ // Remove query parameters
289
+ const cleanUrl = url.split('?')[0];
290
+ // Update the URL without query parameters
291
+ window.history.replaceState({}, document.title, cleanUrl);
292
+ this.open = false;
293
+ // Reload the page
294
+ window.location.reload();
295
+ }
296
+ async handleBackClick() {
297
+ // close the modal if back button is clicked on customer info step
298
+ if (cartStore.step === 'customer-info') {
299
+ await this.closeDialogHandler();
300
+ return;
301
+ }
302
+ cartStorePreviousStep();
268
303
  }
269
- catch (err) {
270
- // eslint-disable-next-line no-console
271
- console.error(err);
272
- this.paymentError = true;
304
+ handleWindowResize() {
305
+ this.isMobile = isCheckoutMobile(this.mobile);
306
+ // apply theme to stripe elements
307
+ void this.applyStripeTheme();
308
+ log(`mobile: ${this.isMobile}`);
273
309
  }
274
- this.submitLoading = false;
275
- }
276
- async handleFinishClick() {
277
- // reset stripe store
278
- stripeStoreReset();
279
- if (this.preview) {
280
- cartStore.step = 'customer-info';
281
- await this.init();
282
- return;
310
+ handleMobileChange() {
311
+ this.isMobile = isCheckoutMobile(this.mobile);
312
+ // apply theme to stripe elements
313
+ void this.applyStripeTheme();
314
+ log(`mobile: ${this.isMobile}`);
283
315
  }
284
- // reset cart store
285
- cartStoreReset();
286
- // reset url
287
- const url = window.location.href;
288
- // Remove query parameters
289
- const cleanUrl = url.split('?')[0];
290
- // Update the URL without query parameters
291
- window.history.replaceState({}, document.title, cleanUrl);
292
- this.open = false;
293
- }
294
- async handleBackClick() {
295
- // close the modal if back button is clicked on customer info step
296
- if (cartStore.step === 'customer-info') {
297
- await this.closeDialogHandler();
298
- return;
316
+ componentWillLoad() {
317
+ void this.init();
318
+ this.isMobile = isCheckoutMobile(this.mobile);
319
+ log(`mobile: ${this.isMobile}`);
299
320
  }
300
- cartStorePreviousStep();
301
- }
302
- handleWindowResize() {
303
- this.isMobile = isCheckoutMobile(this.mobile);
304
- // apply theme to stripe elements
305
- void this.applyStripeTheme();
306
- log(`mobile: ${this.isMobile}`);
307
- }
308
- handleMobileChange() {
309
- this.isMobile = isCheckoutMobile(this.mobile);
310
- // apply theme to stripe elements
311
- void this.applyStripeTheme();
312
- log(`mobile: ${this.isMobile}`);
313
- }
314
- componentWillLoad() {
315
- void this.init();
316
- this.isMobile = isCheckoutMobile(this.mobile);
317
- log(`mobile: ${this.isMobile}`);
318
- }
319
- // do clean up when component is unmounted
320
- disconnectedCallback() {
321
- // reset stripe store
322
- stripeStoreReset();
323
- // reset cart store
324
- cartStoreReset();
325
- }
326
- render() {
327
- var _a;
328
- const dialogLoading =
329
- // if it's last step, don't need to check stripe elements
330
- (cartStore.step !== 'finish' &&
331
- cartStore.step !== 'error' &&
332
- !stripeStore.stripeElements) ||
333
- stripeStore.isFetchingSession;
334
- const { colorPrimary, colorSecondary, logoUrl, style } = mergeConfig(zonosStore.appearance, this.appearanceSettingsOverride);
335
- const hasFooter = zonosStore.appearance.zonosAttribution === 'ENABLED';
336
- const rightSideTheme = zonosStore.appearance.theme;
337
- const themePrimaryColorBased = colorPrimary && isDarkColor(colorPrimary) ? 'DARK' : 'LIGHT';
338
- // use right side theme if it's mobile, otherwise use themePrimaryColorBased
339
- const leftSideTheme = this.isMobile
340
- ? rightSideTheme
341
- : themePrimaryColorBased;
342
- // only use submit button color if it's on desktop
343
- const submitButtonColor = !this.isMobile ? colorSecondary : undefined;
344
- const { customMessages } = localizationStore;
345
- const defaultMessage = ((_a = customMessages.find(x => x.pageName === 'checkout_default')) === null || _a === void 0 ? void 0 : _a.message) ||
346
- 'Know about duties and taxes before you buy. Shop with confidence!';
347
- const localePageEnum = this.getCurrentLocalePageEnum();
348
- const filteredMessages = customMessages.filter(x => x.pageName === localePageEnum);
349
- const renderLogo = () => (h("div", { class: "zonos--logo" }, logoUrl && (h("img", { alt: `${zonosStore.organizationName} logo`, src: logoUrl, width: 100 }))));
350
- const renderTopHeader = () => (h("zonos-v-stack", null, renderLogo(), filteredMessages.map(x => (h("zonos-custom-message", { icon: MessageIcon, message: x.message }))), h("div", null, h("zonos-button", { class: "zonos--back-button", icon: h("zonos-icon", { content: LeftArrow }), noBackground: true, noPaddingLeft: true, noPaddingRight: true, onClick: () => this.handleBackClick(), theme: leftSideTheme }, translate('Back')))));
351
- const renderFooter = () => hasFooter && (h("div", { class: "zonos--footer", "data-theme": rightSideTheme }, h("zonos-text", { type: "hintText" }, translate('Powered by')), h("zonos-logo", { theme: rightSideTheme, width: "100px" })));
352
- const renderContent = () => {
353
- var _a;
354
- const submitBtnType = this.isMobile ? 'primary' : undefined;
355
- const reviewElementSize = (_a = this.zonosReviewRef) === null || _a === void 0 ? void 0 : _a.scrollHeight;
356
- return (h("div", { class: 'zonos--content', style: {
357
- '--border-radius': getBorderRadius(style),
358
- } }, cartStore.step !== 'finish' && cartStore.step !== 'error' && (h(Fragment, null, h("div", { class: "zonos--left", "data-theme": leftSideTheme, style: {
359
- '--primary-color': !this.isMobile ? colorPrimary : '',
360
- } }, !this.isMobile && renderTopHeader(), cartStore.step === 'customer-info' && (h("zonos-customer-info", { continueLoading: this.submitLoading, defaultAddress: this.defaultAddress, onContinueClicked: () => this.handleCustomerInfoContinue(), submitBtnColor: submitButtonColor, submitBtnType: submitBtnType })), cartStore.step === 'shipping' && (h("zonos-shipping", { continueLoading: this.submitLoading, onContinueClicked: () => this.handleShippingContinue(), submitBtnColor: submitButtonColor, submitBtnType: submitBtnType })), cartStore.step === 'payment' && (h("zonos-checkout-payment", { continueLoading: this.submitLoading, onContinueClicked: () => this.handleCheckoutPaymentContinue(), paymentError: this.paymentError, submitBtnColor: submitButtonColor, submitBtnType: submitBtnType }))), h("div", { class: "zonos--right", "data-theme": rightSideTheme }, this.isMobile && renderTopHeader(), !this.isMobile && (h("zonos-button", { class: "zonos--close-button", icon: h("zonos-icon", { content: RemoveIcon }), noBackground: true, onClick: () => this.closeDialogHandler() })), h("div", { class: "flex--wrapper" }, h("div", { class: "zonos--wrapper" }, h("zonos-collapse", { collapseSize: reviewElementSize,
361
- // only collapse on mobile
362
- collapsed: this.collapseReviewMobile && this.isMobile }, h("zonos-review", { collapsed: this.collapseReviewMobile, mobile: this.isMobile, onClick: () => {
363
- // do nothing if it's not mobile
364
- if (!this.isMobile) {
365
- return;
366
- }
367
- this.collapseReviewMobile =
368
- !this.collapseReviewMobile;
369
- }, ref: el => (this.zonosReviewRef = el) }), h("zonos-cart-items", null))), h("zonos-v-stack", { spacing: 16 }, h("zonos-cart-subtotal", null), h("zonos-custom-message", { class: "zonos--checkout-default-message", icon: MessageIcon, message: defaultMessage }))), !this.isMobile && renderFooter()), this.isMobile && renderFooter())), (cartStore.step === 'finish' || cartStore.step === 'error') && (h("div", { class: "zonos--done", "data-theme": rightSideTheme }, h("div", { class: "zonos--header" }, renderLogo(), h("zonos-button", { class: "zonos--close-button", icon: h("zonos-icon", { content: RemoveIcon }), noBackground: true, onClick: () => this.handleFinishClick(), theme: rightSideTheme })), h("zonos-checkout-finish", { borderRadius: style, onCloseClick: () => this.handleFinishClick(), overrideNotification: cartStore.step === 'error' && !!cartStore.error
370
- ? Object.assign(Object.assign({}, cartStore.error), { type: 'error' }) : undefined, storybookForceStatus: this.storybookPaymentStatusOverride })))));
371
- };
372
- return (h(Host, { class: classes([
373
- 'zonos--checkout zonos--elements',
374
- hasFooter && 'has-footer',
375
- this.preview && 'preview',
376
- this.isMobile && 'mobile',
377
- ]) }, this.preview ? (renderContent()) : (h("zonos-dialog", { borderStyle: style, "data-theme": rightSideTheme, height: "980px", isLoading: dialogLoading, mobile: this.isMobile, noBodyPadding: true, noBorder: true, noClickOutside: true, noCloseButton: true, onCloseDialog: () => this.closeDialogHandler(), open: this.open, width: "1200px" }, renderContent()))));
378
- }
379
- static get is() { return "zonos-checkout"; }
380
- static get encapsulation() { return "scoped"; }
381
- static get originalStyleUrls() {
382
- return {
383
- "$": ["zonos-checkout.scss"]
384
- };
385
- }
386
- static get styleUrls() {
387
- return {
388
- "$": ["zonos-checkout.css"]
389
- };
390
- }
391
- static get assetsDirs() { return ["assets"]; }
392
- static get properties() {
393
- return {
394
- "appearanceSettingsOverride": {
395
- "type": "unknown",
396
- "mutable": false,
397
- "complexType": {
398
- "original": "Partial<AppearanceConfig>",
399
- "resolved": "undefined | { colorPrimary?: string | undefined; colorSecondary?: string | undefined; fontFamily?: string | undefined; logoUrl?: string | undefined; style?: ElementsUiStyle | undefined; theme?: ElementsUiTheme | undefined; zonosAttribution?: ZonosAttribution | null | undefined; }",
400
- "references": {
401
- "Partial": {
402
- "location": "global",
403
- "id": "global::Partial"
321
+ // do clean up when component is unmounted
322
+ disconnectedCallback() {
323
+ // reset stripe store
324
+ stripeStoreReset();
325
+ // reset cart store
326
+ cartStoreReset();
327
+ }
328
+ render() {
329
+ var _a;
330
+ const dialogLoading =
331
+ // if it's last step, don't need to check stripe elements
332
+ (cartStore.step !== 'finish' &&
333
+ cartStore.step !== 'error' &&
334
+ !stripeStore.stripeElements) ||
335
+ stripeStore.isFetchingSession;
336
+ const { colorPrimary, colorSecondary, logoUrl, style } = mergeConfig(zonosStore.appearance, this.appearanceSettingsOverride);
337
+ const hasFooter = zonosStore.appearance.zonosAttribution === 'ENABLED';
338
+ const rightSideTheme = zonosStore.appearance.theme;
339
+ const themePrimaryColorBased = colorPrimary && isDarkColor(colorPrimary) ? 'DARK' : 'LIGHT';
340
+ // use right side theme if it's mobile, otherwise use themePrimaryColorBased
341
+ const leftSideTheme = this.isMobile
342
+ ? rightSideTheme
343
+ : themePrimaryColorBased;
344
+ // only use submit button color if it's on desktop
345
+ const submitButtonColor = !this.isMobile ? colorSecondary : undefined;
346
+ const { customMessages } = localizationStore;
347
+ const defaultMessage = ((_a = customMessages.find(x => x.pageName === 'checkout_default')) === null || _a === void 0 ? void 0 : _a.message) ||
348
+ 'Know about duties and taxes before you buy. Shop with confidence!';
349
+ const localePageEnum = this.getCurrentLocalePageEnum();
350
+ const filteredMessages = customMessages.filter(x => x.pageName === localePageEnum);
351
+ const renderLogo = () => (h("div", { class: "zonos--logo" }, logoUrl && (h("img", { alt: `${zonosStore.organizationName} logo`, src: logoUrl, width: 100 }))));
352
+ const renderTopHeader = () => (h("zonos-v-stack", null, renderLogo(), filteredMessages.map(x => (h("zonos-custom-message", { icon: MessageIcon, message: x.message }))), h("div", null, h("zonos-button", { class: "zonos--back-button", icon: h("zonos-icon", { content: LeftArrow }), noBackground: true, noPaddingLeft: true, noPaddingRight: true, onClick: () => this.handleBackClick(), theme: leftSideTheme }, translate('Back')))));
353
+ const renderFooter = () => hasFooter && (h("div", { class: "zonos--footer", "data-theme": rightSideTheme }, h("zonos-text", { type: "hintText" }, translate('Powered by')), h("zonos-logo", { theme: rightSideTheme, width: "100px" })));
354
+ const renderContent = () => {
355
+ var _a;
356
+ const submitBtnType = this.isMobile ? 'primary' : undefined;
357
+ const reviewElementSize = (_a = this.zonosReviewRef) === null || _a === void 0 ? void 0 : _a.scrollHeight;
358
+ return (h("div", { class: 'zonos--content', style: {
359
+ '--border-radius': getBorderRadius(style),
360
+ } }, cartStore.step !== 'finish' && cartStore.step !== 'error' && (h(Fragment, null, h("div", { class: "zonos--left", "data-theme": leftSideTheme, style: {
361
+ '--primary-color': !this.isMobile ? colorPrimary : '',
362
+ } }, !this.isMobile && renderTopHeader(), cartStore.step === 'customer-info' && (h("zonos-customer-info", { continueLoading: this.submitLoading, defaultAddress: this.defaultAddress, onContinueClicked: () => this.handleCustomerInfoContinue(), submitBtnColor: submitButtonColor, submitBtnType: submitBtnType })), cartStore.step === 'shipping' && (h("zonos-shipping", { continueLoading: this.submitLoading, onContinueClicked: () => this.handleShippingContinue(), submitBtnColor: submitButtonColor, submitBtnType: submitBtnType })), cartStore.step === 'payment' && (h("zonos-checkout-payment", { continueLoading: this.submitLoading, onContinueClicked: () => this.handleCheckoutPaymentContinue(), paymentError: this.paymentError, submitBtnColor: submitButtonColor, submitBtnType: submitBtnType }))), h("div", { class: "zonos--right", "data-theme": rightSideTheme }, this.isMobile && renderTopHeader(), !this.isMobile && (h("zonos-button", { class: "zonos--close-button", icon: h("zonos-icon", { content: RemoveIcon }), noBackground: true, onClick: () => this.closeDialogHandler() })), h("div", { class: "flex--wrapper" }, h("div", { class: "zonos--wrapper" }, h("zonos-collapse", { collapseSize: reviewElementSize,
363
+ // only collapse on mobile
364
+ collapsed: this.collapseReviewMobile && this.isMobile }, h("zonos-review", { collapsed: this.collapseReviewMobile, mobile: this.isMobile, onClick: () => {
365
+ // do nothing if it's not mobile
366
+ if (!this.isMobile) {
367
+ return;
368
+ }
369
+ this.collapseReviewMobile =
370
+ !this.collapseReviewMobile;
371
+ }, ref: el => (this.zonosReviewRef = el) }), h("zonos-cart-items", null))), h("zonos-v-stack", { spacing: 16 }, h("zonos-cart-subtotal", null), h("zonos-custom-message", { class: "zonos--checkout-default-message", icon: MessageIcon, message: defaultMessage }))), !this.isMobile && renderFooter()), this.isMobile && renderFooter())), (cartStore.step === 'finish' || cartStore.step === 'error') && (h("div", { class: "zonos--done", "data-theme": rightSideTheme }, h("div", { class: "zonos--header" }, renderLogo(), h("zonos-button", { class: "zonos--close-button", icon: h("zonos-icon", { content: RemoveIcon }), noBackground: true, onClick: () => this.handleFinishClick(), theme: rightSideTheme })), h("zonos-checkout-finish", { borderRadius: style, onCloseClick: () => this.handleFinishClick(), overrideNotification: cartStore.step === 'error' && !!cartStore.error
372
+ ? Object.assign(Object.assign({}, cartStore.error), { type: 'error' }) : undefined, storybookForceStatus: this.storybookPaymentStatusOverride })))));
373
+ };
374
+ return (h(Host, { class: classes([
375
+ 'zonos--checkout zonos--elements',
376
+ hasFooter && 'has-footer',
377
+ this.preview && 'preview',
378
+ this.isMobile && 'mobile',
379
+ ]) }, this.preview ? (renderContent()) : (h("zonos-dialog", { borderStyle: style, "data-theme": rightSideTheme, height: "980px", isLoading: dialogLoading, mobile: this.isMobile, noBodyPadding: true, noBorder: true, noClickOutside: true, noCloseButton: true, onCloseDialog: () => this.closeDialogHandler(), open: this.open, width: "1200px" }, renderContent()))));
380
+ }
381
+ static get is() { return "zonos-checkout"; }
382
+ static get encapsulation() { return "scoped"; }
383
+ static get originalStyleUrls() {
384
+ return {
385
+ "$": ["zonos-checkout.scss"]
386
+ };
387
+ }
388
+ static get styleUrls() {
389
+ return {
390
+ "$": ["zonos-checkout.css"]
391
+ };
392
+ }
393
+ static get assetsDirs() { return ["assets"]; }
394
+ static get properties() {
395
+ return {
396
+ "appearanceSettingsOverride": {
397
+ "type": "unknown",
398
+ "mutable": false,
399
+ "complexType": {
400
+ "original": "Partial<AppearanceConfig>",
401
+ "resolved": "undefined | { colorPrimary?: string | undefined; colorSecondary?: string | undefined; fontFamily?: string | undefined; logoUrl?: string | undefined; style?: ElementsUiStyle | undefined; theme?: ElementsUiTheme | undefined; zonosAttribution?: ZonosAttribution | null | undefined; }",
402
+ "references": {
403
+ "Partial": {
404
+ "location": "global",
405
+ "id": "global::Partial"
406
+ },
407
+ "AppearanceConfig": {
408
+ "location": "import",
409
+ "path": "src/components/store/zonosStore",
410
+ "id": "src/components/store/zonosStore.ts::AppearanceConfig"
411
+ }
412
+ }
413
+ },
414
+ "required": false,
415
+ "optional": true,
416
+ "docs": {
417
+ "tags": [],
418
+ "text": "Override appearance config"
419
+ }
404
420
  },
405
- "AppearanceConfig": {
406
- "location": "import",
407
- "path": "src/components/store/zonosStore",
408
- "id": "src/components/store/zonosStore.ts::AppearanceConfig"
409
- }
410
- }
411
- },
412
- "required": false,
413
- "optional": true,
414
- "docs": {
415
- "tags": [],
416
- "text": "Override appearance config"
417
- }
418
- },
419
- "preview": {
420
- "type": "boolean",
421
- "mutable": false,
422
- "complexType": {
423
- "original": "boolean",
424
- "resolved": "boolean",
425
- "references": {}
426
- },
427
- "required": false,
428
- "optional": false,
429
- "docs": {
430
- "tags": [],
431
- "text": "Preview checkout without needing to click on the button. This would be useful for demo purpose"
432
- },
433
- "attribute": "preview",
434
- "reflect": false,
435
- "defaultValue": "false"
436
- },
437
- "mobile": {
438
- "type": "boolean",
439
- "mutable": false,
440
- "complexType": {
441
- "original": "boolean",
442
- "resolved": "boolean",
443
- "references": {}
444
- },
445
- "required": false,
446
- "optional": false,
447
- "docs": {
448
- "tags": [],
449
- "text": "Flag to determine if the checkout is on mobile"
450
- },
451
- "attribute": "mobile",
452
- "reflect": false,
453
- "defaultValue": "false"
454
- },
455
- "defaultAddress": {
456
- "type": "unknown",
457
- "mutable": false,
458
- "complexType": {
459
- "original": "ContactOption | null",
460
- "resolved": "null | { address: { city: string; country: string; line1: string; line2?: string | undefined; postal_code: string; state: string; }; name: string; phone?: string | undefined; }",
461
- "references": {
462
- "ContactOption": {
463
- "location": "import",
464
- "path": "src/components/store/checkout/stripe",
465
- "id": "src/components/store/checkout/stripe.ts::ContactOption"
466
- }
467
- }
468
- },
469
- "required": false,
470
- "optional": false,
471
- "docs": {
472
- "tags": [],
473
- "text": "Default address to use for the checkout (preview mode)"
474
- },
475
- "defaultValue": "null"
476
- },
477
- "forceDialogOpen": {
478
- "type": "boolean",
479
- "mutable": false,
480
- "complexType": {
481
- "original": "boolean",
482
- "resolved": "boolean",
483
- "references": {}
484
- },
485
- "required": false,
486
- "optional": false,
487
- "docs": {
488
- "tags": [],
489
- "text": "Force dialog to be open"
490
- },
491
- "attribute": "force-dialog-open",
492
- "reflect": false,
493
- "defaultValue": "false"
494
- }
495
- };
496
- }
497
- static get states() {
498
- return {
499
- "open": {},
500
- "stripe": {},
501
- "submitLoading": {},
502
- "paymentError": {},
503
- "collapseReviewMobile": {},
504
- "isAttachError": {},
505
- "isMobile": {},
506
- "zonosReviewRef": {},
507
- "storybookPaymentStatusOverride": {}
508
- };
509
- }
510
- static get methods() {
511
- return {
512
- "closeDialogHandler": {
513
- "complexType": {
514
- "signature": "() => Promise<void>",
515
- "parameters": [],
516
- "references": {
517
- "Promise": {
518
- "location": "global",
519
- "id": "global::Promise"
520
- }
521
- },
522
- "return": "Promise<void>"
523
- },
524
- "docs": {
525
- "text": "Close dialog action",
526
- "tags": []
527
- }
528
- },
529
- "init": {
530
- "complexType": {
531
- "signature": "() => Promise<void>",
532
- "parameters": [],
533
- "references": {
534
- "Promise": {
535
- "location": "global",
536
- "id": "global::Promise"
421
+ "preview": {
422
+ "type": "boolean",
423
+ "mutable": false,
424
+ "complexType": {
425
+ "original": "boolean",
426
+ "resolved": "boolean",
427
+ "references": {}
428
+ },
429
+ "required": false,
430
+ "optional": false,
431
+ "docs": {
432
+ "tags": [],
433
+ "text": "Preview checkout without needing to click on the button. This would be useful for demo purpose"
434
+ },
435
+ "attribute": "preview",
436
+ "reflect": false,
437
+ "defaultValue": "false"
537
438
  },
538
- "HTMLElement": {
539
- "location": "global",
540
- "id": "global::HTMLElement"
439
+ "mobile": {
440
+ "type": "boolean",
441
+ "mutable": false,
442
+ "complexType": {
443
+ "original": "boolean",
444
+ "resolved": "boolean",
445
+ "references": {}
446
+ },
447
+ "required": false,
448
+ "optional": false,
449
+ "docs": {
450
+ "tags": [],
451
+ "text": "Flag to determine if the checkout is on mobile"
452
+ },
453
+ "attribute": "mobile",
454
+ "reflect": false,
455
+ "defaultValue": "false"
456
+ },
457
+ "defaultAddress": {
458
+ "type": "unknown",
459
+ "mutable": false,
460
+ "complexType": {
461
+ "original": "ContactOption | null",
462
+ "resolved": "null | { address: { city: string; country: string; line1: string; line2?: string | undefined; postal_code: string; state: string; }; name: string; phone?: string | undefined; }",
463
+ "references": {
464
+ "ContactOption": {
465
+ "location": "import",
466
+ "path": "src/components/store/checkout/stripe",
467
+ "id": "src/components/store/checkout/stripe.ts::ContactOption"
468
+ }
469
+ }
470
+ },
471
+ "required": false,
472
+ "optional": false,
473
+ "docs": {
474
+ "tags": [],
475
+ "text": "Default address to use for the checkout (preview mode)"
476
+ },
477
+ "defaultValue": "null"
478
+ },
479
+ "forceDialogOpen": {
480
+ "type": "boolean",
481
+ "mutable": false,
482
+ "complexType": {
483
+ "original": "boolean",
484
+ "resolved": "boolean",
485
+ "references": {}
486
+ },
487
+ "required": false,
488
+ "optional": false,
489
+ "docs": {
490
+ "tags": [],
491
+ "text": "Force dialog to be open"
492
+ },
493
+ "attribute": "force-dialog-open",
494
+ "reflect": false,
495
+ "defaultValue": "false"
541
496
  }
542
- },
543
- "return": "Promise<void>"
544
- },
545
- "docs": {
546
- "text": "Setup all of the event listeners for the component on first load",
547
- "tags": []
548
- }
549
- },
550
- "setToFinishStep": {
551
- "complexType": {
552
- "signature": "(forcePaymentStatus?: PaymentIntent['status']) => Promise<void>",
553
- "parameters": [{
554
- "tags": [],
555
- "text": ""
556
- }],
557
- "references": {
558
- "Promise": {
559
- "location": "global",
560
- "id": "global::Promise"
497
+ };
498
+ }
499
+ static get states() {
500
+ return {
501
+ "open": {},
502
+ "stripe": {},
503
+ "submitLoading": {},
504
+ "paymentError": {},
505
+ "collapseReviewMobile": {},
506
+ "isAttachError": {},
507
+ "isMobile": {},
508
+ "zonosReviewRef": {},
509
+ "storybookPaymentStatusOverride": {}
510
+ };
511
+ }
512
+ static get methods() {
513
+ return {
514
+ "closeDialogHandler": {
515
+ "complexType": {
516
+ "signature": "() => Promise<void>",
517
+ "parameters": [],
518
+ "references": {
519
+ "Promise": {
520
+ "location": "global",
521
+ "id": "global::Promise"
522
+ }
523
+ },
524
+ "return": "Promise<void>"
525
+ },
526
+ "docs": {
527
+ "text": "Close dialog action",
528
+ "tags": []
529
+ }
561
530
  },
562
- "PaymentIntent": {
563
- "location": "import",
564
- "path": "@stripe/stripe-js",
565
- "id": ""
531
+ "init": {
532
+ "complexType": {
533
+ "signature": "() => Promise<void>",
534
+ "parameters": [],
535
+ "references": {
536
+ "Promise": {
537
+ "location": "global",
538
+ "id": "global::Promise"
539
+ },
540
+ "HTMLElement": {
541
+ "location": "global",
542
+ "id": "global::HTMLElement"
543
+ }
544
+ },
545
+ "return": "Promise<void>"
546
+ },
547
+ "docs": {
548
+ "text": "Setup all of the event listeners for the component on first load",
549
+ "tags": []
550
+ }
551
+ },
552
+ "setToFinishStep": {
553
+ "complexType": {
554
+ "signature": "(forcePaymentStatus?: PaymentIntent['status']) => Promise<void>",
555
+ "parameters": [{
556
+ "name": "forcePaymentStatus",
557
+ "type": "Status | undefined",
558
+ "docs": ""
559
+ }],
560
+ "references": {
561
+ "Promise": {
562
+ "location": "global",
563
+ "id": "global::Promise"
564
+ },
565
+ "PaymentIntent": {
566
+ "location": "import",
567
+ "path": "@stripe/stripe-js",
568
+ "id": ""
569
+ }
570
+ },
571
+ "return": "Promise<void>"
572
+ },
573
+ "docs": {
574
+ "text": "For storybook to set to finish step, this is to trigger in the story for zonos-checkout-finish",
575
+ "tags": []
576
+ }
566
577
  }
567
- },
568
- "return": "Promise<void>"
569
- },
570
- "docs": {
571
- "text": "For storybook to set to finish step, this is to trigger in the story for zonos-checkout-finish",
572
- "tags": []
573
- }
574
- }
575
- };
576
- }
577
- static get watchers() {
578
- return [{
579
- "propName": "appearanceSettingsOverride",
580
- "methodName": "appearanceSettingsOverrideChanged"
581
- }, {
582
- "propName": "mobile",
583
- "methodName": "handleMobileChange"
584
- }];
585
- }
586
- static get listeners() {
587
- return [{
588
- "name": "zonos--init-cart-info",
589
- "method": "initCartInfoHandler",
590
- "target": "body",
591
- "capture": false,
592
- "passive": false
593
- }, {
594
- "name": "resize",
595
- "method": "handleWindowResize",
596
- "target": "window",
597
- "capture": false,
598
- "passive": true
599
- }];
600
- }
578
+ };
579
+ }
580
+ static get watchers() {
581
+ return [{
582
+ "propName": "appearanceSettingsOverride",
583
+ "methodName": "appearanceSettingsOverrideChanged"
584
+ }, {
585
+ "propName": "mobile",
586
+ "methodName": "handleMobileChange"
587
+ }];
588
+ }
589
+ static get listeners() {
590
+ return [{
591
+ "name": "zonos--init-cart-info",
592
+ "method": "initCartInfoHandler",
593
+ "target": "body",
594
+ "capture": false,
595
+ "passive": false
596
+ }, {
597
+ "name": "resize",
598
+ "method": "handleWindowResize",
599
+ "target": "window",
600
+ "capture": false,
601
+ "passive": true
602
+ }];
603
+ }
601
604
  }