@zonos/elements 1.3.270 → 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 (356) hide show
  1. package/dist/cjs/{cart-3ff48a0e.js → cart-660e115c.js} +32 -2
  2. package/dist/cjs/collect-286a9d04.js +3107 -0
  3. package/dist/cjs/{hasInclusivePrice-aec06153.js → hasInclusivePrice-b35e81aa.js} +1 -1
  4. package/dist/cjs/index.cjs.js +7 -7
  5. package/dist/cjs/{invoice-ff716652.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-5c1c9c6a.js → localization-f4a64f6f.js} +245 -1
  9. package/dist/cjs/{paypal-c55b6c45.js → paypal-125259ab.js} +2 -2
  10. package/dist/cjs/{placeTestOrder-230f534b.js → placeTestOrder-02001a99.js} +2 -2
  11. package/dist/cjs/{renderCheckoutCurrency-e9d8efa8.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 +130 -20
  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-payment/zonos-checkout-payment.js +4 -1
  51. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +1 -1
  52. package/dist/collection/components/checkout/zonos-collect/zonos-collect-cart-items/zonos-collect-cart-items.js +1 -1
  53. package/dist/collection/components/checkout/zonos-collect/zonos-collect-finish/zonos-collect-finish.js +110 -2
  54. package/dist/collection/components/checkout/zonos-collect/zonos-collect-footer/zonos-collect-footer.js +3 -3
  55. package/dist/collection/components/checkout/zonos-collect/zonos-collect-order-details/zonos-collect-order-details.js +1 -1
  56. package/dist/collection/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.css +1 -17
  57. package/dist/collection/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.js +21 -0
  58. package/dist/collection/components/checkout/zonos-collect/zonos-collect-review/zonos-collect-review.js +3 -3
  59. package/dist/collection/components/checkout/zonos-collect/zonos-collect-subtotal/zonos-collect-subtotal.js +5 -5
  60. package/dist/collection/components/checkout/zonos-collect/zonos-collect.js +167 -29
  61. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-cart-items/zonos-invoice-cart-items.js +2 -2
  62. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-finish/zonos-invoice-finish.js +2 -2
  63. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-footer/zonos-invoice-footer.js +3 -3
  64. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-review/zonos-invoice-review.js +3 -3
  65. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-subtotal/zonos-invoice-subtotal.js +2 -2
  66. package/dist/collection/components/common/zonos-badge/zonos-badge.js +3 -3
  67. package/dist/collection/components/common/zonos-button/zonos-button.js +3 -3
  68. package/dist/collection/components/common/zonos-card/zonos-card.js +4 -4
  69. package/dist/collection/components/common/zonos-checkbox/zonos-checkbox.js +3 -3
  70. package/dist/collection/components/common/zonos-checkout-progress-tabs/zonos-checkout-progress-tabs.js +3 -3
  71. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +2 -2
  72. package/dist/collection/components/common/zonos-confirm-dialog/zonos-confirm-dialog.js +3 -3
  73. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +3 -3
  74. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +2 -2
  75. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +3 -3
  76. package/dist/collection/components/common/zonos-h-stack/zonos-h-stack.js +2 -2
  77. package/dist/collection/components/common/zonos-input/zonos-input.js +4 -4
  78. package/dist/collection/components/common/zonos-language-select/zonos-language-select.js +2 -2
  79. package/dist/collection/components/common/zonos-link/zonos-link.js +1 -1
  80. package/dist/collection/components/common/zonos-loading-overlay/zonos-loading-overlay.js +1 -1
  81. package/dist/collection/components/common/zonos-logo/zonos-logo.js +2 -2
  82. package/dist/collection/components/common/zonos-rest-state/zonos-rest-state.js +3 -3
  83. package/dist/collection/components/common/zonos-select-dialog-header/zonos-select-dialog-header.js +2 -2
  84. package/dist/collection/components/common/zonos-skeleton/zonos-skeleton.js +1 -1
  85. package/dist/collection/components/common/zonos-stripe-input/zonos-stripe-input.js +4 -4
  86. package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js +6 -6
  87. package/dist/collection/components/common/zonos-toggle/zonos-toggle.js +2 -2
  88. package/dist/collection/components/common/zonos-tooltip/zonos-tooltip.js +2 -2
  89. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +2 -2
  90. package/dist/collection/components/common/zonos-virtual-scroll/zonos-virtual-scroll.js +2 -2
  91. package/dist/collection/components/component-template/zonos-component/zonos-component.js +1 -1
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +2 -2
  93. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +4 -4
  94. package/dist/collection/components/main/zonos-controller.js +2 -2
  95. package/dist/collection/components/paypal/zonos-paypal-payment.js +1 -1
  96. package/dist/collection/components/store/checkout/airwallex.js +195 -0
  97. package/dist/collection/components/store/checkout/collect.js +4 -1
  98. package/dist/collection/components/store/checkout/euWithdrawalRate.js +40 -0
  99. package/dist/collection/components/store/checkout/stripe.js +26 -1
  100. package/dist/collection/components/store/hello/localization.js +3 -1
  101. package/dist/collection/components/store/translationStore/strings.arabic.js +12 -0
  102. package/dist/collection/components/store/translationStore/strings.base.js +12 -0
  103. package/dist/collection/components/store/translationStore/strings.chinese.js +12 -0
  104. package/dist/collection/components/store/translationStore/strings.danish.js +12 -0
  105. package/dist/collection/components/store/translationStore/strings.dutch.js +12 -0
  106. package/dist/collection/components/store/translationStore/strings.french.js +12 -0
  107. package/dist/collection/components/store/translationStore/strings.german.js +12 -0
  108. package/dist/collection/components/store/translationStore/strings.hebrew.js +12 -0
  109. package/dist/collection/components/store/translationStore/strings.indonesian.js +12 -0
  110. package/dist/collection/components/store/translationStore/strings.italian.js +12 -0
  111. package/dist/collection/components/store/translationStore/strings.japanese.js +12 -0
  112. package/dist/collection/components/store/translationStore/strings.korean.js +12 -0
  113. package/dist/collection/components/store/translationStore/strings.norwegian.js +12 -0
  114. package/dist/collection/components/store/translationStore/strings.polish.js +12 -0
  115. package/dist/collection/components/store/translationStore/strings.portuguese.js +12 -0
  116. package/dist/collection/components/store/translationStore/strings.russian.js +12 -0
  117. package/dist/collection/components/store/translationStore/strings.spanish.js +12 -0
  118. package/dist/collection/components/store/translationStore/strings.swedish.js +12 -0
  119. package/dist/collection/components/store/translationStore/strings.turkish.js +12 -0
  120. package/dist/collection/components/store/translationStore/strings.vietnamese.js +12 -0
  121. package/dist/collection/components/stripe/zonos-address/zonos-address.js +2 -2
  122. package/dist/collection/components/stripe/zonos-custom-address/zonos-address-suggestions/zonos-address-suggestions.js +2 -2
  123. package/dist/collection/components/stripe/zonos-custom-address/zonos-custom-address.js +2 -2
  124. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +1 -1
  125. package/dist/collection/components/utils/checkout/euWithdrawalNotice.js +74 -0
  126. package/dist/collection/types/generated/graphql.internal.types.js +318 -182
  127. package/dist/esm/{cart-44fa77ef.js → cart-23e29950.js} +32 -2
  128. package/dist/esm/collect-a235299d.js +3092 -0
  129. package/dist/esm/{hasInclusivePrice-f0440925.js → hasInclusivePrice-5e106f84.js} +1 -1
  130. package/dist/esm/index.js +7 -7
  131. package/dist/esm/{invoice-89e71796.js → invoice-78f069c7.js} +2 -2
  132. package/dist/esm/isCollectMobileTablet-111b0dd7.js +12 -0
  133. package/dist/esm/loader.js +1 -1
  134. package/dist/esm/{localization-066586b6.js → localization-17546792.js} +244 -2
  135. package/dist/esm/{paypal-8725008c.js → paypal-5bc6b0d0.js} +2 -2
  136. package/dist/esm/{placeTestOrder-38be871e.js → placeTestOrder-e842854a.js} +2 -2
  137. package/dist/esm/{renderCheckoutCurrency-802f4481.js → renderCheckoutCurrency-e3953f67.js} +2 -2
  138. package/dist/esm/zonos-address-display_8.entry.js +18 -18
  139. package/dist/esm/zonos-address_4.entry.js +8 -8
  140. package/dist/esm/zonos-airwallex-payment.entry.js +166 -0
  141. package/dist/esm/zonos-badge.entry.js +3 -3
  142. package/dist/esm/zonos-button_3.entry.js +3 -3
  143. package/dist/esm/zonos-card_5.entry.js +9 -9
  144. package/dist/esm/zonos-cart-items_12.entry.js +131 -21
  145. package/dist/esm/zonos-checkbox_2.entry.js +5 -5
  146. package/dist/esm/zonos-checkout.entry.js +3 -3
  147. package/dist/esm/zonos-collapse.entry.js +2 -2
  148. package/dist/esm/zonos-collect-cart-items_3.entry.js +6 -6
  149. package/dist/esm/zonos-collect-finish_6.entry.js +135 -21
  150. package/dist/esm/zonos-collect.entry.js +171 -33
  151. package/dist/esm/zonos-component.entry.js +1 -1
  152. package/dist/esm/zonos-controller.entry.js +3 -3
  153. package/dist/esm/zonos-country-flag.entry.js +1 -1
  154. package/dist/esm/zonos-country-select_4.entry.js +10 -10
  155. package/dist/esm/zonos-elements.js +1 -1
  156. package/dist/esm/zonos-hello-dialog.entry.js +6 -6
  157. package/dist/esm/zonos-hello.entry.js +1 -1
  158. package/dist/esm/zonos-input.entry.js +4 -4
  159. package/dist/esm/zonos-invoice-cart-items_2.entry.js +8 -8
  160. package/dist/esm/zonos-invoice-finish_5.entry.js +14 -14
  161. package/dist/esm/zonos-invoice.entry.js +4 -4
  162. package/dist/esm/zonos-language-select_2.entry.js +5 -5
  163. package/dist/esm/zonos-link.entry.js +1 -1
  164. package/dist/esm/zonos-logo.entry.js +2 -2
  165. package/dist/esm/zonos-policy-consent_2.entry.js +3 -3
  166. package/dist/esm/zonos-stripe-input.entry.js +4 -4
  167. package/dist/esm/zonos-tooltip.entry.js +2 -2
  168. package/dist/esm/zonos-v-stack.entry.js +2 -2
  169. package/dist/esm-es5/cart-23e29950.js +1 -0
  170. package/dist/esm-es5/collect-a235299d.js +1 -0
  171. package/dist/esm-es5/{hasInclusivePrice-f0440925.js → hasInclusivePrice-5e106f84.js} +1 -1
  172. package/dist/esm-es5/index.js +1 -1
  173. package/dist/esm-es5/{invoice-89e71796.js → invoice-78f069c7.js} +1 -1
  174. package/dist/esm-es5/isCollectMobileTablet-111b0dd7.js +1 -0
  175. package/dist/esm-es5/loader.js +1 -1
  176. package/dist/esm-es5/localization-17546792.js +1 -0
  177. package/dist/esm-es5/{paypal-8725008c.js → paypal-5bc6b0d0.js} +1 -1
  178. package/dist/esm-es5/{placeTestOrder-38be871e.js → placeTestOrder-e842854a.js} +1 -1
  179. package/dist/esm-es5/{renderCheckoutCurrency-802f4481.js → renderCheckoutCurrency-e3953f67.js} +1 -1
  180. package/dist/esm-es5/zonos-address-display_8.entry.js +1 -1
  181. package/dist/esm-es5/zonos-address_4.entry.js +1 -1
  182. package/dist/esm-es5/zonos-airwallex-payment.entry.js +1 -0
  183. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  184. package/dist/esm-es5/zonos-button_3.entry.js +1 -1
  185. package/dist/esm-es5/zonos-card_5.entry.js +1 -1
  186. package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
  187. package/dist/esm-es5/zonos-checkbox_2.entry.js +1 -1
  188. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  189. package/dist/esm-es5/zonos-collapse.entry.js +1 -1
  190. package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
  191. package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
  192. package/dist/esm-es5/zonos-collect.entry.js +1 -1
  193. package/dist/esm-es5/zonos-component.entry.js +1 -1
  194. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  195. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  196. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  197. package/dist/esm-es5/zonos-elements.js +1 -1
  198. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  199. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  200. package/dist/esm-es5/zonos-input.entry.js +1 -1
  201. package/dist/esm-es5/zonos-invoice-cart-items_2.entry.js +1 -1
  202. package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
  203. package/dist/esm-es5/zonos-invoice.entry.js +1 -1
  204. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  205. package/dist/esm-es5/zonos-link.entry.js +1 -1
  206. package/dist/esm-es5/zonos-logo.entry.js +1 -1
  207. package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
  208. package/dist/esm-es5/zonos-stripe-input.entry.js +1 -1
  209. package/dist/esm-es5/zonos-tooltip.entry.js +1 -1
  210. package/dist/esm-es5/zonos-v-stack.entry.js +1 -1
  211. package/dist/scripts/index.d.ts +99 -3
  212. package/dist/scripts/index.js +1 -1
  213. package/dist/scripts/loadZonos.js +1 -1
  214. package/dist/scripts/zonos.js +1 -1
  215. package/dist/types/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.d.ts +46 -0
  216. package/dist/types/components/checkout/zonos-collect/zonos-collect-finish/zonos-collect-finish.d.ts +7 -0
  217. package/dist/types/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.d.ts +4 -0
  218. package/dist/types/components/checkout/zonos-collect/zonos-collect.d.ts +29 -0
  219. package/dist/types/components/store/checkout/airwallex.d.ts +83 -0
  220. package/dist/types/components/store/checkout/collect.d.ts +12 -1
  221. package/dist/types/components/store/checkout/euWithdrawalRate.d.ts +19 -0
  222. package/dist/types/components/store/checkout/stripe.d.ts +1 -1
  223. package/dist/types/components/store/translationStore/strings.arabic.d.ts +12 -0
  224. package/dist/types/components/store/translationStore/strings.base.d.ts +12 -0
  225. package/dist/types/components/store/translationStore/strings.chinese.d.ts +12 -0
  226. package/dist/types/components/store/translationStore/strings.danish.d.ts +12 -0
  227. package/dist/types/components/store/translationStore/strings.dutch.d.ts +12 -0
  228. package/dist/types/components/store/translationStore/strings.french.d.ts +12 -0
  229. package/dist/types/components/store/translationStore/strings.german.d.ts +12 -0
  230. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +12 -0
  231. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +12 -0
  232. package/dist/types/components/store/translationStore/strings.italian.d.ts +12 -0
  233. package/dist/types/components/store/translationStore/strings.japanese.d.ts +12 -0
  234. package/dist/types/components/store/translationStore/strings.korean.d.ts +12 -0
  235. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +12 -0
  236. package/dist/types/components/store/translationStore/strings.polish.d.ts +12 -0
  237. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +12 -0
  238. package/dist/types/components/store/translationStore/strings.russian.d.ts +12 -0
  239. package/dist/types/components/store/translationStore/strings.spanish.d.ts +12 -0
  240. package/dist/types/components/store/translationStore/strings.swedish.d.ts +12 -0
  241. package/dist/types/components/store/translationStore/strings.turkish.d.ts +12 -0
  242. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +12 -0
  243. package/dist/types/components/utils/checkout/euWithdrawalNotice.d.ts +9 -0
  244. package/dist/types/components.d.ts +42 -0
  245. package/dist/types/scripts/cart/_setupCartDataWithSettings.d.ts +8 -3
  246. package/dist/types/types/checkout/CheckoutConfig.d.ts +10 -0
  247. package/dist/types/types/checkout/api/CheckoutSession.d.ts +11 -1
  248. package/dist/types/types/checkout/api/PartyInfo.d.ts +6 -0
  249. package/dist/types/types/generated/graphql.internal.types.d.ts +416 -218
  250. package/dist/types/types/generated/graphql.internal.types.ts +537 -258
  251. package/dist/types/types/utils/ZonosSettings.d.ts +15 -0
  252. package/dist/zonos-elements/index.esm.js +1 -1
  253. package/dist/zonos-elements/p-013575f2.entry.js +1 -0
  254. package/dist/zonos-elements/{p-344a1fee.entry.js → p-055ef910.entry.js} +1 -1
  255. package/dist/zonos-elements/{p-d29dbeb3.entry.js → p-08b48608.entry.js} +1 -1
  256. package/dist/zonos-elements/{p-26ae4ee7.system.entry.js → p-0a54dae6.system.entry.js} +1 -1
  257. package/dist/zonos-elements/{p-6ac77d9f.system.entry.js → p-0b59076d.system.entry.js} +1 -1
  258. package/dist/zonos-elements/{p-c92a5ae5.system.entry.js → p-10571f94.system.entry.js} +1 -1
  259. package/dist/zonos-elements/{p-658ab5e2.entry.js → p-12a05647.entry.js} +1 -1
  260. package/dist/zonos-elements/{p-703f2737.system.js → p-14018649.system.js} +2 -2
  261. package/dist/zonos-elements/{p-acd7009a.system.entry.js → p-1678d8b4.system.entry.js} +1 -1
  262. package/dist/zonos-elements/p-171d0f9f.system.js +1 -0
  263. package/dist/zonos-elements/{p-7e03bd33.system.entry.js → p-1a105d6e.system.entry.js} +1 -1
  264. package/dist/zonos-elements/p-1a4083be.system.js +1 -0
  265. package/dist/zonos-elements/{p-72666536.system.entry.js → p-1f31f5a0.system.entry.js} +1 -1
  266. package/dist/zonos-elements/p-2197d6ab.js +1 -0
  267. package/dist/zonos-elements/{p-536cbab5.system.entry.js → p-27e50593.system.entry.js} +1 -1
  268. package/dist/zonos-elements/{p-0b4ba025.entry.js → p-2825431d.entry.js} +1 -1
  269. package/dist/zonos-elements/p-29b60bf3.system.js +1 -1
  270. package/dist/zonos-elements/{p-ccd0fa8f.system.entry.js → p-2a1247f4.system.entry.js} +1 -1
  271. package/dist/zonos-elements/p-2adbbce7.system.js +1 -0
  272. package/dist/zonos-elements/{p-553ca694.system.entry.js → p-306e5499.system.entry.js} +1 -1
  273. package/dist/zonos-elements/{p-b15ceaff.entry.js → p-31577ebd.entry.js} +1 -1
  274. package/dist/zonos-elements/{p-889a44fc.entry.js → p-328fd90e.entry.js} +1 -1
  275. package/dist/zonos-elements/p-33910e8b.js +1 -0
  276. package/dist/zonos-elements/{p-fb684748.system.entry.js → p-36b311f9.system.entry.js} +1 -1
  277. package/dist/zonos-elements/{p-5b4e5608.system.entry.js → p-3eba657b.system.entry.js} +1 -1
  278. package/dist/zonos-elements/p-41619f29.js +1 -0
  279. package/dist/zonos-elements/{p-7792f4c2.js → p-42948a52.js} +1 -1
  280. package/dist/zonos-elements/p-46e72a90.entry.js +1 -0
  281. package/dist/zonos-elements/p-49d8a10f.entry.js +1 -0
  282. package/dist/zonos-elements/{p-fc651784.system.entry.js → p-4a960329.system.entry.js} +1 -1
  283. package/dist/zonos-elements/p-4b371b65.entry.js +1 -0
  284. package/dist/zonos-elements/p-539bc46c.js +1 -0
  285. package/dist/zonos-elements/p-579932a7.js +1 -0
  286. package/dist/zonos-elements/{p-2afecda7.entry.js → p-59b10526.entry.js} +1 -1
  287. package/dist/zonos-elements/{p-98bea13e.system.entry.js → p-5aa35d1c.system.entry.js} +1 -1
  288. package/dist/zonos-elements/{p-238370ad.system.js → p-62c68aee.system.js} +1 -1
  289. package/dist/zonos-elements/{p-5df77315.system.entry.js → p-6c19310e.system.entry.js} +1 -1
  290. package/dist/zonos-elements/{p-16948eea.system.entry.js → p-732e7373.system.entry.js} +1 -1
  291. package/dist/zonos-elements/{p-0e8c4a29.entry.js → p-734d646b.entry.js} +1 -1
  292. package/dist/zonos-elements/{p-2f61dc3c.entry.js → p-7eb47eb0.entry.js} +1 -1
  293. package/dist/zonos-elements/{p-a2885536.system.entry.js → p-86a9f048.system.entry.js} +1 -1
  294. package/dist/zonos-elements/p-8af57c2a.js +1 -0
  295. package/dist/zonos-elements/{p-fb83134b.system.entry.js → p-8c4761d1.system.entry.js} +1 -1
  296. package/dist/zonos-elements/{p-5812b323.system.entry.js → p-8e77a3cd.system.entry.js} +1 -1
  297. package/dist/zonos-elements/p-919c5500.entry.js +1 -0
  298. package/dist/zonos-elements/{p-c76ec587.system.js → p-91b921a4.system.js} +1 -1
  299. package/dist/zonos-elements/p-9574695a.system.js +1 -0
  300. package/dist/zonos-elements/p-97917371.system.entry.js +1 -0
  301. package/dist/zonos-elements/p-9b003a15.system.entry.js +1 -0
  302. package/dist/zonos-elements/{p-e11c3410.entry.js → p-9c3276c8.entry.js} +1 -1
  303. package/dist/zonos-elements/p-9cd41234.system.entry.js +1 -0
  304. package/dist/zonos-elements/{p-5f92db80.system.entry.js → p-a1a05de4.system.entry.js} +1 -1
  305. package/dist/zonos-elements/{p-6704b83e.entry.js → p-a968ccba.entry.js} +1 -1
  306. package/dist/zonos-elements/{p-91702715.entry.js → p-abd485df.entry.js} +1 -1
  307. package/dist/zonos-elements/{p-69ad7325.entry.js → p-ad961f5d.entry.js} +1 -1
  308. package/dist/zonos-elements/{p-ad4c8167.system.entry.js → p-b5c01288.system.entry.js} +1 -1
  309. package/dist/zonos-elements/p-bf8c98ab.system.js +1 -0
  310. package/dist/zonos-elements/{p-eb96d62f.entry.js → p-c13d2e3f.entry.js} +1 -1
  311. package/dist/zonos-elements/{p-0b46f3bd.system.entry.js → p-c15476a1.system.entry.js} +1 -1
  312. package/dist/zonos-elements/{p-0e36a7cf.system.entry.js → p-c6823974.system.entry.js} +1 -1
  313. package/dist/zonos-elements/{p-dae881f2.entry.js → p-c83bc4b3.entry.js} +1 -1
  314. package/dist/zonos-elements/{p-134c5010.system.entry.js → p-c846a5f3.system.entry.js} +1 -1
  315. package/dist/zonos-elements/{p-7aca66cd.entry.js → p-cc508de8.entry.js} +1 -1
  316. package/dist/zonos-elements/{p-d4c966cb.entry.js → p-ccd14aa5.entry.js} +1 -1
  317. package/dist/zonos-elements/{p-801dd8d8.system.js → p-d25759fb.system.js} +1 -1
  318. package/dist/zonos-elements/{p-fcf3ed5c.entry.js → p-d5e66ea6.entry.js} +1 -1
  319. package/dist/zonos-elements/{p-2df84888.system.entry.js → p-daf57db3.system.entry.js} +1 -1
  320. package/dist/zonos-elements/{p-b35a0b1e.entry.js → p-dcef2202.entry.js} +1 -1
  321. package/dist/zonos-elements/{p-283ffaad.entry.js → p-dd6da3de.entry.js} +1 -1
  322. package/dist/zonos-elements/{p-30e819ed.entry.js → p-df6fbf3f.entry.js} +1 -1
  323. package/dist/zonos-elements/{p-0d251428.entry.js → p-e643346a.entry.js} +1 -1
  324. package/dist/zonos-elements/{p-a977cddd.entry.js → p-e8cb382e.entry.js} +1 -1
  325. package/dist/zonos-elements/{p-2651ca93.system.entry.js → p-e8ec88a9.system.entry.js} +1 -1
  326. package/dist/zonos-elements/p-e9afd736.system.entry.js +1 -0
  327. package/dist/zonos-elements/{p-208b270a.js → p-e9c8a235.js} +1 -1
  328. package/dist/zonos-elements/{p-b1a4f385.system.entry.js → p-f0eb6317.system.entry.js} +1 -1
  329. package/dist/zonos-elements/p-f1cc659c.js +1 -0
  330. package/dist/zonos-elements/{p-9abfb6b0.entry.js → p-f53c8a9f.entry.js} +1 -1
  331. package/dist/zonos-elements/{p-777d396e.entry.js → p-f72642de.entry.js} +1 -1
  332. package/dist/zonos-elements/{p-0d2d7fc4.system.js → p-fcaec700.system.js} +1 -1
  333. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  334. package/package.json +2 -1
  335. package/dist/cjs/isCollectMobileTablet-3ac53cab.js +0 -176
  336. package/dist/esm/isCollectMobileTablet-323d2ba1.js +0 -169
  337. package/dist/esm-es5/cart-44fa77ef.js +0 -1
  338. package/dist/esm-es5/isCollectMobileTablet-323d2ba1.js +0 -1
  339. package/dist/esm-es5/localization-066586b6.js +0 -1
  340. package/dist/zonos-elements/p-08c7dc07.system.entry.js +0 -1
  341. package/dist/zonos-elements/p-0e9c0eff.entry.js +0 -1
  342. package/dist/zonos-elements/p-0fb8b711.system.entry.js +0 -1
  343. package/dist/zonos-elements/p-225f19b6.entry.js +0 -1
  344. package/dist/zonos-elements/p-260a5b57.js +0 -1
  345. package/dist/zonos-elements/p-27beefda.system.js +0 -1
  346. package/dist/zonos-elements/p-31a3b070.system.js +0 -1
  347. package/dist/zonos-elements/p-5ab4bc26.system.entry.js +0 -1
  348. package/dist/zonos-elements/p-9e414000.js +0 -1
  349. package/dist/zonos-elements/p-b1125711.system.js +0 -1
  350. package/dist/zonos-elements/p-bea9d128.js +0 -1
  351. package/dist/zonos-elements/p-bfcc1432.js +0 -1
  352. package/dist/zonos-elements/p-c049c527.js +0 -1
  353. package/dist/zonos-elements/p-d659153c.entry.js +0 -1
  354. package/dist/zonos-elements/p-debd2e30.js +0 -1
  355. package/dist/zonos-elements/p-ebc966d8.entry.js +0 -1
  356. package/dist/zonos-elements/p-f5d4775a.system.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.270.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.270.js.zonos.com",q=x||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.270",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="1781713935263",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.270",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.270";case"cdnjs":return"https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.3.270";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;
@@ -0,0 +1,19 @@
1
+ import type { CurrencyCode } from "../../../types/generated/graphql.internal.types";
2
+ /**
3
+ * Caches live "configured currency → presentment currency" rates used to convert
4
+ * the EU withdrawal return-shipping cap into the currency the buyer actually pays
5
+ * in. A @stencil/store so that, when a lazily-fetched rate resolves, components
6
+ * rendering the notice re-render and pick up the converted amount. Keyed by
7
+ * `${sourceCurrency}_${targetCurrency}`; a null value means the lookup failed.
8
+ */
9
+ declare const euWithdrawalRateStore: {
10
+ crossRates: Record<string, number | null>;
11
+ };
12
+ export { euWithdrawalRateStore };
13
+ export declare const euWithdrawalCrossRateKey: (sourceCurrency: CurrencyCode, targetCurrency: CurrencyCode) => string;
14
+ /**
15
+ * Lazily fetch the current configured→presentment rate (fire-and-forget). Guarded
16
+ * so each pair is fetched at most once; the result lands in the reactive store,
17
+ * which triggers a re-render that then shows the presentment estimate.
18
+ */
19
+ export declare const ensureEuWithdrawalCrossRate: (sourceCurrency: CurrencyCode, targetCurrency: CurrencyCode, shipToCountry: string) => void;
@@ -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;
@@ -287,6 +287,12 @@ export declare const stringsArabic: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsArabic: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsArabic: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };
@@ -287,6 +287,12 @@ export declare const stringsBase: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsBase: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsBase: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };
@@ -287,6 +287,12 @@ export declare const stringsChinese: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsChinese: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsChinese: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };
@@ -287,6 +287,12 @@ export declare const stringsDanish: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsDanish: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsDanish: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };
@@ -287,6 +287,12 @@ export declare const stringsDutch: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsDutch: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsDutch: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };
@@ -287,6 +287,12 @@ export declare const stringsFrench: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsFrench: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsFrench: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };
@@ -287,6 +287,12 @@ export declare const stringsGerman: {
287
287
  'I agree to the [policies]': {
288
288
  value: string;
289
289
  };
290
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs, up to a maximum [amount].': {
291
+ value: string;
292
+ };
293
+ 'If you later choose to exercise your right to withdrawal, you will be responsible for any associated return shipping costs.': {
294
+ value: string;
295
+ };
290
296
  "If you select FedEx Ground as your shipping option, you'll need to complete a General Agency Agreement (GAA) after placing your order. This form allows FedEx to clear your package through Canadian customs on your behalf. FedEx will contact you directly\u2014usually by email or phone\u2014with instructions on how to complete the GAA. To avoid delays or the return of your package, please respond promptly to their request.": {
291
297
  value: string;
292
298
  };
@@ -410,6 +416,9 @@ export declare const stringsGerman: {
410
416
  'Pay [organizationName]': {
411
417
  value: string;
412
418
  };
419
+ 'Pay [organizationName] duties, taxes and fees for your shipment': {
420
+ value: string;
421
+ };
413
422
  'Pay in USD (United States Dollar)?': {
414
423
  value: string;
415
424
  };
@@ -548,6 +557,9 @@ export declare const stringsGerman: {
548
557
  'Session timed out': {
549
558
  value: string;
550
559
  };
560
+ 'Shipment details': {
561
+ value: string;
562
+ };
551
563
  Shipping: {
552
564
  value: string;
553
565
  };