@zonos/elements 1.3.272 → 1.3.273

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 (346) hide show
  1. package/dist/cjs/{cart-f1374a56.js → cart-660e115c.js} +32 -2
  2. package/dist/cjs/collect-286a9d04.js +3107 -0
  3. package/dist/cjs/{hasInclusivePrice-2f1232e3.js → hasInclusivePrice-b35e81aa.js} +1 -1
  4. package/dist/cjs/index.cjs.js +7 -7
  5. package/dist/cjs/{invoice-3760bec0.js → invoice-f032089f.js} +2 -2
  6. package/dist/cjs/isCollectMobileTablet-884d4280.js +15 -0
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{localization-503c8477.js → localization-f4a64f6f.js} +120 -0
  9. package/dist/cjs/{paypal-5e9b8224.js → paypal-125259ab.js} +2 -2
  10. package/dist/cjs/{placeTestOrder-d1be2c8e.js → placeTestOrder-02001a99.js} +2 -2
  11. package/dist/cjs/{renderCheckoutCurrency-4486b06e.js → renderCheckoutCurrency-cad156a7.js} +2 -2
  12. package/dist/cjs/zonos-address-display_8.cjs.entry.js +18 -18
  13. package/dist/cjs/zonos-address_4.cjs.entry.js +8 -8
  14. package/dist/cjs/zonos-airwallex-payment.cjs.entry.js +170 -0
  15. package/dist/cjs/zonos-badge.cjs.entry.js +3 -3
  16. package/dist/cjs/zonos-button_3.cjs.entry.js +3 -3
  17. package/dist/cjs/zonos-card_5.cjs.entry.js +9 -9
  18. package/dist/cjs/zonos-cart-items_12.cjs.entry.js +19 -19
  19. package/dist/cjs/zonos-checkbox_2.cjs.entry.js +5 -5
  20. package/dist/cjs/zonos-checkout.cjs.entry.js +3 -3
  21. package/dist/cjs/zonos-collapse.cjs.entry.js +2 -2
  22. package/dist/cjs/zonos-collect-cart-items_3.cjs.entry.js +6 -6
  23. package/dist/cjs/zonos-collect-finish_6.cjs.entry.js +150 -36
  24. package/dist/cjs/zonos-collect.cjs.entry.js +176 -38
  25. package/dist/cjs/zonos-component.cjs.entry.js +1 -1
  26. package/dist/cjs/zonos-controller.cjs.entry.js +3 -3
  27. package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
  28. package/dist/cjs/zonos-country-select_4.cjs.entry.js +10 -10
  29. package/dist/cjs/zonos-elements.cjs.js +1 -1
  30. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +6 -6
  31. package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
  32. package/dist/cjs/zonos-input.cjs.entry.js +4 -4
  33. package/dist/cjs/zonos-invoice-cart-items_2.cjs.entry.js +8 -8
  34. package/dist/cjs/zonos-invoice-finish_5.cjs.entry.js +14 -14
  35. package/dist/cjs/zonos-invoice.cjs.entry.js +4 -4
  36. package/dist/cjs/zonos-language-select_2.cjs.entry.js +5 -5
  37. package/dist/cjs/zonos-link.cjs.entry.js +1 -1
  38. package/dist/cjs/zonos-logo.cjs.entry.js +2 -2
  39. package/dist/cjs/zonos-policy-consent_2.cjs.entry.js +3 -3
  40. package/dist/cjs/zonos-stripe-input.cjs.entry.js +4 -4
  41. package/dist/cjs/zonos-tooltip.cjs.entry.js +2 -2
  42. package/dist/cjs/zonos-v-stack.cjs.entry.js +2 -2
  43. package/dist/collection/collection-manifest.json +1 -0
  44. package/dist/collection/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.css +43 -0
  45. package/dist/collection/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.js +215 -0
  46. package/dist/collection/components/checkout/zonos-checkout/zonos-address-update-dialog/zonos-address-form/zonos-address-form.js +4 -4
  47. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +1 -1
  48. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +4 -4
  49. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-footer/zonos-checkout-footer.js +2 -2
  50. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +1 -1
  51. package/dist/collection/components/checkout/zonos-collect/zonos-collect-cart-items/zonos-collect-cart-items.js +1 -1
  52. package/dist/collection/components/checkout/zonos-collect/zonos-collect-finish/zonos-collect-finish.js +110 -2
  53. package/dist/collection/components/checkout/zonos-collect/zonos-collect-footer/zonos-collect-footer.js +3 -3
  54. package/dist/collection/components/checkout/zonos-collect/zonos-collect-order-details/zonos-collect-order-details.js +1 -1
  55. package/dist/collection/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.css +1 -17
  56. package/dist/collection/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.js +21 -0
  57. package/dist/collection/components/checkout/zonos-collect/zonos-collect-review/zonos-collect-review.js +3 -3
  58. package/dist/collection/components/checkout/zonos-collect/zonos-collect-subtotal/zonos-collect-subtotal.js +5 -5
  59. package/dist/collection/components/checkout/zonos-collect/zonos-collect.js +167 -29
  60. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-cart-items/zonos-invoice-cart-items.js +2 -2
  61. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-finish/zonos-invoice-finish.js +2 -2
  62. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-footer/zonos-invoice-footer.js +3 -3
  63. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-review/zonos-invoice-review.js +3 -3
  64. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-subtotal/zonos-invoice-subtotal.js +2 -2
  65. package/dist/collection/components/common/zonos-badge/zonos-badge.js +3 -3
  66. package/dist/collection/components/common/zonos-button/zonos-button.js +3 -3
  67. package/dist/collection/components/common/zonos-card/zonos-card.js +4 -4
  68. package/dist/collection/components/common/zonos-checkbox/zonos-checkbox.js +3 -3
  69. package/dist/collection/components/common/zonos-checkout-progress-tabs/zonos-checkout-progress-tabs.js +3 -3
  70. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +2 -2
  71. package/dist/collection/components/common/zonos-confirm-dialog/zonos-confirm-dialog.js +3 -3
  72. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +3 -3
  73. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +2 -2
  74. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +3 -3
  75. package/dist/collection/components/common/zonos-h-stack/zonos-h-stack.js +2 -2
  76. package/dist/collection/components/common/zonos-input/zonos-input.js +4 -4
  77. package/dist/collection/components/common/zonos-language-select/zonos-language-select.js +2 -2
  78. package/dist/collection/components/common/zonos-link/zonos-link.js +1 -1
  79. package/dist/collection/components/common/zonos-loading-overlay/zonos-loading-overlay.js +1 -1
  80. package/dist/collection/components/common/zonos-logo/zonos-logo.js +2 -2
  81. package/dist/collection/components/common/zonos-rest-state/zonos-rest-state.js +3 -3
  82. package/dist/collection/components/common/zonos-select-dialog-header/zonos-select-dialog-header.js +2 -2
  83. package/dist/collection/components/common/zonos-skeleton/zonos-skeleton.js +1 -1
  84. package/dist/collection/components/common/zonos-stripe-input/zonos-stripe-input.js +4 -4
  85. package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js +5 -5
  86. package/dist/collection/components/common/zonos-toggle/zonos-toggle.js +2 -2
  87. package/dist/collection/components/common/zonos-tooltip/zonos-tooltip.js +2 -2
  88. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +2 -2
  89. package/dist/collection/components/common/zonos-virtual-scroll/zonos-virtual-scroll.js +2 -2
  90. package/dist/collection/components/component-template/zonos-component/zonos-component.js +1 -1
  91. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +2 -2
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +4 -4
  93. package/dist/collection/components/main/zonos-controller.js +1 -1
  94. package/dist/collection/components/paypal/zonos-paypal-payment.js +1 -1
  95. package/dist/collection/components/store/checkout/airwallex.js +195 -0
  96. package/dist/collection/components/store/checkout/collect.js +4 -1
  97. package/dist/collection/components/store/checkout/stripe.js +26 -1
  98. package/dist/collection/components/store/translationStore/strings.arabic.js +6 -0
  99. package/dist/collection/components/store/translationStore/strings.base.js +6 -0
  100. package/dist/collection/components/store/translationStore/strings.chinese.js +6 -0
  101. package/dist/collection/components/store/translationStore/strings.danish.js +6 -0
  102. package/dist/collection/components/store/translationStore/strings.dutch.js +6 -0
  103. package/dist/collection/components/store/translationStore/strings.french.js +6 -0
  104. package/dist/collection/components/store/translationStore/strings.german.js +6 -0
  105. package/dist/collection/components/store/translationStore/strings.hebrew.js +6 -0
  106. package/dist/collection/components/store/translationStore/strings.indonesian.js +6 -0
  107. package/dist/collection/components/store/translationStore/strings.italian.js +6 -0
  108. package/dist/collection/components/store/translationStore/strings.japanese.js +6 -0
  109. package/dist/collection/components/store/translationStore/strings.korean.js +6 -0
  110. package/dist/collection/components/store/translationStore/strings.norwegian.js +6 -0
  111. package/dist/collection/components/store/translationStore/strings.polish.js +6 -0
  112. package/dist/collection/components/store/translationStore/strings.portuguese.js +6 -0
  113. package/dist/collection/components/store/translationStore/strings.russian.js +6 -0
  114. package/dist/collection/components/store/translationStore/strings.spanish.js +6 -0
  115. package/dist/collection/components/store/translationStore/strings.swedish.js +6 -0
  116. package/dist/collection/components/store/translationStore/strings.turkish.js +6 -0
  117. package/dist/collection/components/store/translationStore/strings.vietnamese.js +6 -0
  118. package/dist/collection/components/stripe/zonos-address/zonos-address.js +2 -2
  119. package/dist/collection/components/stripe/zonos-custom-address/zonos-address-suggestions/zonos-address-suggestions.js +2 -2
  120. package/dist/collection/components/stripe/zonos-custom-address/zonos-custom-address.js +2 -2
  121. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +1 -1
  122. package/dist/collection/types/generated/graphql.internal.types.js +3 -0
  123. package/dist/esm/{cart-1415dcf0.js → cart-23e29950.js} +32 -2
  124. package/dist/esm/collect-a235299d.js +3092 -0
  125. package/dist/esm/{hasInclusivePrice-a3b0f71c.js → hasInclusivePrice-5e106f84.js} +1 -1
  126. package/dist/esm/index.js +7 -7
  127. package/dist/esm/{invoice-117efa2c.js → invoice-78f069c7.js} +2 -2
  128. package/dist/esm/isCollectMobileTablet-111b0dd7.js +12 -0
  129. package/dist/esm/loader.js +1 -1
  130. package/dist/esm/{localization-29723d89.js → localization-17546792.js} +120 -0
  131. package/dist/esm/{paypal-cb5559d4.js → paypal-5bc6b0d0.js} +2 -2
  132. package/dist/esm/{placeTestOrder-443376eb.js → placeTestOrder-e842854a.js} +2 -2
  133. package/dist/esm/{renderCheckoutCurrency-8390b5bf.js → renderCheckoutCurrency-e3953f67.js} +2 -2
  134. package/dist/esm/zonos-address-display_8.entry.js +18 -18
  135. package/dist/esm/zonos-address_4.entry.js +8 -8
  136. package/dist/esm/zonos-airwallex-payment.entry.js +166 -0
  137. package/dist/esm/zonos-badge.entry.js +3 -3
  138. package/dist/esm/zonos-button_3.entry.js +3 -3
  139. package/dist/esm/zonos-card_5.entry.js +9 -9
  140. package/dist/esm/zonos-cart-items_12.entry.js +19 -19
  141. package/dist/esm/zonos-checkbox_2.entry.js +5 -5
  142. package/dist/esm/zonos-checkout.entry.js +3 -3
  143. package/dist/esm/zonos-collapse.entry.js +2 -2
  144. package/dist/esm/zonos-collect-cart-items_3.entry.js +6 -6
  145. package/dist/esm/zonos-collect-finish_6.entry.js +135 -21
  146. package/dist/esm/zonos-collect.entry.js +171 -33
  147. package/dist/esm/zonos-component.entry.js +1 -1
  148. package/dist/esm/zonos-controller.entry.js +3 -3
  149. package/dist/esm/zonos-country-flag.entry.js +1 -1
  150. package/dist/esm/zonos-country-select_4.entry.js +10 -10
  151. package/dist/esm/zonos-elements.js +1 -1
  152. package/dist/esm/zonos-hello-dialog.entry.js +6 -6
  153. package/dist/esm/zonos-hello.entry.js +1 -1
  154. package/dist/esm/zonos-input.entry.js +4 -4
  155. package/dist/esm/zonos-invoice-cart-items_2.entry.js +8 -8
  156. package/dist/esm/zonos-invoice-finish_5.entry.js +14 -14
  157. package/dist/esm/zonos-invoice.entry.js +4 -4
  158. package/dist/esm/zonos-language-select_2.entry.js +5 -5
  159. package/dist/esm/zonos-link.entry.js +1 -1
  160. package/dist/esm/zonos-logo.entry.js +2 -2
  161. package/dist/esm/zonos-policy-consent_2.entry.js +3 -3
  162. package/dist/esm/zonos-stripe-input.entry.js +4 -4
  163. package/dist/esm/zonos-tooltip.entry.js +2 -2
  164. package/dist/esm/zonos-v-stack.entry.js +2 -2
  165. package/dist/esm-es5/cart-23e29950.js +1 -0
  166. package/dist/esm-es5/collect-a235299d.js +1 -0
  167. package/dist/esm-es5/{hasInclusivePrice-a3b0f71c.js → hasInclusivePrice-5e106f84.js} +1 -1
  168. package/dist/esm-es5/index.js +1 -1
  169. package/dist/esm-es5/{invoice-117efa2c.js → invoice-78f069c7.js} +1 -1
  170. package/dist/esm-es5/isCollectMobileTablet-111b0dd7.js +1 -0
  171. package/dist/esm-es5/loader.js +1 -1
  172. package/dist/esm-es5/localization-17546792.js +1 -0
  173. package/dist/esm-es5/{paypal-cb5559d4.js → paypal-5bc6b0d0.js} +1 -1
  174. package/dist/esm-es5/{placeTestOrder-443376eb.js → placeTestOrder-e842854a.js} +1 -1
  175. package/dist/esm-es5/{renderCheckoutCurrency-8390b5bf.js → renderCheckoutCurrency-e3953f67.js} +1 -1
  176. package/dist/esm-es5/zonos-address-display_8.entry.js +1 -1
  177. package/dist/esm-es5/zonos-address_4.entry.js +1 -1
  178. package/dist/esm-es5/zonos-airwallex-payment.entry.js +1 -0
  179. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  180. package/dist/esm-es5/zonos-button_3.entry.js +1 -1
  181. package/dist/esm-es5/zonos-card_5.entry.js +1 -1
  182. package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
  183. package/dist/esm-es5/zonos-checkbox_2.entry.js +1 -1
  184. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  185. package/dist/esm-es5/zonos-collapse.entry.js +1 -1
  186. package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
  187. package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
  188. package/dist/esm-es5/zonos-collect.entry.js +1 -1
  189. package/dist/esm-es5/zonos-component.entry.js +1 -1
  190. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  191. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  192. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  193. package/dist/esm-es5/zonos-elements.js +1 -1
  194. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  195. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  196. package/dist/esm-es5/zonos-input.entry.js +1 -1
  197. package/dist/esm-es5/zonos-invoice-cart-items_2.entry.js +1 -1
  198. package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
  199. package/dist/esm-es5/zonos-invoice.entry.js +1 -1
  200. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  201. package/dist/esm-es5/zonos-link.entry.js +1 -1
  202. package/dist/esm-es5/zonos-logo.entry.js +1 -1
  203. package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
  204. package/dist/esm-es5/zonos-stripe-input.entry.js +1 -1
  205. package/dist/esm-es5/zonos-tooltip.entry.js +1 -1
  206. package/dist/esm-es5/zonos-v-stack.entry.js +1 -1
  207. package/dist/scripts/index.d.ts +61 -0
  208. package/dist/scripts/index.js +1 -1
  209. package/dist/scripts/loadZonos.js +1 -1
  210. package/dist/scripts/zonos.js +1 -1
  211. package/dist/types/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.d.ts +46 -0
  212. package/dist/types/components/checkout/zonos-collect/zonos-collect-finish/zonos-collect-finish.d.ts +7 -0
  213. package/dist/types/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.d.ts +4 -0
  214. package/dist/types/components/checkout/zonos-collect/zonos-collect.d.ts +29 -0
  215. package/dist/types/components/store/checkout/airwallex.d.ts +83 -0
  216. package/dist/types/components/store/checkout/collect.d.ts +12 -1
  217. package/dist/types/components/store/checkout/stripe.d.ts +1 -1
  218. package/dist/types/components/store/translationStore/strings.arabic.d.ts +6 -0
  219. package/dist/types/components/store/translationStore/strings.base.d.ts +6 -0
  220. package/dist/types/components/store/translationStore/strings.chinese.d.ts +6 -0
  221. package/dist/types/components/store/translationStore/strings.danish.d.ts +6 -0
  222. package/dist/types/components/store/translationStore/strings.dutch.d.ts +6 -0
  223. package/dist/types/components/store/translationStore/strings.french.d.ts +6 -0
  224. package/dist/types/components/store/translationStore/strings.german.d.ts +6 -0
  225. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +6 -0
  226. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +6 -0
  227. package/dist/types/components/store/translationStore/strings.italian.d.ts +6 -0
  228. package/dist/types/components/store/translationStore/strings.japanese.d.ts +6 -0
  229. package/dist/types/components/store/translationStore/strings.korean.d.ts +6 -0
  230. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +6 -0
  231. package/dist/types/components/store/translationStore/strings.polish.d.ts +6 -0
  232. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +6 -0
  233. package/dist/types/components/store/translationStore/strings.russian.d.ts +6 -0
  234. package/dist/types/components/store/translationStore/strings.spanish.d.ts +6 -0
  235. package/dist/types/components/store/translationStore/strings.swedish.d.ts +6 -0
  236. package/dist/types/components/store/translationStore/strings.turkish.d.ts +6 -0
  237. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +6 -0
  238. package/dist/types/components.d.ts +42 -0
  239. package/dist/types/types/checkout/api/CheckoutSession.d.ts +11 -1
  240. package/dist/types/types/checkout/api/PartyInfo.d.ts +6 -0
  241. package/dist/types/types/generated/graphql.internal.types.d.ts +20 -0
  242. package/dist/types/types/generated/graphql.internal.types.ts +29 -0
  243. package/dist/types/types/utils/ZonosSettings.d.ts +6 -0
  244. package/dist/zonos-elements/index.esm.js +1 -1
  245. package/dist/zonos-elements/p-013575f2.entry.js +1 -0
  246. package/dist/zonos-elements/{p-344a1fee.entry.js → p-055ef910.entry.js} +1 -1
  247. package/dist/zonos-elements/{p-3efe0875.entry.js → p-08b48608.entry.js} +1 -1
  248. package/dist/zonos-elements/{p-26ae4ee7.system.entry.js → p-0a54dae6.system.entry.js} +1 -1
  249. package/dist/zonos-elements/{p-aafc2155.system.entry.js → p-0b59076d.system.entry.js} +1 -1
  250. package/dist/zonos-elements/{p-c92a5ae5.system.entry.js → p-10571f94.system.entry.js} +1 -1
  251. package/dist/zonos-elements/{p-658ab5e2.entry.js → p-12a05647.entry.js} +1 -1
  252. package/dist/zonos-elements/{p-b453ae2b.system.js → p-14018649.system.js} +2 -2
  253. package/dist/zonos-elements/{p-d2ba9e3c.system.entry.js → p-1678d8b4.system.entry.js} +1 -1
  254. package/dist/zonos-elements/p-171d0f9f.system.js +1 -0
  255. package/dist/zonos-elements/{p-5bd47a30.system.entry.js → p-1a105d6e.system.entry.js} +1 -1
  256. package/dist/zonos-elements/p-1a4083be.system.js +1 -0
  257. package/dist/zonos-elements/{p-792fce17.system.entry.js → p-1f31f5a0.system.entry.js} +1 -1
  258. package/dist/zonos-elements/p-2197d6ab.js +1 -0
  259. package/dist/zonos-elements/{p-536cbab5.system.entry.js → p-27e50593.system.entry.js} +1 -1
  260. package/dist/zonos-elements/{p-0b4ba025.entry.js → p-2825431d.entry.js} +1 -1
  261. package/dist/zonos-elements/p-29b60bf3.system.js +1 -1
  262. package/dist/zonos-elements/{p-73730eb9.system.entry.js → p-2a1247f4.system.entry.js} +1 -1
  263. package/dist/zonos-elements/p-2adbbce7.system.js +1 -0
  264. package/dist/zonos-elements/{p-f98cdb98.system.entry.js → p-306e5499.system.entry.js} +1 -1
  265. package/dist/zonos-elements/{p-831bcfb6.entry.js → p-31577ebd.entry.js} +1 -1
  266. package/dist/zonos-elements/{p-889a44fc.entry.js → p-328fd90e.entry.js} +1 -1
  267. package/dist/zonos-elements/p-33910e8b.js +1 -0
  268. package/dist/zonos-elements/{p-fb684748.system.entry.js → p-36b311f9.system.entry.js} +1 -1
  269. package/dist/zonos-elements/{p-5b4e5608.system.entry.js → p-3eba657b.system.entry.js} +1 -1
  270. package/dist/zonos-elements/p-41619f29.js +1 -0
  271. package/dist/zonos-elements/{p-cdea0f7d.js → p-42948a52.js} +1 -1
  272. package/dist/zonos-elements/p-46e72a90.entry.js +1 -0
  273. package/dist/zonos-elements/p-49d8a10f.entry.js +1 -0
  274. package/dist/zonos-elements/{p-54a9c772.system.entry.js → p-4a960329.system.entry.js} +1 -1
  275. package/dist/zonos-elements/{p-93324ee5.entry.js → p-4b371b65.entry.js} +1 -1
  276. package/dist/zonos-elements/p-539bc46c.js +1 -0
  277. package/dist/zonos-elements/p-579932a7.js +1 -0
  278. package/dist/zonos-elements/{p-2afecda7.entry.js → p-59b10526.entry.js} +1 -1
  279. package/dist/zonos-elements/{p-98bea13e.system.entry.js → p-5aa35d1c.system.entry.js} +1 -1
  280. package/dist/zonos-elements/{p-fd849c69.system.js → p-62c68aee.system.js} +1 -1
  281. package/dist/zonos-elements/{p-48f3e2d2.system.entry.js → p-6c19310e.system.entry.js} +1 -1
  282. package/dist/zonos-elements/{p-16948eea.system.entry.js → p-732e7373.system.entry.js} +1 -1
  283. package/dist/zonos-elements/{p-0e8c4a29.entry.js → p-734d646b.entry.js} +1 -1
  284. package/dist/zonos-elements/{p-60f0ff42.entry.js → p-7eb47eb0.entry.js} +1 -1
  285. package/dist/zonos-elements/{p-eb254a96.system.entry.js → p-86a9f048.system.entry.js} +1 -1
  286. package/dist/zonos-elements/p-8af57c2a.js +1 -0
  287. package/dist/zonos-elements/{p-18c9565b.system.entry.js → p-8c4761d1.system.entry.js} +1 -1
  288. package/dist/zonos-elements/{p-c45df586.system.entry.js → p-8e77a3cd.system.entry.js} +1 -1
  289. package/dist/zonos-elements/p-919c5500.entry.js +1 -0
  290. package/dist/zonos-elements/p-91b921a4.system.js +1 -0
  291. package/dist/zonos-elements/{p-3b600b89.system.js → p-9574695a.system.js} +1 -1
  292. package/dist/zonos-elements/p-97917371.system.entry.js +1 -0
  293. package/dist/zonos-elements/{p-7ce6b8f7.system.entry.js → p-9b003a15.system.entry.js} +1 -1
  294. package/dist/zonos-elements/{p-53be08c8.entry.js → p-9c3276c8.entry.js} +1 -1
  295. package/dist/zonos-elements/p-9cd41234.system.entry.js +1 -0
  296. package/dist/zonos-elements/{p-5f92db80.system.entry.js → p-a1a05de4.system.entry.js} +1 -1
  297. package/dist/zonos-elements/{p-4c94cfd3.entry.js → p-a968ccba.entry.js} +1 -1
  298. package/dist/zonos-elements/{p-ee00f232.entry.js → p-abd485df.entry.js} +1 -1
  299. package/dist/zonos-elements/{p-7d859914.entry.js → p-ad961f5d.entry.js} +1 -1
  300. package/dist/zonos-elements/{p-6b87101d.system.entry.js → p-b5c01288.system.entry.js} +1 -1
  301. package/dist/zonos-elements/p-bf8c98ab.system.js +1 -0
  302. package/dist/zonos-elements/{p-2d1055d5.entry.js → p-c13d2e3f.entry.js} +1 -1
  303. package/dist/zonos-elements/{p-0b46f3bd.system.entry.js → p-c15476a1.system.entry.js} +1 -1
  304. package/dist/zonos-elements/{p-0e36a7cf.system.entry.js → p-c6823974.system.entry.js} +1 -1
  305. package/dist/zonos-elements/{p-dae881f2.entry.js → p-c83bc4b3.entry.js} +1 -1
  306. package/dist/zonos-elements/{p-134c5010.system.entry.js → p-c846a5f3.system.entry.js} +1 -1
  307. package/dist/zonos-elements/{p-7aca66cd.entry.js → p-cc508de8.entry.js} +1 -1
  308. package/dist/zonos-elements/{p-6609467e.entry.js → p-ccd14aa5.entry.js} +1 -1
  309. package/dist/zonos-elements/{p-318e704a.system.js → p-d25759fb.system.js} +1 -1
  310. package/dist/zonos-elements/{p-a956e28f.entry.js → p-d5e66ea6.entry.js} +1 -1
  311. package/dist/zonos-elements/{p-7536cf94.system.entry.js → p-daf57db3.system.entry.js} +1 -1
  312. package/dist/zonos-elements/{p-b35a0b1e.entry.js → p-dcef2202.entry.js} +1 -1
  313. package/dist/zonos-elements/{p-283ffaad.entry.js → p-dd6da3de.entry.js} +1 -1
  314. package/dist/zonos-elements/{p-bd2daace.entry.js → p-df6fbf3f.entry.js} +1 -1
  315. package/dist/zonos-elements/{p-c16c7978.entry.js → p-e643346a.entry.js} +1 -1
  316. package/dist/zonos-elements/{p-b375372e.entry.js → p-e8cb382e.entry.js} +1 -1
  317. package/dist/zonos-elements/{p-f4be6ce5.system.entry.js → p-e8ec88a9.system.entry.js} +1 -1
  318. package/dist/zonos-elements/p-e9afd736.system.entry.js +1 -0
  319. package/dist/zonos-elements/{p-c425d3d9.js → p-e9c8a235.js} +1 -1
  320. package/dist/zonos-elements/{p-ccc8d669.system.entry.js → p-f0eb6317.system.entry.js} +1 -1
  321. package/dist/zonos-elements/p-f1cc659c.js +1 -0
  322. package/dist/zonos-elements/{p-b1b7d786.entry.js → p-f53c8a9f.entry.js} +1 -1
  323. package/dist/zonos-elements/{p-777d396e.entry.js → p-f72642de.entry.js} +1 -1
  324. package/dist/zonos-elements/{p-eb77dd11.system.js → p-fcaec700.system.js} +1 -1
  325. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  326. package/package.json +2 -1
  327. package/dist/cjs/isCollectMobileTablet-d5c1a9ea.js +0 -176
  328. package/dist/esm/isCollectMobileTablet-2c62fdaa.js +0 -169
  329. package/dist/esm-es5/cart-1415dcf0.js +0 -1
  330. package/dist/esm-es5/isCollectMobileTablet-2c62fdaa.js +0 -1
  331. package/dist/esm-es5/localization-29723d89.js +0 -1
  332. package/dist/zonos-elements/p-0fa932e6.system.js +0 -1
  333. package/dist/zonos-elements/p-15c2dfea.entry.js +0 -1
  334. package/dist/zonos-elements/p-17c7a727.system.js +0 -1
  335. package/dist/zonos-elements/p-24aa6708.js +0 -1
  336. package/dist/zonos-elements/p-2585034d.entry.js +0 -1
  337. package/dist/zonos-elements/p-2cda42d5.system.js +0 -1
  338. package/dist/zonos-elements/p-53b65b80.js +0 -1
  339. package/dist/zonos-elements/p-58521b25.js +0 -1
  340. package/dist/zonos-elements/p-9259e19b.system.entry.js +0 -1
  341. package/dist/zonos-elements/p-99ef86c3.js +0 -1
  342. package/dist/zonos-elements/p-aa3a7538.js +0 -1
  343. package/dist/zonos-elements/p-c935390d.js +0 -1
  344. package/dist/zonos-elements/p-e77dd304.system.js +0 -1
  345. package/dist/zonos-elements/p-ea91600a.entry.js +0 -1
  346. package/dist/zonos-elements/p-f5d9e5e5.system.entry.js +0 -1
