@zonos/elements 1.3.25 → 1.3.27
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.
- package/dist/cjs/{cart-ab3b679e.js → cart-61caeb84.js} +472 -168
- package/dist/cjs/{getBorderRadius-ea0984bb.js → getBorderRadius-074b46ef.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -54
- package/dist/cjs/{isDarkColor-b14d5752.js → isDarkColor-371a3b1a.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{submitGtag-1471da9f.js → submitGtag-d3898668.js} +2 -2
- package/dist/cjs/zonos-address_8.cjs.entry.js +6 -6
- package/dist/cjs/zonos-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/zonos-banner.cjs.entry.js +1 -1
- package/dist/cjs/zonos-button_3.cjs.entry.js +3 -3
- package/dist/cjs/zonos-card_2.cjs.entry.js +4 -4
- package/dist/cjs/zonos-cart-items_12.cjs.entry.js +29 -12
- package/dist/cjs/zonos-checkout.cjs.entry.js +52 -6
- package/dist/cjs/zonos-controller.cjs.entry.js +5 -5
- package/dist/cjs/zonos-country-flag.cjs.entry.js +4 -4
- package/dist/cjs/zonos-country-select_3.cjs.entry.js +6 -6
- package/dist/cjs/zonos-elements.cjs.js +1 -1
- package/dist/cjs/zonos-hello-dialog.cjs.entry.js +61 -24
- package/dist/cjs/zonos-hello.cjs.entry.js +19 -12
- package/dist/cjs/zonos-input.cjs.entry.js +2 -2
- package/dist/cjs/zonos-logo.cjs.entry.js +1 -1
- package/dist/cjs/zonos-notification.cjs.entry.js +1 -1
- package/dist/cjs/zonos-payment.cjs.entry.js +5 -5
- package/dist/cjs/zonos-select-dialog-header_2.cjs.entry.js +1 -1
- package/dist/cjs/zonos-shipping-rich-radio.cjs.entry.js +2 -2
- package/dist/cjs/zonos-text.cjs.entry.js +1 -1
- package/dist/cjs/{zonosStore-3958bbeb.js → zonosStore-4c6c85da.js} +1 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.css +1 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +20 -2
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +49 -2
- package/dist/collection/components/common/zonos-confirm-dialog/zonos-confirm-dialog.js +8 -8
- package/dist/collection/components/hello/zonos-hello/zonos-hello.js +15 -8
- package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +2 -2
- package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +54 -20
- package/dist/collection/components/main/zonos-controller.js +1 -1
- package/dist/collection/components/store/hello/localization.js +9 -5
- package/dist/collection/components/store/translationStore/strings.arabic.js +23 -8
- package/dist/collection/components/store/translationStore/strings.base.js +23 -8
- package/dist/collection/components/store/translationStore/strings.chinese.js +23 -8
- package/dist/collection/components/store/translationStore/strings.danish.js +23 -8
- package/dist/collection/components/store/translationStore/strings.dutch.js +23 -8
- package/dist/collection/components/store/translationStore/strings.french.js +23 -8
- package/dist/collection/components/store/translationStore/strings.german.js +23 -8
- package/dist/collection/components/store/translationStore/strings.hebrew.js +23 -8
- package/dist/collection/components/store/translationStore/strings.indonesian.js +23 -8
- package/dist/collection/components/store/translationStore/strings.italian.js +23 -8
- package/dist/collection/components/store/translationStore/strings.japanese.js +23 -8
- package/dist/collection/components/store/translationStore/strings.korean.js +23 -8
- package/dist/collection/components/store/translationStore/strings.norwegian.js +23 -8
- package/dist/collection/components/store/translationStore/strings.polish.js +23 -8
- package/dist/collection/components/store/translationStore/strings.portuguese.js +23 -8
- package/dist/collection/components/store/translationStore/strings.russian.js +23 -8
- package/dist/collection/components/store/translationStore/strings.spanish.js +23 -8
- package/dist/collection/components/store/translationStore/strings.swedish.js +23 -8
- package/dist/collection/components/store/translationStore/strings.turkish.js +23 -8
- package/dist/collection/components/store/translationStore/strings.vietnamese.js +23 -8
- package/dist/collection/components/store/zonosStore.js +1 -0
- package/dist/collection/components/stripe/zonos-address/zonos-address.js +1 -1
- package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.js +1 -1
- package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +1 -1
- package/dist/collection/components/utils/wrapStringWithLink.js +3 -0
- package/dist/collection/scripts/_zonosBase.js +0 -51
- package/dist/esm/{cart-564ab33a.js → cart-530a8750.js} +472 -168
- package/dist/esm/{getBorderRadius-5e5a5800.js → getBorderRadius-947c24de.js} +1 -1
- package/dist/esm/index.js +3 -54
- package/dist/esm/{isDarkColor-5185b62c.js → isDarkColor-f8324c10.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{submitGtag-90ebe7d0.js → submitGtag-44ba0846.js} +2 -2
- package/dist/esm/zonos-address_8.entry.js +6 -6
- package/dist/esm/zonos-badge_2.entry.js +1 -1
- package/dist/esm/zonos-banner.entry.js +1 -1
- package/dist/esm/zonos-button_3.entry.js +3 -3
- package/dist/esm/zonos-card_2.entry.js +4 -4
- package/dist/esm/zonos-cart-items_12.entry.js +29 -12
- package/dist/esm/zonos-checkout.entry.js +52 -6
- package/dist/esm/zonos-controller.entry.js +5 -5
- package/dist/esm/zonos-country-flag.entry.js +4 -4
- package/dist/esm/zonos-country-select_3.entry.js +6 -6
- package/dist/esm/zonos-elements.js +1 -1
- package/dist/esm/zonos-hello-dialog.entry.js +61 -24
- package/dist/esm/zonos-hello.entry.js +19 -12
- package/dist/esm/zonos-input.entry.js +2 -2
- package/dist/esm/zonos-logo.entry.js +1 -1
- package/dist/esm/zonos-notification.entry.js +1 -1
- package/dist/esm/zonos-payment.entry.js +5 -5
- package/dist/esm/zonos-select-dialog-header_2.entry.js +1 -1
- package/dist/esm/zonos-shipping-rich-radio.entry.js +2 -2
- package/dist/esm/zonos-text.entry.js +1 -1
- package/dist/esm/{zonosStore-8b9ea19c.js → zonosStore-ba9e541e.js} +1 -0
- package/dist/esm-es5/cart-530a8750.js +1 -0
- package/dist/esm-es5/{getBorderRadius-5e5a5800.js → getBorderRadius-947c24de.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{isDarkColor-5185b62c.js → isDarkColor-f8324c10.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{submitGtag-90ebe7d0.js → submitGtag-44ba0846.js} +1 -1
- package/dist/esm-es5/zonos-address_8.entry.js +1 -1
- package/dist/esm-es5/zonos-badge_2.entry.js +1 -1
- package/dist/esm-es5/zonos-banner.entry.js +1 -1
- package/dist/esm-es5/zonos-button_3.entry.js +1 -1
- package/dist/esm-es5/zonos-card_2.entry.js +1 -1
- package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
- package/dist/esm-es5/zonos-checkout.entry.js +1 -1
- package/dist/esm-es5/zonos-controller.entry.js +1 -1
- package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
- package/dist/esm-es5/zonos-country-select_3.entry.js +1 -1
- package/dist/esm-es5/zonos-elements.js +1 -1
- package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
- package/dist/esm-es5/zonos-hello.entry.js +1 -1
- package/dist/esm-es5/zonos-input.entry.js +1 -1
- package/dist/esm-es5/zonos-logo.entry.js +1 -1
- package/dist/esm-es5/zonos-notification.entry.js +1 -1
- package/dist/esm-es5/zonos-payment.entry.js +1 -1
- package/dist/esm-es5/zonos-select-dialog-header_2.entry.js +1 -1
- package/dist/esm-es5/zonos-shipping-rich-radio.entry.js +1 -1
- package/dist/esm-es5/zonos-text.entry.js +1 -1
- package/dist/esm-es5/{zonosStore-8b9ea19c.js → zonosStore-ba9e541e.js} +1 -1
- package/dist/scripts/index.d.ts +52 -6
- package/dist/scripts/index.js +1 -1
- package/dist/scripts/loadZonos.js +1 -1
- package/dist/scripts/zonos.js +1 -1
- package/dist/types/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.d.ts +2 -0
- package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +10 -0
- package/dist/types/components/common/zonos-confirm-dialog/zonos-confirm-dialog.d.ts +2 -2
- package/dist/types/components/hello/zonos-hello/zonos-hello.d.ts +1 -1
- package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog.d.ts +8 -0
- package/dist/types/components/store/translationStore/strings.arabic.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.base.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.chinese.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.danish.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.dutch.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.french.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.german.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.hebrew.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.indonesian.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.italian.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.japanese.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.korean.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.norwegian.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.polish.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.portuguese.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.russian.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.spanish.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.swedish.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.turkish.d.ts +22 -7
- package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +22 -7
- package/dist/types/components/store/translationStore.d.ts +1 -1
- package/dist/types/components/utils/wrapStringWithLink.d.ts +4 -0
- package/dist/types/components.d.ts +4 -4
- package/dist/types/scripts/_zonosBase.d.ts +0 -1
- package/dist/types/types/checkout/CheckoutConfig.d.ts +40 -0
- package/dist/types/types/hello/HelloConfig.d.ts +9 -2
- package/dist/zonos-elements/index.esm.js +1 -1
- package/dist/zonos-elements/{p-088d6460.system.entry.js → p-01304a58.system.entry.js} +1 -1
- package/dist/zonos-elements/p-094bfe56.system.entry.js +1 -0
- package/dist/zonos-elements/{p-474719c5.entry.js → p-099e229a.entry.js} +1 -1
- package/dist/zonos-elements/{p-be14323b.system.js → p-0b538ed4.system.js} +1 -1
- package/dist/zonos-elements/{p-ba066673.entry.js → p-11f87d7d.entry.js} +1 -1
- package/dist/zonos-elements/{p-1e2fbb1d.system.entry.js → p-13454044.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-f8b58cf8.system.entry.js → p-18d04e89.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-b79753bb.system.entry.js → p-27d648c3.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-87c4a2af.entry.js → p-2a5a0bae.entry.js} +1 -1
- package/dist/zonos-elements/{p-9c0859b5.entry.js → p-2aa72606.entry.js} +1 -1
- package/dist/zonos-elements/{p-bf9dca26.js → p-31b3d26b.js} +1 -1
- package/dist/zonos-elements/{p-c0ddef11.entry.js → p-3541e6dd.entry.js} +1 -1
- package/dist/zonos-elements/{p-b7e4a6b0.entry.js → p-35d00c30.entry.js} +1 -1
- package/dist/zonos-elements/{p-aaba6f75.entry.js → p-37685139.entry.js} +1 -1
- package/dist/zonos-elements/{p-d6796b73.system.entry.js → p-3dc59d89.system.entry.js} +1 -1
- package/dist/zonos-elements/p-4eaae82e.entry.js +1 -0
- package/dist/zonos-elements/{p-f3feed11.entry.js → p-5441b729.entry.js} +1 -1
- package/dist/zonos-elements/{p-c53cef11.js → p-5821856c.js} +1 -1
- package/dist/zonos-elements/{p-0ea19a4d.entry.js → p-5857ad65.entry.js} +1 -1
- package/dist/zonos-elements/p-5d006b02.system.js +1 -0
- package/dist/zonos-elements/{p-f1223c14.system.entry.js → p-5f580c9b.system.entry.js} +1 -1
- package/dist/zonos-elements/p-687dbccc.entry.js +1 -0
- package/dist/zonos-elements/p-68dfcd25.system.entry.js +1 -0
- package/dist/zonos-elements/{p-1752853e.entry.js → p-699a5376.entry.js} +1 -1
- package/dist/zonos-elements/p-6fe27968.entry.js +1 -0
- package/dist/zonos-elements/{p-5992c6fb.system.entry.js → p-73ba4398.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-84791c5c.entry.js → p-75ba695c.entry.js} +1 -1
- package/dist/zonos-elements/{p-4d36edfd.system.entry.js → p-7b5a0a18.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-1b76a929.system.entry.js → p-84f7a3a2.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-b45db572.system.entry.js → p-8f8baabf.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-a5e9d372.js → p-9a1c0d02.js} +1 -1
- package/dist/zonos-elements/p-a5704be4.system.entry.js +1 -0
- package/dist/zonos-elements/{p-33b054d9.system.js → p-a8cb25de.system.js} +1 -1
- package/dist/zonos-elements/{p-02a01106.system.entry.js → p-a90393e0.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-c8e83577.system.entry.js → p-acfb9be6.system.entry.js} +1 -1
- package/dist/zonos-elements/p-b4ccc72c.js +1 -0
- package/dist/zonos-elements/{p-9912a954.js → p-bb032c2f.js} +1 -1
- package/dist/zonos-elements/{p-bfc30599.entry.js → p-bb5a9eaa.entry.js} +1 -1
- package/dist/zonos-elements/{p-d7e6cad0.system.entry.js → p-c0fcc0fa.system.entry.js} +1 -1
- package/dist/zonos-elements/p-c4154737.system.js +1 -0
- package/dist/zonos-elements/{p-7fa5a6ea.entry.js → p-c4e38b85.entry.js} +1 -1
- package/dist/zonos-elements/{p-07fe47f2.system.entry.js → p-cbed004d.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-9c8705ac.entry.js → p-d4724ac8.entry.js} +1 -1
- package/dist/zonos-elements/p-e0bf9666.system.js +1 -1
- package/dist/zonos-elements/{p-e2301200.system.entry.js → p-e15ef12e.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-8853e051.system.js → p-e37440ad.system.js} +1 -1
- package/dist/zonos-elements/{p-6b2a2f68.entry.js → p-e3978982.entry.js} +1 -1
- package/dist/zonos-elements/{p-a164ea90.system.entry.js → p-ecd994c8.system.entry.js} +1 -1
- package/dist/zonos-elements/p-fb1120a2.system.js +1 -0
- package/dist/zonos-elements/p-fb1b98a8.entry.js +1 -0
- package/dist/zonos-elements/zonos-elements.esm.js +1 -1
- package/package.json +1 -1
- package/dist/esm-es5/cart-564ab33a.js +0 -1
- package/dist/zonos-elements/p-233c2599.system.entry.js +0 -1
- package/dist/zonos-elements/p-2619fe29.system.js +0 -1
- package/dist/zonos-elements/p-63b0aef9.system.entry.js +0 -1
- package/dist/zonos-elements/p-6ed78fba.entry.js +0 -1
- package/dist/zonos-elements/p-9a0c5589.system.entry.js +0 -1
- package/dist/zonos-elements/p-b44de1c3.entry.js +0 -1
- package/dist/zonos-elements/p-c2688c49.system.js +0 -1
- package/dist/zonos-elements/p-d170253b.entry.js +0 -1
- package/dist/zonos-elements/p-e2bdba42.system.js +0 -1
- package/dist/zonos-elements/p-e815af26.entry.js +0 -1
- package/dist/zonos-elements/p-fc4f1e0c.js +0 -1
package/dist/scripts/index.d.ts
CHANGED
|
@@ -1507,9 +1507,9 @@ declare namespace Components {
|
|
|
1507
1507
|
"dialogOpen": boolean;
|
|
1508
1508
|
/**
|
|
1509
1509
|
* Dialog subtitle text
|
|
1510
|
-
* @default
|
|
1510
|
+
* @default null No subtitle
|
|
1511
1511
|
*/
|
|
1512
|
-
"dialogSubtitle": string;
|
|
1512
|
+
"dialogSubtitle": string | null;
|
|
1513
1513
|
/**
|
|
1514
1514
|
* Dialog title text
|
|
1515
1515
|
* @default "Are you sure?"
|
|
@@ -2950,9 +2950,9 @@ declare namespace LocalJSX {
|
|
|
2950
2950
|
"dialogOpen": boolean;
|
|
2951
2951
|
/**
|
|
2952
2952
|
* Dialog subtitle text
|
|
2953
|
-
* @default
|
|
2953
|
+
* @default null No subtitle
|
|
2954
2954
|
*/
|
|
2955
|
-
"dialogSubtitle"?: string;
|
|
2955
|
+
"dialogSubtitle"?: string | null;
|
|
2956
2956
|
/**
|
|
2957
2957
|
* Dialog title text
|
|
2958
2958
|
* @default "Are you sure?"
|
|
@@ -3559,6 +3559,8 @@ type CalculateLandedCostRequest = {
|
|
|
3559
3559
|
};
|
|
3560
3560
|
};
|
|
3561
3561
|
|
|
3562
|
+
type CountryOverrideBehavior = 'URL_PARAM' | 'SESSION';
|
|
3563
|
+
type ShowForCountries = 'ALL' | 'ONLY_SHIPPABLE' | CountryCode[];
|
|
3562
3564
|
type HelloConfig = {
|
|
3563
3565
|
anchorElementSelector: string;
|
|
3564
3566
|
cartUrlPattern: string | null;
|
|
@@ -3566,7 +3568,7 @@ type HelloConfig = {
|
|
|
3566
3568
|
* The behavior to use when determining the country to use for the user.
|
|
3567
3569
|
* @default 'URL_PARAM'
|
|
3568
3570
|
*/
|
|
3569
|
-
countryOverrideBehavior?:
|
|
3571
|
+
countryOverrideBehavior?: CountryOverrideBehavior;
|
|
3570
3572
|
currencyBehavior: HelloCurrencyBehavior;
|
|
3571
3573
|
currencyElementSelector: string;
|
|
3572
3574
|
excludedUrlPatterns: Array<string>;
|
|
@@ -3582,6 +3584,11 @@ type HelloConfig = {
|
|
|
3582
3584
|
productListUrlPattern: string | null;
|
|
3583
3585
|
productTitleElementSelector: string | null;
|
|
3584
3586
|
restrictionBehavior: HelloRestrictionBehavior;
|
|
3587
|
+
/**
|
|
3588
|
+
* The countries to show the widget for.
|
|
3589
|
+
* @default ONLY_SHIPPABLE
|
|
3590
|
+
*/
|
|
3591
|
+
showForCountries?: ShowForCountries;
|
|
3585
3592
|
};
|
|
3586
3593
|
|
|
3587
3594
|
type StripeStoreContactOption = {
|
|
@@ -3697,6 +3704,21 @@ type CheckoutConfig = {
|
|
|
3697
3704
|
*/
|
|
3698
3705
|
subscriptionStatus: CheckoutSubscriptionStatus;
|
|
3699
3706
|
successBehavior: CheckoutSuccessBehavior;
|
|
3707
|
+
/**
|
|
3708
|
+
* The success page action text for checkout.
|
|
3709
|
+
* @note Default text supports translation automatically, but any custom text will not be translated.
|
|
3710
|
+
*/
|
|
3711
|
+
successPageActionText?: string;
|
|
3712
|
+
/**
|
|
3713
|
+
* The success page subtitle text for checkout. Each item in the array will appear on a new line.
|
|
3714
|
+
* @note Default text supports translation automatically, but any custom text will not be translated.
|
|
3715
|
+
*/
|
|
3716
|
+
successPageSubtitleText?: string[];
|
|
3717
|
+
/**
|
|
3718
|
+
* The success page title text for checkout.
|
|
3719
|
+
* @note Default text supports translation automatically, but any custom text will not be translated.
|
|
3720
|
+
*/
|
|
3721
|
+
successPageTitleText?: string;
|
|
3700
3722
|
successRedirectUrl: string;
|
|
3701
3723
|
visibilityStatus: CheckoutVisibilityStatus;
|
|
3702
3724
|
/**
|
|
@@ -3729,6 +3751,31 @@ type CheckoutConfig = {
|
|
|
3729
3751
|
* Callback trigger when the checkout is closed
|
|
3730
3752
|
*/
|
|
3731
3753
|
onClose?: () => void;
|
|
3754
|
+
/**
|
|
3755
|
+
* This callback is optional. If provided, it will be called right before the payment is processed.
|
|
3756
|
+
* @param items - The cart items.
|
|
3757
|
+
* @returns {string | null} - The error message to display to the user. If the message is empty or null, the payment will proceed.
|
|
3758
|
+
* @example
|
|
3759
|
+
* onInventoryCheck: async (items) => {
|
|
3760
|
+
* // Check if all items are available from the server.
|
|
3761
|
+
* const itemsInfo = await fetch('https://yourserver.com/api/get-available-items', {
|
|
3762
|
+
* method: 'POST',
|
|
3763
|
+
* body: JSON.stringify({ items }),
|
|
3764
|
+
* });
|
|
3765
|
+
* const items = await itemsInfo.json();
|
|
3766
|
+
* // Filter out unavailable items.
|
|
3767
|
+
* const unavailableItems = items.filter(item => !item.available);
|
|
3768
|
+
* if (unavailableItems.length) {
|
|
3769
|
+
* // Display an error message to the user.
|
|
3770
|
+
* return `The following items are not available: ${unavailableItems.map(item => item.name).join(', ')}`;
|
|
3771
|
+
* }
|
|
3772
|
+
* // Proceed with the payment if you return an empty string or null.
|
|
3773
|
+
* return '';
|
|
3774
|
+
* }
|
|
3775
|
+
*/
|
|
3776
|
+
onInventoryCheck?: (params: {
|
|
3777
|
+
items: CartItem[];
|
|
3778
|
+
}) => Promise<string | null>;
|
|
3732
3779
|
/**
|
|
3733
3780
|
* Callback trigger when payment succeeds
|
|
3734
3781
|
*/
|
|
@@ -3982,7 +4029,6 @@ declare abstract class Zonos {
|
|
|
3982
4029
|
static updateOrganizationName: (organizationName: string) => void;
|
|
3983
4030
|
private static disablePlaceOrderButtons;
|
|
3984
4031
|
private static injectController;
|
|
3985
|
-
private static injectSentryScript;
|
|
3986
4032
|
private static injectScript;
|
|
3987
4033
|
/**
|
|
3988
4034
|
* We now support loading Zonos via npm. For clients using npm, `zonosBase` will always load from the server side. Therefore, the `zonosLoadUrl` defined earlier won't work since it lacks access to client-side APIs such as `window` and `document`.
|
package/dist/scripts/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){"use strict";const e=(e,t,...o)=>{var n,r;if(!(!!(null===(n=window.Zonos)||void 0===n?void 0:n.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...o));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,...o);break;case"info":i.info(e,...o);break;case"error":i.error(e,...o);break;default:i.groupCollapsed(e,...o),i.trace(),i.groupEnd()}},t=(t,...o)=>{e(t,"error",...o)},o=()=>{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 o=`https://${t}.preview.js.zonos.com`;return e(`[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},n="https://js.stripe.com/v3",r=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,s="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let i=null;const l=e=>(null!==i||(i=new Promise(((o,i)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(s),window.Stripe)o(window.Stripe);else try{let l=(()=>{const e=document.querySelectorAll(`script[src^="${n}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&r.test(o.src))return o}return null})();l&&e?console.warn(s):l||(l=(e=>{const o=document.createElement("script");o.src=`${n}`;const r=document.head||document.body;return r?(r.appendChild(o),o):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==l||l.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):i(new Error("Stripe.js not available"))})),null==l||l.addEventListener("error",(()=>{i(new Error("Failed to load Stripe.js"))}))}catch(e){return void i(e)}else o(null)}))),i),c=Promise.resolve().then((()=>l(null)));let d=!1;c.catch((e=>{d||console.warn(e)}));var a;const u=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:o}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,o=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),n=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:n,isWhiteListed:o}})({loadScriptSrc:null==e?void 0:e.src});return o?t:null})()||"https://v1.3.25.js.zonos.com",m="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.25",p="https://rsms.me",h="https://fonts.googleapis.com",y=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class w{}a=w,w.doneInit=!1,w.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),w.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),w.isBigCommerce=!1,w.isNpm=!0,w.zonosQaUrl=null,w.version="v1.3.25",w.modeAlerted=!1,w.tempCartData=null,w.getCurrentTimestamp=()=>(new Date).getTime(),w.zonosController=null,w.init=async({appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{a.doneInit||(e(`====== ZONOS DEBUG MODE: on (${a.version}) ======`),d?(a.zonosApiKey=d,a.storeId=c,e("init zonos"),a.injectSentryScript(),a.injectZonosCdn(),a.injectZonosCss(),a.injectFonts(),a.injectController({config:{appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),a.doneInit=!0):t("Missing Zonos API key"))},w.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},w.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},w.showNotification=e=>{var t;null===(t=a.zonosController)||void 0===t||t.showNotification(e)},w.updateOrganizationName=e=>{var t;null===(t=a.zonosController)||void 0===t||t.updateOrganizationName(e)},w.disablePlaceOrderButtons=({autoEnable:e=!0,disable:t,placeOrderButtonSelector:o})=>{if(o){const n=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};n.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((()=>{n.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},w.injectController=({config:o,zonosApiKey:n})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=o.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=o.checkoutSettings.placeOrderButtonSelector;a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=o,s.zonosApiKey=n,s.addEventListener("stripeInitEvent",(async o=>{const{detail:n}=o;e("loading Stripe");const r=await(async(...e)=>{d=!0;const t=Date.now();return c.then((o=>((e,t,o)=>{if(null===e)return null;const n=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(n,o),n})(o,e,t)))})(n.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),a.zonosController=s,e("Zonos controller injected!")},w.injectSentryScript=()=>{const o="https://browser.sentry-cdn.com/7.88.0/bundle.tracing.min.js";if(document.querySelector(`script[src="${o}"]`))return void e("Sentry script already exists in the document","warn");const n=document.head||document.body,r=document.createElement("script");r.crossOrigin="anonymous",r.src=o,r.integrity="sha384-z/aQww1Fr6Mes0MO/2wlzQd2nXBCdDcKPXDTsMDMNPgTGRPqii3a4bzH79I+Vo8l",r.setAttribute("data-lazy","no"),r.onerror=()=>{t(`Failed to load ${r.src}`)},r.onload=()=>{var e;null===(e=window.Sentry)||void 0===e||e.init({beforeSend(e){var t,o,n,r,s,i;const l=null===(i=null===(s=null===(r=null===(n=null===(o=null===(t=e.exception)||void 0===t?void 0:t.values)||void 0===o?void 0:o[0])||void 0===n?void 0:n.stacktrace)||void 0===r?void 0:r.frames)||void 0===s?void 0:s[0])||void 0===i?void 0:i.filename,c=(null==l?void 0:l.includes("js.zonos.com"))||(null==l?void 0:l.includes("@zonos/elements")),d=window.location.href.includes("dev.elements")||window.location.href.includes("route.js.zonos.com");return c&&!d?e:null},dsn:"https://19168bd05af0e2e0e7520ad58953e4f2@o446983.ingest.sentry.io/4506400622837760",ignoreErrors:["Failed to load Stripe.js"],release:`zonos-elements@${a.version}`,tracesSampler:()=>.01})},n.appendChild(r)},w.injectScript=({fallBackDomain:o,isModule:n,scriptDomain:r,theRestUrl:s})=>{const i=`${r}/${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");n?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{/\/\/v\d+\./g.test(r)?(o&&a.injectScript({isModule:n,scriptDomain:o,theRestUrl:s}),t(`Failed to load ${c.src}`)):e("No need to fallback since this is not a versioned domain","warn")},l.appendChild(c)},w.getZonosUrl=()=>{if(a.isNpm){return o()||u}return u},w.injectZonosCdn=()=>{const t=a.getZonosUrl();a.injectScript({fallBackDomain:m,isModule:!0,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),a.injectScript({fallBackDomain:m,isModule:!1,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},w.injectStylesheet=({fallBackDomain:o,stylesheetDomain:n,theRestUrl:r})=>{const s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${u}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${n}/${r}`,l.onerror=()=>{const s=/\/\/v\d+\./g.test(n);s?(o&&s&&a.injectStylesheet({stylesheetDomain:o,theRestUrl:r}),t(`Failed to load ${l.href}`)):e("No need to fallback since this is not a versioned domain","warn")},s.appendChild(l)},w.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(a.injectStylesheet({fallBackDomain:m,stylesheetDomain:u,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},w.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${p}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&!y.test(o.href))return o}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=p,t.appendChild(o);const n=document.createElement("link");n.rel="stylesheet",n.href=`${p}/inter/inter.css`,t.appendChild(n),e("Zonos font injected!")},w.setupGoogleFont=e=>{var t;null===(t=a.zonosController)||void 0===t||t.setupGoogleFont(e)},w.injectSupportGoogleFont=t=>{var o;e(`[FONT] injecting ${t}`);const n=null===(o=t.match(/family=(.*?):/))||void 0===o?void 0:o[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${h}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=h,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${n} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${n} font injected!`)},exports.Zonos=w})();
|
|
1
|
+
(function(){"use strict";const e=(e,t,...o)=>{var n,r;if(!(!!(null===(n=window.Zonos)||void 0===n?void 0:n.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...o));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,...o);break;case"info":i.info(e,...o);break;case"error":i.error(e,...o);break;default:i.groupCollapsed(e,...o),i.trace(),i.groupEnd()}},t=(t,...o)=>{e(t,"error",...o)},o=()=>{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 o=`https://${t}.preview.js.zonos.com`;return e(`[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},n="https://js.stripe.com/v3",r=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,s="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let i=null;const l=e=>(null!==i||(i=new Promise(((o,i)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(s),window.Stripe)o(window.Stripe);else try{let l=(()=>{const e=document.querySelectorAll(`script[src^="${n}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&r.test(o.src))return o}return null})();l&&e?console.warn(s):l||(l=(e=>{const o=document.createElement("script");o.src=`${n}`;const r=document.head||document.body;return r?(r.appendChild(o),o):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==l||l.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):i(new Error("Stripe.js not available"))})),null==l||l.addEventListener("error",(()=>{i(new Error("Failed to load Stripe.js"))}))}catch(e){return void i(e)}else o(null)}))),i),c=Promise.resolve().then((()=>l(null)));let d=!1;c.catch((e=>{d||console.warn(e)}));var a;const u=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:o}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,o=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),n=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:n,isWhiteListed:o}})({loadScriptSrc:null==e?void 0:e.src});return o?t:null})()||"https://v1.3.27.js.zonos.com",m="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.27",p="https://rsms.me",h="https://fonts.googleapis.com",y=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class f{}a=f,f.doneInit=!1,f.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),f.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),f.isBigCommerce=!1,f.isNpm=!0,f.zonosQaUrl=null,f.version="v1.3.27",f.modeAlerted=!1,f.tempCartData=null,f.getCurrentTimestamp=()=>(new Date).getTime(),f.zonosController=null,f.init=async({appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{a.doneInit||(e(`====== ZONOS DEBUG MODE: on (${a.version}) ======`),d?(a.zonosApiKey=d,a.storeId=c,e("init zonos"),a.injectZonosCdn(),a.injectZonosCss(),a.injectFonts(),a.injectController({config:{appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),a.doneInit=!0):t("Missing Zonos API key"))},f.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},f.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},f.showNotification=e=>{var t;null===(t=a.zonosController)||void 0===t||t.showNotification(e)},f.updateOrganizationName=e=>{var t;null===(t=a.zonosController)||void 0===t||t.updateOrganizationName(e)},f.disablePlaceOrderButtons=({autoEnable:e=!0,disable:t,placeOrderButtonSelector:o})=>{if(o){const n=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};n.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((()=>{n.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},f.injectController=({config:o,zonosApiKey:n})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=o.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=o.checkoutSettings.placeOrderButtonSelector;a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=o,s.zonosApiKey=n,s.addEventListener("stripeInitEvent",(async o=>{const{detail:n}=o;e("loading Stripe");const r=await(async(...e)=>{d=!0;const t=Date.now();return c.then((o=>((e,t,o)=>{if(null===e)return null;const n=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(n,o),n})(o,e,t)))})(n.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),a.zonosController=s,e("Zonos controller injected!")},f.injectScript=({fallBackDomain:o,isModule:n,scriptDomain:r,theRestUrl:s})=>{const i=`${r}/${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");n?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{/\/\/v\d+\./g.test(r)?(o&&a.injectScript({isModule:n,scriptDomain:o,theRestUrl:s}),t(`Failed to load ${c.src}`)):e("No need to fallback since this is not a versioned domain","warn")},l.appendChild(c)},f.getZonosUrl=()=>{if(a.isNpm){return o()||u}return u},f.injectZonosCdn=()=>{const t=a.getZonosUrl();a.injectScript({fallBackDomain:m,isModule:!0,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),a.injectScript({fallBackDomain:m,isModule:!1,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},f.injectStylesheet=({fallBackDomain:o,stylesheetDomain:n,theRestUrl:r})=>{const s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${u}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${n}/${r}`,l.onerror=()=>{const s=/\/\/v\d+\./g.test(n);s?(o&&s&&a.injectStylesheet({stylesheetDomain:o,theRestUrl:r}),t(`Failed to load ${l.href}`)):e("No need to fallback since this is not a versioned domain","warn")},s.appendChild(l)},f.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(a.injectStylesheet({fallBackDomain:m,stylesheetDomain:u,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},f.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${p}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&!y.test(o.href))return o}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=p,t.appendChild(o);const n=document.createElement("link");n.rel="stylesheet",n.href=`${p}/inter/inter.css`,t.appendChild(n),e("Zonos font injected!")},f.setupGoogleFont=e=>{var t;null===(t=a.zonosController)||void 0===t||t.setupGoogleFont(e)},f.injectSupportGoogleFont=t=>{var o;e(`[FONT] injecting ${t}`);const n=null===(o=t.match(/family=(.*?):/))||void 0===o?void 0:o[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${h}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=h,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${n} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${n} font injected!`)},exports.Zonos=f})();
|
|
@@ -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 r=(function(e,o){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)o.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(t[r[n]]=e[r[n]])}return t})(t||{},[]),n=r.body?JSON.stringify(r.body):void 0,s=r.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"},r.headers),c=Object.assign(Object.assign({},r),{body:"GET"===s?void 0:n,headers:a,method:s});return(async(o,t)=>{let r;try{r=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 n=r.headers.get("Zonos-Mode"),s=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&n&&s&&("production"===n&&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"===n&&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),r.ok)return{errors:[],json:await e({response:r}),response:r};const i=r.status.toString();try{const o=await e({response:r,shouldThrow:!0});return{errors:[{message:`${i}: ${JSON.stringify(o)}`,type:i}],json:null,response:r}}catch(e){return{errors:[{message:`${i}: Unknown error`,type:i}],json:null,response:null}}})(i.toString(),c)},t=(e,o,...t)=>{var r,n;if(!(!!(null===(r=window.Zonos)||void 0===r?void 0:r.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===(n=s.contentWindow)||void 0===n?void 0:n.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()}},r=(e,...o)=>{t(e,"error",...o)},n=async({endpoint:e,errors:t,metadata:r})=>{const n="userAgentData"in window.navigator?window.navigator.userAgentData:null,s={endpoint:e,errors:t,metadata:Object.assign({href:window.location.href,userAgent:n&&n.brands.length>0?n:window.navigator.userAgent},r)};o("https://v1.route.js.zonos.com/api/zonos-elements/log-error",{body:s,method:"POST"})};var s;const i=(()=>{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,r=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",r),window.location.reload(),null})),o})();class a{static get isNpm(){return!1}}s=a,a.isBigCommerce=!1,a.requested=!1,a.zonosQaUrl=null,a.tempCartData=null,a.zonosApiKey=null,a.isLegacyCheckout=!1,a.legacyStoreLogo=null,a.legacyStoreFavicon=null,a.parallelLoadTimes=[],a.paralellLoadState="off",a.loadScriptLogHandler=async({cdnLoadTime:e,fallbackLoadTime:o,isError:t,metadata:r,scriptLoadUrl:n,storeId:s,type:i})=>{try{const e=window.performance.getEntriesByType("resource").find((e=>{const o=e;return o.name.includes(n)&&"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},r)))}catch(e){}},a.loadScriptLogParallelHandler=async e=>{try{if(s.parallelLoadTimes.push(e),2===s.parallelLoadTimes.length){const e=s.parallelLoadTimes.find((e=>"vercel"===e.type)),o=s.parallelLoadTimes.find((e=>"jsdelivr"===e.type));if(!e||!o)return;if(e.isError&&o.isError)return void n({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}});s.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){}},a.legacyCheckoutErrorHandler=({message:e,tempCartUUID:o})=>{r(`[ZONOS - loadZonos] ${e}`),n({endpoint:"LegacyCheckoutInit",errors:[e],metadata:{tempCartUUID:o}}),document.dispatchEvent(new CustomEvent("legacyCheckoutError",{detail:e}))},a.injectZonos=({initConfig:e,isGithubCdn:o=!1,parallelLoaded:r,url:a,version:c})=>{var l;const d=()=>{const e="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.25";return c?e.replace(/@zonos\/elements@(.+)/,`@zonos/elements@${c}`):e},p=i||a,m=p.replace("https://","").replace("http://",""),u=document.createElement("script"),g=c&&c<"1.2.5"?"loadZonos.js":"zonos.js";u.src=`https://${m}/dist/scripts/${g}`,t(`[ZONOS - loadZonos] Injecting "${g}" from "${m}"`,"info");const w="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),y=["dev.elements.zonos.com","zonos.com"].some((e=>window.location.href.includes(e))),h="on"===s.paralellLoadState&&w&&!o&&!y;if(h){const o=d();s.injectZonos({initConfig:e,isGithubCdn:!0,parallelLoaded:!0,url:o,version:c})}const f=performance.now();u.addEventListener("load",(()=>{if(h||r?s.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-f,scriptLoadUrl:u.src,storeId:s.storeId,type:o?"jsdelivr":"vercel"}):s.loadScriptLogHandler({fallbackLoadTime:performance.now()-f,scriptLoadUrl:u.src,storeId:s.storeId,type:o?"jsdelivr":"vercel"}),s.isBigCommerce||(s.isBigCommerce=!!window.stencilBootstrap||!!window.bcConfig||!!document.querySelector('script[src*="bigcommerce.com"]')),window.Zonos.isNpm=!1,window.Zonos.zonosQaUrl=i,window.Zonos.isBigCommerce=s.isBigCommerce,s.isLegacyCheckout){if(!s.zonosApiKey)throw s.legacyCheckoutErrorHandler({message:"zonosApiKey is required for legacy checkout",tempCartUUID:e.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(!s.tempCartData)throw s.legacyCheckoutErrorHandler({message:"tempCartData is required for legacy checkout",tempCartUUID:e.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(s.legacyStoreFavicon){const e=document.createElement("link");e.rel="shortcut icon",e.type="image/x-icon",e.href=s.legacyStoreFavicon,document.head.appendChild(e)}window.Zonos.tempCartData=s.tempCartData;const o=Object.assign(Object.assign({},e),{appearance:Object.assign(Object.assign({},e.appearance),{logoUrl:s.legacyStoreLogo||""}),checkoutSettings:Object.assign(Object.assign({},e.checkoutSettings),{successBehavior:"ZONOS_SUCCESS_PAGE",successRedirectUrl:s.tempCartData.contShoppingURL}),zonosApiKey:s.zonosApiKey});e=o}window.Zonos.version&&(t(`[ZONOS - loadZonos] Execute "Zonos.init" from "${g}" from "${m}"`,"info"),window.Zonos.init(e))})),u.addEventListener("error",(async()=>{if(!h&&!r){const o=d();s.injectZonos({initConfig:e,isGithubCdn:!0,url:o,version:c})}["localhost",".zonos.com"].some((e=>window.location.href.includes(e)))||i||(h||r?s.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-f,isError:!0,scriptLoadUrl:u.src,storeId:s.storeId,type:o?"jsdelivr":"vercel"}):n(o?{endpoint:u.src,errors:["zonos.js - Failed to fetch github CDN."],metadata:{cdnLoadTime:performance.now()-f,cdnType:"jsdelivr",loadUrl:p,version:c}}:{endpoint:u.src,errors:["[Info] Using alternative CDN. Failed to fetch script"],metadata:{vercelLoadTime:performance.now()-f}}))})),document.head.appendChild(u)},a.setupCartData=async e=>{const n=await(async e=>{const{errors:t,json:r}=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!r||t.length?null:r})(e);if(t("[ZONOS - loadZonos] getting temp cart data","info",n),!n)throw r("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),s.legacyCheckoutErrorHandler({message:"Error getting temp cart data",tempCartUUID:e}),new Error("Error getting temp cart data");return s.tempCartData=n.tempCart,s.legacyStoreLogo=n.storeLogoUrl,s.legacyStoreFavicon=n.storeFaviconUrl,{storeId:n.tempCart.storeId,zonosApiKey:n.zonosApiKey}},a.init=async e=>{var n;const i="https://v1.3.25.js.zonos.com",a=document.querySelector('script[src*="/zonos.js"]'),c=null===(n=document.querySelector("script[src*='/loadZonos.js']"))||void 0===n?void 0:n.src,l=null==c?void 0:c.includes("timestamp=");if(!(s.isNpm||c&&l))return void r("[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||s.requested)return void t("[ZONOS - loadZonos] script is already loaded or requested","info");s.requested=!0;let d=e.storeId;if(e.tempCartUUID){const o=await s.setupCartData(e.tempCartUUID);d=o.storeId,s.zonosApiKey=o.zonosApiKey,s.isLegacyCheckout=!0}if(!d)return t("[ZONOS - loadZonos] loading latest script since storeId is not provided."),void s.injectZonos({initConfig:e,url:i,version:null});s.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:m,json:u}=await o(p.toString());if(m.length||!u)return t("[ZONOS - loadZonos] Error getting store version, loadding the latest version.","error"),void s.injectZonos({initConfig:e,url:i,version:null});const{version:g}=u;if(!a){const{currentLoadScriptUrl:o,isForceLoadVersionDomain:r,isWhiteListed:n}=(({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))),r=["qa.js.zonos.com"].some((e=>o.includes(e)));return{currentLoadScriptUrl:o,isForceLoadVersionDomain:r,isWhiteListed:t}})({loadScriptSrc:c}),i=n&&!r?o:`${"alpha"===g?"alpha":`v${g}`}.js.zonos.com`,a=n&&!r?null:g;t("[ZONOS - loadZonos] injecting zonos script","info",{currentLoadScriptUrl:o,isForceLoadVersionDomain:r,isWhiteListed:n,loadUrl:i,loadVersion:a,version:g}),s.injectZonos({initConfig:e,url:i,version:a})}},void 0===window.Zonos&&(window.Zonos=a)})();
|
|
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 r=(function(e,o){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)o.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(t[r[n]]=e[r[n]])}return t})(t||{},[]),n=r.body?JSON.stringify(r.body):void 0,s=r.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"},r.headers),c=Object.assign(Object.assign({},r),{body:"GET"===s?void 0:n,headers:a,method:s});return(async(o,t)=>{let r;try{r=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 n=r.headers.get("Zonos-Mode"),s=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&n&&s&&("production"===n&&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"===n&&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),r.ok)return{errors:[],json:await e({response:r}),response:r};const i=r.status.toString();try{const o=await e({response:r,shouldThrow:!0});return{errors:[{message:`${i}: ${JSON.stringify(o)}`,type:i}],json:null,response:r}}catch(e){return{errors:[{message:`${i}: Unknown error`,type:i}],json:null,response:null}}})(i.toString(),c)},t=(e,o,...t)=>{var r,n;if(!(!!(null===(r=window.Zonos)||void 0===r?void 0:r.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===(n=s.contentWindow)||void 0===n?void 0:n.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()}},r=(e,...o)=>{t(e,"error",...o)},n=async({endpoint:e,errors:t,metadata:r})=>{const n="userAgentData"in window.navigator?window.navigator.userAgentData:null,s={endpoint:e,errors:t,metadata:Object.assign({href:window.location.href,userAgent:n&&n.brands.length>0?n:window.navigator.userAgent},r)};o("https://v1.route.js.zonos.com/api/zonos-elements/log-error",{body:s,method:"POST"})};var s;const i=(()=>{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,r=`${t}?${e.toString()}`;return window.history.replaceState(window.history.state,"",r),window.location.reload(),null})),o})();class a{static get isNpm(){return!1}}s=a,a.isBigCommerce=!1,a.requested=!1,a.zonosQaUrl=null,a.tempCartData=null,a.zonosApiKey=null,a.isLegacyCheckout=!1,a.legacyStoreLogo=null,a.legacyStoreFavicon=null,a.parallelLoadTimes=[],a.paralellLoadState="off",a.loadScriptLogHandler=async({cdnLoadTime:e,fallbackLoadTime:o,isError:t,metadata:r,scriptLoadUrl:n,storeId:s,type:i})=>{try{const e=window.performance.getEntriesByType("resource").find((e=>{const o=e;return o.name.includes(n)&&"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},r)))}catch(e){}},a.loadScriptLogParallelHandler=async e=>{try{if(s.parallelLoadTimes.push(e),2===s.parallelLoadTimes.length){const e=s.parallelLoadTimes.find((e=>"vercel"===e.type)),o=s.parallelLoadTimes.find((e=>"jsdelivr"===e.type));if(!e||!o)return;if(e.isError&&o.isError)return void n({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}});s.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){}},a.legacyCheckoutErrorHandler=({message:e,tempCartUUID:o})=>{r(`[ZONOS - loadZonos] ${e}`),n({endpoint:"LegacyCheckoutInit",errors:[e],metadata:{tempCartUUID:o}}),document.dispatchEvent(new CustomEvent("legacyCheckoutError",{detail:e}))},a.injectZonos=({initConfig:e,isGithubCdn:o=!1,parallelLoaded:r,url:a,version:c})=>{var l;const d=()=>{const e="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.27";return c?e.replace(/@zonos\/elements@(.+)/,`@zonos/elements@${c}`):e},p=i||a,m=p.replace("https://","").replace("http://",""),u=document.createElement("script"),g=c&&c<"1.2.5"?"loadZonos.js":"zonos.js";u.src=`https://${m}/dist/scripts/${g}`,t(`[ZONOS - loadZonos] Injecting "${g}" from "${m}"`,"info");const w="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),y=["dev.elements.zonos.com","zonos.com"].some((e=>window.location.href.includes(e))),h="on"===s.paralellLoadState&&w&&!o&&!y;if(h){const o=d();s.injectZonos({initConfig:e,isGithubCdn:!0,parallelLoaded:!0,url:o,version:c})}const f=performance.now();u.addEventListener("load",(()=>{if(h||r?s.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-f,scriptLoadUrl:u.src,storeId:s.storeId,type:o?"jsdelivr":"vercel"}):s.loadScriptLogHandler({fallbackLoadTime:performance.now()-f,scriptLoadUrl:u.src,storeId:s.storeId,type:o?"jsdelivr":"vercel"}),s.isBigCommerce||(s.isBigCommerce=!!window.stencilBootstrap||!!window.bcConfig||!!document.querySelector('script[src*="bigcommerce.com"]')),window.Zonos.isNpm=!1,window.Zonos.zonosQaUrl=i,window.Zonos.isBigCommerce=s.isBigCommerce,s.isLegacyCheckout){if(!s.zonosApiKey)throw s.legacyCheckoutErrorHandler({message:"zonosApiKey is required for legacy checkout",tempCartUUID:e.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(!s.tempCartData)throw s.legacyCheckoutErrorHandler({message:"tempCartData is required for legacy checkout",tempCartUUID:e.tempCartUUID}),new Error("zonosApiKey is required for legacy checkout");if(s.legacyStoreFavicon){const e=document.createElement("link");e.rel="shortcut icon",e.type="image/x-icon",e.href=s.legacyStoreFavicon,document.head.appendChild(e)}window.Zonos.tempCartData=s.tempCartData;const o=Object.assign(Object.assign({},e),{appearance:Object.assign(Object.assign({},e.appearance),{logoUrl:s.legacyStoreLogo||""}),checkoutSettings:Object.assign(Object.assign({},e.checkoutSettings),{successBehavior:"ZONOS_SUCCESS_PAGE",successRedirectUrl:s.tempCartData.contShoppingURL}),zonosApiKey:s.zonosApiKey});e=o}window.Zonos.version&&(t(`[ZONOS - loadZonos] Execute "Zonos.init" from "${g}" from "${m}"`,"info"),window.Zonos.init(e))})),u.addEventListener("error",(async()=>{if(!h&&!r){const o=d();s.injectZonos({initConfig:e,isGithubCdn:!0,url:o,version:c})}["localhost",".zonos.com"].some((e=>window.location.href.includes(e)))||i||(h||r?s.loadScriptLogParallelHandler({fallbackLoadTime:performance.now()-f,isError:!0,scriptLoadUrl:u.src,storeId:s.storeId,type:o?"jsdelivr":"vercel"}):n(o?{endpoint:u.src,errors:["zonos.js - Failed to fetch github CDN."],metadata:{cdnLoadTime:performance.now()-f,cdnType:"jsdelivr",loadUrl:p,version:c}}:{endpoint:u.src,errors:["[Info] Using alternative CDN. Failed to fetch script"],metadata:{vercelLoadTime:performance.now()-f}}))})),document.head.appendChild(u)},a.setupCartData=async e=>{const n=await(async e=>{const{errors:t,json:r}=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!r||t.length?null:r})(e);if(t("[ZONOS - loadZonos] getting temp cart data","info",n),!n)throw r("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),s.legacyCheckoutErrorHandler({message:"Error getting temp cart data",tempCartUUID:e}),new Error("Error getting temp cart data");return s.tempCartData=n.tempCart,s.legacyStoreLogo=n.storeLogoUrl,s.legacyStoreFavicon=n.storeFaviconUrl,{storeId:n.tempCart.storeId,zonosApiKey:n.zonosApiKey}},a.init=async e=>{var n;const i="https://v1.3.27.js.zonos.com",a=document.querySelector('script[src*="/zonos.js"]'),c=null===(n=document.querySelector("script[src*='/loadZonos.js']"))||void 0===n?void 0:n.src,l=null==c?void 0:c.includes("timestamp=");if(!(s.isNpm||c&&l))return void r("[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||s.requested)return void t("[ZONOS - loadZonos] script is already loaded or requested","info");s.requested=!0;let d=e.storeId;if(e.tempCartUUID){const o=await s.setupCartData(e.tempCartUUID);d=o.storeId,s.zonosApiKey=o.zonosApiKey,s.isLegacyCheckout=!0}if(!d)return t("[ZONOS - loadZonos] loading latest script since storeId is not provided."),void s.injectZonos({initConfig:e,url:i,version:null});s.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:m,json:u}=await o(p.toString());if(m.length||!u)return t("[ZONOS - loadZonos] Error getting store version, loadding the latest version.","error"),void s.injectZonos({initConfig:e,url:i,version:null});const{version:g}=u;if(!a){const{currentLoadScriptUrl:o,isForceLoadVersionDomain:r,isWhiteListed:n}=(({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))),r=["qa.js.zonos.com"].some((e=>o.includes(e)));return{currentLoadScriptUrl:o,isForceLoadVersionDomain:r,isWhiteListed:t}})({loadScriptSrc:c}),i=n&&!r?o:`${"alpha"===g?"alpha":`v${g}`}.js.zonos.com`,a=n&&!r?null:g;t("[ZONOS - loadZonos] injecting zonos script","info",{currentLoadScriptUrl:o,isForceLoadVersionDomain:r,isWhiteListed:n,loadUrl:i,loadVersion:a,version:g}),s.injectZonos({initConfig:e,url:i,version:a})}},void 0===window.Zonos&&(window.Zonos=a)})();
|
package/dist/scripts/zonos.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){"use strict";const e=(e,t,...o)=>{var n,r;if(!(!!(null===(n=window.Zonos)||void 0===n?void 0:n.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...o));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,...o);break;case"info":i.info(e,...o);break;case"error":i.error(e,...o);break;default:i.groupCollapsed(e,...o),i.trace(),i.groupEnd()}},t=(t,...o)=>{e(t,"error",...o)},o=()=>{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 o=`https://${t}.preview.js.zonos.com`;return e(`[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},n="https://js.stripe.com/v3",r=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,s="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let i=null;const l=e=>(null!==i||(i=new Promise(((o,i)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(s),window.Stripe)o(window.Stripe);else try{let l=(()=>{const e=document.querySelectorAll(`script[src^="${n}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&r.test(o.src))return o}return null})();l&&e?console.warn(s):l||(l=(e=>{const o=document.createElement("script");o.src=`${n}`;const r=document.head||document.body;return r?(r.appendChild(o),o):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==l||l.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):i(new Error("Stripe.js not available"))})),null==l||l.addEventListener("error",(()=>{i(new Error("Failed to load Stripe.js"))}))}catch(e){return void i(e)}else o(null)}))),i),c=Promise.resolve().then((()=>l(null)));let d=!1;c.catch((e=>{d||console.warn(e)}));var a;const u=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:o}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,o=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),n=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:n,isWhiteListed:o}})({loadScriptSrc:null==e?void 0:e.src});return o?t:null})()||"https://v1.3.25.js.zonos.com",m="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.25",p="https://rsms.me",h="https://fonts.googleapis.com",y=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class w{}a=w,w.doneInit=!1,w.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),w.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),w.isBigCommerce=!1,w.isNpm=!0,w.zonosQaUrl=null,w.version="v1.3.25",w.modeAlerted=!1,w.tempCartData=null,w.getCurrentTimestamp=()=>(new Date).getTime(),w.zonosController=null,w.init=async({appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{a.doneInit||(e(`====== ZONOS DEBUG MODE: on (${a.version}) ======`),d?(a.zonosApiKey=d,a.storeId=c,e("init zonos"),a.injectSentryScript(),a.injectZonosCdn(),a.injectZonosCss(),a.injectFonts(),a.injectController({config:{appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),a.doneInit=!0):t("Missing Zonos API key"))},w.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},w.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},w.showNotification=e=>{var t;null===(t=a.zonosController)||void 0===t||t.showNotification(e)},w.updateOrganizationName=e=>{var t;null===(t=a.zonosController)||void 0===t||t.updateOrganizationName(e)},w.disablePlaceOrderButtons=({autoEnable:e=!0,disable:t,placeOrderButtonSelector:o})=>{if(o){const n=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};n.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((()=>{n.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},w.injectController=({config:o,zonosApiKey:n})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=o.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=o.checkoutSettings.placeOrderButtonSelector;a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=o,s.zonosApiKey=n,s.addEventListener("stripeInitEvent",(async o=>{const{detail:n}=o;e("loading Stripe");const r=await(async(...e)=>{d=!0;const t=Date.now();return c.then((o=>((e,t,o)=>{if(null===e)return null;const n=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(n,o),n})(o,e,t)))})(n.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),a.zonosController=s,e("Zonos controller injected!")},w.injectSentryScript=()=>{const o="https://browser.sentry-cdn.com/7.88.0/bundle.tracing.min.js";if(document.querySelector(`script[src="${o}"]`))return void e("Sentry script already exists in the document","warn");const n=document.head||document.body,r=document.createElement("script");r.crossOrigin="anonymous",r.src=o,r.integrity="sha384-z/aQww1Fr6Mes0MO/2wlzQd2nXBCdDcKPXDTsMDMNPgTGRPqii3a4bzH79I+Vo8l",r.setAttribute("data-lazy","no"),r.onerror=()=>{t(`Failed to load ${r.src}`)},r.onload=()=>{var e;null===(e=window.Sentry)||void 0===e||e.init({beforeSend(e){var t,o,n,r,s,i;const l=null===(i=null===(s=null===(r=null===(n=null===(o=null===(t=e.exception)||void 0===t?void 0:t.values)||void 0===o?void 0:o[0])||void 0===n?void 0:n.stacktrace)||void 0===r?void 0:r.frames)||void 0===s?void 0:s[0])||void 0===i?void 0:i.filename,c=(null==l?void 0:l.includes("js.zonos.com"))||(null==l?void 0:l.includes("@zonos/elements")),d=window.location.href.includes("dev.elements")||window.location.href.includes("route.js.zonos.com");return c&&!d?e:null},dsn:"https://19168bd05af0e2e0e7520ad58953e4f2@o446983.ingest.sentry.io/4506400622837760",ignoreErrors:["Failed to load Stripe.js"],release:`zonos-elements@${a.version}`,tracesSampler:()=>.01})},n.appendChild(r)},w.injectScript=({fallBackDomain:o,isModule:n,scriptDomain:r,theRestUrl:s})=>{const i=`${r}/${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");n?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{/\/\/v\d+\./g.test(r)?(o&&a.injectScript({isModule:n,scriptDomain:o,theRestUrl:s}),t(`Failed to load ${c.src}`)):e("No need to fallback since this is not a versioned domain","warn")},l.appendChild(c)},w.getZonosUrl=()=>{if(a.isNpm){return o()||u}return u},w.injectZonosCdn=()=>{const t=a.getZonosUrl();a.injectScript({fallBackDomain:m,isModule:!0,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),a.injectScript({fallBackDomain:m,isModule:!1,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},w.injectStylesheet=({fallBackDomain:o,stylesheetDomain:n,theRestUrl:r})=>{const s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${u}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${n}/${r}`,l.onerror=()=>{const s=/\/\/v\d+\./g.test(n);s?(o&&s&&a.injectStylesheet({stylesheetDomain:o,theRestUrl:r}),t(`Failed to load ${l.href}`)):e("No need to fallback since this is not a versioned domain","warn")},s.appendChild(l)},w.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(a.injectStylesheet({fallBackDomain:m,stylesheetDomain:u,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},w.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${p}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&!y.test(o.href))return o}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=p,t.appendChild(o);const n=document.createElement("link");n.rel="stylesheet",n.href=`${p}/inter/inter.css`,t.appendChild(n),e("Zonos font injected!")},w.setupGoogleFont=e=>{var t;null===(t=a.zonosController)||void 0===t||t.setupGoogleFont(e)},w.injectSupportGoogleFont=t=>{var o;e(`[FONT] injecting ${t}`);const n=null===(o=t.match(/family=(.*?):/))||void 0===o?void 0:o[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${h}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=h,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${n} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${n} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=w)})();
|
|
1
|
+
(function(){"use strict";const e=(e,t,...o)=>{var n,r;if(!(!!(null===(n=window.Zonos)||void 0===n?void 0:n.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===t&&console.error(e,...o));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,...o);break;case"info":i.info(e,...o);break;case"error":i.error(e,...o);break;default:i.groupCollapsed(e,...o),i.trace(),i.groupEnd()}},t=(t,...o)=>{e(t,"error",...o)},o=()=>{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 o=`https://${t}.preview.js.zonos.com`;return e(`[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},n="https://js.stripe.com/v3",r=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,s="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let i=null;const l=e=>(null!==i||(i=new Promise(((o,i)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(s),window.Stripe)o(window.Stripe);else try{let l=(()=>{const e=document.querySelectorAll(`script[src^="${n}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&r.test(o.src))return o}return null})();l&&e?console.warn(s):l||(l=(e=>{const o=document.createElement("script");o.src=`${n}`;const r=document.head||document.body;return r?(r.appendChild(o),o):(t("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==l||l.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):i(new Error("Stripe.js not available"))})),null==l||l.addEventListener("error",(()=>{i(new Error("Failed to load Stripe.js"))}))}catch(e){return void i(e)}else o(null)}))),i),c=Promise.resolve().then((()=>l(null)));let d=!1;c.catch((e=>{d||console.warn(e)}));var a;const u=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:t,isWhiteListed:o}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const t=new URL(e).origin,o=["dev.elements.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>t.includes(e))),n=["qa.js.zonos.com"].some((e=>t.includes(e)));return{currentLoadScriptUrl:t,isForceLoadVersionDomain:n,isWhiteListed:o}})({loadScriptSrc:null==e?void 0:e.src});return o?t:null})()||"https://v1.3.27.js.zonos.com",m="https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.27",p="https://rsms.me",h="https://fonts.googleapis.com",y=/^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;class w{}a=w,w.doneInit=!1,w.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),w.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),w.isBigCommerce=!1,w.isNpm=!0,w.zonosQaUrl=null,w.version="v1.3.27",w.modeAlerted=!1,w.tempCartData=null,w.getCurrentTimestamp=()=>(new Date).getTime(),w.zonosController=null,w.init=async({appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l,storeId:c,zonosApiKey:d})=>{a.doneInit||(e(`====== ZONOS DEBUG MODE: on (${a.version}) ======`),d?(a.zonosApiKey=d,a.storeId=c,e("init zonos"),a.injectZonosCdn(),a.injectZonosCss(),a.injectFonts(),a.injectController({config:{appearance:o,checkoutSettings:n,currencyConverter:r,helloSettings:s,onCountryChange:i,overrideCurrencyFormat:l},zonosApiKey:d}),a.doneInit=!0):t("Missing Zonos API key"))},w.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},w.openHelloDialog=e=>{const t=document.querySelector("zonos-hello");t&&t.openHelloDialog(null==e||e)},w.showNotification=e=>{var t;null===(t=a.zonosController)||void 0===t||t.showNotification(e)},w.updateOrganizationName=e=>{var t;null===(t=a.zonosController)||void 0===t||t.updateOrganizationName(e)},w.disablePlaceOrderButtons=({autoEnable:e=!0,disable:t,placeOrderButtonSelector:o})=>{if(o){const n=document.querySelectorAll(o),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};n.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((()=>{n.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},w.injectController=({config:o,zonosApiKey:n})=>{var r;if(document.querySelector("zonos-controller"))return;if(null===(r=o.checkoutSettings)||void 0===r?void 0:r.placeOrderButtonSelector){const e=o.checkoutSettings.placeOrderButtonSelector;a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e});new MutationObserver((()=>{a.disablePlaceOrderButtons({disable:!0,placeOrderButtonSelector:e})})).observe(document.body,{childList:!0,subtree:!0})}const s=document.createElement("zonos-controller");s.config=o,s.zonosApiKey=n,s.addEventListener("stripeInitEvent",(async o=>{const{detail:n}=o;e("loading Stripe");const r=await(async(...e)=>{d=!0;const t=Date.now();return c.then((o=>((e,t,o)=>{if(null===e)return null;const n=e.apply(void 0,t);return((e,t)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:t})})(n,o),n})(o,e,t)))})(n.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),a.zonosController=s,e("Zonos controller injected!")},w.injectScript=({fallBackDomain:o,isModule:n,scriptDomain:r,theRestUrl:s})=>{const i=`${r}/${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");n?c.type="module":c.noModule=!0,c.src=i,c.crossOrigin="anonymous",c.onerror=()=>{/\/\/v\d+\./g.test(r)?(o&&a.injectScript({isModule:n,scriptDomain:o,theRestUrl:s}),t(`Failed to load ${c.src}`)):e("No need to fallback since this is not a versioned domain","warn")},l.appendChild(c)},w.getZonosUrl=()=>{if(a.isNpm){return o()||u}return u},w.injectZonosCdn=()=>{const t=a.getZonosUrl();a.injectScript({fallBackDomain:m,isModule:!0,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),a.injectScript({fallBackDomain:m,isModule:!1,scriptDomain:t,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),e("Zonos cdn script injected!")},w.injectStylesheet=({fallBackDomain:o,stylesheetDomain:n,theRestUrl:r})=>{const s=document.head||document.body,i=document.createElement("link");i.rel="preconnect",i.href=`${u}/`,s.appendChild(i);const l=document.createElement("link");l.rel="stylesheet",l.href=`${n}/${r}`,l.onerror=()=>{const s=/\/\/v\d+\./g.test(n);s?(o&&s&&a.injectStylesheet({stylesheetDomain:o,theRestUrl:r}),t(`Failed to load ${l.href}`)):e("No need to fallback since this is not a versioned domain","warn")},s.appendChild(l)},w.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?e("Zonos style links already injected","warn"):(a.injectStylesheet({fallBackDomain:m,stylesheetDomain:u,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),e("Zonos style css injected!"))},w.injectFonts=()=>{if((()=>{const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${p}"]`);for(let t=0;t<e.length;t++){const o=e[t];if(o&&!y.test(o.href))return o}return null})())return void e("Inter font already injected","warn");const t=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=p,t.appendChild(o);const n=document.createElement("link");n.rel="stylesheet",n.href=`${p}/inter/inter.css`,t.appendChild(n),e("Zonos font injected!")},w.setupGoogleFont=e=>{var t;null===(t=a.zonosController)||void 0===t||t.setupGoogleFont(e)},w.injectSupportGoogleFont=t=>{var o;e(`[FONT] injecting ${t}`);const n=null===(o=t.match(/family=(.*?):/))||void 0===o?void 0:o[1],r=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${h}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=h,r.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${t}"]`))return void e(`[FONT] ${n} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=t,r.appendChild(s),e(`[FONT] ${n} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=w)})();
|
|
@@ -28,10 +28,12 @@ export declare class ZonosCheckoutFinish {
|
|
|
28
28
|
notificationType: 'success' | 'error';
|
|
29
29
|
notificationTitle: string;
|
|
30
30
|
notificationMessages: string[];
|
|
31
|
+
notificationActionText: string;
|
|
31
32
|
order: ZonosOrder | null;
|
|
32
33
|
private pullOrder;
|
|
33
34
|
private handleSuccessBehavior;
|
|
34
35
|
private getPullOrder;
|
|
36
|
+
private useOverrideSuccessNotification;
|
|
35
37
|
private checkPaymentStatus;
|
|
36
38
|
private closeClickHandler;
|
|
37
39
|
componentDidLoad(): void;
|
|
@@ -68,6 +68,10 @@ export declare class ZonosCheckout {
|
|
|
68
68
|
* Timeout alert message
|
|
69
69
|
*/
|
|
70
70
|
checkoutTimeoutInterval: NodeJS.Timeout | null;
|
|
71
|
+
/**
|
|
72
|
+
* Error message from onInventoryCheck callback
|
|
73
|
+
*/
|
|
74
|
+
inventoryCheckErrorMessage: string | null;
|
|
71
75
|
/**
|
|
72
76
|
* Init cart info handler event
|
|
73
77
|
*/
|
|
@@ -103,6 +107,12 @@ export declare class ZonosCheckout {
|
|
|
103
107
|
setToFinishStep(forcePaymentStatus?: PaymentIntent['status']): Promise<void>;
|
|
104
108
|
private handleCustomerInfoContinue;
|
|
105
109
|
private handleShippingContinue;
|
|
110
|
+
private handleInventoryCheckDialogCancel;
|
|
111
|
+
private handleInventoryCheckDialogConfirm;
|
|
112
|
+
/**
|
|
113
|
+
* Handle inventory check and returns error message if the callback provided.
|
|
114
|
+
*/
|
|
115
|
+
private handleInventoryCheck;
|
|
106
116
|
private handleCheckoutPaymentContinue;
|
|
107
117
|
private handleFinishClick;
|
|
108
118
|
private getCurrentLocalePageEnum;
|
|
@@ -13,9 +13,9 @@ export declare class ZonosConfirmDialog {
|
|
|
13
13
|
dialogIntent: 'info' | 'danger' | 'warn';
|
|
14
14
|
/**
|
|
15
15
|
* Dialog subtitle text
|
|
16
|
-
* @default
|
|
16
|
+
* @default null No subtitle
|
|
17
17
|
*/
|
|
18
|
-
dialogSubtitle: string;
|
|
18
|
+
dialogSubtitle: string | null;
|
|
19
19
|
/**
|
|
20
20
|
* Submit button main color
|
|
21
21
|
*/
|
|
@@ -75,7 +75,7 @@ export declare class ZonosHello {
|
|
|
75
75
|
openHelloDialog(value: boolean): Promise<void>;
|
|
76
76
|
private shouldAnimateLeftDesktop;
|
|
77
77
|
handleResize(): void;
|
|
78
|
-
private
|
|
78
|
+
private shouldRenderHello;
|
|
79
79
|
handleAppearanceSettingsOverrideChange(): void;
|
|
80
80
|
render(): any;
|
|
81
81
|
}
|
|
@@ -45,6 +45,14 @@ export declare class ZonosHelloDialog {
|
|
|
45
45
|
private setShowLanguageSelect;
|
|
46
46
|
globalClickHandler(e: MouseEvent): void;
|
|
47
47
|
isOpenHandler(isOpen: boolean): void;
|
|
48
|
+
/**
|
|
49
|
+
* Store has tax id setup in Zonos settings
|
|
50
|
+
*/
|
|
51
|
+
private hasTaxId;
|
|
52
|
+
/**
|
|
53
|
+
* Some countries don't have threshold. So we need to show generic message for them
|
|
54
|
+
*/
|
|
55
|
+
private isNoThresholdCountry;
|
|
48
56
|
private getDutyMessage;
|
|
49
57
|
private getTaxMessage;
|
|
50
58
|
private getUkDutyTaxMessage;
|
|
@@ -41,6 +41,9 @@ export declare const stringsArabic: {
|
|
|
41
41
|
'Continue to shipping': {
|
|
42
42
|
value: string;
|
|
43
43
|
};
|
|
44
|
+
"Couldn't place order": {
|
|
45
|
+
value: string;
|
|
46
|
+
};
|
|
44
47
|
Country: {
|
|
45
48
|
value: string;
|
|
46
49
|
};
|
|
@@ -59,6 +62,9 @@ export declare const stringsArabic: {
|
|
|
59
62
|
"Don't close": {
|
|
60
63
|
value: string;
|
|
61
64
|
};
|
|
65
|
+
'Duties & taxes in Australia, VAT or GST is [percentage] and is due on all orders': {
|
|
66
|
+
value: string;
|
|
67
|
+
};
|
|
62
68
|
'Duties and taxes will be applied to items and shipping.': {
|
|
63
69
|
value: string;
|
|
64
70
|
};
|
|
@@ -101,6 +107,9 @@ export declare const stringsArabic: {
|
|
|
101
107
|
'Last name': {
|
|
102
108
|
value: string;
|
|
103
109
|
};
|
|
110
|
+
'Learn more.': {
|
|
111
|
+
value: string;
|
|
112
|
+
};
|
|
104
113
|
'Missing required fields. Make sure all fields are completed.': {
|
|
105
114
|
value: string;
|
|
106
115
|
};
|
|
@@ -170,6 +179,9 @@ export declare const stringsArabic: {
|
|
|
170
179
|
'Restricted items found': {
|
|
171
180
|
value: string;
|
|
172
181
|
};
|
|
182
|
+
'Return to cart': {
|
|
183
|
+
value: string;
|
|
184
|
+
};
|
|
173
185
|
'Search countries': {
|
|
174
186
|
value: string;
|
|
175
187
|
};
|
|
@@ -200,7 +212,10 @@ export declare const stringsArabic: {
|
|
|
200
212
|
'Something went wrong.': {
|
|
201
213
|
value: string;
|
|
202
214
|
};
|
|
203
|
-
Spend: {
|
|
215
|
+
'Spend [threshold] duty free': {
|
|
216
|
+
value: string;
|
|
217
|
+
};
|
|
218
|
+
'Spend [threshold] tax free': {
|
|
204
219
|
value: string;
|
|
205
220
|
};
|
|
206
221
|
State: {
|
|
@@ -215,6 +230,9 @@ export declare const stringsArabic: {
|
|
|
215
230
|
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
216
231
|
value: string;
|
|
217
232
|
};
|
|
233
|
+
'The low-value GST law passed July 1st, 2018 applies to this retailer.': {
|
|
234
|
+
value: string;
|
|
235
|
+
};
|
|
218
236
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
219
237
|
value: string;
|
|
220
238
|
};
|
|
@@ -227,6 +245,9 @@ export declare const stringsArabic: {
|
|
|
227
245
|
'Translated address': {
|
|
228
246
|
value: string;
|
|
229
247
|
};
|
|
248
|
+
'Unable to check inventory. Please try again.': {
|
|
249
|
+
value: string;
|
|
250
|
+
};
|
|
230
251
|
'Update address': {
|
|
231
252
|
value: string;
|
|
232
253
|
};
|
|
@@ -272,13 +293,7 @@ export declare const stringsArabic: {
|
|
|
272
293
|
'click to learn more': {
|
|
273
294
|
value: string;
|
|
274
295
|
};
|
|
275
|
-
'duty free': {
|
|
276
|
-
value: string;
|
|
277
|
-
};
|
|
278
296
|
'restricted items': {
|
|
279
297
|
value: string;
|
|
280
298
|
};
|
|
281
|
-
'tax free': {
|
|
282
|
-
value: string;
|
|
283
|
-
};
|
|
284
299
|
};
|
|
@@ -41,6 +41,9 @@ export declare const stringsBase: {
|
|
|
41
41
|
'Continue to shipping': {
|
|
42
42
|
value: string;
|
|
43
43
|
};
|
|
44
|
+
"Couldn't place order": {
|
|
45
|
+
value: string;
|
|
46
|
+
};
|
|
44
47
|
Country: {
|
|
45
48
|
value: string;
|
|
46
49
|
};
|
|
@@ -59,6 +62,9 @@ export declare const stringsBase: {
|
|
|
59
62
|
"Don't close": {
|
|
60
63
|
value: string;
|
|
61
64
|
};
|
|
65
|
+
'Duties & taxes in Australia, VAT or GST is [percentage] and is due on all orders': {
|
|
66
|
+
value: string;
|
|
67
|
+
};
|
|
62
68
|
'Duties and taxes will be applied to items and shipping.': {
|
|
63
69
|
value: string;
|
|
64
70
|
};
|
|
@@ -101,6 +107,9 @@ export declare const stringsBase: {
|
|
|
101
107
|
'Last name': {
|
|
102
108
|
value: string;
|
|
103
109
|
};
|
|
110
|
+
'Learn more.': {
|
|
111
|
+
value: string;
|
|
112
|
+
};
|
|
104
113
|
'Missing required fields. Make sure all fields are completed.': {
|
|
105
114
|
value: string;
|
|
106
115
|
};
|
|
@@ -170,6 +179,9 @@ export declare const stringsBase: {
|
|
|
170
179
|
'Restricted items found': {
|
|
171
180
|
value: string;
|
|
172
181
|
};
|
|
182
|
+
'Return to cart': {
|
|
183
|
+
value: string;
|
|
184
|
+
};
|
|
173
185
|
'Search countries': {
|
|
174
186
|
value: string;
|
|
175
187
|
};
|
|
@@ -200,7 +212,10 @@ export declare const stringsBase: {
|
|
|
200
212
|
'Something went wrong.': {
|
|
201
213
|
value: string;
|
|
202
214
|
};
|
|
203
|
-
Spend: {
|
|
215
|
+
'Spend [threshold] duty free': {
|
|
216
|
+
value: string;
|
|
217
|
+
};
|
|
218
|
+
'Spend [threshold] tax free': {
|
|
204
219
|
value: string;
|
|
205
220
|
};
|
|
206
221
|
State: {
|
|
@@ -215,6 +230,9 @@ export declare const stringsBase: {
|
|
|
215
230
|
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
216
231
|
value: string;
|
|
217
232
|
};
|
|
233
|
+
'The low-value GST law passed July 1st, 2018 applies to this retailer.': {
|
|
234
|
+
value: string;
|
|
235
|
+
};
|
|
218
236
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
219
237
|
value: string;
|
|
220
238
|
};
|
|
@@ -227,6 +245,9 @@ export declare const stringsBase: {
|
|
|
227
245
|
'Translated address': {
|
|
228
246
|
value: string;
|
|
229
247
|
};
|
|
248
|
+
'Unable to check inventory. Please try again.': {
|
|
249
|
+
value: string;
|
|
250
|
+
};
|
|
230
251
|
'Update address': {
|
|
231
252
|
value: string;
|
|
232
253
|
};
|
|
@@ -272,13 +293,7 @@ export declare const stringsBase: {
|
|
|
272
293
|
'click to learn more': {
|
|
273
294
|
value: string;
|
|
274
295
|
};
|
|
275
|
-
'duty free': {
|
|
276
|
-
value: string;
|
|
277
|
-
};
|
|
278
296
|
'restricted items': {
|
|
279
297
|
value: string;
|
|
280
298
|
};
|
|
281
|
-
'tax free': {
|
|
282
|
-
value: string;
|
|
283
|
-
};
|
|
284
299
|
};
|
|
@@ -41,6 +41,9 @@ export declare const stringsChinese: {
|
|
|
41
41
|
'Continue to shipping': {
|
|
42
42
|
value: string;
|
|
43
43
|
};
|
|
44
|
+
"Couldn't place order": {
|
|
45
|
+
value: string;
|
|
46
|
+
};
|
|
44
47
|
Country: {
|
|
45
48
|
value: string;
|
|
46
49
|
};
|
|
@@ -59,6 +62,9 @@ export declare const stringsChinese: {
|
|
|
59
62
|
"Don't close": {
|
|
60
63
|
value: string;
|
|
61
64
|
};
|
|
65
|
+
'Duties & taxes in Australia, VAT or GST is [percentage] and is due on all orders': {
|
|
66
|
+
value: string;
|
|
67
|
+
};
|
|
62
68
|
'Duties and taxes will be applied to items and shipping.': {
|
|
63
69
|
value: string;
|
|
64
70
|
};
|
|
@@ -101,6 +107,9 @@ export declare const stringsChinese: {
|
|
|
101
107
|
'Last name': {
|
|
102
108
|
value: string;
|
|
103
109
|
};
|
|
110
|
+
'Learn more.': {
|
|
111
|
+
value: string;
|
|
112
|
+
};
|
|
104
113
|
'Missing required fields. Make sure all fields are completed.': {
|
|
105
114
|
value: string;
|
|
106
115
|
};
|
|
@@ -170,6 +179,9 @@ export declare const stringsChinese: {
|
|
|
170
179
|
'Restricted items found': {
|
|
171
180
|
value: string;
|
|
172
181
|
};
|
|
182
|
+
'Return to cart': {
|
|
183
|
+
value: string;
|
|
184
|
+
};
|
|
173
185
|
'Search countries': {
|
|
174
186
|
value: string;
|
|
175
187
|
};
|
|
@@ -200,7 +212,10 @@ export declare const stringsChinese: {
|
|
|
200
212
|
'Something went wrong.': {
|
|
201
213
|
value: string;
|
|
202
214
|
};
|
|
203
|
-
Spend: {
|
|
215
|
+
'Spend [threshold] duty free': {
|
|
216
|
+
value: string;
|
|
217
|
+
};
|
|
218
|
+
'Spend [threshold] tax free': {
|
|
204
219
|
value: string;
|
|
205
220
|
};
|
|
206
221
|
State: {
|
|
@@ -215,6 +230,9 @@ export declare const stringsChinese: {
|
|
|
215
230
|
'The following items are unable to be shipped to your country and are not included in your cart total.': {
|
|
216
231
|
value: string;
|
|
217
232
|
};
|
|
233
|
+
'The low-value GST law passed July 1st, 2018 applies to this retailer.': {
|
|
234
|
+
value: string;
|
|
235
|
+
};
|
|
218
236
|
"There's been an error creating your checkout session. Please reload and try again or contact support if the error persists": {
|
|
219
237
|
value: string;
|
|
220
238
|
};
|
|
@@ -227,6 +245,9 @@ export declare const stringsChinese: {
|
|
|
227
245
|
'Translated address': {
|
|
228
246
|
value: string;
|
|
229
247
|
};
|
|
248
|
+
'Unable to check inventory. Please try again.': {
|
|
249
|
+
value: string;
|
|
250
|
+
};
|
|
230
251
|
'Update address': {
|
|
231
252
|
value: string;
|
|
232
253
|
};
|
|
@@ -272,13 +293,7 @@ export declare const stringsChinese: {
|
|
|
272
293
|
'click to learn more': {
|
|
273
294
|
value: string;
|
|
274
295
|
};
|
|
275
|
-
'duty free': {
|
|
276
|
-
value: string;
|
|
277
|
-
};
|
|
278
296
|
'restricted items': {
|
|
279
297
|
value: string;
|
|
280
298
|
};
|
|
281
|
-
'tax free': {
|
|
282
|
-
value: string;
|
|
283
|
-
};
|
|
284
299
|
};
|