@zonos/elements 1.2.3 → 1.2.4-alpha.1

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 +138 -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
@@ -19,583 +19,583 @@ 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
+ }
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;
299
+ }
300
+ cartStorePreviousStep();
268
301
  }
269
- catch (err) {
270
- // eslint-disable-next-line no-console
271
- console.error(err);
272
- this.paymentError = true;
302
+ handleWindowResize() {
303
+ this.isMobile = isCheckoutMobile(this.mobile);
304
+ // apply theme to stripe elements
305
+ void this.applyStripeTheme();
306
+ log(`mobile: ${this.isMobile}`);
273
307
  }
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;
308
+ handleMobileChange() {
309
+ this.isMobile = isCheckoutMobile(this.mobile);
310
+ // apply theme to stripe elements
311
+ void this.applyStripeTheme();
312
+ log(`mobile: ${this.isMobile}`);
283
313
  }
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;
314
+ componentWillLoad() {
315
+ void this.init();
316
+ this.isMobile = isCheckoutMobile(this.mobile);
317
+ log(`mobile: ${this.isMobile}`);
299
318
  }
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"
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"
404
+ },
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
+ }
404
418
  },
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"
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"
537
436
  },
538
- "HTMLElement": {
539
- "location": "global",
540
- "id": "global::HTMLElement"
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"
541
494
  }
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"
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
+ }
561
528
  },
562
- "PaymentIntent": {
563
- "location": "import",
564
- "path": "@stripe/stripe-js",
565
- "id": ""
529
+ "init": {
530
+ "complexType": {
531
+ "signature": "() => Promise<void>",
532
+ "parameters": [],
533
+ "references": {
534
+ "Promise": {
535
+ "location": "global",
536
+ "id": "global::Promise"
537
+ },
538
+ "HTMLElement": {
539
+ "location": "global",
540
+ "id": "global::HTMLElement"
541
+ }
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"
561
+ },
562
+ "PaymentIntent": {
563
+ "location": "import",
564
+ "path": "@stripe/stripe-js",
565
+ "id": ""
566
+ }
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
+ }
566
574
  }
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
- }
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
+ }
601
601
  }