@@ -1 +1 @@
1
- (function(){"use strict";const e=({id:e,payload:o,target:t,type:n})=>{var r;t instanceof HTMLIFrameElement?null===(r=t.contentWindow)||void 0===r||r.postMessage({id:e,payload:o,type:n},"*"):t.postMessage({id:e,payload:o,type:n},"*")};class o{constructor(o,t){this.targetElement=o,this.targetId=t,this.sendMessage=(o,t)=>{e({id:this.targetId,payload:t,target:this.targetElement,type:o})}}}o.iframeServices={GOOGLE_PLACES:"zonos--private-iframe-google-places-service-m9bmuh7g"},o.sendMessage=e,o.injectPrivateIframe=({id:e,onload:o,src:t})=>{const n=document.createElement("iframe");return n.src=t,n.id=e,n.style.display="none",n.role="presentation",n.ariaHidden="true",n.tabIndex=-1,n.style.border="none !important",n.style.margin="0px !important",n.style.padding="0px !important",n.style.width="1px !important",n.style.minWidth="100% !important",n.style.overflow="hidden !important",n.style.display="block !important",n.style.visibility="hidden !important",n.style.position="fixed !important",n.style.pointerEvents="none !important",n.style.userSelect="none !important",n.style.height="1px !important",n.onload=()=>o(n),document.body.appendChild(n),n};const t=performance.now(),n=e=>{if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(o){if(e&&"function"==typeof e.toString){return e.toString()}return"Unable to stringify info"}},r=(e,o,...r)=>{var s,i;const{elapsedTimePretty:a}=(()=>{const e=performance.now()-t,o=e>1e3?`${(e/1e3).toFixed(2)}s`:`${e.toFixed(2)}ms`;return{elapsedTime:e,elapsedTimePretty:o}})(),l=[`(${a})`,...r];l.map(n).join(" ");if(!(!!(null===(s=window.Zonos)||void 0===s?void 0:s.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return;let d=document.querySelector("iframe#zonos---debug-logging-iframe");d||(d=document.createElement("iframe"),d.id="zonos---debug-logging-iframe",d.style.display="none",d.style.opacity="0",d.style.position="absolute",d.style.top="-9999px",d.style.left="-9999px",d.style.width="1px",d.style.height="1px",d.style.border="none",d.style.overflow="hidden",d.style.visibility="hidden",document.body.appendChild(d));const c=(null===(i=d.contentWindow)||void 0===i?void 0:i.window.console)||window.console;switch(o){case"warn":c.warn(e,...l);break;case"info":c.info(e,...l);break;case"error":c.error(e,...l);break;default:c.groupCollapsed(e,...l),c.trace(),c.groupEnd()}},s=(e,...o)=>{r(e,"error",...o)},i=["jsdelivr","cdnjs","unpkg","vercel"],a="jsdelivr",l=e=>{const o=i.indexOf(e);return i[o+1]||null},d=()=>window.location.search.includes("zonosStagingMode=1"),c=()=>{var e;return(null===(e=window.Zonos.zonosApiKey)||void 0===e?void 0:e.includes("test"))||window.location.search.includes("zonosTestMode=1")};function u(e,o){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)o.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(t[n[r]]=e[n[r]])}return t}"function"==typeof SuppressedError&&SuppressedError;const p=["cloudflare","vercel"],m=p[0],w={cloudflare:"https://route.elements.zonos.com",vercel:"https://route.js.zonos.com"},h=w[m],y=(e=m)=>{const o=p.indexOf(e),t=p[o+1];return t||null},g=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(e){return null}return null},f=()=>{const e="userAgentData"in window.navigator?window.navigator.userAgentData:null,o=(()=>{const e="connection"in window.navigator?window.navigator.connection:null,o="mozConnection"in window.navigator?window.navigator.mozConnection:null,t="webkitConnection"in window.navigator?window.navigator.webkitConnection:null;return e||o||t})();return{connectionDownlink:null==o?void 0:o.downlink,connectionEffectiveType:null==o?void 0:o.effectiveType,connectionRtt:null==o?void 0:o.rtt,connectionSaveData:null==o?void 0:o.saveData,isHostedCheckout:window.Zonos.isLegacyCheckout,screenHeight:window.screen.height,screenWidth:window.innerWidth,userAgent:e&&e.brands.length>0?e:window.navigator.userAgent}},v=["/api/zonos-elements/log-script-load","/api/zonos-elements/log-bulk-load-data"],b=async({response:e,shouldLog:o=!0,shouldThrow:t=!1})=>{try{const o=await e.text(),t=g(o);if(!t)throw new Error(`Failed to parse content: ${o}`);return t}catch(e){if(t)throw e;return o&&console.error(e),null}},S=async({basePathType:e,options:o,path:t})=>{let n;const r=window.Zonos.zonosQaUrlApi||w[e]||m,s=new URL(r+t),i=window.Zonos.cartId?`${window.location.hostname}-${window.Zonos.cartId}`:window.location.hostname;s.searchParams.set("zToken",(e=>{try{return btoa(e).replace(/=/g,"")}catch(o){return e.replace(/[^A-Za-z0-9]/g,"").split("").reverse().join("")}})(i));try{n=await fetch(s.toString(),o)}catch(e){if(e instanceof Error)return{baseUrl:r,errors:[{message:e.message,type:"unknown"}],json:null,response:null,zonosMode:null};return{baseUrl:r,errors:[{message:"Failed to fetch",type:"unknown"}],json:null,response:null,zonosMode:null}}const a=n.headers.get("Zonos-Mode"),l=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&a&&l&&(window.Zonos.modeAlerted=!0),n.ok){return{baseUrl:r,errors:[],json:await b({response:n}),response:n,zonosMode:a}}const d=n.status.toString();try{const e=await b({response:n,shouldThrow:!0});if(e&&"errors"in e&&Array.isArray(e.errors)){const o=e.errors;return{baseUrl:r,errors:o.map((e=>"string"==typeof e?{message:e,type:d}:e)),json:null,response:n,zonosMode:a}}return{baseUrl:r,errors:[{message:JSON.stringify(e),type:d}],json:null,response:n,zonosMode:a}}catch(e){return{baseUrl:r,errors:[{message:`${d}: ${"Unknown error"}`,type:d}],json:null,response:null,zonosMode:a}}},C=async({basePathType:e,options:o,path:t})=>{var n,s;const i=t.startsWith("/api/bigcommerce")?"vercel":e,a=performance.now(),l=await S({basePathType:i,options:o,path:t}),{errors:d,response:c}=l,p=u(l,["errors","response"]),m=performance.now()-a;r(`${t} (${m.toFixed(2)}ms)`,"info");const b=null==c?void 0:c.headers.get("Zonos-Duration");200===(null==c?void 0:c.status)&&(({apiPath:e,apiType:o,loadTimeInternal:t,loadTimeTotal:n})=>{if(v.includes(e))return;const r=n-t;if(r<0)return;const s=e.split("?")[0]||e,i=f(),a="object"==typeof i.userAgent&&i.userAgent.mobile,l={apiType:o,connectionType:i.connectionEffectiveType,href:s,isHostedCheckout:window.Zonos.isLegacyCheckout,isMobile:(d=a,d||window.innerWidth<890),loadTimeBrowserApi:r,loadTimeInternal:t,loadTimeTotal:n,metadata:Object.assign({},i),screenHeight:i.screenHeight,screenWidth:i.screenWidth,userAgent:"string"==typeof i.userAgent?i.userAgent:i.userAgent.brands.map((e=>e.brand)).filter((e=>!/Not.*A.*Brand.*/.test(e))).join(",")};var d;window.Zonos.loadTimeApiInfoList.push(l)})({apiPath:t,apiType:i,loadTimeInternal:b?Number(b):0,loadTimeTotal:m});const z=y(i),k=d.find((({type:e})=>"unknown"===e)),Z=d.find((({message:e})=>"string"==typeof e&&(e.includes("signal is aborted")||e.includes("The operation was aborted")||e.includes("Fetch is aborted")))),j=!!k||404===(null==c?void 0:c.status)||500===(null==c?void 0:c.status),I=z&&j;return j&&!Z&&(async({endpoint:e,errors:o,metadata:t,shouldPostReleaseErrorReporting:n})=>{r("sendErrorLog","warn",e,t,o);{const e=Number(window.Zonos.releaseDate);if((new Date).getTime()-e>36e5)return}const s="userAgentData"in window.navigator?window.navigator.userAgentData:null,i={endpoint:e,errors:o,href:window.location.href,metadata:Object.assign({appVersion:window.Zonos.version,domain:window.Zonos.domain,publicCredential:window.Zonos.zonosApiKey,userAgent:s&&s.brands.length>0?s:window.navigator.userAgent},t)};try{fetch(`${h}/api/zonos-elements/log-error`,{body:JSON.stringify(i),headers:{"Zonos-Referer":window.location.hostname},method:"POST"})}catch(e){const o=y();if(!o)return;fetch(`${w[o]}/api/zonos-elements/log-error`,{body:JSON.stringify(i),method:"POST"})}})({endpoint:w[i]+t,errors:d.map((({message:e})=>`API: ${e}`)),metadata:{currentBasePath:i,nextFallbackApiType:z,requestHeaders:null==o?void 0:o.headers,requestPayload:g(null===(n=null==o?void 0:o.body)||void 0===n?void 0:n.toString())||(null===(s=null==o?void 0:o.body)||void 0===s?void 0:s.toString()),shouldCallFallback:I,status:null==c?void 0:c.status,statusText:null==c?void 0:c.statusText},shouldPostReleaseErrorReporting:!0}),I?(r(`=== "${t}" failed to fetch, trying next fallback ${z}`),C({basePathType:z,options:o,path:t})):Object.assign({errors:d,response:c},p)},z=async(e,o)=>{const t=u(o||{},[]),n=t.body?JSON.stringify(t.body):void 0,r=t.method||"GET",s=Object.assign({"Content-Type":"application/json","Zonos-Is-BigCommerce":window.Zonos.isBigCommerce.toString(),"Zonos-Referer":window.location.hostname,"Zonos-Staging-Mode":d()?"1":void 0,"Zonos-Test-Mode":c()?"1":void 0,"Zonos-Version":window.Zonos.version,credentialtoken:window.Zonos.zonosApiKey||"Empty credential token from zonos-elements"},t.headers);Object.keys(s).forEach((e=>void 0===s[e]&&delete s[e]));const i=Object.assign(Object.assign({},t),{body:"GET"===r?void 0:n,headers:s,method:r}),a=new URLSearchParams(window.location.search).get("useFallbackApi");return C({basePathType:a||m,options:i,path:e})},k=()=>{const e=window&&window.location.href.includes("forceLoadCdn");if("undefined"==typeof window||e)return null;const o=(e=>{if(!e)return null;const o=new URL(e).searchParams.get("zonosQaUrl");return o?/[^a-zA-Z0-9-_]+/.test(o)?null:o:null})(window.location.href),t="https://v1.3.272.js.zonos.com";if(!o&&(t.includes("test.")||t.includes("test-")))return t;if(!o&&["dev.demo.elements.zonos.com","dev.checkout.elements.zonos.com","dev.storybook.elements.zonos.com"].includes(window.location.hostname))return"https://dev.elements.zonos.com";if(!o)return null;if("dev-elements"===o)return"https://dev.elements.zonos.com";const n=`https://${o}.preview.js.zonos.com`;return r(`[ZONOS-WARNING] using '${n}' for loading elements script`,"warn"),fetch(n).then((()=>{window.sessionStorage.removeItem("zonos--checkout-session-id"),window.sessionStorage.removeItem("zonos--client-secret")})).catch((()=>{alert(`[ZONOS-WARNING] '${n}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);const e=new URLSearchParams(window.location.search);e.delete("zonosQaUrl");const{pathname:o}=window.location,t=`${o}?${e.toString()}`;return window.history.replaceState(window.history.state,"",t),window.location.reload(),null})),n},Z="https://js.stripe.com/v3",j=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;let I=null;const O=e=>(null!==I||(I=new Promise(((o,t)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe)o(window.Stripe);else try{let n=(()=>{const e=document.querySelectorAll(`script[src^="${Z}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&j.test(t.src))return t}return null})();n&&e?console.warn("loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used"):n||(n=(e=>{const o=document.createElement("script");o.src=`${Z}`;const t=document.head||document.body;return t?(t.appendChild(o),o):(s("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==n||n.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):t(new Error("Stripe.js not available"))})),null==n||n.addEventListener("error",(()=>{t(new Error("Failed to load Stripe.js"))}))}catch(e){return void t(e)}else o(null)}))),I),A=Promise.resolve().then((()=>O(null)));let E=!1;A.catch((e=>{E||console.warn(e)}));const T=async({cartId:e,retries:o})=>{const t=c(),n=(()=>{const e=new URLSearchParams(window.location.search);return{overrideShouldEnabledCustomAddress:window.Zonos.overrideUseCustomAddressForm?"1":e.get("overrideShouldEnabledCustomAddress")}})(),s=(()=>{const e=new URLSearchParams(window.location.search).get("validityToken");if(!e||!/^[A-Za-z0-9+/]+={0,2}$/.test(e)||e.length%4!=0)return null;try{return atob(e),e}catch(e){return null}})()||void 0,i=new URLSearchParams;n.overrideShouldEnabledCustomAddress&&i.set("overrideShouldEnabledCustomAddress",n.overrideShouldEnabledCustomAddress);const{errors:a,json:l,zonosMode:d}=await z(`/api/zonos-elements/get-cart?${i.toString()}`,{body:{isTestMode:t,renewCartExpirationToken:s,tempCartUUID:e},headers:{"Content-Type":"application/json"},method:"POST"}),u=!l||a.length;return u&&o?(r("[ZONOS - loadZonos] temp cart not ready, retrying in 1 second","info",{retries:o}),await new Promise((e=>setTimeout(e,500))),T({cartId:e,retries:o-1})):u?null:Object.assign(Object.assign({},l),{zonosMode:d})},L=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/,P=new RegExp(`^${L.source}$`),$=new RegExp(`^cart_${L.source}$`),U=/^[a-zA-Z0-9]{2,}$/,N=/^cart_[a-zA-Z0-9]{2,}$/,D=async e=>{const{isDgsCartId:o,isLegacyCartId:t}=(e=>e?e.includes("undefined")?{isDgsCartId:!1,isLegacyCartId:!1}:N.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:U.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:$.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:P.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:{isDgsCartId:!1,isLegacyCartId:!1}:{isDgsCartId:!1,isLegacyCartId:!1})(e);if(!t&&!o)return s("[ZONOS - loadZonos] invalid cart id"),null;const n=await T({cartId:e,retries:5});return r("[ZONOS - loadZonos] getting temp cart data","info",n),n?(window.Zonos.storeId=n.cartData.storeId,window.Zonos.zonosApiKey=n.cartData.credentialToken,window.Zonos.zonosMode=n.zonosMode,{cartData:n.cartData,settings:n.settings,storeFavicon:n.storeFaviconUrl,storeId:n.cartData.storeId,storeLogo:n.storeLogoUrl,zonosApiKey:n.cartData.credentialToken}):(s("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),null)},R="zonos--checkout-hidden-international-button";var F;const x=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:o,isWhiteListed:t}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const o=new URL(e).origin,t=["dev.elements.zonos.com","dev.assets-checkout.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>o.includes(e))),n=["qa.js.zonos.com"].some((e=>o.includes(e)));return{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:t}})({loadScriptSrc:null==e?void 0:e.src});return t?o:null})(),M=Date.now(),B="https://v1.3.272.js.zonos.com",q=x||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.272",W="https://fonts.googleapis.com",K=/^https:\/\/fonts\.googleapis\.com/;class G{}F=G,G.doneInit=!1,G.cartSettings=null,G.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),G.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),G._paypalMockResponse=null,G.iframeLogType="undefined"!=typeof window?new URLSearchParams(window.location.search).get("iframeLogType"):null,G.isBigCommerce=!1,G.releaseDate="1782316453940",G.isLegacyCheckout=!1,G.googleAnalyticId=null,G.googleAnalyticReady=!1,G.facebookPixelId=null,G.facebookPixelReady=!1,G.startLoadTime=M,G.domain="undefined"!=typeof window?window.location!=window.parent.location&&document.referrer||document.location.hostname:"",G.showBaseForeign="undefined"!=typeof window&&window.location.search.includes("zonosShowBaseForeign"),G.overrideUseCustomAddressForm=!1,G.isCollect=!1,G.isInvoice=!1,G.isNpm=!0,G.zonosQaUrl=null,G.zonosQaUrlApi=null,G.trackEventLogs=[],G.version="v1.3.272",G.modeAlerted=!1,G.cartData=null,G.paypal=null,G.zonosMode=null,G.IframeService=o,G.getCurrentTimestamp=()=>(new Date).getTime(),G.zonosController=null,G.loadTimeApiInfoList=[],G.logIntervalId=null,G.init=async e=>{const{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l,storeId:u,zonosApiKey:p}=e;if(F.cartId=new URLSearchParams(window.location.search).get("tempCartUUID"),F.doneInit)return;if(r(`====== ZONOS DEBUG MODE: on (${F.version}) ======`),F.zonosApiKey=p,F.storeId=u,"undefined"!=typeof window&&window.parent===window&&(F.googleAnalyticReady=!0,F.facebookPixelReady=!0),F.isNpm){r("====== ZONOS LOADING FROM NPM ======");const o=k();if(o&&!window.isZonosPreview){r(`====== RE-INJECT "zonos.js" FROM PRVIEW: ${o} ======`,"info");const t=document.createElement("script");return t.src=`${o}/dist/scripts/zonos.js`,document.head.appendChild(t),t.addEventListener("load",(()=>{window.Zonos.isNpm=F.isNpm,window.Zonos.isBigCommerce=F.isBigCommerce,window.Zonos.isLegacyCheckout=F.isLegacyCheckout,window.Zonos.zonosMode=F.zonosMode,window.Zonos.init(e)})),t.addEventListener("error",(()=>{alert(`[ZONOS - loadZonos] Failed to load "loadZonos.js" from zonosQaUrl: ${o}`)})),void(window.isZonosPreview=!0)}if(!p&&!F.cartId)return void s("Zonos API key is required unless `tempCartUUID` is provided in url query params.");if(!F.cartData&&F.cartId){r("Initialize cart data");const e=await D(F.cartId);if(!e)return void s("Failed to get cart data");F.cartData=e.cartData,F.zonosApiKey=e.zonosApiKey,F.cartSettings=e.settings}const t=await(async()=>{const e=c(),o=d();if(!e&&!o||!window.Zonos.zonosApiKey)return null;if(r("[ZONOS - loadZonos] Attempt test public credential","info"),window.Zonos.zonosApiKey.includes("credential_test"))return r("[ZONOS - loadZonos] Test mode is enabled but the API key is already a test key","info"),null;const{errors:t,json:n}=await z("/api/get-test-public-credential");if(t.length||!n)return s("[ZONOS - loadZonos] Failed to get test public credential. Keep using production key",t),null;const i=n.publicCredential;return i?(r(`[ZONOS - loadZonos] Retrieve new test public token ${i}`,"info"),i):(s("[ZONOS - loadZonos] No test public key credential. Keep using production key"),null)})();t&&(F.zonosApiKey=t)}const m=new URL(window.location.href).searchParams.get("payment_intent_client_secret")||sessionStorage.getItem("zonos--client-secret");if(F.cartId&&F.cartData||!!m){r("Cart data or stripe client secret is available, inject hidden button and trigger checkout");const e=document.createElement("button");e.style.display="none",e.id="zonos--checkout-hidden-button",document.body.appendChild(e)}r("init zonos"),F.restoreNativeBrowserFunctions(),F.injectCustomScriptForHostedCheckout(),F.injectZonosCdn(),F.injectZonosCss(),F.injectFonts(),F.injectCheckoutInternationalButton(),F.injectController({config:{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l}}),F.doneInit=!0},G.injectCheckoutInternationalButton=()=>{if(!document.querySelector(`#${R}`)){const e=document.createElement("button");e.id=R,e.style.display="none",document.body.appendChild(e)}},G.injectCustomScriptForHostedCheckout=()=>{const e=F.cartData,o=(null==e?void 0:e.metadata)||[],t=o.find((e=>"customHeaderScript"===e.key)),n=o.find((e=>"customFooterScript"===e.key));if(window.Zonos.isLegacyCheckout&&(t||n)){if(t){r("Injecting custom header script");const e=document.createElement("script");e.textContent=t.value,document.head.appendChild(e)}if(n){r("Injecting custom footer script");const e=document.createElement("script");e.textContent=n.value,document.body.appendChild(e)}}else r("Skip injecting custom script for hosted checkout","info",{footerScript:n,headerScript:t,isLegacyCheckout:window.Zonos.isLegacyCheckout})},G.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},G.triggerCheckoutInternational=async()=>{const e=document.querySelector(`#${R}`);setTimeout((()=>{var o;e&&e.dispatchEvent(new CustomEvent("click",{detail:o}))}),10)},G.openHelloDialog=e=>{const o=document.querySelector("zonos-hello");o&&o.openHelloDialog(null==e||e)},G.showNotification=e=>{var o;null===(o=F.zonosController)||void 0===o||o.showNotification(e)},G.updateOrganizationName=e=>{var o;null===(o=F.zonosController)||void 0===o||o.updateOrganizationName(e)},G.disablePlaceOrderButtons=({autoEnable:e=!0,config:o,disable:t,placeOrderButtonSelector:n})=>{var r;if(!(null===(r=o.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&n){const o=document.querySelectorAll(n),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};o.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(t?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&t&&setTimeout((()=>{o.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},G.restoreNativeBrowserFunctions=()=>{var e;if("1"===new URL(window.location.href).searchParams.get("useMerchantPolyfill"))return;const o="zonos---native-browser";let t=document.querySelector(`iframe#${o}`);t||(t=document.createElement("iframe"),t.id=o,t.style.display="none",t.style.opacity="0",t.style.position="absolute",t.style.top="-9999px",t.style.left="-9999px",t.style.width="1px",t.style.height="1px",t.style.border="none",t.style.overflow="hidden",t.style.visibility="hidden",document.body.appendChild(t));const n=(null===(e=t.contentWindow)||void 0===e?void 0:e.window.Array.from)||Array.from;Array.from=n,document.body.removeChild(t)},G.injectController=({config:e})=>{var o,t;if(document.querySelector("zonos-controller"))return;if(null===(o=e.checkoutSettings)||void 0===o?void 0:o.placeOrderButtonSelector){const o=e.checkoutSettings.placeOrderButtonSelector;F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}if(null===(t=e.checkoutSettings)||void 0===t?void 0:t.alwaysTriggerInternationalCheckoutSelector){const o=e.checkoutSettings.alwaysTriggerInternationalCheckoutSelector;F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}const n=document.createElement("zonos-controller");n.config=e,n.zonosApiKey=F.zonosApiKey||"",n.addEventListener("stripeInitEvent",(async e=>{const{detail:o}=e;r("loading Stripe");const t=await(async(...e)=>{E=!0;const o=Date.now();return A.then((t=>((e,o,t)=>{if(null===e)return null;const n=e.apply(void 0,o);return((e,o)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:o})})(n,t),n})(t,e,o)))})(o.publishableKey);t?(window.Zonos.stripe=t,window.Zonos.isCollect?n.initCollectElement(t):window.Zonos.isInvoice?n.initInvoiceElement(t):n.initCheckoutElement(t)):s("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(n),F.zonosController=n,r("Zonos controller injected!")},G.injectScript=({cdnType:e,isModule:o,theRestUrl:t})=>{const n=`${F.getZonosUrl(e)}/${t}`;if(document.querySelector(`script[src="${n}"]`))return void r(`Zonos script "${n}" already exists in the document`,"warn");const i=document.head||document.body,a=document.createElement("script");o?a.type="module":a.noModule=!0,a.src=n,a.crossOrigin="anonymous",a.onerror=()=>{s(`Failed to load ${a.src}`);const n=l(e);n&&F.injectScript({cdnType:n,isModule:o,theRestUrl:t})},i.appendChild(a)},G.getZonosUrl=e=>{const o=()=>{switch(e){case"jsdelivr":return q;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.272";case"cdnjs":return"https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.3.272";case"vercel":return B}};if(F.isNpm){return k()||o()}return o()},G.injectZonosCdn=()=>{F.injectScript({cdnType:a,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),F.injectScript({cdnType:a,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),r("Zonos cdn script injected!")},G.injectStylesheet=({cdnType:e,theRestUrl:o})=>{const t=F.getZonosUrl(e),n=document.head||document.body,r=document.createElement("link");r.rel="preconnect",r.href=`${B}/`,n.appendChild(r);const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/${o}`,i.onerror=()=>{s(`Failed to load ${i.href}`);const t=l(e);t&&F.injectStylesheet({cdnType:t,theRestUrl:o})},n.appendChild(i)},G.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?r("Zonos style links already injected","warn"):(F.injectStylesheet({cdnType:a,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),r("Zonos style css injected!"))},G.injectFonts=()=>{if((()=>{if(document.fonts.check("1em Inter"))return void r("Inter font already loaded","warn");const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${W}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&!K.test(t.href))return t}return null})())return void r("Inter font already injected","warn");const e=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=W,e.appendChild(o);const t=document.createElement("link");t.rel="stylesheet",t.href=`${W}/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap`,e.appendChild(t),r("Zonos font injected!")},G.setupGoogleFont=e=>{var o;null===(o=F.zonosController)||void 0===o||o.setupGoogleFont(e)},G.injectSupportGoogleFont=e=>{var o;r(`[FONT] injecting ${e}`);const t=null===(o=e.match(/family=(.*?):/))||void 0===o?void 0:o[1],n=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${W}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=W,n.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${e}"]`))return void r(`[FONT] ${t} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=e,n.appendChild(s),r(`[FONT] ${t} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=G)})();
1
+ (function(){"use strict";const e=({id:e,payload:o,target:t,type:n})=>{var r;t instanceof HTMLIFrameElement?null===(r=t.contentWindow)||void 0===r||r.postMessage({id:e,payload:o,type:n},"*"):t.postMessage({id:e,payload:o,type:n},"*")};class o{constructor(o,t){this.targetElement=o,this.targetId=t,this.sendMessage=(o,t)=>{e({id:this.targetId,payload:t,target:this.targetElement,type:o})}}}o.iframeServices={GOOGLE_PLACES:"zonos--private-iframe-google-places-service-m9bmuh7g"},o.sendMessage=e,o.injectPrivateIframe=({id:e,onload:o,src:t})=>{const n=document.createElement("iframe");return n.src=t,n.id=e,n.style.display="none",n.role="presentation",n.ariaHidden="true",n.tabIndex=-1,n.style.border="none !important",n.style.margin="0px !important",n.style.padding="0px !important",n.style.width="1px !important",n.style.minWidth="100% !important",n.style.overflow="hidden !important",n.style.display="block !important",n.style.visibility="hidden !important",n.style.position="fixed !important",n.style.pointerEvents="none !important",n.style.userSelect="none !important",n.style.height="1px !important",n.onload=()=>o(n),document.body.appendChild(n),n};const t=performance.now(),n=e=>{if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(o){if(e&&"function"==typeof e.toString){return e.toString()}return"Unable to stringify info"}},r=(e,o,...r)=>{var s,i;const{elapsedTimePretty:a}=(()=>{const e=performance.now()-t,o=e>1e3?`${(e/1e3).toFixed(2)}s`:`${e.toFixed(2)}ms`;return{elapsedTime:e,elapsedTimePretty:o}})(),l=[`(${a})`,...r];l.map(n).join(" ");if(!(!!(null===(s=window.Zonos)||void 0===s?void 0:s.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return;let d=document.querySelector("iframe#zonos---debug-logging-iframe");d||(d=document.createElement("iframe"),d.id="zonos---debug-logging-iframe",d.style.display="none",d.style.opacity="0",d.style.position="absolute",d.style.top="-9999px",d.style.left="-9999px",d.style.width="1px",d.style.height="1px",d.style.border="none",d.style.overflow="hidden",d.style.visibility="hidden",document.body.appendChild(d));const c=(null===(i=d.contentWindow)||void 0===i?void 0:i.window.console)||window.console;switch(o){case"warn":c.warn(e,...l);break;case"info":c.info(e,...l);break;case"error":c.error(e,...l);break;default:c.groupCollapsed(e,...l),c.trace(),c.groupEnd()}},s=(e,...o)=>{r(e,"error",...o)},i=["jsdelivr","cdnjs","unpkg","vercel"],a="jsdelivr",l=e=>{const o=i.indexOf(e);return i[o+1]||null},d=()=>window.location.search.includes("zonosStagingMode=1"),c=()=>{var e;return(null===(e=window.Zonos.zonosApiKey)||void 0===e?void 0:e.includes("test"))||window.location.search.includes("zonosTestMode=1")};function u(e,o){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)o.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(t[n[r]]=e[n[r]])}return t}"function"==typeof SuppressedError&&SuppressedError;const p=["cloudflare","vercel"],m=p[0],w={cloudflare:"https://route.elements.zonos.com",vercel:"https://route.js.zonos.com"},h=w[m],y=(e=m)=>{const o=p.indexOf(e),t=p[o+1];return t||null},g=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(e){return null}return null},f=()=>{const e="userAgentData"in window.navigator?window.navigator.userAgentData:null,o=(()=>{const e="connection"in window.navigator?window.navigator.connection:null,o="mozConnection"in window.navigator?window.navigator.mozConnection:null,t="webkitConnection"in window.navigator?window.navigator.webkitConnection:null;return e||o||t})();return{connectionDownlink:null==o?void 0:o.downlink,connectionEffectiveType:null==o?void 0:o.effectiveType,connectionRtt:null==o?void 0:o.rtt,connectionSaveData:null==o?void 0:o.saveData,isHostedCheckout:window.Zonos.isLegacyCheckout,screenHeight:window.screen.height,screenWidth:window.innerWidth,userAgent:e&&e.brands.length>0?e:window.navigator.userAgent}},v=["/api/zonos-elements/log-script-load","/api/zonos-elements/log-bulk-load-data"],b=async({response:e,shouldLog:o=!0,shouldThrow:t=!1})=>{try{const o=await e.text(),t=g(o);if(!t)throw new Error(`Failed to parse content: ${o}`);return t}catch(e){if(t)throw e;return o&&console.error(e),null}},S=async({basePathType:e,options:o,path:t})=>{let n;const r=window.Zonos.zonosQaUrlApi||w[e]||m,s=new URL(r+t),i=window.Zonos.cartId?`${window.location.hostname}-${window.Zonos.cartId}`:window.location.hostname;s.searchParams.set("zToken",(e=>{try{return btoa(e).replace(/=/g,"")}catch(o){return e.replace(/[^A-Za-z0-9]/g,"").split("").reverse().join("")}})(i));try{n=await fetch(s.toString(),o)}catch(e){if(e instanceof Error)return{baseUrl:r,errors:[{message:e.message,type:"unknown"}],json:null,response:null,zonosMode:null};return{baseUrl:r,errors:[{message:"Failed to fetch",type:"unknown"}],json:null,response:null,zonosMode:null}}const a=n.headers.get("Zonos-Mode"),l=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&a&&l&&(window.Zonos.modeAlerted=!0),n.ok){return{baseUrl:r,errors:[],json:await b({response:n}),response:n,zonosMode:a}}const d=n.status.toString();try{const e=await b({response:n,shouldThrow:!0});if(e&&"errors"in e&&Array.isArray(e.errors)){const o=e.errors;return{baseUrl:r,errors:o.map((e=>"string"==typeof e?{message:e,type:d}:e)),json:null,response:n,zonosMode:a}}return{baseUrl:r,errors:[{message:JSON.stringify(e),type:d}],json:null,response:n,zonosMode:a}}catch(e){return{baseUrl:r,errors:[{message:`${d}: ${"Unknown error"}`,type:d}],json:null,response:null,zonosMode:a}}},C=async({basePathType:e,options:o,path:t})=>{var n,s;const i=t.startsWith("/api/bigcommerce")?"vercel":e,a=performance.now(),l=await S({basePathType:i,options:o,path:t}),{errors:d,response:c}=l,p=u(l,["errors","response"]),m=performance.now()-a;r(`${t} (${m.toFixed(2)}ms)`,"info");const b=null==c?void 0:c.headers.get("Zonos-Duration");200===(null==c?void 0:c.status)&&(({apiPath:e,apiType:o,loadTimeInternal:t,loadTimeTotal:n})=>{if(v.includes(e))return;const r=n-t;if(r<0)return;const s=e.split("?")[0]||e,i=f(),a="object"==typeof i.userAgent&&i.userAgent.mobile,l={apiType:o,connectionType:i.connectionEffectiveType,href:s,isHostedCheckout:window.Zonos.isLegacyCheckout,isMobile:(d=a,d||window.innerWidth<890),loadTimeBrowserApi:r,loadTimeInternal:t,loadTimeTotal:n,metadata:Object.assign({},i),screenHeight:i.screenHeight,screenWidth:i.screenWidth,userAgent:"string"==typeof i.userAgent?i.userAgent:i.userAgent.brands.map((e=>e.brand)).filter((e=>!/Not.*A.*Brand.*/.test(e))).join(",")};var d;window.Zonos.loadTimeApiInfoList.push(l)})({apiPath:t,apiType:i,loadTimeInternal:b?Number(b):0,loadTimeTotal:m});const z=y(i),k=d.find((({type:e})=>"unknown"===e)),Z=d.find((({message:e})=>"string"==typeof e&&(e.includes("signal is aborted")||e.includes("The operation was aborted")||e.includes("Fetch is aborted")))),j=!!k||404===(null==c?void 0:c.status)||500===(null==c?void 0:c.status),I=z&&j;return j&&!Z&&(async({endpoint:e,errors:o,metadata:t,shouldPostReleaseErrorReporting:n})=>{r("sendErrorLog","warn",e,t,o);{const e=Number(window.Zonos.releaseDate);if((new Date).getTime()-e>36e5)return}const s="userAgentData"in window.navigator?window.navigator.userAgentData:null,i={endpoint:e,errors:o,href:window.location.href,metadata:Object.assign({appVersion:window.Zonos.version,domain:window.Zonos.domain,publicCredential:window.Zonos.zonosApiKey,userAgent:s&&s.brands.length>0?s:window.navigator.userAgent},t)};try{fetch(`${h}/api/zonos-elements/log-error`,{body:JSON.stringify(i),headers:{"Zonos-Referer":window.location.hostname},method:"POST"})}catch(e){const o=y();if(!o)return;fetch(`${w[o]}/api/zonos-elements/log-error`,{body:JSON.stringify(i),method:"POST"})}})({endpoint:w[i]+t,errors:d.map((({message:e})=>`API: ${e}`)),metadata:{currentBasePath:i,nextFallbackApiType:z,requestHeaders:null==o?void 0:o.headers,requestPayload:g(null===(n=null==o?void 0:o.body)||void 0===n?void 0:n.toString())||(null===(s=null==o?void 0:o.body)||void 0===s?void 0:s.toString()),shouldCallFallback:I,status:null==c?void 0:c.status,statusText:null==c?void 0:c.statusText},shouldPostReleaseErrorReporting:!0}),I?(r(`=== "${t}" failed to fetch, trying next fallback ${z}`),C({basePathType:z,options:o,path:t})):Object.assign({errors:d,response:c},p)},z=async(e,o)=>{const t=u(o||{},[]),n=t.body?JSON.stringify(t.body):void 0,r=t.method||"GET",s=Object.assign({"Content-Type":"application/json","Zonos-Is-BigCommerce":window.Zonos.isBigCommerce.toString(),"Zonos-Referer":window.location.hostname,"Zonos-Staging-Mode":d()?"1":void 0,"Zonos-Test-Mode":c()?"1":void 0,"Zonos-Version":window.Zonos.version,credentialtoken:window.Zonos.zonosApiKey||"Empty credential token from zonos-elements"},t.headers);Object.keys(s).forEach((e=>void 0===s[e]&&delete s[e]));const i=Object.assign(Object.assign({},t),{body:"GET"===r?void 0:n,headers:s,method:r}),a=new URLSearchParams(window.location.search).get("useFallbackApi");return C({basePathType:a||m,options:i,path:e})},k=()=>{const e=window&&window.location.href.includes("forceLoadCdn");if("undefined"==typeof window||e)return null;const o=(e=>{if(!e)return null;const o=new URL(e).searchParams.get("zonosQaUrl");return o?/[^a-zA-Z0-9-_]+/.test(o)?null:o:null})(window.location.href),t="https://v1.3.273.js.zonos.com";if(!o&&(t.includes("test.")||t.includes("test-")))return t;if(!o&&["dev.demo.elements.zonos.com","dev.checkout.elements.zonos.com","dev.storybook.elements.zonos.com"].includes(window.location.hostname))return"https://dev.elements.zonos.com";if(!o)return null;if("dev-elements"===o)return"https://dev.elements.zonos.com";const n=`https://${o}.preview.js.zonos.com`;return r(`[ZONOS-WARNING] using '${n}' for loading elements script`,"warn"),fetch(n).then((()=>{window.sessionStorage.removeItem("zonos--checkout-session-id"),window.sessionStorage.removeItem("zonos--client-secret")})).catch((()=>{alert(`[ZONOS-WARNING] '${n}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);const e=new URLSearchParams(window.location.search);e.delete("zonosQaUrl");const{pathname:o}=window.location,t=`${o}?${e.toString()}`;return window.history.replaceState(window.history.state,"",t),window.location.reload(),null})),n},Z="https://js.stripe.com/v3",j=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;let I=null;const O=e=>(null!==I||(I=new Promise(((o,t)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe)o(window.Stripe);else try{let n=(()=>{const e=document.querySelectorAll(`script[src^="${Z}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&j.test(t.src))return t}return null})();n&&e?console.warn("loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used"):n||(n=(e=>{const o=document.createElement("script");o.src=`${Z}`;const t=document.head||document.body;return t?(t.appendChild(o),o):(s("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==n||n.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):t(new Error("Stripe.js not available"))})),null==n||n.addEventListener("error",(()=>{t(new Error("Failed to load Stripe.js"))}))}catch(e){return void t(e)}else o(null)}))),I),A=Promise.resolve().then((()=>O(null)));let E=!1;A.catch((e=>{E||console.warn(e)}));const T=async({cartId:e,retries:o})=>{const t=c(),n=(()=>{const e=new URLSearchParams(window.location.search);return{overrideShouldEnabledCustomAddress:window.Zonos.overrideUseCustomAddressForm?"1":e.get("overrideShouldEnabledCustomAddress")}})(),s=(()=>{const e=new URLSearchParams(window.location.search).get("validityToken");if(!e||!/^[A-Za-z0-9+/]+={0,2}$/.test(e)||e.length%4!=0)return null;try{return atob(e),e}catch(e){return null}})()||void 0,i=new URLSearchParams;n.overrideShouldEnabledCustomAddress&&i.set("overrideShouldEnabledCustomAddress",n.overrideShouldEnabledCustomAddress);const{errors:a,json:l,zonosMode:d}=await z(`/api/zonos-elements/get-cart?${i.toString()}`,{body:{isTestMode:t,renewCartExpirationToken:s,tempCartUUID:e},headers:{"Content-Type":"application/json"},method:"POST"}),u=!l||a.length;return u&&o?(r("[ZONOS - loadZonos] temp cart not ready, retrying in 1 second","info",{retries:o}),await new Promise((e=>setTimeout(e,500))),T({cartId:e,retries:o-1})):u?null:Object.assign(Object.assign({},l),{zonosMode:d})},L=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/,P=new RegExp(`^${L.source}$`),$=new RegExp(`^cart_${L.source}$`),U=/^[a-zA-Z0-9]{2,}$/,N=/^cart_[a-zA-Z0-9]{2,}$/,D=async e=>{const{isDgsCartId:o,isLegacyCartId:t}=(e=>e?e.includes("undefined")?{isDgsCartId:!1,isLegacyCartId:!1}:N.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:U.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:$.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:P.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:{isDgsCartId:!1,isLegacyCartId:!1}:{isDgsCartId:!1,isLegacyCartId:!1})(e);if(!t&&!o)return s("[ZONOS - loadZonos] invalid cart id"),null;const n=await T({cartId:e,retries:5});return r("[ZONOS - loadZonos] getting temp cart data","info",n),n?(window.Zonos.storeId=n.cartData.storeId,window.Zonos.zonosApiKey=n.cartData.credentialToken,window.Zonos.zonosMode=n.zonosMode,{cartData:n.cartData,settings:n.settings,storeFavicon:n.storeFaviconUrl,storeId:n.cartData.storeId,storeLogo:n.storeLogoUrl,zonosApiKey:n.cartData.credentialToken}):(s("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),null)},R="zonos--checkout-hidden-international-button";var F;const x=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:o,isWhiteListed:t}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const o=new URL(e).origin,t=["dev.elements.zonos.com","dev.assets-checkout.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>o.includes(e))),n=["qa.js.zonos.com"].some((e=>o.includes(e)));return{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:t}})({loadScriptSrc:null==e?void 0:e.src});return t?o:null})(),M=Date.now(),B="https://v1.3.273.js.zonos.com",q=x||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.273",W="https://fonts.googleapis.com",K=/^https:\/\/fonts\.googleapis\.com/;class G{}F=G,G.doneInit=!1,G.cartSettings=null,G.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),G.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),G._paypalMockResponse=null,G.iframeLogType="undefined"!=typeof window?new URLSearchParams(window.location.search).get("iframeLogType"):null,G.isBigCommerce=!1,G.releaseDate="1782339114396",G.isLegacyCheckout=!1,G.googleAnalyticId=null,G.googleAnalyticReady=!1,G.facebookPixelId=null,G.facebookPixelReady=!1,G.startLoadTime=M,G.domain="undefined"!=typeof window?window.location!=window.parent.location&&document.referrer||document.location.hostname:"",G.showBaseForeign="undefined"!=typeof window&&window.location.search.includes("zonosShowBaseForeign"),G.overrideUseCustomAddressForm=!1,G.isCollect=!1,G.isInvoice=!1,G.isNpm=!0,G.zonosQaUrl=null,G.zonosQaUrlApi=null,G.trackEventLogs=[],G.version="v1.3.273",G.modeAlerted=!1,G.cartData=null,G.paypal=null,G.zonosMode=null,G.IframeService=o,G.getCurrentTimestamp=()=>(new Date).getTime(),G.zonosController=null,G.loadTimeApiInfoList=[],G.logIntervalId=null,G.init=async e=>{const{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l,storeId:u,zonosApiKey:p}=e;if(F.cartId=new URLSearchParams(window.location.search).get("tempCartUUID"),F.doneInit)return;if(r(`====== ZONOS DEBUG MODE: on (${F.version}) ======`),F.zonosApiKey=p,F.storeId=u,"undefined"!=typeof window&&window.parent===window&&(F.googleAnalyticReady=!0,F.facebookPixelReady=!0),F.isNpm){r("====== ZONOS LOADING FROM NPM ======");const o=k();if(o&&!window.isZonosPreview){r(`====== RE-INJECT "zonos.js" FROM PRVIEW: ${o} ======`,"info");const t=document.createElement("script");return t.src=`${o}/dist/scripts/zonos.js`,document.head.appendChild(t),t.addEventListener("load",(()=>{window.Zonos.isNpm=F.isNpm,window.Zonos.isBigCommerce=F.isBigCommerce,window.Zonos.isLegacyCheckout=F.isLegacyCheckout,window.Zonos.zonosMode=F.zonosMode,window.Zonos.init(e)})),t.addEventListener("error",(()=>{alert(`[ZONOS - loadZonos] Failed to load "loadZonos.js" from zonosQaUrl: ${o}`)})),void(window.isZonosPreview=!0)}if(!p&&!F.cartId)return void s("Zonos API key is required unless `tempCartUUID` is provided in url query params.");if(!F.cartData&&F.cartId){r("Initialize cart data");const e=await D(F.cartId);if(!e)return void s("Failed to get cart data");F.cartData=e.cartData,F.zonosApiKey=e.zonosApiKey,F.cartSettings=e.settings}const t=await(async()=>{const e=c(),o=d();if(!e&&!o||!window.Zonos.zonosApiKey)return null;if(r("[ZONOS - loadZonos] Attempt test public credential","info"),window.Zonos.zonosApiKey.includes("credential_test"))return r("[ZONOS - loadZonos] Test mode is enabled but the API key is already a test key","info"),null;const{errors:t,json:n}=await z("/api/get-test-public-credential");if(t.length||!n)return s("[ZONOS - loadZonos] Failed to get test public credential. Keep using production key",t),null;const i=n.publicCredential;return i?(r(`[ZONOS - loadZonos] Retrieve new test public token ${i}`,"info"),i):(s("[ZONOS - loadZonos] No test public key credential. Keep using production key"),null)})();t&&(F.zonosApiKey=t)}const m=new URL(window.location.href).searchParams.get("payment_intent_client_secret")||sessionStorage.getItem("zonos--client-secret");if(F.cartId&&F.cartData||!!m){r("Cart data or stripe client secret is available, inject hidden button and trigger checkout");const e=document.createElement("button");e.style.display="none",e.id="zonos--checkout-hidden-button",document.body.appendChild(e)}r("init zonos"),F.restoreNativeBrowserFunctions(),F.injectCustomScriptForHostedCheckout(),F.injectZonosCdn(),F.injectZonosCss(),F.injectFonts(),F.injectCheckoutInternationalButton(),F.injectController({config:{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l}}),F.doneInit=!0},G.injectCheckoutInternationalButton=()=>{if(!document.querySelector(`#${R}`)){const e=document.createElement("button");e.id=R,e.style.display="none",document.body.appendChild(e)}},G.injectCustomScriptForHostedCheckout=()=>{const e=F.cartData,o=(null==e?void 0:e.metadata)||[],t=o.find((e=>"customHeaderScript"===e.key)),n=o.find((e=>"customFooterScript"===e.key));if(window.Zonos.isLegacyCheckout&&(t||n)){if(t){r("Injecting custom header script");const e=document.createElement("script");e.textContent=t.value,document.head.appendChild(e)}if(n){r("Injecting custom footer script");const e=document.createElement("script");e.textContent=n.value,document.body.appendChild(e)}}else r("Skip injecting custom script for hosted checkout","info",{footerScript:n,headerScript:t,isLegacyCheckout:window.Zonos.isLegacyCheckout})},G.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},G.triggerCheckoutInternational=async()=>{const e=document.querySelector(`#${R}`);setTimeout((()=>{var o;e&&e.dispatchEvent(new CustomEvent("click",{detail:o}))}),10)},G.openHelloDialog=e=>{const o=document.querySelector("zonos-hello");o&&o.openHelloDialog(null==e||e)},G.showNotification=e=>{var o;null===(o=F.zonosController)||void 0===o||o.showNotification(e)},G.updateOrganizationName=e=>{var o;null===(o=F.zonosController)||void 0===o||o.updateOrganizationName(e)},G.disablePlaceOrderButtons=({autoEnable:e=!0,config:o,disable:t,placeOrderButtonSelector:n})=>{var r;if(!(null===(r=o.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&n){const o=document.querySelectorAll(n),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};o.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(t?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&t&&setTimeout((()=>{o.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},G.restoreNativeBrowserFunctions=()=>{var e;if("1"===new URL(window.location.href).searchParams.get("useMerchantPolyfill"))return;const o="zonos---native-browser";let t=document.querySelector(`iframe#${o}`);t||(t=document.createElement("iframe"),t.id=o,t.style.display="none",t.style.opacity="0",t.style.position="absolute",t.style.top="-9999px",t.style.left="-9999px",t.style.width="1px",t.style.height="1px",t.style.border="none",t.style.overflow="hidden",t.style.visibility="hidden",document.body.appendChild(t));const n=(null===(e=t.contentWindow)||void 0===e?void 0:e.window.Array.from)||Array.from;Array.from=n,document.body.removeChild(t)},G.injectController=({config:e})=>{var o,t;if(document.querySelector("zonos-controller"))return;if(null===(o=e.checkoutSettings)||void 0===o?void 0:o.placeOrderButtonSelector){const o=e.checkoutSettings.placeOrderButtonSelector;F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}if(null===(t=e.checkoutSettings)||void 0===t?void 0:t.alwaysTriggerInternationalCheckoutSelector){const o=e.checkoutSettings.alwaysTriggerInternationalCheckoutSelector;F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{F.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}const n=document.createElement("zonos-controller");n.config=e,n.zonosApiKey=F.zonosApiKey||"",n.addEventListener("stripeInitEvent",(async e=>{const{detail:o}=e;r("loading Stripe");const t=await(async(...e)=>{E=!0;const o=Date.now();return A.then((t=>((e,o,t)=>{if(null===e)return null;const n=e.apply(void 0,o);return((e,o)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:o})})(n,t),n})(t,e,o)))})(o.publishableKey);t?(window.Zonos.stripe=t,window.Zonos.isCollect?n.initCollectElement(t):window.Zonos.isInvoice?n.initInvoiceElement(t):n.initCheckoutElement(t)):s("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(n),F.zonosController=n,r("Zonos controller injected!")},G.injectScript=({cdnType:e,isModule:o,theRestUrl:t})=>{const n=`${F.getZonosUrl(e)}/${t}`;if(document.querySelector(`script[src="${n}"]`))return void r(`Zonos script "${n}" already exists in the document`,"warn");const i=document.head||document.body,a=document.createElement("script");o?a.type="module":a.noModule=!0,a.src=n,a.crossOrigin="anonymous",a.onerror=()=>{s(`Failed to load ${a.src}`);const n=l(e);n&&F.injectScript({cdnType:n,isModule:o,theRestUrl:t})},i.appendChild(a)},G.getZonosUrl=e=>{const o=()=>{switch(e){case"jsdelivr":return q;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.273";case"cdnjs":return"https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.3.273";case"vercel":return B}};if(F.isNpm){return k()||o()}return o()},G.injectZonosCdn=()=>{F.injectScript({cdnType:a,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),F.injectScript({cdnType:a,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),r("Zonos cdn script injected!")},G.injectStylesheet=({cdnType:e,theRestUrl:o})=>{const t=F.getZonosUrl(e),n=document.head||document.body,r=document.createElement("link");r.rel="preconnect",r.href=`${B}/`,n.appendChild(r);const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/${o}`,i.onerror=()=>{s(`Failed to load ${i.href}`);const t=l(e);t&&F.injectStylesheet({cdnType:t,theRestUrl:o})},n.appendChild(i)},G.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?r("Zonos style links already injected","warn"):(F.injectStylesheet({cdnType:a,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),r("Zonos style css injected!"))},G.injectFonts=()=>{if((()=>{if(document.fonts.check("1em Inter"))return void r("Inter font already loaded","warn");const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${W}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&!K.test(t.href))return t}return null})())return void r("Inter font already injected","warn");const e=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=W,e.appendChild(o);const t=document.createElement("link");t.rel="stylesheet",t.href=`${W}/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap`,e.appendChild(t),r("Zonos font injected!")},G.setupGoogleFont=e=>{var o;null===(o=F.zonosController)||void 0===o||o.setupGoogleFont(e)},G.injectSupportGoogleFont=e=>{var o;r(`[FONT] injecting ${e}`);const t=null===(o=e.match(/family=(.*?):/))||void 0===o?void 0:o[1],n=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${W}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=W,n.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${e}"]`))return void r(`[FONT] ${t} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=e,n.appendChild(s),r(`[FONT] ${t} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=G)})();
@@ -0,0 +1,46 @@
1
+ import { type EventEmitter } from '../../../stencil-public-runtime';
2
+ export declare class ZonosAirwallexPayment {
3
+ private element;
4
+ private storeUnsubscribeList;
5
+ /** Client secret currently being mounted, to avoid overlapping mounts. */
6
+ private mountingClientSecret;
7
+ el: HTMLZonosAirwallexPaymentElement;
8
+ /**
9
+ * Whether the SDK failed to load or the element failed to mount.
10
+ */
11
+ hasError: boolean;
12
+ /**
13
+ * Mirror of the store client secret so the element (re)mounts once it becomes
14
+ * available. The client secret is fetched asynchronously and is usually not yet
15
+ * set when this component first mounts.
16
+ */
17
+ clientSecret: string | null;
18
+ /**
19
+ * Emitted when the Airwallex payment intent is confirmed successfully.
20
+ */
21
+ airwallexPaymentSuccess: EventEmitter<void>;
22
+ /**
23
+ * Emitted when the Airwallex payment fails.
24
+ */
25
+ airwallexPaymentError: EventEmitter<void>;
26
+ /**
27
+ * (Re)mount the payment element whenever the client secret becomes available
28
+ * or changes.
29
+ */
30
+ clientSecretWatcher(): void;
31
+ /**
32
+ * Build the full set of drop-in options. The SDK's `element.update` requires the
33
+ * first argument to contain the most up-to-date version of everything that was
34
+ * originally passed to `createElement`, so both calls share this.
35
+ */
36
+ private getDropInOptions;
37
+ private mountPaymentElement;
38
+ /**
39
+ * Update the mounted element's locale whenever the shopper changes language.
40
+ */
41
+ private localeChangeHandler;
42
+ componentWillLoad(): void;
43
+ componentDidLoad(): void;
44
+ disconnectedCallback(): void;
45
+ render(): any;
46
+ }
@@ -42,6 +42,13 @@ export declare class ZonosCollectFinish {
42
42
  private handleSuccessBehavior;
43
43
  private getPullOrder;
44
44
  private checkStripePaymentStatus;
45
+ /**
46
+ * Resolve the Airwallex payment intent id, preferring the value already in the
47
+ * store and falling back to re-fetching the collect checkout session (e.g. when
48
+ * the page was reloaded after a redirect).
49
+ */
50
+ private getAirwallexSessionInfo;
51
+ private checkAirwallexPaymentStatus;
45
52
  private checkStagingOrderStatus;
46
53
  private checkPaypalPaymentStatus;
47
54
  private getReceiptUrl;
@@ -30,6 +30,10 @@ export declare class ZonosCollectPayment {
30
30
  * Event to emit when the paypal session is done
31
31
  */
32
32
  paypalSessionDone: EventEmitter<string>;
33
+ /**
34
+ * Event to emit when the Airwallex payment is completed successfully
35
+ */
36
+ airwallexPaymentDone: EventEmitter<void>;
33
37
  /**
34
38
  * Show error banner when the form is not complete, and user clicks on `Submit` button
35
39
  * @default false
@@ -73,10 +73,39 @@ export declare class ZonosCollect {
73
73
  */
74
74
  private setToFinishStep;
75
75
  private fetchCheckoutSession;
76
+ /**
77
+ * Determine which payment processor the collect session uses and initialize it.
78
+ *
79
+ * The checkout session returns the `paymentProcessor` (05CHECK-860). When it is
80
+ * `AIRWALLEX` we initialize the Airwallex SDK and render only the Airwallex
81
+ * payment element. Otherwise we fall back to the Stripe flow, which renders the
82
+ * Stripe billing info section + payment.
83
+ *
84
+ * If the Airwallex session already has a client secret but is not yet completed
85
+ * and has no order attached, we verify the live payment intent status first — if
86
+ * the payment already went through (e.g. the customer returned after a redirect)
87
+ * we jump straight to the finish step instead of rendering the payment form.
88
+ */
89
+ private initPaymentProcessor;
76
90
  /**
77
91
  * Check if stripe payment intent is succeeded or in a good state to move forward
78
92
  */
79
93
  private checkStripePaymentIntentStatus;
94
+ /**
95
+ * Recover the collect flow when updating the checkout session failed — which
96
+ * happens once the session is already completed/paid (e.g. the customer already
97
+ * submitted payment, so the update request is rejected). Without this we would
98
+ * drop straight to the error screen even though the payment went through.
99
+ *
100
+ * Fetches the session and, if it is completed or already has an order attached,
101
+ * jumps to the finish step. Otherwise it verifies the live payment intent status
102
+ * for the session's processor (Stripe or Airwallex) and routes to finish when
103
+ * the payment has gone through.
104
+ *
105
+ * @returns `true` when it routed to the finish step, `false` when the caller
106
+ * should treat the session as invalid.
107
+ */
108
+ private recoverCompletedCollectSession;
80
109
  private initCollectCart;
81
110
  private toggleLanguageDialog;
82
111
  private handleStripePaymentContinue;
@@ -0,0 +1,83 @@
1
+ import type { GetCollectCheckoutSessionResponse } from "../../../types/index";
2
+ import type { Locale_ElementsSupportedLocationCode_Enum } from "../../../types/generated/graphql.frontend.types";
3
+ /**
4
+ * Store for the Airwallex Collect payment flow (05CHECK-860).
5
+ *
6
+ * Holds the data needed to render the Airwallex payment element — the payment
7
+ * intent client secret + id returned on the checkout session — and lazily
8
+ * initializes the `@airwallex/components-sdk`.
9
+ */
10
+ type AirwallexStore = {
11
+ /** Airwallex payment intent client secret (from the checkout session). */
12
+ clientSecret: string | null;
13
+ /** Presentment currency used when mounting the element. */
14
+ currency: string | null;
15
+ /** Whether the payment element reported an error. */
16
+ hasPaymentError: boolean;
17
+ /** Whether the SDK has been loaded and initialized. */
18
+ isReady: boolean;
19
+ /**
20
+ * Whether the drop-in confirmed the payment in-widget this session. The finish
21
+ * step trusts this over a possibly-lagging payment intent status lookup so it
22
+ * doesn't show a false failure after the shopper already completed payment.
23
+ */
24
+ paymentConfirmed: boolean;
25
+ /** Airwallex payment intent id (from the checkout session). */
26
+ paymentIntentId: string | null;
27
+ };
28
+ declare const airwallexStoreOnChange: import("@stencil/store/dist/types").OnChangeHandler<AirwallexStore>, airwallexStoreReset: () => void, airwallexStore: AirwallexStore;
29
+ /**
30
+ * Populate the store from a collect checkout session response.
31
+ *
32
+ * @returns `true` when the session uses Airwallex and has the data required to
33
+ * render the payment element.
34
+ */
35
+ declare const airwallexStoreSetFromSession: (checkoutSession: GetCollectCheckoutSessionResponse["checkoutSession"]) => boolean;
36
+ /**
37
+ * Locales supported by the Airwallex SDK for both `init` and `element.update`.
38
+ * (Intersection of the two SDK locale unions so a single mapping works for both.)
39
+ */
40
+ type AirwallexLocale = 'ar' | 'da' | 'de' | 'en' | 'es' | 'fi' | 'fr' | 'id' | 'it' | 'ja' | 'ko' | 'ms' | 'nl' | 'pl' | 'pt' | 'ro' | 'ru' | 'sv' | 'zh' | 'zh-HK';
41
+ declare const airwallexStoreGetLocale: (locale: Locale_ElementsSupportedLocationCode_Enum) => AirwallexLocale;
42
+ /**
43
+ * Load and initialize the Airwallex components SDK (idempotent). Uses the `prod`
44
+ * environment only when the API is in production and the checkout mode is `LIVE`
45
+ * (mirrors how PayPal decides production vs. sandbox), otherwise `demo`, so the
46
+ * SDK environment matches the payment intents created by the checkout backend.
47
+ * Also uses the shopper's selected locale from localization.
48
+ *
49
+ * @returns `true` once the SDK is ready to create elements.
50
+ */
51
+ declare const airwallexStoreInitSdk: () => Promise<boolean>;
52
+ /**
53
+ * Airwallex payment intent statuses.
54
+ *
55
+ * Per the Airwallex docs this list is not exhaustive — the API may return other
56
+ * statuses — so the `(string & {})` member keeps the union open while preserving
57
+ * autocomplete for the known values.
58
+ * @see https://www.airwallex.com/docs/api/payments/payment_intents/create
59
+ */
60
+ type AirwallexPaymentIntentStatus = 'REQUIRES_PAYMENT_METHOD' | 'REQUIRES_CUSTOMER_ACTION' | 'PENDING_REVIEW' | 'REQUIRES_CAPTURE' | 'PENDING' | 'SUCCEEDED' | 'CANCELLED' | (string & {});
61
+ /**
62
+ * Whether the given status means the payment is settled or in progress (no
63
+ * further customer action required).
64
+ */
65
+ declare const airwallexStoreIsPaidStatus: (status: AirwallexPaymentIntentStatus | null) => boolean;
66
+ /**
67
+ * Map an Airwallex payment intent status to a customer-facing message and an
68
+ * error flag — the Airwallex equivalent of `stripeStoreMessageBasedOnStatus`.
69
+ * @see https://www.airwallex.com/docs/payments/reference/payment-statuses
70
+ */
71
+ declare const airwallexStoreMessageBasedOnStatus: (status?: AirwallexPaymentIntentStatus | null) => {
72
+ isError: boolean;
73
+ messages: string[];
74
+ };
75
+ /**
76
+ * Retrieve the latest Airwallex payment intent status by id.
77
+ *
78
+ * @returns the status, or `null` when the lookup failed.
79
+ */
80
+ declare const airwallexStoreRetrievePaymentIntent: (paymentIntentId: string) => Promise<{
81
+ status: AirwallexPaymentIntentStatus | null;
82
+ }>;
83
+ export { type AirwallexPaymentIntentStatus, airwallexStore, airwallexStoreGetLocale, airwallexStoreInitSdk, airwallexStoreIsPaidStatus, airwallexStoreMessageBasedOnStatus, airwallexStoreOnChange, airwallexStoreReset, airwallexStoreRetrievePaymentIntent, airwallexStoreSetFromSession, };
@@ -1,12 +1,23 @@
1
1
  import type { GetShippingInfoByLandedCostIdResponse } from "../../../types/index";
2
- import type { CheckoutSessionDetailsFragment } from "../../../types/generated/graphql.internal.types";
2
+ import type { CheckoutPaymentProcessorType, CheckoutSessionDetailsFragment } from "../../../types/generated/graphql.internal.types";
3
3
  type CollectStore = {
4
4
  amountDutyTaxFeeTotal: number | null;
5
5
  amountTotalPaid: number | null;
6
+ /**
7
+ * Optional Collect logo URL from the landed cost metadata. Overrides the
8
+ * default appearance logo in the UI when set. The company name comes from the
9
+ * origin party (`originCompanyName`).
10
+ */
11
+ collectLogoUrl: string | null;
6
12
  isFetchingShippingInfo: boolean;
7
13
  landedCostShortId: string | null;
8
14
  originCompanyName: string | null;
9
15
  partyBillingId: string | null;
16
+ /**
17
+ * Which payment processor the collect session uses (from the checkout session).
18
+ * `null` until the session has been fetched.
19
+ */
20
+ paymentProcessor: CheckoutPaymentProcessorType | null;
10
21
  shippingAddress: GetShippingInfoByLandedCostIdResponse['shipping'] | null;
11
22
  };
12
23
  declare const collectStoreReset: () => void, collectStore: CollectStore;
@@ -4,7 +4,7 @@ import type { CreatePartyRequest } from "../../../types/index";
4
4
  import type { CheckoutSessionCreateRequest, CheckoutSessionUpdateRequest } from "../../../types/checkout/api/CheckoutSession";
5
5
  import type { CustomAddressErrors } from "../../../types/checkout/form/CustomAddressErrors";
6
6
  import type { TranslatedAddressObject } from "../../../types/checkout/TranslatedText";
7
- import type { CheckoutSessionDetailsFragment, CheckoutSessionUpdateMutation, CurrencyCode, ElementsUiStyle, ElementsUiTheme } from "../../../types/generated/graphql.internal.types";
7
+ import { type CheckoutSessionDetailsFragment, type CheckoutSessionUpdateMutation, type CurrencyCode, type ElementsUiStyle, type ElementsUiTheme } from "../../../types/generated/graphql.internal.types";
8
8
  export type StripeStoreContactOption = {
9
9
  address: {
10
10
  city: string;
@@ -416,6 +416,9 @@ export declare const stringsArabic: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsArabic: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsBase: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsBase: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsChinese: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsChinese: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsDanish: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsDanish: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsDutch: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsDutch: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsFrench: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsFrench: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsGerman: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsGerman: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsHebrew: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsHebrew: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsIndonesian: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsIndonesian: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsItalian: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsItalian: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsJapanese: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsJapanese: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsKorean: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsKorean: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };
@@ -416,6 +416,9 @@ export declare const stringsNorwegian: {
416
416
  'Pay [organizationName]': {
417
417
  value: string;
418
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
419
422
  'Pay in USD (United States Dollar)?': {
420
423
  value: string;
421
424
  };
@@ -554,6 +557,9 @@ export declare const stringsNorwegian: {
554
557
  'Session timed out': {
555
558
  value: string;
556
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
557
563
  Shipping: {
558
564
  value: string;
559
565
  };