@zonos/elements 1.3.39 → 1.3.41

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 (303) hide show
  1. package/dist/cjs/{cart-c7212410.js → cart-497bb434.js} +300 -7
  2. package/dist/cjs/{getBorderRadius-074b46ef.js → getBorderRadius-4413e191.js} +1 -1
  3. package/dist/cjs/{index-b071017b.js → index-d56e0a8b.js} +242 -169
  4. package/dist/cjs/index.cjs.js +10 -4
  5. package/dist/cjs/{isDarkColor-371a3b1a.js → isDarkColor-4eb96a1e.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/paypal-e65a287a.js +461 -0
  8. package/dist/cjs/{submitGtag-7a679d92.js → sendErrorLog-c3c315a9.js} +2 -19
  9. package/dist/cjs/zonos-address_8.cjs.entry.js +11 -11
  10. package/dist/cjs/zonos-badge_2.cjs.entry.js +4 -4
  11. package/dist/cjs/zonos-banner.cjs.entry.js +2 -2
  12. package/dist/cjs/zonos-button_3.cjs.entry.js +4 -4
  13. package/dist/cjs/zonos-card.cjs.entry.js +3 -3
  14. package/dist/cjs/zonos-cart-items_12.cjs.entry.js +76 -38
  15. package/dist/cjs/zonos-checkout.cjs.entry.js +43 -70
  16. package/dist/cjs/zonos-component.cjs.entry.js +2 -2
  17. package/dist/cjs/zonos-controller.cjs.entry.js +15 -15
  18. package/dist/cjs/zonos-country-flag.cjs.entry.js +5 -5
  19. package/dist/cjs/{zonos-country-select_3.cjs.entry.js → zonos-country-select_4.cjs.entry.js} +100 -14
  20. package/dist/cjs/zonos-elements.cjs.js +3 -3
  21. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +9 -9
  22. package/dist/cjs/zonos-hello.cjs.entry.js +5 -5
  23. package/dist/cjs/zonos-input.cjs.entry.js +7 -7
  24. package/dist/cjs/zonos-language-select_2.cjs.entry.js +9 -9
  25. package/dist/cjs/zonos-link.cjs.entry.js +2 -2
  26. package/dist/cjs/zonos-logo.cjs.entry.js +4 -4
  27. package/dist/cjs/{zonos-notification_2.cjs.entry.js → zonos-notification_3.cjs.entry.js} +59 -7
  28. package/dist/cjs/zonos-shipping-rich-radio.cjs.entry.js +3 -3
  29. package/dist/cjs/zonos-text.cjs.entry.js +2 -2
  30. package/dist/cjs/zonos-v-stack.cjs.entry.js +4 -4
  31. package/dist/cjs/{zonosStore-4c6c85da.js → zonosStore-56401fdb.js} +5 -1
  32. package/dist/collection/__tests__/build-utils/urlCheckOne.js +3 -1
  33. package/dist/collection/collection-manifest.json +3 -1
  34. package/dist/collection/components/checkout/zonos-checkout/zonos-address-update-dialog/zonos-address-update-dialog.css +1 -0
  35. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +39 -8
  36. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-footer/zonos-checkout-footer.css +1 -0
  37. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.css +7 -1
  38. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +37 -22
  39. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.css +3 -0
  40. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +30 -60
  41. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.css +1 -0
  42. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.css +1 -0
  43. package/dist/collection/components/common/zonos-country-select/zonos-country-select.css +8 -0
  44. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +14 -4
  45. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +2 -2
  46. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +3 -3
  47. package/dist/collection/components/common/zonos-input/zonos-input.js +4 -4
  48. package/dist/collection/components/common/zonos-language-select/zonos-language-select.js +2 -2
  49. package/dist/collection/components/common/zonos-link/zonos-link.js +1 -1
  50. package/dist/collection/components/common/zonos-logo/zonos-logo.js +2 -2
  51. package/dist/collection/components/common/zonos-rest-state/zonos-rest-state.js +3 -3
  52. package/dist/collection/components/common/zonos-select-dialog-header/zonos-select-dialog-header.js +2 -2
  53. package/dist/collection/components/common/zonos-tooltip/zonos-tooltip.js +2 -2
  54. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +2 -2
  55. package/dist/collection/components/common/zonos-virtual-scroll/zonos-virtual-scroll.css +46 -0
  56. package/dist/collection/components/common/zonos-virtual-scroll/zonos-virtual-scroll.js +177 -0
  57. package/dist/collection/components/component-template/zonos-component/zonos-component.js +1 -1
  58. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +2 -2
  59. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +4 -4
  60. package/dist/collection/components/main/zonos-controller.js +22 -8
  61. package/dist/collection/components/paypal/zonos-paypal-payment.css +37 -0
  62. package/dist/collection/components/paypal/zonos-paypal-payment.js +92 -0
  63. package/dist/collection/components/store/checkout/cart.js +26 -1
  64. package/dist/collection/components/store/checkout/paypal.js +219 -0
  65. package/dist/collection/components/store/checkout/stripe.js +16 -4
  66. package/dist/collection/components/store/translationStore/strings.arabic.js +12 -0
  67. package/dist/collection/components/store/translationStore/strings.base.js +12 -0
  68. package/dist/collection/components/store/translationStore/strings.chinese.js +12 -0
  69. package/dist/collection/components/store/translationStore/strings.danish.js +12 -0
  70. package/dist/collection/components/store/translationStore/strings.dutch.js +12 -0
  71. package/dist/collection/components/store/translationStore/strings.french.js +12 -0
  72. package/dist/collection/components/store/translationStore/strings.german.js +12 -0
  73. package/dist/collection/components/store/translationStore/strings.hebrew.js +12 -0
  74. package/dist/collection/components/store/translationStore/strings.indonesian.js +12 -0
  75. package/dist/collection/components/store/translationStore/strings.italian.js +12 -0
  76. package/dist/collection/components/store/translationStore/strings.japanese.js +12 -0
  77. package/dist/collection/components/store/translationStore/strings.korean.js +12 -0
  78. package/dist/collection/components/store/translationStore/strings.norwegian.js +12 -0
  79. package/dist/collection/components/store/translationStore/strings.polish.js +12 -0
  80. package/dist/collection/components/store/translationStore/strings.portuguese.js +12 -0
  81. package/dist/collection/components/store/translationStore/strings.russian.js +12 -0
  82. package/dist/collection/components/store/translationStore/strings.spanish.js +12 -0
  83. package/dist/collection/components/store/translationStore/strings.swedish.js +12 -0
  84. package/dist/collection/components/store/translationStore/strings.turkish.js +12 -0
  85. package/dist/collection/components/store/translationStore/strings.vietnamese.js +12 -0
  86. package/dist/collection/components/store/zonosStore.js +4 -0
  87. package/dist/collection/components/stripe/zonos-address/zonos-address.js +2 -2
  88. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.js +1 -1
  89. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +2 -3
  90. package/dist/collection/components/utils/api/getZonosSettings.js +3 -3
  91. package/dist/collection/components/utils/api/paypalCaptureOrder.js +8 -0
  92. package/dist/collection/components/utils/api/paypalCreateOrder.js +8 -0
  93. package/dist/collection/components/utils/getContrastColor.js +6 -2
  94. package/dist/collection/components/utils/handleFetch.js +6 -1
  95. package/dist/collection/components/utils/isContrastColor.js +7 -0
  96. package/dist/collection/environment.js +4 -5
  97. package/dist/collection/scripts/_getZonosQaUrl.js +4 -0
  98. package/dist/collection/scripts/_zonosBase.js +2 -0
  99. package/dist/collection/styles/stripe/addressRuleStyle.js +6 -0
  100. package/dist/collection/types/generated/graphql.customer.types.js +35 -0
  101. package/dist/esm/{cart-eb75b113.js → cart-f53c9f90.js} +296 -8
  102. package/dist/esm/{getBorderRadius-947c24de.js → getBorderRadius-3ba98361.js} +1 -1
  103. package/dist/esm/{index-3b46f3c3.js → index-86b8247e.js} +242 -169
  104. package/dist/esm/index.js +10 -4
  105. package/dist/esm/{isDarkColor-f8324c10.js → isDarkColor-3119e351.js} +1 -1
  106. package/dist/esm/loader.js +3 -3
  107. package/dist/esm/paypal-72296ae6.js +453 -0
  108. package/dist/esm/{submitGtag-0bc0baa0.js → sendErrorLog-f8d3ec4b.js} +3 -19
  109. package/dist/esm/zonos-address_8.entry.js +11 -11
  110. package/dist/esm/zonos-badge_2.entry.js +4 -4
  111. package/dist/esm/zonos-banner.entry.js +2 -2
  112. package/dist/esm/zonos-button_3.entry.js +4 -4
  113. package/dist/esm/zonos-card.entry.js +3 -3
  114. package/dist/esm/zonos-cart-items_12.entry.js +63 -25
  115. package/dist/esm/zonos-checkout.entry.js +34 -61
  116. package/dist/esm/zonos-component.entry.js +2 -2
  117. package/dist/esm/zonos-controller.entry.js +15 -15
  118. package/dist/esm/zonos-country-flag.entry.js +5 -5
  119. package/dist/esm/{zonos-country-select_3.entry.js → zonos-country-select_4.entry.js} +100 -15
  120. package/dist/esm/zonos-elements.js +4 -4
  121. package/dist/esm/zonos-hello-dialog.entry.js +9 -9
  122. package/dist/esm/zonos-hello.entry.js +5 -5
  123. package/dist/esm/zonos-input.entry.js +7 -7
  124. package/dist/esm/zonos-language-select_2.entry.js +9 -9
  125. package/dist/esm/zonos-link.entry.js +2 -2
  126. package/dist/esm/zonos-logo.entry.js +4 -4
  127. package/dist/esm/{zonos-notification_2.entry.js → zonos-notification_3.entry.js} +60 -9
  128. package/dist/esm/zonos-shipping-rich-radio.entry.js +3 -3
  129. package/dist/esm/zonos-text.entry.js +2 -2
  130. package/dist/esm/zonos-v-stack.entry.js +4 -4
  131. package/dist/esm/{zonosStore-ba9e541e.js → zonosStore-8fc9ceb2.js} +5 -1
  132. package/dist/esm-es5/cart-f53c9f90.js +1 -0
  133. package/dist/esm-es5/{getBorderRadius-947c24de.js → getBorderRadius-3ba98361.js} +1 -1
  134. package/dist/esm-es5/index-86b8247e.js +2 -0
  135. package/dist/esm-es5/index.js +1 -1
  136. package/dist/esm-es5/{isDarkColor-f8324c10.js → isDarkColor-3119e351.js} +1 -1
  137. package/dist/esm-es5/loader.js +1 -1
  138. package/dist/esm-es5/paypal-72296ae6.js +17 -0
  139. package/dist/esm-es5/sendErrorLog-f8d3ec4b.js +1 -0
  140. package/dist/esm-es5/zonos-address_8.entry.js +1 -1
  141. package/dist/esm-es5/zonos-badge_2.entry.js +1 -1
  142. package/dist/esm-es5/zonos-banner.entry.js +1 -1
  143. package/dist/esm-es5/zonos-button_3.entry.js +1 -1
  144. package/dist/esm-es5/zonos-card.entry.js +1 -1
  145. package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
  146. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  147. package/dist/esm-es5/zonos-component.entry.js +1 -1
  148. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  149. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  150. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -0
  151. package/dist/esm-es5/zonos-elements.js +1 -1
  152. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  153. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  154. package/dist/esm-es5/zonos-input.entry.js +1 -1
  155. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  156. package/dist/esm-es5/zonos-link.entry.js +1 -1
  157. package/dist/esm-es5/zonos-logo.entry.js +1 -1
  158. package/dist/esm-es5/zonos-notification_3.entry.js +1 -0
  159. package/dist/esm-es5/zonos-shipping-rich-radio.entry.js +1 -1
  160. package/dist/esm-es5/zonos-text.entry.js +1 -1
  161. package/dist/esm-es5/zonos-v-stack.entry.js +1 -1
  162. package/dist/esm-es5/{zonosStore-ba9e541e.js → zonosStore-8fc9ceb2.js} +1 -1
  163. package/dist/scripts/index.d.ts +170 -6
  164. package/dist/scripts/index.js +1 -1
  165. package/dist/scripts/loadZonos.js +1 -1
  166. package/dist/scripts/zonos.js +1 -1
  167. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.d.ts +2 -1
  168. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.d.ts +8 -4
  169. package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +1 -20
  170. package/dist/types/components/common/zonos-virtual-scroll/zonos-virtual-scroll.d.ts +32 -0
  171. package/dist/types/components/main/zonos-controller.d.ts +6 -0
  172. package/dist/types/components/paypal/zonos-paypal-payment.d.ts +17 -0
  173. package/dist/types/components/store/checkout/cart.d.ts +19 -1
  174. package/dist/types/components/store/checkout/paypal.d.ts +28 -0
  175. package/dist/types/components/store/checkout/stripe.d.ts +10 -1
  176. package/dist/types/components/store/translationStore/strings.arabic.d.ts +12 -0
  177. package/dist/types/components/store/translationStore/strings.base.d.ts +12 -0
  178. package/dist/types/components/store/translationStore/strings.chinese.d.ts +12 -0
  179. package/dist/types/components/store/translationStore/strings.danish.d.ts +12 -0
  180. package/dist/types/components/store/translationStore/strings.dutch.d.ts +12 -0
  181. package/dist/types/components/store/translationStore/strings.french.d.ts +12 -0
  182. package/dist/types/components/store/translationStore/strings.german.d.ts +12 -0
  183. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +12 -0
  184. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +12 -0
  185. package/dist/types/components/store/translationStore/strings.italian.d.ts +12 -0
  186. package/dist/types/components/store/translationStore/strings.japanese.d.ts +12 -0
  187. package/dist/types/components/store/translationStore/strings.korean.d.ts +12 -0
  188. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +12 -0
  189. package/dist/types/components/store/translationStore/strings.polish.d.ts +12 -0
  190. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +12 -0
  191. package/dist/types/components/store/translationStore/strings.russian.d.ts +12 -0
  192. package/dist/types/components/store/translationStore/strings.spanish.d.ts +12 -0
  193. package/dist/types/components/store/translationStore/strings.swedish.d.ts +12 -0
  194. package/dist/types/components/store/translationStore/strings.turkish.d.ts +12 -0
  195. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +12 -0
  196. package/dist/types/components/store/translationStore.d.ts +1 -1
  197. package/dist/types/components/store/zonosStore.d.ts +4 -0
  198. package/dist/types/components/utils/api/getZonosSettings.d.ts +2 -0
  199. package/dist/types/components/utils/api/paypalCaptureOrder.d.ts +10 -0
  200. package/dist/types/components/utils/api/paypalCreateOrder.d.ts +9 -0
  201. package/dist/types/components/utils/handleFetch.d.ts +4 -0
  202. package/dist/types/components/utils/isContrastColor.d.ts +4 -0
  203. package/dist/types/components.d.ts +129 -6
  204. package/dist/types/scripts/_zonosBase.d.ts +9 -1
  205. package/dist/types/stencil-public-runtime.d.ts +3 -10
  206. package/dist/types/types/checkout/CheckoutConfig.d.ts +14 -1
  207. package/dist/types/types/generated/graphql.customer.types.d.ts +71 -11
  208. package/dist/types/types/generated/graphql.customer.types.ts +103 -11
  209. package/dist/zonos-elements/index.esm.js +1 -1
  210. package/dist/zonos-elements/{p-71882ac9.system.entry.js → p-0229282c.system.entry.js} +1 -1
  211. package/dist/zonos-elements/{p-5821856c.js → p-04054425.js} +1 -1
  212. package/dist/zonos-elements/p-05cdd3b4.js +17 -0
  213. package/dist/zonos-elements/{p-a8b934c2.entry.js → p-0f9804e3.entry.js} +1 -1
  214. package/dist/zonos-elements/p-12266c9e.js +1 -0
  215. package/dist/zonos-elements/{p-01304a58.system.entry.js → p-14067782.system.entry.js} +1 -1
  216. package/dist/zonos-elements/p-1a89c54a.js +1 -0
  217. package/dist/zonos-elements/{p-d2992457.system.entry.js → p-1e4f7997.system.entry.js} +1 -1
  218. package/dist/zonos-elements/p-1ee2fa70.system.entry.js +1 -0
  219. package/dist/zonos-elements/{p-63a27875.entry.js → p-25633055.entry.js} +1 -1
  220. package/dist/zonos-elements/{p-e37440ad.system.js → p-40c21634.system.js} +1 -1
  221. package/dist/zonos-elements/p-4db5be24.system.entry.js +1 -0
  222. package/dist/zonos-elements/{p-da2e5289.system.entry.js → p-4f454a91.system.entry.js} +1 -1
  223. package/dist/zonos-elements/p-52947dab.system.entry.js +1 -0
  224. package/dist/zonos-elements/{p-62ed4236.entry.js → p-52fa9aab.entry.js} +1 -1
  225. package/dist/zonos-elements/{p-31b3d26b.js → p-52fb6876.js} +1 -1
  226. package/dist/zonos-elements/p-539974db.system.js +1 -0
  227. package/dist/zonos-elements/p-5922c099.entry.js +1 -0
  228. package/dist/zonos-elements/p-5b7da777.js +2 -0
  229. package/dist/zonos-elements/p-5fe10991.system.entry.js +1 -0
  230. package/dist/zonos-elements/p-678f1888.entry.js +1 -0
  231. package/dist/zonos-elements/p-67f22fbf.system.entry.js +1 -0
  232. package/dist/zonos-elements/{p-9a1c0d02.js → p-6ac72711.js} +1 -1
  233. package/dist/zonos-elements/{p-ed333de6.system.entry.js → p-6bb0b7d2.system.entry.js} +1 -1
  234. package/dist/zonos-elements/p-6de1c78a.entry.js +1 -0
  235. package/dist/zonos-elements/{p-d8c1eb99.entry.js → p-6de38759.entry.js} +1 -1
  236. package/dist/zonos-elements/{p-a21ec316.system.entry.js → p-6fbb4565.system.entry.js} +1 -1
  237. package/dist/zonos-elements/{p-6c3390b7.entry.js → p-706d2bad.entry.js} +1 -1
  238. package/dist/zonos-elements/{p-73ba4398.system.entry.js → p-717028a2.system.entry.js} +1 -1
  239. package/dist/zonos-elements/{p-8acdf43b.system.entry.js → p-7833fa53.system.entry.js} +1 -1
  240. package/dist/zonos-elements/p-79fd4f3c.system.js +1 -0
  241. package/dist/zonos-elements/p-8809964a.system.js +1 -0
  242. package/dist/zonos-elements/{p-3541e6dd.entry.js → p-8b01aafb.entry.js} +1 -1
  243. package/dist/zonos-elements/{p-2aa72606.entry.js → p-9220f63d.entry.js} +1 -1
  244. package/dist/zonos-elements/{p-699a5376.entry.js → p-9420f9db.entry.js} +1 -1
  245. package/dist/zonos-elements/p-9525cc44.system.js +1 -0
  246. package/dist/zonos-elements/{p-c21802e9.entry.js → p-9a319774.entry.js} +1 -1
  247. package/dist/zonos-elements/{p-3523c3b4.entry.js → p-9d1f13c2.entry.js} +1 -1
  248. package/dist/zonos-elements/{p-c0fcc0fa.system.entry.js → p-9eadd9a7.system.entry.js} +1 -1
  249. package/dist/zonos-elements/{p-966ab4e7.system.entry.js → p-a3e2592b.system.entry.js} +1 -1
  250. package/dist/zonos-elements/{p-f06bb776.system.entry.js → p-ab11cca6.system.entry.js} +1 -1
  251. package/dist/zonos-elements/p-b3e825dc.system.js +17 -0
  252. package/dist/zonos-elements/{p-9d29f3f4.system.entry.js → p-b689309d.system.entry.js} +1 -1
  253. package/dist/zonos-elements/p-c460665d.system.js +1 -0
  254. package/dist/zonos-elements/p-c4617501.entry.js +1 -0
  255. package/dist/zonos-elements/{p-b903af96.system.entry.js → p-c4bb2949.system.entry.js} +1 -1
  256. package/dist/zonos-elements/{p-c3619b3d.entry.js → p-c7301a88.entry.js} +1 -1
  257. package/dist/zonos-elements/p-c78dd680.system.js +1 -0
  258. package/dist/zonos-elements/p-d86c89e3.entry.js +1 -0
  259. package/dist/zonos-elements/{p-e3c014ae.entry.js → p-dc368ad5.entry.js} +1 -1
  260. package/dist/zonos-elements/{p-18b28104.entry.js → p-de53d9c3.entry.js} +1 -1
  261. package/dist/zonos-elements/p-df69fa38.system.entry.js +1 -0
  262. package/dist/zonos-elements/{p-22882fd6.entry.js → p-e07bf9ea.entry.js} +1 -1
  263. package/dist/zonos-elements/{p-9de374a7.system.entry.js → p-e8f7fb29.system.entry.js} +1 -1
  264. package/dist/zonos-elements/{p-59f37de3.entry.js → p-f35ee203.entry.js} +1 -1
  265. package/dist/zonos-elements/p-fd061229.system.js +2 -0
  266. package/dist/zonos-elements/p-fd54fbb9.system.entry.js +1 -0
  267. package/dist/zonos-elements/p-fdb4347f.entry.js +1 -0
  268. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  269. package/dist/zonos-elements/zonos-elements.js +1 -1
  270. package/loader/cdn.js +1 -2
  271. package/loader/index.cjs.js +1 -2
  272. package/loader/index.d.ts +3 -0
  273. package/loader/index.es2017.js +1 -2
  274. package/loader/index.js +1 -2
  275. package/package.json +12 -11
  276. package/dist/esm-es5/cart-eb75b113.js +0 -1
  277. package/dist/esm-es5/index-3b46f3c3.js +0 -2
  278. package/dist/esm-es5/submitGtag-0bc0baa0.js +0 -1
  279. package/dist/esm-es5/zonos-country-select_3.entry.js +0 -1
  280. package/dist/esm-es5/zonos-notification_2.entry.js +0 -1
  281. package/dist/zonos-elements/p-02405211.system.entry.js +0 -1
  282. package/dist/zonos-elements/p-085548f2.entry.js +0 -1
  283. package/dist/zonos-elements/p-0b538ed4.system.js +0 -1
  284. package/dist/zonos-elements/p-2a45c837.system.entry.js +0 -1
  285. package/dist/zonos-elements/p-357322ea.system.entry.js +0 -1
  286. package/dist/zonos-elements/p-3f5e2e5c.system.entry.js +0 -1
  287. package/dist/zonos-elements/p-53acc999.js +0 -1
  288. package/dist/zonos-elements/p-548ac127.entry.js +0 -1
  289. package/dist/zonos-elements/p-5609876a.system.entry.js +0 -1
  290. package/dist/zonos-elements/p-6f9448bb.entry.js +0 -1
  291. package/dist/zonos-elements/p-70262120.system.js +0 -1
  292. package/dist/zonos-elements/p-878293fe.js +0 -1
  293. package/dist/zonos-elements/p-97d74f84.system.js +0 -1
  294. package/dist/zonos-elements/p-a393c1db.system.entry.js +0 -1
  295. package/dist/zonos-elements/p-a8cb25de.system.js +0 -1
  296. package/dist/zonos-elements/p-abe8ea12.system.js +0 -1
  297. package/dist/zonos-elements/p-ae04d3ff.entry.js +0 -1
  298. package/dist/zonos-elements/p-b684f8aa.system.entry.js +0 -1
  299. package/dist/zonos-elements/p-ce347974.js +0 -2
  300. package/dist/zonos-elements/p-d99232c5.system.js +0 -2
  301. package/dist/zonos-elements/p-e0bf9666.system.js +0 -1
  302. package/dist/zonos-elements/p-e1db1bc9.entry.js +0 -1
  303. package/dist/zonos-elements/p-e74ca4bc.entry.js +0 -1
@@ -1,3 +1,4 @@
1
+ import { PayPalNamespace } from '@paypal/paypal-js';
1
2
  import { StripeConstructor, StripeAddressElementChangeEvent, ContactOption, PaymentIntent, Stripe } from '@stripe/stripe-js';
2
3
  import { BrowserOptions } from '@sentry/browser';
3
4
  import { z } from 'zod';
@@ -482,6 +483,20 @@ declare const exchangeRateType: {
482
483
  readonly MidMarket: "MID_MARKET";
483
484
  };
484
485
  type ExchangeRateType = (typeof exchangeRateType)[keyof typeof exchangeRateType];
486
+ declare const externalPaymentMethodStatus: {
487
+ readonly Disabled: "DISABLED";
488
+ readonly Enabled: "ENABLED";
489
+ };
490
+ type ExternalPaymentMethodStatus = (typeof externalPaymentMethodStatus)[keyof typeof externalPaymentMethodStatus];
491
+ declare const externalPaymentMethodType: {
492
+ readonly Paypal: "PAYPAL";
493
+ };
494
+ type ExternalPaymentMethodType = (typeof externalPaymentMethodType)[keyof typeof externalPaymentMethodType];
495
+ declare const externalServiceTokenType: {
496
+ readonly PaypalClientId: "PAYPAL_CLIENT_ID";
497
+ readonly StripePublishableToken: "STRIPE_PUBLISHABLE_TOKEN";
498
+ };
499
+ type ExternalServiceTokenType = (typeof externalServiceTokenType)[keyof typeof externalServiceTokenType];
485
500
  declare const helloCurrencyBehavior: {
486
501
  readonly Disabled: "DISABLED";
487
502
  readonly Enabled: "ENABLED";
@@ -607,6 +622,12 @@ declare const partyType: {
607
622
  readonly Payor: "PAYOR";
608
623
  };
609
624
  type PartyType = (typeof partyType)[keyof typeof partyType];
625
+ declare const paypalMockResponse: {
626
+ readonly InstrumentDeclined: "INSTRUMENT_DECLINED";
627
+ readonly InternalServerError: "INTERNAL_SERVER_ERROR";
628
+ readonly TransactionRefused: "TRANSACTION_REFUSED";
629
+ };
630
+ type PaypalMockResponse = (typeof paypalMockResponse)[keyof typeof paypalMockResponse];
610
631
  declare const restrictedItemAction: {
611
632
  readonly Block: "BLOCK";
612
633
  readonly BlockAll: "BLOCK_ALL";
@@ -1494,10 +1515,6 @@ declare namespace Components {
1494
1515
  * Whether or not the continue button is loading
1495
1516
  */
1496
1517
  "continueLoading": boolean;
1497
- /**
1498
- * Error occurred during payment
1499
- */
1500
- "paymentError": boolean;
1501
1518
  /**
1502
1519
  * Submit button main color
1503
1520
  */
@@ -1948,6 +1965,8 @@ declare namespace Components {
1948
1965
  */
1949
1966
  "titleText"?: string;
1950
1967
  }
1968
+ interface ZonosPaypalPayment {
1969
+ }
1951
1970
  interface ZonosRestState {
1952
1971
  /**
1953
1972
  * The subtitle of the rest state
@@ -2065,6 +2084,36 @@ declare namespace Components {
2065
2084
  */
2066
2085
  "spacing": GridSpacing;
2067
2086
  }
2087
+ /**
2088
+ * The idea is from
2089
+ * @ref https://github.com/beenotung/stencil-virtual-scroll/blob/master/src/components/virtual-scroll-list/virtual-scroll-list.scss
2090
+ * @ref https://github.dev/ionic-team/ionic-framework/blob/v6.7.5/core/src/components/virtual-scroll/virtual-scroll.tsx
2091
+ */
2092
+ interface ZonosVirtualScroll {
2093
+ /**
2094
+ * Height that is used as a fallback if height is not provided
2095
+ */
2096
+ "fallbackItemHeight": number;
2097
+ /**
2098
+ * Heights list of each item
2099
+ */
2100
+ "itemHeights": number[];
2101
+ /**
2102
+ * Width of each item
2103
+ */
2104
+ "itemWidth"?: number;
2105
+ /**
2106
+ * Render item
2107
+ */
2108
+ "renderItem": (
2109
+ itemIndex: number,
2110
+ ) =>
2111
+ | HTMLElement
2112
+ | Promise<HTMLElement>
2113
+ | HTMLElement[]
2114
+ | Promise<HTMLElement[]>
2115
+ | Promise<HTMLElement>[];
2116
+ }
2068
2117
  }
2069
2118
  interface ZonosAddressCustomEvent<T> extends CustomEvent<T> {
2070
2119
  detail: T;
@@ -2114,6 +2163,10 @@ interface ZonosInputCustomEvent<T> extends CustomEvent<T> {
2114
2163
  detail: T;
2115
2164
  target: HTMLZonosInputElement;
2116
2165
  }
2166
+ interface ZonosPaypalPaymentCustomEvent<T> extends CustomEvent<T> {
2167
+ detail: T;
2168
+ target: HTMLZonosPaypalPaymentElement;
2169
+ }
2117
2170
  interface ZonosShippingCustomEvent<T> extends CustomEvent<T> {
2118
2171
  detail: T;
2119
2172
  target: HTMLZonosShippingElement;
@@ -2271,6 +2324,8 @@ declare global {
2271
2324
  };
2272
2325
  interface HTMLZonosCheckoutPaymentElementEventMap {
2273
2326
  "continueClicked": void;
2327
+ "paypalSessionFailed": void;
2328
+ "paypalSessionDone": string;
2274
2329
  }
2275
2330
  interface HTMLZonosCheckoutPaymentElement extends Components.ZonosCheckoutPayment, HTMLStencilElement {
2276
2331
  addEventListener<K extends keyof HTMLZonosCheckoutPaymentElementEventMap>(type: K, listener: (this: HTMLZonosCheckoutPaymentElement, ev: ZonosCheckoutPaymentCustomEvent<HTMLZonosCheckoutPaymentElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2323,6 +2378,7 @@ declare global {
2323
2378
  new (): HTMLZonosConfirmDialogElement;
2324
2379
  };
2325
2380
  interface HTMLZonosControllerElementEventMap {
2381
+ "paypalInitEvent": { paypalClientId: string };
2326
2382
  "stripeInitEvent": { publishableKey: string };
2327
2383
  }
2328
2384
  interface HTMLZonosControllerElement extends Components.ZonosController, HTMLStencilElement {
@@ -2479,6 +2535,24 @@ declare global {
2479
2535
  prototype: HTMLZonosPaymentElement;
2480
2536
  new (): HTMLZonosPaymentElement;
2481
2537
  };
2538
+ interface HTMLZonosPaypalPaymentElementEventMap {
2539
+ "paypalSessionDone": { orderId: string };
2540
+ "paypalSessionFail": void;
2541
+ }
2542
+ interface HTMLZonosPaypalPaymentElement extends Components.ZonosPaypalPayment, HTMLStencilElement {
2543
+ addEventListener<K extends keyof HTMLZonosPaypalPaymentElementEventMap>(type: K, listener: (this: HTMLZonosPaypalPaymentElement, ev: ZonosPaypalPaymentCustomEvent<HTMLZonosPaypalPaymentElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2544
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2545
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2546
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2547
+ removeEventListener<K extends keyof HTMLZonosPaypalPaymentElementEventMap>(type: K, listener: (this: HTMLZonosPaypalPaymentElement, ev: ZonosPaypalPaymentCustomEvent<HTMLZonosPaypalPaymentElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2548
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2549
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2550
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2551
+ }
2552
+ var HTMLZonosPaypalPaymentElement: {
2553
+ prototype: HTMLZonosPaypalPaymentElement;
2554
+ new (): HTMLZonosPaypalPaymentElement;
2555
+ };
2482
2556
  interface HTMLZonosRestStateElement extends Components.ZonosRestState, HTMLStencilElement {
2483
2557
  }
2484
2558
  var HTMLZonosRestStateElement: {
@@ -2555,6 +2629,17 @@ declare global {
2555
2629
  prototype: HTMLZonosVStackElement;
2556
2630
  new (): HTMLZonosVStackElement;
2557
2631
  };
2632
+ /**
2633
+ * The idea is from
2634
+ * @ref https://github.com/beenotung/stencil-virtual-scroll/blob/master/src/components/virtual-scroll-list/virtual-scroll-list.scss
2635
+ * @ref https://github.dev/ionic-team/ionic-framework/blob/v6.7.5/core/src/components/virtual-scroll/virtual-scroll.tsx
2636
+ */
2637
+ interface HTMLZonosVirtualScrollElement extends Components.ZonosVirtualScroll, HTMLStencilElement {
2638
+ }
2639
+ var HTMLZonosVirtualScrollElement: {
2640
+ prototype: HTMLZonosVirtualScrollElement;
2641
+ new (): HTMLZonosVirtualScrollElement;
2642
+ };
2558
2643
  interface HTMLElementTagNameMap {
2559
2644
  "zonos-address": HTMLZonosAddressElement;
2560
2645
  "zonos-address-display": HTMLZonosAddressDisplayElement;
@@ -2593,6 +2678,7 @@ declare global {
2593
2678
  "zonos-logo": HTMLZonosLogoElement;
2594
2679
  "zonos-notification": HTMLZonosNotificationElement;
2595
2680
  "zonos-payment": HTMLZonosPaymentElement;
2681
+ "zonos-paypal-payment": HTMLZonosPaypalPaymentElement;
2596
2682
  "zonos-rest-state": HTMLZonosRestStateElement;
2597
2683
  "zonos-review": HTMLZonosReviewElement;
2598
2684
  "zonos-select-dialog-header": HTMLZonosSelectDialogHeaderElement;
@@ -2602,6 +2688,7 @@ declare global {
2602
2688
  "zonos-text": HTMLZonosTextElement;
2603
2689
  "zonos-tooltip": HTMLZonosTooltipElement;
2604
2690
  "zonos-v-stack": HTMLZonosVStackElement;
2691
+ "zonos-virtual-scroll": HTMLZonosVirtualScrollElement;
2605
2692
  }
2606
2693
  }
2607
2694
  declare namespace LocalJSX {
@@ -2968,9 +3055,13 @@ declare namespace LocalJSX {
2968
3055
  */
2969
3056
  "onContinueClicked"?: (event: ZonosCheckoutPaymentCustomEvent<void>) => void;
2970
3057
  /**
2971
- * Error occurred during payment
3058
+ * Event to emit when the paypal session is done
2972
3059
  */
2973
- "paymentError"?: boolean;
3060
+ "onPaypalSessionDone"?: (event: ZonosCheckoutPaymentCustomEvent<string>) => void;
3061
+ /**
3062
+ * Event to emit when the paypal session failed
3063
+ */
3064
+ "onPaypalSessionFailed"?: (event: ZonosCheckoutPaymentCustomEvent<void>) => void;
2974
3065
  /**
2975
3066
  * Submit button main color
2976
3067
  */
@@ -3074,6 +3165,10 @@ declare namespace LocalJSX {
3074
3165
  * The zonos config object
3075
3166
  */
3076
3167
  "config": LoadZonosParamsConfig;
3168
+ /**
3169
+ * Event emitted to initialize paypal
3170
+ */
3171
+ "onPaypalInitEvent"?: (event: ZonosControllerCustomEvent<{ paypalClientId: string }>) => void;
3077
3172
  /**
3078
3173
  * Event emitted when stripe is initialized
3079
3174
  */
@@ -3375,6 +3470,16 @@ declare namespace LocalJSX {
3375
3470
  */
3376
3471
  "titleText"?: string;
3377
3472
  }
3473
+ interface ZonosPaypalPayment {
3474
+ /**
3475
+ * Event to emit when the paypal session is done
3476
+ */
3477
+ "onPaypalSessionDone"?: (event: ZonosPaypalPaymentCustomEvent<{ orderId: string }>) => void;
3478
+ /**
3479
+ * Event to emit when the paypal session is failed
3480
+ */
3481
+ "onPaypalSessionFail"?: (event: ZonosPaypalPaymentCustomEvent<void>) => void;
3482
+ }
3378
3483
  interface ZonosRestState {
3379
3484
  /**
3380
3485
  * The subtitle of the rest state
@@ -3500,6 +3605,36 @@ declare namespace LocalJSX {
3500
3605
  */
3501
3606
  "spacing"?: GridSpacing;
3502
3607
  }
3608
+ /**
3609
+ * The idea is from
3610
+ * @ref https://github.com/beenotung/stencil-virtual-scroll/blob/master/src/components/virtual-scroll-list/virtual-scroll-list.scss
3611
+ * @ref https://github.dev/ionic-team/ionic-framework/blob/v6.7.5/core/src/components/virtual-scroll/virtual-scroll.tsx
3612
+ */
3613
+ interface ZonosVirtualScroll {
3614
+ /**
3615
+ * Height that is used as a fallback if height is not provided
3616
+ */
3617
+ "fallbackItemHeight": number;
3618
+ /**
3619
+ * Heights list of each item
3620
+ */
3621
+ "itemHeights": number[];
3622
+ /**
3623
+ * Width of each item
3624
+ */
3625
+ "itemWidth"?: number;
3626
+ /**
3627
+ * Render item
3628
+ */
3629
+ "renderItem": (
3630
+ itemIndex: number,
3631
+ ) =>
3632
+ | HTMLElement
3633
+ | Promise<HTMLElement>
3634
+ | HTMLElement[]
3635
+ | Promise<HTMLElement[]>
3636
+ | Promise<HTMLElement>[];
3637
+ }
3503
3638
  interface IntrinsicElements {
3504
3639
  "zonos-address": ZonosAddress;
3505
3640
  "zonos-address-display": ZonosAddressDisplay;
@@ -3538,6 +3673,7 @@ declare namespace LocalJSX {
3538
3673
  "zonos-logo": ZonosLogo;
3539
3674
  "zonos-notification": ZonosNotification;
3540
3675
  "zonos-payment": ZonosPayment;
3676
+ "zonos-paypal-payment": ZonosPaypalPayment;
3541
3677
  "zonos-rest-state": ZonosRestState;
3542
3678
  "zonos-review": ZonosReview;
3543
3679
  "zonos-select-dialog-header": ZonosSelectDialogHeader;
@@ -3547,6 +3683,7 @@ declare namespace LocalJSX {
3547
3683
  "zonos-text": ZonosText;
3548
3684
  "zonos-tooltip": ZonosTooltip;
3549
3685
  "zonos-v-stack": ZonosVStack;
3686
+ "zonos-virtual-scroll": ZonosVirtualScroll;
3550
3687
  }
3551
3688
  }
3552
3689
 
@@ -3590,6 +3727,7 @@ declare module "@stencil/core" {
3590
3727
  "zonos-logo": LocalJSX.ZonosLogo & JSXBase.HTMLAttributes<HTMLZonosLogoElement>;
3591
3728
  "zonos-notification": LocalJSX.ZonosNotification & JSXBase.HTMLAttributes<HTMLZonosNotificationElement>;
3592
3729
  "zonos-payment": LocalJSX.ZonosPayment & JSXBase.HTMLAttributes<HTMLZonosPaymentElement>;
3730
+ "zonos-paypal-payment": LocalJSX.ZonosPaypalPayment & JSXBase.HTMLAttributes<HTMLZonosPaypalPaymentElement>;
3593
3731
  "zonos-rest-state": LocalJSX.ZonosRestState & JSXBase.HTMLAttributes<HTMLZonosRestStateElement>;
3594
3732
  "zonos-review": LocalJSX.ZonosReview & JSXBase.HTMLAttributes<HTMLZonosReviewElement>;
3595
3733
  "zonos-select-dialog-header": LocalJSX.ZonosSelectDialogHeader & JSXBase.HTMLAttributes<HTMLZonosSelectDialogHeaderElement>;
@@ -3599,6 +3737,12 @@ declare module "@stencil/core" {
3599
3737
  "zonos-text": LocalJSX.ZonosText & JSXBase.HTMLAttributes<HTMLZonosTextElement>;
3600
3738
  "zonos-tooltip": LocalJSX.ZonosTooltip & JSXBase.HTMLAttributes<HTMLZonosTooltipElement>;
3601
3739
  "zonos-v-stack": LocalJSX.ZonosVStack & JSXBase.HTMLAttributes<HTMLZonosVStackElement>;
3740
+ /**
3741
+ * The idea is from
3742
+ * @ref https://github.com/beenotung/stencil-virtual-scroll/blob/master/src/components/virtual-scroll-list/virtual-scroll-list.scss
3743
+ * @ref https://github.dev/ionic-team/ionic-framework/blob/v6.7.5/core/src/components/virtual-scroll/virtual-scroll.tsx
3744
+ */
3745
+ "zonos-virtual-scroll": LocalJSX.ZonosVirtualScroll & JSXBase.HTMLAttributes<HTMLZonosVirtualScrollElement>;
3602
3746
  }
3603
3747
  }
3604
3748
  }
@@ -3777,6 +3921,19 @@ type CheckoutConfig = {
3777
3921
  * @note if set to true, we will not enable or disable the place order button
3778
3922
  */
3779
3923
  disablePlaceOrderButtonActivation?: boolean;
3924
+ externalPaymentMethods: Array<{
3925
+ status: ExternalPaymentMethodStatus;
3926
+ type: ExternalPaymentMethodType;
3927
+ }> | null;
3928
+ externalServiceTokens: {
3929
+ token: string;
3930
+ type: ExternalServiceTokenType;
3931
+ }[];
3932
+ /**
3933
+ * Test mode for checkout (sandbox or production)
3934
+ * @default TEST
3935
+ */
3936
+ mode: Mode;
3780
3937
  orderNotifications: {
3781
3938
  abandonedCart: {
3782
3939
  delay: number;
@@ -4078,6 +4235,10 @@ type LoadZonosParams = LoadZonosParamsConfig & {
4078
4235
  zonosApiKey: string;
4079
4236
  };
4080
4237
  interface Zonos {
4238
+ /**
4239
+ * Mock error response for Paypal. Mainly used for testing purposes
4240
+ */
4241
+ _paypalMockResponse: PaypalMockResponse | null;
4081
4242
  /**
4082
4243
  * Toggle debug mode (add query param 'zonosDebug=1' to url)
4083
4244
  * @default false
@@ -4088,6 +4249,7 @@ interface Zonos {
4088
4249
  isNpm: boolean;
4089
4250
  /** Flag if already alerted when preview domain is defined and it's connecting production environment */
4090
4251
  modeAlerted: boolean;
4252
+ paypal: PayPalNamespace | null;
4091
4253
  storeId: number;
4092
4254
  /** Stripe instance */
4093
4255
  stripe: Stripe;
@@ -4115,6 +4277,7 @@ declare abstract class Zonos {
4115
4277
  static doneInit: boolean;
4116
4278
  static debug: boolean;
4117
4279
  static zonosConversionTest: boolean;
4280
+ static _paypalMockResponse: PaypalMockResponse | null;
4118
4281
  static isBigCommerce: boolean;
4119
4282
  /**
4120
4283
  * By default, the package will load from npm
@@ -4124,6 +4287,7 @@ declare abstract class Zonos {
4124
4287
  static version: string;
4125
4288
  static modeAlerted: boolean;
4126
4289
  static tempCartData: TempCart | null;
4290
+ static paypal: PayPalNamespace | null;
4127
4291
  static getCurrentTimestamp: () => number;
4128
4292
  private static zonosController;
4129
4293
  static init: ({ appearance, checkoutSettings, currencyConverter, helloSettings, onCountryChange, overrideCurrencyFormat, storeId, zonosApiKey, }: LoadZonosParams) => Promise<void>;
@@ -1 +1 @@
1
- (function(){"use strict";const e=(e,t,...n)=>{var o,r;if(!(!!(null===(o=window.Zonos)||void 0===o?void 0:o.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...n));let s=document.querySelector("iframe#zonos---debug-logging-iframe");s||(s=document.createElement("iframe"),s.id="zonos---debug-logging-iframe",s.style.display="none",s.style.opacity="0",s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.width="1px",s.style.height="1px",s.style.border="none",s.style.overflow="hidden",s.style.visibility="hidden",document.body.appendChild(s));const i=(null===(r=s.contentWindow)||void 0===r?void 0:r.window.console)||window.console;switch(t){case"warn":i.warn(e,...n);break;case"info":i.info(e,...n);break;case"error":i.error(e,...n);break;default:i.groupCollapsed(e,...n),i.trace(),i.groupEnd()}},t=(t,...n)=>{e(t,"error",...n)},n=["jsdelivr","unpkg","vercel"],o=e=>{const t=n.indexOf(e);return n[t+1]||null},r=()=>{if("undefined"==typeof window)return null;const t=(e=>{if(!e)return null;const t=new URL(e).searchParams.get("zonosQaUrl");return t?/[^a-zA-Z0-9-_]+/.test(t)?null:t:null})(window.location.href);if(!t)return null;if("dev-elements"===t)return"https://dev.elements.zonos.com";const n=`https://${t}.preview.js.zonos.com`;return e(`[ZONOS-WARNING] using '${n}' for loading 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:t}=window.location,o=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",o),window.location.reload(),null})),n},s="https://js.stripe.com/v3",i=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,l="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let c=null;const d=e=>(null!==c||(c=new Promise(((n,o)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(l),window.Stripe)n(window.Stripe);else try{let r=(()=>{const e=document.querySelectorAll(`script[src^="${s}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&i.test(n.src))return n}return null})();r&&e?console.warn(l):r||(r=(e=>{const n=document.createElement("script");n.src=`${s}`;const o=document.head||document.body;return o?(o.appendChild(n),n):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==r||r.addEventListener("load",(()=>{window.Stripe?n(window.Stripe):o(new Error("Stripe.js not available"))})),null==r||r.addEventListener("error",(()=>{o(new Error("Failed to load Stripe.js"))}))}catch(e){return void o(e)}else n(null)}))),c),a=Promise.resolve().then((()=>d(null)));let u=!1;a.catch((e=>{u||console.warn(e)}));var p;const m=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:n}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,n=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),o=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:o,isWhiteListed:n}})({loadScriptSrc:null==e?void 0:e.src});return n?t:null})(),h="https://v1.3.39.js.zonos.com",y=m||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.39",f="jsdelivr",w="https://rsms.me",g="https://fonts.googleapis.com",v=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class S{}p=S,S.doneInit=!1,S.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),S.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),S.isBigCommerce=!1,S.isNpm=!0,S.zonosQaUrl=null,S.version="v1.3.39",S.modeAlerted=!1,S.tempCartData=null,S.getCurrentTimestamp=()=>(new Date).getTime(),S.zonosController=null,S.init=async({appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{p.doneInit||(e(`====== ZONOS DEBUG MODE: on (${p.version}) ======`),d?(p.zonosApiKey=d,p.storeId=c,e("init zonos"),p.injectZonosCdn(),p.injectZonosCss(),p.injectFonts(),p.injectController({config:{appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),p.doneInit=!0):t("Missing Zonos API key"))},S.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},S.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},S.showNotification=e=>{var t;null===(t=p.zonosController)||void 0===t||t.showNotification(e)},S.updateOrganizationName=e=>{var t;null===(t=p.zonosController)||void 0===t||t.updateOrganizationName(e)},S.disablePlaceOrderButtons=({autoEnable:e=!0,config:t,disable:n,placeOrderButtonSelector:o})=>{var r;if(!(null===(r=t.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&o){const t=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};t.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(n?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&n&&setTimeout((()=>{t.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},S.injectController=({config:n,zonosApiKey:o})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=n.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=n.checkoutSettings.placeOrderButtonSelector;p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=n,s.zonosApiKey=o,s.addEventListener("stripeInitEvent",(async n=>{const{detail:o}=n;e("loading Stripe");const r=await(async(...e)=>{u=!0;const t=Date.now();return a.then((n=>((e,t,n)=>{if(null===e)return null;const o=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(o,n),o})(n,e,t)))})(o.publishableKey);r?(window.Zonos.stripe=r,s.initCheckoutElement(r)):t("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(s),p.zonosController=s,e("Zonos controller injected!")},S.injectScript=({cdnType:n,isModule:r,theRestUrl:s})=>{const i=`${p.getZonosUrl(n)}/${s}`;if(document.querySelector(`script[src="${i}"]`))return void e(`Zonos script "${i}" already exists in the document`,"warn");const l=document.head||document.body,c=document.createElement("script");r?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{t(`Failed to load ${c.src}`);const e=o(n);e&&p.injectScript({cdnType:e,isModule:r,theRestUrl:s})},l.appendChild(c)},S.getZonosUrl=e=>{const t=()=>{switch(e){case"jsdelivr":return y;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.39";default:return h}};if(p.isNpm){return r()||t()}return t()},S.injectZonosCdn=()=>{p.injectScript({cdnType:f,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),p.injectScript({cdnType:f,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},S.injectStylesheet=({cdnType:e,theRestUrl:n})=>{const r=p.getZonosUrl(e),s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${h}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${r}/${n}`,l.onerror=()=>{t(`Failed to load ${l.href}`);const r=o(e);r&&p.injectStylesheet({cdnType:r,theRestUrl:n})},s.appendChild(l)},S.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(p.injectStylesheet({cdnType:f,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},S.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${w}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&!v.test(n.href))return n}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,n=document.createElement("link");n.rel="preconnect",n.href=w,t.appendChild(n);const o=document.createElement("link");o.rel="stylesheet",o.href=`${w}/inter/inter.css`,t.appendChild(o),e("Zonos font injected!")},S.setupGoogleFont=e=>{var t;null===(t=p.zonosController)||void 0===t||t.setupGoogleFont(e)},S.injectSupportGoogleFont=t=>{var n;e(`[FONT] injecting ${t}`);const o=null===(n=t.match(/family=(.*?):/))||void 0===n?void 0:n[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${g}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=g,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${o} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${o} font injected!`)},exports.Zonos=S})();
1
+ (function(){"use strict";const e=(e,t,...n)=>{var o,r;if(!(!!(null===(o=window.Zonos)||void 0===o?void 0:o.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...n));let s=document.querySelector("iframe#zonos---debug-logging-iframe");s||(s=document.createElement("iframe"),s.id="zonos---debug-logging-iframe",s.style.display="none",s.style.opacity="0",s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.width="1px",s.style.height="1px",s.style.border="none",s.style.overflow="hidden",s.style.visibility="hidden",document.body.appendChild(s));const i=(null===(r=s.contentWindow)||void 0===r?void 0:r.window.console)||window.console;switch(t){case"warn":i.warn(e,...n);break;case"info":i.info(e,...n);break;case"error":i.error(e,...n);break;default:i.groupCollapsed(e,...n),i.trace(),i.groupEnd()}},t=(t,...n)=>{e(t,"error",...n)},n=["jsdelivr","unpkg","vercel"],o=e=>{const t=n.indexOf(e);return n[t+1]||null},r=()=>{if("undefined"==typeof window)return null;const t=(e=>{if(!e)return null;const t=new URL(e).searchParams.get("zonosQaUrl");return t?/[^a-zA-Z0-9-_]+/.test(t)?null:t:null})(window.location.href);if(!t&&"dev.demo.elements.zonos.com"===window.location.hostname)return"https://dev.elements.zonos.com";if(!t)return null;if("dev-elements"===t)return"https://dev.elements.zonos.com";const n=`https://${t}.preview.js.zonos.com`;return e(`[ZONOS-WARNING] using '${n}' for loading 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:t}=window.location,o=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",o),window.location.reload(),null})),n},s="https://js.stripe.com/v3",i=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,l="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let c=null;const d=e=>(null!==c||(c=new Promise(((n,o)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(l),window.Stripe)n(window.Stripe);else try{let r=(()=>{const e=document.querySelectorAll(`script[src^="${s}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&i.test(n.src))return n}return null})();r&&e?console.warn(l):r||(r=(e=>{const n=document.createElement("script");n.src=`${s}`;const o=document.head||document.body;return o?(o.appendChild(n),n):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==r||r.addEventListener("load",(()=>{window.Stripe?n(window.Stripe):o(new Error("Stripe.js not available"))})),null==r||r.addEventListener("error",(()=>{o(new Error("Failed to load Stripe.js"))}))}catch(e){return void o(e)}else n(null)}))),c),a=Promise.resolve().then((()=>d(null)));let u=!1;a.catch((e=>{u||console.warn(e)}));var p;const m=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:n}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,n=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),o=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:o,isWhiteListed:n}})({loadScriptSrc:null==e?void 0:e.src});return n?t:null})(),h="https://v1.3.41.js.zonos.com",y=m||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.41",w="jsdelivr",f="https://rsms.me",v="https://fonts.googleapis.com",g=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class S{}p=S,S.doneInit=!1,S.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),S.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),S._paypalMockResponse=null,S.isBigCommerce=!1,S.isNpm=!0,S.zonosQaUrl=null,S.version="v1.3.41",S.modeAlerted=!1,S.tempCartData=null,S.paypal=null,S.getCurrentTimestamp=()=>(new Date).getTime(),S.zonosController=null,S.init=async({appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{p.doneInit||(e(`====== ZONOS DEBUG MODE: on (${p.version}) ======`),d?(p.zonosApiKey=d,p.storeId=c,e("init zonos"),p.injectZonosCdn(),p.injectZonosCss(),p.injectFonts(),p.injectController({config:{appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),p.doneInit=!0):t("Missing Zonos API key"))},S.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},S.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},S.showNotification=e=>{var t;null===(t=p.zonosController)||void 0===t||t.showNotification(e)},S.updateOrganizationName=e=>{var t;null===(t=p.zonosController)||void 0===t||t.updateOrganizationName(e)},S.disablePlaceOrderButtons=({autoEnable:e=!0,config:t,disable:n,placeOrderButtonSelector:o})=>{var r;if(!(null===(r=t.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&o){const t=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};t.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(n?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&n&&setTimeout((()=>{t.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},S.injectController=({config:n,zonosApiKey:o})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=n.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=n.checkoutSettings.placeOrderButtonSelector;p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=n,s.zonosApiKey=o,s.addEventListener("stripeInitEvent",(async n=>{const{detail:o}=n;e("loading Stripe");const r=await(async(...e)=>{u=!0;const t=Date.now();return a.then((n=>((e,t,n)=>{if(null===e)return null;const o=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(o,n),o})(n,e,t)))})(o.publishableKey);r?(window.Zonos.stripe=r,s.initCheckoutElement(r)):t("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(s),p.zonosController=s,e("Zonos controller injected!")},S.injectScript=({cdnType:n,isModule:r,theRestUrl:s})=>{const i=`${p.getZonosUrl(n)}/${s}`;if(document.querySelector(`script[src="${i}"]`))return void e(`Zonos script "${i}" already exists in the document`,"warn");const l=document.head||document.body,c=document.createElement("script");r?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{t(`Failed to load ${c.src}`);const e=o(n);e&&p.injectScript({cdnType:e,isModule:r,theRestUrl:s})},l.appendChild(c)},S.getZonosUrl=e=>{const t=()=>{switch(e){case"jsdelivr":return y;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.41";default:return h}};if(p.isNpm){return r()||t()}return t()},S.injectZonosCdn=()=>{p.injectScript({cdnType:w,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),p.injectScript({cdnType:w,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},S.injectStylesheet=({cdnType:e,theRestUrl:n})=>{const r=p.getZonosUrl(e),s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${h}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${r}/${n}`,l.onerror=()=>{t(`Failed to load ${l.href}`);const r=o(e);r&&p.injectStylesheet({cdnType:r,theRestUrl:n})},s.appendChild(l)},S.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(p.injectStylesheet({cdnType:w,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},S.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${f}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&!g.test(n.href))return n}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,n=document.createElement("link");n.rel="preconnect",n.href=f,t.appendChild(n);const o=document.createElement("link");o.rel="stylesheet",o.href=`${f}/inter/inter.css`,t.appendChild(o),e("Zonos font injected!")},S.setupGoogleFont=e=>{var t;null===(t=p.zonosController)||void 0===t||t.setupGoogleFont(e)},S.injectSupportGoogleFont=t=>{var n;e(`[FONT] injecting ${t}`);const o=null===(n=t.match(/family=(.*?):/))||void 0===n?void 0:n[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${v}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=v,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${o} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${o} font injected!`)},exports.Zonos=S})();
@@ -1 +1 @@
1
- (function(){"use strict";"function"==typeof SuppressedError&&SuppressedError;const e=async({response:e,shouldLog:o=!0,shouldThrow:t=!1})=>{try{return await e.json()}catch(e){if(t)throw e;return o&&console.error(e),null}};const o=async(o,t)=>{const n=(function(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})(t||{},[]),r=n.body?JSON.stringify(n.body):void 0,s=n.method||"GET",i=new URL(o);i.searchParams.set("zToken",(function(e){try{return btoa(e).replace(/=/g,"")}catch(o){return e.replace(/[^A-Za-z0-9]/g,"").split("").reverse().join("")}})(window.location.hostname));const a=Object.assign({"Content-Type":"application/json","Zonos-Is-BigCommerce":window.Zonos.isBigCommerce.toString(),"Zonos-Referer":window.location.hostname,"Zonos-Version":window.Zonos.version,credentialtoken:window.Zonos.zonosApiKey||"Empty credential token from zonos-elements"},n.headers),c=Object.assign(Object.assign({},n),{body:"GET"===s?void 0:r,headers:a,method:s});return(async(o,t)=>{let n;try{n=await fetch(o,t)}catch(e){return e instanceof Error?{errors:[{message:e.message,type:"unknown"}],json:null,response:null}:{errors:[{message:"Fail to fetch",type:"unknown"}],json:null,response:null}}const r=n.headers.get("Zonos-Mode"),s=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&r&&s&&("production"===r&&alert("Please be aware that you are currently operating in the production environment. Any interactions with the customer store, including payments, will be processed as real transactions!"),"test"===r&&alert("For testing payments, you can utilize the test payment information provided at this link: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements#web-test-the-integration"),window.Zonos.modeAlerted=!0),n.ok)return{errors:[],json:await e({response:n}),response:n};const i=n.status.toString();try{const o=await e({response:n,shouldThrow:!0});return{errors:[{message:`${i}: ${JSON.stringify(o)}`,type:i}],json:null,response:n}}catch(e){return{errors:[{message:`${i}: Unknown error`,type:i}],json:null,response:null}}})(i.toString(),c)},t=(e,o,...t)=>{var n,r;if(!(!!(null===(n=window.Zonos)||void 0===n?void 0:n.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===o&&console.error(e,...t));let s=document.querySelector("iframe#zonos---debug-logging-iframe");s||(s=document.createElement("iframe"),s.id="zonos---debug-logging-iframe",s.style.display="none",s.style.opacity="0",s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.width="1px",s.style.height="1px",s.style.border="none",s.style.overflow="hidden",s.style.visibility="hidden",document.body.appendChild(s));const i=(null===(r=s.contentWindow)||void 0===r?void 0:r.window.console)||window.console;switch(o){case"warn":i.warn(e,...t);break;case"info":i.info(e,...t);break;case"error":i.error(e,...t);break;default:i.groupCollapsed(e,...t),i.trace(),i.groupEnd()}},n=(e,...o)=>{t(e,"error",...o)},r=async({endpoint:e,errors:t,metadata:n})=>{const r="userAgentData"in window.navigator?window.navigator.userAgentData:null,s={endpoint:e,errors:t,metadata:Object.assign({href:window.location.href,userAgent:r&&r.brands.length>0?r:window.navigator.userAgent},n)};o("https://v1.route.js.zonos.com/api/zonos-elements/log-error",{body:s,method:"POST"})},s=({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const o=new URL(e).origin,t=["dev.elements.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}},i=["jsdelivr","unpkg","vercel"],a=e=>{const o=i.indexOf(e);return i[o+1]||null},c=()=>{if("undefined"==typeof window)return null;const e=(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);if(!e)return null;if("dev-elements"===e)return"https://dev.elements.zonos.com";const o=`https://${e}.preview.js.zonos.com`;return t(`[ZONOS-WARNING] using '${o}' for loading script`,"warn"),fetch(o).then((()=>{window.sessionStorage.removeItem("zonos--checkout-session-id"),window.sessionStorage.removeItem("zonos--client-secret")})).catch((()=>{alert(`[ZONOS-WARNING] '${o}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);const e=new URLSearchParams(window.location.search);e.delete("zonosQaUrl");const{pathname:t}=window.location,n=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",n),window.location.reload(),null})),o},l="https://js.stripe.com/v3",d=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,p="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let u=null;const m=e=>(null!==u||(u=new Promise(((o,t)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(p),window.Stripe)o(window.Stripe);else try{let r=(()=>{const e=document.querySelectorAll(`script[src^="${l}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&d.test(t.src))return t}return null})();r&&e?console.warn(p):r||(r=(e=>{const o=document.createElement("script");o.src=`${l}`;const t=document.head||document.body;return t?(t.appendChild(o),o):(n("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==r||r.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):t(new Error("Stripe.js not available"))})),null==r||r.addEventListener("error",(()=>{t(new Error("Failed to load Stripe.js"))}))}catch(e){return void t(e)}else o(null)}))),u),h=Promise.resolve().then((()=>m(null)));let y=!1;h.catch((e=>{y||console.warn(e)}));var g;const w=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:o,isWhiteListed:t}=s({loadScriptSrc:null==e?void 0:e.src});return t?o:null})(),f="https://v1.3.39.js.zonos.com",v=w||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.39",S="jsdelivr",b="https://rsms.me",C="https://fonts.googleapis.com",z=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;let j=class{};var L;g=j,j.doneInit=!1,j.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),j.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),j.isBigCommerce=!1,j.isNpm=!0,j.zonosQaUrl=null,j.version="v1.3.39",j.modeAlerted=!1,j.tempCartData=null,j.getCurrentTimestamp=()=>(new Date).getTime(),j.zonosController=null,j.init=async({appearance:e,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:a,storeId:c,zonosApiKey:l})=>{g.doneInit||(t(`====== ZONOS DEBUG MODE: on (${g.version}) ======`),l?(g.zonosApiKey=l,g.storeId=c,t("init zonos"),g.injectZonosCdn(),g.injectZonosCss(),g.injectFonts(),g.injectController({config:{appearance:e,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:a},zonosApiKey:l}),g.doneInit=!0):n("Missing Zonos API key"))},j.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},j.openHelloDialog=e=>{const o=document.querySelector("zonos-hello");o&&o.openHelloDialog(null==e||e)},j.showNotification=e=>{var o;null===(o=g.zonosController)||void 0===o||o.showNotification(e)},j.updateOrganizationName=e=>{var o;null===(o=g.zonosController)||void 0===o||o.updateOrganizationName(e)},j.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)}},j.injectController=({config:e,zonosApiKey:o})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=e.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const o=e.checkoutSettings.placeOrderButtonSelector;g.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{g.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=e,s.zonosApiKey=o,s.addEventListener("stripeInitEvent",(async e=>{const{detail:o}=e;t("loading Stripe");const r=await(async(...e)=>{y=!0;const o=Date.now();return h.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);r?(window.Zonos.stripe=r,s.initCheckoutElement(r)):n("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(s),g.zonosController=s,t("Zonos controller injected!")},j.injectScript=({cdnType:e,isModule:o,theRestUrl:r})=>{const s=`${g.getZonosUrl(e)}/${r}`;if(document.querySelector(`script[src="${s}"]`))return void t(`Zonos script "${s}" already exists in the document`,"warn");const i=document.head||document.body,c=document.createElement("script");o?c.type="module":c.noModule=!0,c.src=s,c.crossOrigin="anonymous",c.onerror=()=>{n(`Failed to load ${c.src}`);const t=a(e);t&&g.injectScript({cdnType:t,isModule:o,theRestUrl:r})},i.appendChild(c)},j.getZonosUrl=e=>{const o=()=>{switch(e){case"jsdelivr":return v;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.39";default:return f}};if(g.isNpm){return c()||o()}return o()},j.injectZonosCdn=()=>{g.injectScript({cdnType:S,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),g.injectScript({cdnType:S,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),t("Zonos cdn script injected!")},j.injectStylesheet=({cdnType:e,theRestUrl:o})=>{const t=g.getZonosUrl(e),r=document.head||document.body,s=document.createElement("link");s.rel="preconnect",s.href=`${f}/`,r.appendChild(s);const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/${o}`,i.onerror=()=>{n(`Failed to load ${i.href}`);const t=a(e);t&&g.injectStylesheet({cdnType:t,theRestUrl:o})},r.appendChild(i)},j.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?t("Zonos style links already injected","warn"):(g.injectStylesheet({cdnType:S,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),t("Zonos style css injected!"))},j.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${b}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&!z.test(t.href))return t}return null})())return void t("Inter font already injected","warn");const e=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=b,e.appendChild(o);const n=document.createElement("link");n.rel="stylesheet",n.href=`${b}/inter/inter.css`,e.appendChild(n),t("Zonos font injected!")},j.setupGoogleFont=e=>{var o;null===(o=g.zonosController)||void 0===o||o.setupGoogleFont(e)},j.injectSupportGoogleFont=e=>{var o;t(`[FONT] injecting ${e}`);const n=null===(o=e.match(/family=(.*?):/))||void 0===o?void 0:o[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${C}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=C,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${e}"]`))return void t(`[FONT] ${n} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=e,r.appendChild(s),t(`[FONT] ${n} font injected!`)};const O=c();class U{static get isNpm(){return!1}}L=U,U.isBigCommerce=!1,U.requested=!1,U.zonosQaUrl=null,U.tempCartData=null,U.zonosApiKey=null,U.isLegacyCheckout=!1,U.legacyStoreLogo=null,U.legacyStoreFavicon=null,U.parallelLoadTimes=[],U.paralellLoadState="off",U.loadScriptLogHandler=async({cdnLoadTime:e,fallbackLoadTime:o,isError:t,metadata:n,scriptLoadUrl:r,storeId:s,type:i})=>{try{const e=window.performance.getEntriesByType("resource").find((e=>{const o=e;return o.name.includes(r)&&"script"===o.initiatorType}));null==e||e.transferSize;(async e=>{})((e&&(null==e?void 0:e.duration)>0?parseFloat(e.duration.toFixed(2)):parseFloat(o.toFixed(2)),Object.assign({decodedBodySize:null==e?void 0:e.decodedBodySize,encodedBodySize:null==e?void 0:e.encodedBodySize,fallbackLoadTime:o,isError:!!t},n)))}catch(e){}},U.loadScriptLogParallelHandler=async e=>{try{if(L.parallelLoadTimes.push(e),2===L.parallelLoadTimes.length){const e=L.parallelLoadTimes.find((e=>"vercel"===e.type)),o=L.parallelLoadTimes.find((e=>"jsdelivr"===e.type));if(!e||!o)return;if(e.isError&&o.isError)return void r({endpoint:`<${e.scriptLoadUrl}> <${o.scriptLoadUrl}>`,errors:["Failed to fetch both Vercel and jsdelivr CDN. Perhaps network issue on customer site."],metadata:{cdnLoadTime:o.fallbackLoadTime,cdnType:o.type,vercelLoadTime:e.fallbackLoadTime}});L.loadScriptLogHandler({cdnLoadTime:o.fallbackLoadTime,fallbackLoadTime:e.fallbackLoadTime,isError:e.isError,metadata:{cdnScriptFallbackTime:o.fallbackLoadTime,cdnScriptIsError:!!o.isError,cdnScriptLoadUrl:o.scriptLoadUrl,cdnScriptType:o.type},scriptLoadUrl:e.scriptLoadUrl,storeId:e.storeId,type:e.type})}}catch(e){}},U.legacyCheckoutErrorHandler=({message:e,tempCartUUID:o})=>{n(`[ZONOS - loadZonos] ${e}`),r({endpoint:"LegacyCheckoutInit",errors:[e],metadata:{tempCartUUID:o}}),document.dispatchEvent(new CustomEvent("legacyCheckoutError",{detail:e}))},U.getGithubCdn=({type:e,version:o})=>{let t="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.39";"unpkg"===e&&(t="https://unpkg.com/@zonos/elements@1.3.39");return o&&"alpha"!==o?t.replace(/@zonos\/elements@(.+)/,`@zonos/elements@${o}`):t},U.injectZonos=({cdnType:e=S,initConfig:o,parallelLoaded:n,vercelUrl:s,version:c})=>{var l;const d="vercel"===e?s:L.getGithubCdn({type:e,version:c}),p=O||d,u=p.replace("https://","").replace("http://",""),m=document.createElement("script"),h=c&&c<"1.2.5"?"loadZonos.js":"zonos.js";m.src=`https://${u}/dist/scripts/${h}`,t(`[ZONOS - loadZonos] Injecting "${h}" from "${u}"`,"info");const y="4g"===(null===(l=(()=>{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})())||void 0===l?void 0:l.effectiveType),g=["dev.elements.zonos.com","zonos.com"].some((e=>window.location.href.includes(e))),w=i[0]===e,f=i[1],v="on"===L.paralellLoadState&&y&&w&&f&&!g;v&&L.injectZonos({cdnType:f,initConfig:o,parallelLoaded:!0,vercelUrl:s,version:c});const b=performance.now();m.addEventListener("load",(()=>{if(v||n?L.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-b,scriptLoadUrl:m.src,storeId:L.storeId,type:e}):L.loadScriptLogHandler({fallbackLoadTime:performance.now()-b,scriptLoadUrl:m.src,storeId:L.storeId,type:e}),L.isBigCommerce||(L.isBigCommerce=!!window.stencilBootstrap||!!window.bcConfig||!!document.querySelector('script[src*="bigcommerce.com"]')),window.Zonos.isNpm=!1,window.Zonos.zonosQaUrl=O,window.Zonos.isBigCommerce=L.isBigCommerce,L.isLegacyCheckout){if(!L.zonosApiKey)throw L.legacyCheckoutErrorHandler({message:"zonosApiKey is required for legacy checkout",tempCartUUID:o.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(!L.tempCartData)throw L.legacyCheckoutErrorHandler({message:"tempCartData is required for legacy checkout",tempCartUUID:o.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(L.legacyStoreFavicon){const e=document.createElement("link");e.rel="shortcut icon",e.type="image/x-icon",e.href=L.legacyStoreFavicon,document.head.appendChild(e)}window.Zonos.tempCartData=L.tempCartData;const e=Object.assign(Object.assign({},o),{appearance:Object.assign(Object.assign({},o.appearance),{logoUrl:L.legacyStoreLogo||""}),checkoutSettings:Object.assign(Object.assign({},o.checkoutSettings),{successBehavior:"ZONOS_SUCCESS_PAGE",successRedirectUrl:L.tempCartData.contShoppingURL}),zonosApiKey:L.zonosApiKey});o=e}window.Zonos.version&&(t(`[ZONOS - loadZonos] Execute "Zonos.init" from "${h}" from "${u}"`,"info"),window.Zonos.init(o))})),m.addEventListener("error",(async()=>{if(!v&&!n){const t=a(e);if(!t)return;L.injectZonos({cdnType:t,initConfig:o,vercelUrl:s,version:c})}if(["localhost",".zonos.com"].some((e=>window.location.href.includes(e)))||O)return;if(v||n)return void L.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-b,isError:!0,scriptLoadUrl:m.src,storeId:L.storeId,type:e});["unpkg","vercel"].includes(e)?r({endpoint:m.src,errors:[`zonos.js - Failed to fetch ${e} CDN.`],metadata:{cdnLoadTime:performance.now()-b,cdnType:e,loadUrl:p,version:c}}):r({endpoint:m.src,errors:["[Info] Using alternative CDN. Failed to fetch script"],metadata:{cdnType:e,vercelLoadTime:performance.now()-b}})})),document.head.appendChild(m)},U.setupCartData=async e=>{const r=await(async e=>{const{errors:t,json:n}=await o("https://v1.route.js.zonos.com/api/bigcommerce/legacy-migration/get-temp-cart",{body:{tempCartUUID:e},headers:{"Content-Type":"application/json"},method:"POST"});return!n||t.length?null:n})(e);if(t("[ZONOS - loadZonos] getting temp cart data","info",r),!r)throw n("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),L.legacyCheckoutErrorHandler({message:"Error getting temp cart data",tempCartUUID:e}),new Error("Error getting temp cart data");return L.tempCartData=r.tempCart,L.legacyStoreLogo=r.storeLogoUrl,L.legacyStoreFavicon=r.storeFaviconUrl,{storeId:r.tempCart.storeId,zonosApiKey:r.zonosApiKey}},U.init=async e=>{var r;const i="https://v1.3.39.js.zonos.com",a=document.querySelector('script[src*="/zonos.js"]'),c=null===(r=document.querySelector("script[src*='/loadZonos.js']"))||void 0===r?void 0:r.src,l=null==c?void 0:c.includes("timestamp=");if(!(L.isNpm||c&&l))return void n("[ZONOS - loadZonos] A timestamp is required as a query parameter in the loadZonos.js script source. This timestamp ensures that you are loading the most recent version of the script, avoiding any cached versions.");if(a||!c||L.requested)return void t("[ZONOS - loadZonos] script is already loaded or requested","info");L.requested=!0;let d=e.storeId;if(e.tempCartUUID){const o=await L.setupCartData(e.tempCartUUID);d=o.storeId,L.zonosApiKey=o.zonosApiKey,L.isLegacyCheckout=!0}if(!d)return t("[ZONOS - loadZonos] loading latest script since storeId is not provided."),void L.injectZonos({initConfig:e,vercelUrl:i,version:null});L.storeId=d;const p=new URL("https://v1.route.js.zonos.com/api/get-store-version");p.searchParams.set("storeId",e.storeId.toString());const{errors:u,json:m}=await o(p.toString());if(u.length||!m)return t("[ZONOS - loadZonos] Error getting store version, loading the latest version.","error"),void L.injectZonos({initConfig:e,vercelUrl:i,version:null});const{version:h}=m;if(!a){const{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:r}=s({loadScriptSrc:c}),i=r&&!n?o:`${"alpha"===h?"alpha":`v${h}`}.js.zonos.com`,a=r&&!n?null:h;t("[ZONOS - loadZonos] injecting zonos script","info",{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:r,loadUrl:i,loadVersion:a,version:h}),L.injectZonos({initConfig:e,vercelUrl:i,version:a})}},void 0===window.Zonos&&(window.Zonos=U)})();
1
+ (function(){"use strict";"function"==typeof SuppressedError&&SuppressedError;const e=async({response:e,shouldLog:o=!0,shouldThrow:t=!1})=>{try{return await e.json()}catch(e){if(t)throw e;return o&&console.error(e),null}};const o=async(o,t)=>{const n=(function(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})(t||{},[]),r=n.body?JSON.stringify(n.body):void 0,s=n.method||"GET",i=new URL(o);i.searchParams.set("zToken",(function(e){try{return btoa(e).replace(/=/g,"")}catch(o){return e.replace(/[^A-Za-z0-9]/g,"").split("").reverse().join("")}})(window.location.hostname));const a=Object.assign({"Content-Type":"application/json","Zonos-Is-BigCommerce":window.Zonos.isBigCommerce.toString(),"Zonos-Referer":window.location.hostname,"Zonos-Version":window.Zonos.version,credentialtoken:window.Zonos.zonosApiKey||"Empty credential token from zonos-elements"},n.headers),l=Object.assign(Object.assign({},n),{body:"GET"===s?void 0:r,headers:a,method:s});return(async(o,t)=>{let n;try{n=await fetch(o,t)}catch(e){return e instanceof Error?{errors:[{message:e.message,type:"unknown"}],json:null,response:null,zonosMode:null}:{errors:[{message:"Fail to fetch",type:"unknown"}],json:null,response:null,zonosMode:null}}const r=n.headers.get("Zonos-Mode"),s=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&r&&s&&("production"===r&&alert("Please be aware that you are currently operating in the production environment. Any interactions with the customer store, including payments, will be processed as real transactions!"),"test"===r&&alert("For testing payments, you can utilize the test payment information provided at this link: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements#web-test-the-integration"),window.Zonos.modeAlerted=!0),n.ok)return{errors:[],json:await e({response:n}),response:n,zonosMode:r};const i=n.status.toString();try{const o=await e({response:n,shouldThrow:!0});return{errors:[{message:JSON.stringify(o),type:i}],json:null,response:n,zonosMode:r}}catch(e){return{errors:[{message:`${i}: Unknown error`,type:i}],json:null,response:null,zonosMode:r}}})(i.toString(),l)},t=(e,o,...t)=>{var n,r;if(!(!!(null===(n=window.Zonos)||void 0===n?void 0:n.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===o&&console.error(e,...t));let s=document.querySelector("iframe#zonos---debug-logging-iframe");s||(s=document.createElement("iframe"),s.id="zonos---debug-logging-iframe",s.style.display="none",s.style.opacity="0",s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.width="1px",s.style.height="1px",s.style.border="none",s.style.overflow="hidden",s.style.visibility="hidden",document.body.appendChild(s));const i=(null===(r=s.contentWindow)||void 0===r?void 0:r.window.console)||window.console;switch(o){case"warn":i.warn(e,...t);break;case"info":i.info(e,...t);break;case"error":i.error(e,...t);break;default:i.groupCollapsed(e,...t),i.trace(),i.groupEnd()}},n=(e,...o)=>{t(e,"error",...o)},r=async({endpoint:e,errors:t,metadata:n})=>{const r="userAgentData"in window.navigator?window.navigator.userAgentData:null,s={endpoint:e,errors:t,metadata:Object.assign({href:window.location.href,userAgent:r&&r.brands.length>0?r:window.navigator.userAgent},n)};o("https://v1.route.js.zonos.com/api/zonos-elements/log-error",{body:s,method:"POST"})},s=({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const o=new URL(e).origin,t=["dev.elements.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}},i=["jsdelivr","unpkg","vercel"],a=e=>{const o=i.indexOf(e);return i[o+1]||null},l=()=>{if("undefined"==typeof window)return null;const e=(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);if(!e&&"dev.demo.elements.zonos.com"===window.location.hostname)return"https://dev.elements.zonos.com";if(!e)return null;if("dev-elements"===e)return"https://dev.elements.zonos.com";const o=`https://${e}.preview.js.zonos.com`;return t(`[ZONOS-WARNING] using '${o}' for loading script`,"warn"),fetch(o).then((()=>{window.sessionStorage.removeItem("zonos--checkout-session-id"),window.sessionStorage.removeItem("zonos--client-secret")})).catch((()=>{alert(`[ZONOS-WARNING] '${o}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);const e=new URLSearchParams(window.location.search);e.delete("zonosQaUrl");const{pathname:t}=window.location,n=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",n),window.location.reload(),null})),o},c="https://js.stripe.com/v3",d=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,p="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let u=null;const m=e=>(null!==u||(u=new Promise(((o,t)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(p),window.Stripe)o(window.Stripe);else try{let r=(()=>{const e=document.querySelectorAll(`script[src^="${c}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&d.test(t.src))return t}return null})();r&&e?console.warn(p):r||(r=(e=>{const o=document.createElement("script");o.src=`${c}`;const t=document.head||document.body;return t?(t.appendChild(o),o):(n("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==r||r.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):t(new Error("Stripe.js not available"))})),null==r||r.addEventListener("error",(()=>{t(new Error("Failed to load Stripe.js"))}))}catch(e){return void t(e)}else o(null)}))),u),h=Promise.resolve().then((()=>m(null)));let y=!1;h.catch((e=>{y||console.warn(e)}));var g;const w=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:o,isWhiteListed:t}=s({loadScriptSrc:null==e?void 0:e.src});return t?o:null})(),f="https://v1.3.41.js.zonos.com",v=w||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.41",S="jsdelivr",z="https://rsms.me",b="https://fonts.googleapis.com",C=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;let j=class{};var L;g=j,j.doneInit=!1,j.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),j.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),j._paypalMockResponse=null,j.isBigCommerce=!1,j.isNpm=!0,j.zonosQaUrl=null,j.version="v1.3.41",j.modeAlerted=!1,j.tempCartData=null,j.paypal=null,j.getCurrentTimestamp=()=>(new Date).getTime(),j.zonosController=null,j.init=async({appearance:e,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:a,storeId:l,zonosApiKey:c})=>{g.doneInit||(t(`====== ZONOS DEBUG MODE: on (${g.version}) ======`),c?(g.zonosApiKey=c,g.storeId=l,t("init zonos"),g.injectZonosCdn(),g.injectZonosCss(),g.injectFonts(),g.injectController({config:{appearance:e,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:a},zonosApiKey:c}),g.doneInit=!0):n("Missing Zonos API key"))},j.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},j.openHelloDialog=e=>{const o=document.querySelector("zonos-hello");o&&o.openHelloDialog(null==e||e)},j.showNotification=e=>{var o;null===(o=g.zonosController)||void 0===o||o.showNotification(e)},j.updateOrganizationName=e=>{var o;null===(o=g.zonosController)||void 0===o||o.updateOrganizationName(e)},j.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)}},j.injectController=({config:e,zonosApiKey:o})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=e.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const o=e.checkoutSettings.placeOrderButtonSelector;g.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{g.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=e,s.zonosApiKey=o,s.addEventListener("stripeInitEvent",(async e=>{const{detail:o}=e;t("loading Stripe");const r=await(async(...e)=>{y=!0;const o=Date.now();return h.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);r?(window.Zonos.stripe=r,s.initCheckoutElement(r)):n("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(s),g.zonosController=s,t("Zonos controller injected!")},j.injectScript=({cdnType:e,isModule:o,theRestUrl:r})=>{const s=`${g.getZonosUrl(e)}/${r}`;if(document.querySelector(`script[src="${s}"]`))return void t(`Zonos script "${s}" already exists in the document`,"warn");const i=document.head||document.body,l=document.createElement("script");o?l.type="module":l.noModule=!0,l.src=s,l.crossOrigin="anonymous",l.onerror=()=>{n(`Failed to load ${l.src}`);const t=a(e);t&&g.injectScript({cdnType:t,isModule:o,theRestUrl:r})},i.appendChild(l)},j.getZonosUrl=e=>{const o=()=>{switch(e){case"jsdelivr":return v;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.41";default:return f}};if(g.isNpm){return l()||o()}return o()},j.injectZonosCdn=()=>{g.injectScript({cdnType:S,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),g.injectScript({cdnType:S,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),t("Zonos cdn script injected!")},j.injectStylesheet=({cdnType:e,theRestUrl:o})=>{const t=g.getZonosUrl(e),r=document.head||document.body,s=document.createElement("link");s.rel="preconnect",s.href=`${f}/`,r.appendChild(s);const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/${o}`,i.onerror=()=>{n(`Failed to load ${i.href}`);const t=a(e);t&&g.injectStylesheet({cdnType:t,theRestUrl:o})},r.appendChild(i)},j.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?t("Zonos style links already injected","warn"):(g.injectStylesheet({cdnType:S,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),t("Zonos style css injected!"))},j.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${z}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&!C.test(t.href))return t}return null})())return void t("Inter font already injected","warn");const e=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=z,e.appendChild(o);const n=document.createElement("link");n.rel="stylesheet",n.href=`${z}/inter/inter.css`,e.appendChild(n),t("Zonos font injected!")},j.setupGoogleFont=e=>{var o;null===(o=g.zonosController)||void 0===o||o.setupGoogleFont(e)},j.injectSupportGoogleFont=e=>{var o;t(`[FONT] injecting ${e}`);const n=null===(o=e.match(/family=(.*?):/))||void 0===o?void 0:o[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${b}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=b,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${e}"]`))return void t(`[FONT] ${n} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=e,r.appendChild(s),t(`[FONT] ${n} font injected!`)};const O=l();class U{static get isNpm(){return!1}}L=U,U.isBigCommerce=!1,U.requested=!1,U.zonosQaUrl=null,U.tempCartData=null,U.zonosApiKey=null,U.isLegacyCheckout=!1,U.legacyStoreLogo=null,U.legacyStoreFavicon=null,U.parallelLoadTimes=[],U.paralellLoadState="off",U.loadScriptLogHandler=async({cdnLoadTime:e,fallbackLoadTime:o,isError:t,metadata:n,scriptLoadUrl:r,storeId:s,type:i})=>{try{const e=window.performance.getEntriesByType("resource").find((e=>{const o=e;return o.name.includes(r)&&"script"===o.initiatorType}));null==e||e.transferSize;(async e=>{})((e&&(null==e?void 0:e.duration)>0?parseFloat(e.duration.toFixed(2)):parseFloat(o.toFixed(2)),Object.assign({decodedBodySize:null==e?void 0:e.decodedBodySize,encodedBodySize:null==e?void 0:e.encodedBodySize,fallbackLoadTime:o,isError:!!t},n)))}catch(e){}},U.loadScriptLogParallelHandler=async e=>{try{if(L.parallelLoadTimes.push(e),2===L.parallelLoadTimes.length){const e=L.parallelLoadTimes.find((e=>"vercel"===e.type)),o=L.parallelLoadTimes.find((e=>"jsdelivr"===e.type));if(!e||!o)return;if(e.isError&&o.isError)return void r({endpoint:`<${e.scriptLoadUrl}> <${o.scriptLoadUrl}>`,errors:["Failed to fetch both Vercel and jsdelivr CDN. Perhaps network issue on customer site."],metadata:{cdnLoadTime:o.fallbackLoadTime,cdnType:o.type,vercelLoadTime:e.fallbackLoadTime}});L.loadScriptLogHandler({cdnLoadTime:o.fallbackLoadTime,fallbackLoadTime:e.fallbackLoadTime,isError:e.isError,metadata:{cdnScriptFallbackTime:o.fallbackLoadTime,cdnScriptIsError:!!o.isError,cdnScriptLoadUrl:o.scriptLoadUrl,cdnScriptType:o.type},scriptLoadUrl:e.scriptLoadUrl,storeId:e.storeId,type:e.type})}}catch(e){}},U.legacyCheckoutErrorHandler=({message:e,tempCartUUID:o})=>{n(`[ZONOS - loadZonos] ${e}`),r({endpoint:"LegacyCheckoutInit",errors:[e],metadata:{tempCartUUID:o}}),document.dispatchEvent(new CustomEvent("legacyCheckoutError",{detail:e}))},U.getGithubCdn=({type:e,version:o})=>{let t="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.41";"unpkg"===e&&(t="https://unpkg.com/@zonos/elements@1.3.41");return o&&"alpha"!==o?t.replace(/@zonos\/elements@(.+)/,`@zonos/elements@${o}`):t},U.injectZonos=({cdnType:e=S,initConfig:o,parallelLoaded:n,vercelUrl:s,version:l})=>{var c;const d="vercel"===e?s:L.getGithubCdn({type:e,version:l}),p=O||d,u=p.replace("https://","").replace("http://",""),m=document.createElement("script"),h=l&&l<"1.2.5"?"loadZonos.js":"zonos.js";m.src=`https://${u}/dist/scripts/${h}`,t(`[ZONOS - loadZonos] Injecting "${h}" from "${u}"`,"info");const y="4g"===(null===(c=(()=>{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})())||void 0===c?void 0:c.effectiveType),g=["dev.elements.zonos.com","zonos.com"].some((e=>window.location.href.includes(e))),w=i[0]===e,f=i[1],v="on"===L.paralellLoadState&&y&&w&&f&&!g;v&&L.injectZonos({cdnType:f,initConfig:o,parallelLoaded:!0,vercelUrl:s,version:l});const z=performance.now();m.addEventListener("load",(()=>{if(v||n?L.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-z,scriptLoadUrl:m.src,storeId:L.storeId,type:e}):L.loadScriptLogHandler({fallbackLoadTime:performance.now()-z,scriptLoadUrl:m.src,storeId:L.storeId,type:e}),L.isBigCommerce||(L.isBigCommerce=!!window.stencilBootstrap||!!window.bcConfig||!!document.querySelector('script[src*="bigcommerce.com"]')),window.Zonos.isNpm=!1,window.Zonos.zonosQaUrl=O,window.Zonos.isBigCommerce=L.isBigCommerce,L.isLegacyCheckout){if(!L.zonosApiKey)throw L.legacyCheckoutErrorHandler({message:"zonosApiKey is required for legacy checkout",tempCartUUID:o.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(!L.tempCartData)throw L.legacyCheckoutErrorHandler({message:"tempCartData is required for legacy checkout",tempCartUUID:o.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(L.legacyStoreFavicon){const e=document.createElement("link");e.rel="shortcut icon",e.type="image/x-icon",e.href=L.legacyStoreFavicon,document.head.appendChild(e)}window.Zonos.tempCartData=L.tempCartData;const e=Object.assign(Object.assign({},o),{appearance:Object.assign(Object.assign({},o.appearance),{logoUrl:L.legacyStoreLogo||""}),checkoutSettings:Object.assign(Object.assign({},o.checkoutSettings),{successBehavior:"ZONOS_SUCCESS_PAGE",successRedirectUrl:L.tempCartData.contShoppingURL}),zonosApiKey:L.zonosApiKey});o=e}window.Zonos.version&&(t(`[ZONOS - loadZonos] Execute "Zonos.init" from "${h}" from "${u}"`,"info"),window.Zonos.init(o))})),m.addEventListener("error",(async()=>{if(!v&&!n){const t=a(e);if(!t)return;L.injectZonos({cdnType:t,initConfig:o,vercelUrl:s,version:l})}if(["localhost",".zonos.com"].some((e=>window.location.href.includes(e)))||O)return;if(v||n)return void L.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-z,isError:!0,scriptLoadUrl:m.src,storeId:L.storeId,type:e});["unpkg","vercel"].includes(e)?r({endpoint:m.src,errors:[`zonos.js - Failed to fetch ${e} CDN.`],metadata:{cdnLoadTime:performance.now()-z,cdnType:e,loadUrl:p,version:l}}):r({endpoint:m.src,errors:["[Info] Using alternative CDN. Failed to fetch script"],metadata:{cdnType:e,vercelLoadTime:performance.now()-z}})})),document.head.appendChild(m)},U.setupCartData=async e=>{const r=await(async e=>{const{errors:t,json:n}=await o("https://v1.route.js.zonos.com/api/bigcommerce/legacy-migration/get-temp-cart",{body:{tempCartUUID:e},headers:{"Content-Type":"application/json"},method:"POST"});return!n||t.length?null:n})(e);if(t("[ZONOS - loadZonos] getting temp cart data","info",r),!r)throw n("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),L.legacyCheckoutErrorHandler({message:"Error getting temp cart data",tempCartUUID:e}),new Error("Error getting temp cart data");return L.tempCartData=r.tempCart,L.legacyStoreLogo=r.storeLogoUrl,L.legacyStoreFavicon=r.storeFaviconUrl,{storeId:r.tempCart.storeId,zonosApiKey:r.zonosApiKey}},U.init=async e=>{var r;const i="https://v1.3.41.js.zonos.com",a=document.querySelector('script[src*="/zonos.js"]'),l=null===(r=document.querySelector("script[src*='/loadZonos.js']"))||void 0===r?void 0:r.src,c=null==l?void 0:l.includes("timestamp=");if(!(L.isNpm||l&&c))return void n("[ZONOS - loadZonos] A timestamp is required as a query parameter in the loadZonos.js script source. This timestamp ensures that you are loading the most recent version of the script, avoiding any cached versions.");if(a||!l||L.requested)return void t("[ZONOS - loadZonos] script is already loaded or requested","info");L.requested=!0;let d=e.storeId;if(e.tempCartUUID){const o=await L.setupCartData(e.tempCartUUID);d=o.storeId,L.zonosApiKey=o.zonosApiKey,L.isLegacyCheckout=!0}if(!d)return t("[ZONOS - loadZonos] loading latest script since storeId is not provided."),void L.injectZonos({initConfig:e,vercelUrl:i,version:null});L.storeId=d;const p=new URL("https://v1.route.js.zonos.com/api/get-store-version");p.searchParams.set("storeId",e.storeId.toString());const{errors:u,json:m}=await o(p.toString());if(u.length||!m)return t("[ZONOS - loadZonos] Error getting store version, loading the latest version.","error"),void L.injectZonos({initConfig:e,vercelUrl:i,version:null});const{version:h}=m;if(!a){const{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:r}=s({loadScriptSrc:l}),i=r&&!n?o:`${"alpha"===h?"alpha":`v${h}`}.js.zonos.com`,a=r&&!n?null:h;t("[ZONOS - loadZonos] injecting zonos script","info",{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:r,loadUrl:i,loadVersion:a,version:h}),L.injectZonos({initConfig:e,vercelUrl:i,version:a})}},void 0===window.Zonos&&(window.Zonos=U)})();
@@ -1 +1 @@
1
- (function(){"use strict";const e=(e,t,...n)=>{var o,r;if(!(!!(null===(o=window.Zonos)||void 0===o?void 0:o.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...n));let s=document.querySelector("iframe#zonos---debug-logging-iframe");s||(s=document.createElement("iframe"),s.id="zonos---debug-logging-iframe",s.style.display="none",s.style.opacity="0",s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.width="1px",s.style.height="1px",s.style.border="none",s.style.overflow="hidden",s.style.visibility="hidden",document.body.appendChild(s));const i=(null===(r=s.contentWindow)||void 0===r?void 0:r.window.console)||window.console;switch(t){case"warn":i.warn(e,...n);break;case"info":i.info(e,...n);break;case"error":i.error(e,...n);break;default:i.groupCollapsed(e,...n),i.trace(),i.groupEnd()}},t=(t,...n)=>{e(t,"error",...n)},n=["jsdelivr","unpkg","vercel"],o=e=>{const t=n.indexOf(e);return n[t+1]||null},r=()=>{if("undefined"==typeof window)return null;const t=(e=>{if(!e)return null;const t=new URL(e).searchParams.get("zonosQaUrl");return t?/[^a-zA-Z0-9-_]+/.test(t)?null:t:null})(window.location.href);if(!t)return null;if("dev-elements"===t)return"https://dev.elements.zonos.com";const n=`https://${t}.preview.js.zonos.com`;return e(`[ZONOS-WARNING] using '${n}' for loading 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:t}=window.location,o=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",o),window.location.reload(),null})),n},s="https://js.stripe.com/v3",i=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,l="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let c=null;const d=e=>(null!==c||(c=new Promise(((n,o)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(l),window.Stripe)n(window.Stripe);else try{let r=(()=>{const e=document.querySelectorAll(`script[src^="${s}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&i.test(n.src))return n}return null})();r&&e?console.warn(l):r||(r=(e=>{const n=document.createElement("script");n.src=`${s}`;const o=document.head||document.body;return o?(o.appendChild(n),n):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==r||r.addEventListener("load",(()=>{window.Stripe?n(window.Stripe):o(new Error("Stripe.js not available"))})),null==r||r.addEventListener("error",(()=>{o(new Error("Failed to load Stripe.js"))}))}catch(e){return void o(e)}else n(null)}))),c),a=Promise.resolve().then((()=>d(null)));let u=!1;a.catch((e=>{u||console.warn(e)}));var p;const m=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:n}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,n=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),o=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:o,isWhiteListed:n}})({loadScriptSrc:null==e?void 0:e.src});return n?t:null})(),h="https://v1.3.39.js.zonos.com",y=m||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.39",w="jsdelivr",f="https://rsms.me",g="https://fonts.googleapis.com",v=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class S{}p=S,S.doneInit=!1,S.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),S.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),S.isBigCommerce=!1,S.isNpm=!0,S.zonosQaUrl=null,S.version="v1.3.39",S.modeAlerted=!1,S.tempCartData=null,S.getCurrentTimestamp=()=>(new Date).getTime(),S.zonosController=null,S.init=async({appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{p.doneInit||(e(`====== ZONOS DEBUG MODE: on (${p.version}) ======`),d?(p.zonosApiKey=d,p.storeId=c,e("init zonos"),p.injectZonosCdn(),p.injectZonosCss(),p.injectFonts(),p.injectController({config:{appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),p.doneInit=!0):t("Missing Zonos API key"))},S.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},S.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},S.showNotification=e=>{var t;null===(t=p.zonosController)||void 0===t||t.showNotification(e)},S.updateOrganizationName=e=>{var t;null===(t=p.zonosController)||void 0===t||t.updateOrganizationName(e)},S.disablePlaceOrderButtons=({autoEnable:e=!0,config:t,disable:n,placeOrderButtonSelector:o})=>{var r;if(!(null===(r=t.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&o){const t=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};t.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(n?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&n&&setTimeout((()=>{t.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},S.injectController=({config:n,zonosApiKey:o})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=n.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=n.checkoutSettings.placeOrderButtonSelector;p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=n,s.zonosApiKey=o,s.addEventListener("stripeInitEvent",(async n=>{const{detail:o}=n;e("loading Stripe");const r=await(async(...e)=>{u=!0;const t=Date.now();return a.then((n=>((e,t,n)=>{if(null===e)return null;const o=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(o,n),o})(n,e,t)))})(o.publishableKey);r?(window.Zonos.stripe=r,s.initCheckoutElement(r)):t("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(s),p.zonosController=s,e("Zonos controller injected!")},S.injectScript=({cdnType:n,isModule:r,theRestUrl:s})=>{const i=`${p.getZonosUrl(n)}/${s}`;if(document.querySelector(`script[src="${i}"]`))return void e(`Zonos script "${i}" already exists in the document`,"warn");const l=document.head||document.body,c=document.createElement("script");r?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{t(`Failed to load ${c.src}`);const e=o(n);e&&p.injectScript({cdnType:e,isModule:r,theRestUrl:s})},l.appendChild(c)},S.getZonosUrl=e=>{const t=()=>{switch(e){case"jsdelivr":return y;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.39";default:return h}};if(p.isNpm){return r()||t()}return t()},S.injectZonosCdn=()=>{p.injectScript({cdnType:w,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),p.injectScript({cdnType:w,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},S.injectStylesheet=({cdnType:e,theRestUrl:n})=>{const r=p.getZonosUrl(e),s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${h}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${r}/${n}`,l.onerror=()=>{t(`Failed to load ${l.href}`);const r=o(e);r&&p.injectStylesheet({cdnType:r,theRestUrl:n})},s.appendChild(l)},S.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(p.injectStylesheet({cdnType:w,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},S.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${f}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&!v.test(n.href))return n}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,n=document.createElement("link");n.rel="preconnect",n.href=f,t.appendChild(n);const o=document.createElement("link");o.rel="stylesheet",o.href=`${f}/inter/inter.css`,t.appendChild(o),e("Zonos font injected!")},S.setupGoogleFont=e=>{var t;null===(t=p.zonosController)||void 0===t||t.setupGoogleFont(e)},S.injectSupportGoogleFont=t=>{var n;e(`[FONT] injecting ${t}`);const o=null===(n=t.match(/family=(.*?):/))||void 0===n?void 0:n[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${g}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=g,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${o} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${o} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=S)})();
1
+ (function(){"use strict";const e=(e,t,...n)=>{var o,r;if(!(!!(null===(o=window.Zonos)||void 0===o?void 0:o.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...n));let s=document.querySelector("iframe#zonos---debug-logging-iframe");s||(s=document.createElement("iframe"),s.id="zonos---debug-logging-iframe",s.style.display="none",s.style.opacity="0",s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.width="1px",s.style.height="1px",s.style.border="none",s.style.overflow="hidden",s.style.visibility="hidden",document.body.appendChild(s));const i=(null===(r=s.contentWindow)||void 0===r?void 0:r.window.console)||window.console;switch(t){case"warn":i.warn(e,...n);break;case"info":i.info(e,...n);break;case"error":i.error(e,...n);break;default:i.groupCollapsed(e,...n),i.trace(),i.groupEnd()}},t=(t,...n)=>{e(t,"error",...n)},n=["jsdelivr","unpkg","vercel"],o=e=>{const t=n.indexOf(e);return n[t+1]||null},r=()=>{if("undefined"==typeof window)return null;const t=(e=>{if(!e)return null;const t=new URL(e).searchParams.get("zonosQaUrl");return t?/[^a-zA-Z0-9-_]+/.test(t)?null:t:null})(window.location.href);if(!t&&"dev.demo.elements.zonos.com"===window.location.hostname)return"https://dev.elements.zonos.com";if(!t)return null;if("dev-elements"===t)return"https://dev.elements.zonos.com";const n=`https://${t}.preview.js.zonos.com`;return e(`[ZONOS-WARNING] using '${n}' for loading 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:t}=window.location,o=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",o),window.location.reload(),null})),n},s="https://js.stripe.com/v3",i=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,l="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let c=null;const d=e=>(null!==c||(c=new Promise(((n,o)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(l),window.Stripe)n(window.Stripe);else try{let r=(()=>{const e=document.querySelectorAll(`script[src^="${s}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&i.test(n.src))return n}return null})();r&&e?console.warn(l):r||(r=(e=>{const n=document.createElement("script");n.src=`${s}`;const o=document.head||document.body;return o?(o.appendChild(n),n):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==r||r.addEventListener("load",(()=>{window.Stripe?n(window.Stripe):o(new Error("Stripe.js not available"))})),null==r||r.addEventListener("error",(()=>{o(new Error("Failed to load Stripe.js"))}))}catch(e){return void o(e)}else n(null)}))),c),a=Promise.resolve().then((()=>d(null)));let u=!1;a.catch((e=>{u||console.warn(e)}));var p;const m=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:n}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,n=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),o=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:o,isWhiteListed:n}})({loadScriptSrc:null==e?void 0:e.src});return n?t:null})(),h="https://v1.3.41.js.zonos.com",y=m||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.41",w="jsdelivr",f="https://rsms.me",v="https://fonts.googleapis.com",g=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class S{}p=S,S.doneInit=!1,S.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),S.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),S._paypalMockResponse=null,S.isBigCommerce=!1,S.isNpm=!0,S.zonosQaUrl=null,S.version="v1.3.41",S.modeAlerted=!1,S.tempCartData=null,S.paypal=null,S.getCurrentTimestamp=()=>(new Date).getTime(),S.zonosController=null,S.init=async({appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{p.doneInit||(e(`====== ZONOS DEBUG MODE: on (${p.version}) ======`),d?(p.zonosApiKey=d,p.storeId=c,e("init zonos"),p.injectZonosCdn(),p.injectZonosCss(),p.injectFonts(),p.injectController({config:{appearance:n,checkoutSettings:o,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),p.doneInit=!0):t("Missing Zonos API key"))},S.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},S.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},S.showNotification=e=>{var t;null===(t=p.zonosController)||void 0===t||t.showNotification(e)},S.updateOrganizationName=e=>{var t;null===(t=p.zonosController)||void 0===t||t.updateOrganizationName(e)},S.disablePlaceOrderButtons=({autoEnable:e=!0,config:t,disable:n,placeOrderButtonSelector:o})=>{var r;if(!(null===(r=t.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&o){const t=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};t.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(n?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&n&&setTimeout((()=>{t.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},S.injectController=({config:n,zonosApiKey:o})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=n.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=n.checkoutSettings.placeOrderButtonSelector;p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{p.disablePlaceOrderButtons({config:n,disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=n,s.zonosApiKey=o,s.addEventListener("stripeInitEvent",(async n=>{const{detail:o}=n;e("loading Stripe");const r=await(async(...e)=>{u=!0;const t=Date.now();return a.then((n=>((e,t,n)=>{if(null===e)return null;const o=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(o,n),o})(n,e,t)))})(o.publishableKey);r?(window.Zonos.stripe=r,s.initCheckoutElement(r)):t("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(s),p.zonosController=s,e("Zonos controller injected!")},S.injectScript=({cdnType:n,isModule:r,theRestUrl:s})=>{const i=`${p.getZonosUrl(n)}/${s}`;if(document.querySelector(`script[src="${i}"]`))return void e(`Zonos script "${i}" already exists in the document`,"warn");const l=document.head||document.body,c=document.createElement("script");r?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{t(`Failed to load ${c.src}`);const e=o(n);e&&p.injectScript({cdnType:e,isModule:r,theRestUrl:s})},l.appendChild(c)},S.getZonosUrl=e=>{const t=()=>{switch(e){case"jsdelivr":return y;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.41";default:return h}};if(p.isNpm){return r()||t()}return t()},S.injectZonosCdn=()=>{p.injectScript({cdnType:w,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),p.injectScript({cdnType:w,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},S.injectStylesheet=({cdnType:e,theRestUrl:n})=>{const r=p.getZonosUrl(e),s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${h}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${r}/${n}`,l.onerror=()=>{t(`Failed to load ${l.href}`);const r=o(e);r&&p.injectStylesheet({cdnType:r,theRestUrl:n})},s.appendChild(l)},S.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(p.injectStylesheet({cdnType:w,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},S.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${f}"]`);for(let t=0;t<e.length;t++){const n=e[t];if(n&&!g.test(n.href))return n}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,n=document.createElement("link");n.rel="preconnect",n.href=f,t.appendChild(n);const o=document.createElement("link");o.rel="stylesheet",o.href=`${f}/inter/inter.css`,t.appendChild(o),e("Zonos font injected!")},S.setupGoogleFont=e=>{var t;null===(t=p.zonosController)||void 0===t||t.setupGoogleFont(e)},S.injectSupportGoogleFont=t=>{var n;e(`[FONT] injecting ${t}`);const o=null===(n=t.match(/family=(.*?):/))||void 0===n?void 0:n[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${v}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=v,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${o} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${o} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=S)})();
@@ -35,7 +35,8 @@ export declare class ZonosCheckoutFinish {
35
35
  private handleSuccessBehavior;
36
36
  private getPullOrder;
37
37
  private useOverrideSuccessNotification;
38
- private checkPaymentStatus;
38
+ private checkStripePaymentStatus;
39
+ private checkPaypalPaymentStatus;
39
40
  private closeClickHandler;
40
41
  componentDidLoad(): void;
41
42
  render(): any;
@@ -1,9 +1,5 @@
1
1
  import { type EventEmitter } from '../../../../stencil-public-runtime';
2
2
  export declare class ZonosCheckoutPayment {
3
- /**
4
- * Error occurred during payment
5
- */
6
- paymentError: boolean;
7
3
  /**
8
4
  * Whether or not the checkout is in mobile mode
9
5
  */
@@ -20,6 +16,14 @@ export declare class ZonosCheckoutPayment {
20
16
  * Event to emit when the continue button is clicked
21
17
  */
22
18
  continueClicked: EventEmitter<void>;
19
+ /**
20
+ * Event to emit when the paypal session failed
21
+ */
22
+ paypalSessionFailed: EventEmitter<void>;
23
+ /**
24
+ * Event to emit when the paypal session is done
25
+ */
26
+ paypalSessionDone: EventEmitter<string>;
23
27
  /**
24
28
  * Show error banner when the form is not complete, and user clicks on `Submit` button
25
29
  * @default false