@zonos/elements 1.3.21 → 1.3.23
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/{ILanguage-d247b45b.js → ILanguage-98b04442.js} +2 -2
- package/dist/cjs/{cart-921f0a47.js → cart-c734e909.js} +284 -246
- package/dist/cjs/{getBorderRadius-9ad763e1.js → getBorderRadius-ea0984bb.js} +1 -1
- package/dist/cjs/index.cjs.js +5 -4
- package/dist/cjs/{isDarkColor-3d021ecc.js → isDarkColor-b14d5752.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{submitGtag-71790233.js → submitGtag-336b437c.js} +2 -2
- package/dist/cjs/zonos-address_8.cjs.entry.js +4 -4
- 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 +82 -43
- package/dist/cjs/zonos-card_2.cjs.entry.js +5 -5
- package/dist/cjs/zonos-cart-items_11.cjs.entry.js +20 -30
- package/dist/cjs/zonos-checkout.cjs.entry.js +11 -7
- package/dist/cjs/zonos-controller.cjs.entry.js +8 -6
- package/dist/cjs/zonos-country-flag.cjs.entry.js +4 -4
- package/dist/cjs/zonos-country-select_3.cjs.entry.js +12 -10
- package/dist/cjs/zonos-elements.cjs.js +1 -1
- package/dist/cjs/zonos-hello-dialog.cjs.entry.js +18 -16
- package/dist/cjs/zonos-hello.cjs.entry.js +13 -7
- 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 +4 -4
- 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 -2
- package/dist/cjs/{zonosStore-1063de5e.js → zonosStore-3958bbeb.js} +2 -3
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.css +7 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +4 -4
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-restricted-items/zonos-cart-restricted-items.js +2 -2
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.css +7 -0
- package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +5 -5
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +2 -2
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +6 -2
- package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.js +2 -2
- package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.js +3 -3
- package/dist/collection/components/common/zonos-button/zonos-button.css +7 -2
- package/dist/collection/components/common/zonos-button/zonos-button.js +74 -39
- package/dist/collection/components/common/zonos-text/zonos-text.js +0 -18
- package/dist/collection/components/hello/zonos-hello/zonos-hello.js +9 -4
- package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +7 -5
- package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +14 -12
- package/dist/collection/components/main/zonos-controller.js +2 -2
- package/dist/collection/components/store/hello/localization.js +3 -3
- package/dist/collection/components/store/translationStore/strings.arabic.js +10 -10
- package/dist/collection/components/store/translationStore/strings.base.js +10 -10
- package/dist/collection/components/store/translationStore/strings.chinese.js +10 -10
- package/dist/collection/components/store/translationStore/strings.danish.js +10 -10
- package/dist/collection/components/store/translationStore/strings.dutch.js +10 -10
- package/dist/collection/components/store/translationStore/strings.french.js +10 -10
- package/dist/collection/components/store/translationStore/strings.german.js +10 -10
- package/dist/collection/components/store/translationStore/strings.hebrew.js +10 -10
- package/dist/collection/components/store/translationStore/strings.indonesian.js +10 -10
- package/dist/collection/components/store/translationStore/strings.italian.js +10 -10
- package/dist/collection/components/store/translationStore/strings.japanese.js +10 -10
- package/dist/collection/components/store/translationStore/strings.korean.js +10 -10
- package/dist/collection/components/store/translationStore/strings.norwegian.js +10 -10
- package/dist/collection/components/store/translationStore/strings.polish.js +10 -10
- package/dist/collection/components/store/translationStore/strings.portuguese.js +10 -10
- package/dist/collection/components/store/translationStore/strings.russian.js +10 -10
- package/dist/collection/components/store/translationStore/strings.spanish.js +10 -10
- package/dist/collection/components/store/translationStore/strings.swedish.js +10 -10
- package/dist/collection/components/store/translationStore/strings.turkish.js +10 -10
- package/dist/collection/components/store/translationStore/strings.vietnamese.js +10 -10
- package/dist/collection/components/store/translationStore.js +2 -2
- package/dist/collection/components/store/zonosStore.js +3 -4
- package/dist/collection/components/utils/api/getExchangeRate.js +20 -5
- package/dist/collection/components/utils/hello/currencyConversion/currencyConvertAndFormat.js +1 -1
- package/dist/collection/components/utils/hello/currencyConversion/currencyDisplay.js +1 -15
- package/dist/collection/components/utils/hello/currencyConversion/currencyFormat.js +32 -17
- package/dist/collection/components/utils/hello/currencyConversion/defaultCurrencyConverter.js +26 -4
- package/dist/collection/components/utils/hello/initHello.js +4 -2
- package/dist/collection/components/utils/isElementUsingDarkTheme.js +5 -0
- package/dist/collection/scripts/_zonosBase.js +2 -1
- package/dist/collection/types/ILanguage.js +2 -2
- package/dist/esm/{ILanguage-97790bee.js → ILanguage-cd6acb72.js} +2 -2
- package/dist/esm/{cart-d3c98a81.js → cart-67471b37.js} +284 -246
- package/dist/esm/{getBorderRadius-393bf797.js → getBorderRadius-5e5a5800.js} +1 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/{isDarkColor-454ec221.js → isDarkColor-5185b62c.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{submitGtag-acdb8bd7.js → submitGtag-1f42c748.js} +2 -2
- package/dist/esm/zonos-address_8.entry.js +4 -4
- 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 +82 -43
- package/dist/esm/zonos-card_2.entry.js +5 -5
- package/dist/esm/zonos-cart-items_11.entry.js +20 -30
- package/dist/esm/zonos-checkout.entry.js +11 -7
- package/dist/esm/zonos-controller.entry.js +8 -6
- package/dist/esm/zonos-country-flag.entry.js +4 -4
- package/dist/esm/zonos-country-select_3.entry.js +12 -10
- package/dist/esm/zonos-elements.js +1 -1
- package/dist/esm/zonos-hello-dialog.entry.js +18 -16
- package/dist/esm/zonos-hello.entry.js +13 -7
- 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 +4 -4
- 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 -2
- package/dist/esm/{zonosStore-0ce57f37.js → zonosStore-8b9ea19c.js} +2 -3
- package/dist/esm-es5/ILanguage-cd6acb72.js +1 -0
- package/dist/esm-es5/cart-67471b37.js +1 -0
- package/dist/esm-es5/{getBorderRadius-393bf797.js → getBorderRadius-5e5a5800.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{isDarkColor-454ec221.js → isDarkColor-5185b62c.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{submitGtag-acdb8bd7.js → submitGtag-1f42c748.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_11.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-0ce57f37.js → zonosStore-8b9ea19c.js} +1 -1
- package/dist/scripts/index.d.ts +47 -19
- 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/common/zonos-button/zonos-button.d.ts +1 -0
- package/dist/types/components/common/zonos-text/zonos-text.d.ts +0 -4
- package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.d.ts +1 -0
- package/dist/types/components/store/hello/localization.d.ts +2 -2
- package/dist/types/components/store/translationStore/strings.arabic.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.base.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.chinese.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.danish.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.dutch.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.french.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.german.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.hebrew.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.indonesian.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.italian.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.japanese.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.korean.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.norwegian.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.polish.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.portuguese.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.russian.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.spanish.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.swedish.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.turkish.d.ts +8 -8
- package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +8 -8
- package/dist/types/components/store/translationStore.d.ts +7 -7
- package/dist/types/components/store/zonosStore.d.ts +6 -2
- package/dist/types/components/utils/api/getExchangeRate.d.ts +9 -10
- package/dist/types/components/utils/hello/currencyConversion/currencyFormat.d.ts +5 -1
- package/dist/types/components/utils/hello/currencyConversion/getCurrencyElements.d.ts +1 -1
- package/dist/types/components/utils/isElementUsingDarkTheme.d.ts +1 -0
- package/dist/types/components.d.ts +0 -8
- package/dist/types/scripts/_zonosBase.d.ts +42 -3
- package/dist/types/types/ILanguage.d.ts +2 -2
- package/dist/types/types/checkout/CheckoutConfig.d.ts +6 -2
- package/dist/types/types/hello/HelloConfig.d.ts +1 -3
- package/dist/zonos-elements/index.esm.js +1 -1
- package/dist/zonos-elements/{p-72191005.system.entry.js → p-02a01106.system.entry.js} +1 -1
- package/dist/zonos-elements/p-065ada8a.system.js +1 -0
- package/dist/zonos-elements/{p-15c903ff.js → p-083850d3.js} +1 -1
- package/dist/zonos-elements/{p-c15b36c1.system.entry.js → p-088d6460.system.entry.js} +1 -1
- package/dist/zonos-elements/p-08d1cfc4.entry.js +1 -0
- package/dist/zonos-elements/{p-d03e101b.system.entry.js → p-0d30f36e.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-3668f365.entry.js → p-0ea19a4d.entry.js} +1 -1
- package/dist/zonos-elements/{p-67373528.entry.js → p-1752853e.entry.js} +1 -1
- package/dist/zonos-elements/{p-d18990b0.entry.js → p-18464027.entry.js} +1 -1
- package/dist/zonos-elements/{p-d1b8dcd8.system.entry.js → p-1e2fbb1d.system.entry.js} +1 -1
- package/dist/zonos-elements/p-234f8729.system.js +1 -0
- package/dist/zonos-elements/p-33b054d9.system.js +1 -0
- package/dist/zonos-elements/p-440ac320.js +1 -0
- package/dist/zonos-elements/{p-0a4f341b.entry.js → p-44250644.entry.js} +1 -1
- package/dist/zonos-elements/p-4a3b5fc8.entry.js +1 -0
- package/dist/zonos-elements/p-52900b33.entry.js +1 -0
- package/dist/zonos-elements/{p-42a7a726.system.entry.js → p-5437dd24.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-f03b33ec.system.entry.js → p-5992c6fb.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-474cb030.entry.js → p-607b5560.entry.js} +1 -1
- package/dist/zonos-elements/{p-b925e897.system.entry.js → p-65671a64.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-0e6fe6c8.system.entry.js → p-6f132cee.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-9da3b3b3.system.entry.js → p-713bb92e.system.entry.js} +1 -1
- package/dist/zonos-elements/p-7d61e6e5.entry.js +1 -0
- package/dist/zonos-elements/{p-ce4c48f6.entry.js → p-7fa5a6ea.entry.js} +1 -1
- package/dist/zonos-elements/p-8473827d.system.entry.js +1 -0
- package/dist/zonos-elements/{p-3115e7a7.system.js → p-8853e051.system.js} +1 -1
- package/dist/zonos-elements/p-8ed0769e.entry.js +1 -0
- package/dist/zonos-elements/{p-fc2f3e2a.system.entry.js → p-92c64a9c.system.entry.js} +1 -1
- package/dist/zonos-elements/p-97aceb11.js +1 -0
- package/dist/zonos-elements/p-9c0859b5.entry.js +1 -0
- package/dist/zonos-elements/p-9c3a036e.system.js +1 -0
- package/dist/zonos-elements/{p-dd02f2eb.entry.js → p-9c8705ac.entry.js} +1 -1
- package/dist/zonos-elements/{p-f4c921f8.entry.js → p-a18555c8.entry.js} +1 -1
- package/dist/zonos-elements/{p-2d3e3735.js → p-a5e9d372.js} +1 -1
- package/dist/zonos-elements/{p-75d52d98.system.entry.js → p-af3ee45d.system.entry.js} +1 -1
- package/dist/zonos-elements/p-b1ee97d8.entry.js +1 -0
- package/dist/zonos-elements/{p-b9ed8a66.system.entry.js → p-b79753bb.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-1406d696.system.entry.js → p-b9195764.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-f0afca6c.system.js → p-be14323b.system.js} +1 -1
- package/dist/zonos-elements/{p-d5feef4c.js → p-bf9dca26.js} +1 -1
- package/dist/zonos-elements/p-bfc30599.entry.js +1 -0
- package/dist/zonos-elements/{p-2c57097c.entry.js → p-c0ddef11.entry.js} +1 -1
- package/dist/zonos-elements/{p-14bea5e6.system.entry.js → p-c1879326.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-eb6ddb2f.js → p-c53cef11.js} +1 -1
- package/dist/zonos-elements/p-c9e433c0.system.js +1 -0
- package/dist/zonos-elements/{p-3c97c44d.entry.js → p-cbf13745.entry.js} +1 -1
- package/dist/zonos-elements/p-d6796b73.system.entry.js +1 -0
- package/dist/zonos-elements/{p-971e73c3.system.entry.js → p-d7e6cad0.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-b202a015.entry.js → p-db9e87ec.entry.js} +1 -1
- package/dist/zonos-elements/p-e0bf9666.system.js +1 -1
- package/dist/zonos-elements/p-f7468131.system.entry.js +1 -0
- package/dist/zonos-elements/{p-23393abc.system.entry.js → p-fedafdd2.system.entry.js} +1 -1
- package/dist/zonos-elements/zonos-elements.esm.js +1 -1
- package/package.json +4 -1
- package/dist/collection/components/utils/formatCurrency.js +0 -9
- package/dist/esm-es5/ILanguage-97790bee.js +0 -1
- package/dist/esm-es5/cart-d3c98a81.js +0 -1
- package/dist/types/components/utils/formatCurrency.d.ts +0 -5
- package/dist/zonos-elements/p-14da9ed0.entry.js +0 -1
- package/dist/zonos-elements/p-16ad90ca.js +0 -1
- package/dist/zonos-elements/p-3edcbb56.entry.js +0 -1
- package/dist/zonos-elements/p-5968c6ad.entry.js +0 -1
- package/dist/zonos-elements/p-59913049.entry.js +0 -1
- package/dist/zonos-elements/p-824e1e83.system.js +0 -1
- package/dist/zonos-elements/p-8f3f1a1b.system.js +0 -1
- package/dist/zonos-elements/p-957301d0.system.entry.js +0 -1
- package/dist/zonos-elements/p-9e4b35d4.system.entry.js +0 -1
- package/dist/zonos-elements/p-abe7524f.system.js +0 -1
- package/dist/zonos-elements/p-b13e630b.js +0 -1
- package/dist/zonos-elements/p-bfe6f84f.system.entry.js +0 -1
- package/dist/zonos-elements/p-d79e83bd.entry.js +0 -1
- package/dist/zonos-elements/p-eb765228.entry.js +0 -1
- package/dist/zonos-elements/p-ebb36e4d.entry.js +0 -1
- package/dist/zonos-elements/p-f16b80a3.system.js +0 -1
- package/dist/zonos-elements/p-f3a6de62.entry.js +0 -1
- package/dist/zonos-elements/p-fc5df354.system.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fragment, h, Host } from "@stencil/core";
|
|
2
2
|
import { cartStore, cartStoreHasOneEligibleItem, } from "../../../store/checkout/cart";
|
|
3
3
|
import { translate } from "../../../store/translationStore";
|
|
4
|
-
import {
|
|
4
|
+
import { currencyFormat } from "../../../utils/hello/currencyConversion/currencyFormat";
|
|
5
5
|
// These assets neet to be in relative path as https://www.npmjs.com/package/stencil-inline-svg suggested
|
|
6
6
|
// eslint-disable-next-line no-relative-import-paths/no-relative-import-paths
|
|
7
7
|
import InfoIcon from "./assets/InfoIcon.svg";
|
|
@@ -17,20 +17,20 @@ export class ZonosCartSubtotal {
|
|
|
17
17
|
}
|
|
18
18
|
return (h(Fragment, null, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, cartStore.selectedShippingOption.displayName), cartStore.selectedShippingOptionTransitTime && (h("zonos-text", { class: "zonos--caption", type: "caption" }, cartStore.selectedShippingOptionTransitTime, ' ', translate('business days')))));
|
|
19
19
|
};
|
|
20
|
-
return (h(Host, { class: "zonos--cart-subtotal zonos--elements" }, h("table", { class: "zonos--cart-table" }, h("tr", { class: "zonos--row zonos--cart-subtotal" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title" }, h("zonos-text", { type: "semiBoldLabel" }, translate('Cart subtotal'))), h("td", { class: "zonos--column zonos--cart-subtotal-price" }, h("zonos-text", { type: "semiBoldLabel" },
|
|
20
|
+
return (h(Host, { class: "zonos--cart-subtotal zonos--elements" }, h("table", { class: "zonos--cart-table" }, h("tr", { class: "zonos--row zonos--cart-subtotal" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title" }, h("zonos-text", { type: "semiBoldLabel" }, translate('Cart subtotal'))), h("td", { class: "zonos--column zonos--cart-subtotal-price" }, h("zonos-text", { type: "semiBoldLabel" }, currencyFormat({
|
|
21
21
|
amount: subtotal,
|
|
22
22
|
currency: cartStore.currency,
|
|
23
23
|
})))), h("tr", { class: "zonos--row zonos--cart-shipping" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title" }, renderShippingInfo()), h("td", { class: "zonos--column zonos--cart-subtotal-price" }, cartStore.shipping
|
|
24
|
-
?
|
|
24
|
+
? currencyFormat({
|
|
25
25
|
amount: cartStore.shipping,
|
|
26
26
|
currency: cartStore.currency,
|
|
27
27
|
})
|
|
28
28
|
: '-')), showDutyTaxesInfo && (h("tr", { class: "zonos--row zonos--cart-duties" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column zonos--cart-subtotal-title" }, h("div", { class: "zonos--title-with-icon" }, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Duties, taxes, and fees')), h("zonos-tooltip", { label: translate('Nothing due at the door') }, h("zonos-icon", { "aria-label": "Learn more about duties, taxes, and fees", content: InfoIcon, size: 16 }))), !!cartStore.isSelectedShippingAboveDeminimis && (h("zonos-text", { textColor: "gray-800", type: "body" }, translate('Order is over the de minimis threshold for both duty and tax')))), h("td", { class: "zonos--column zonos--cart-subtotal-price" }, h("div", { class: "zonos--cart-duty-tax-price" }, cartStore.dutiesTaxFees
|
|
29
|
-
?
|
|
29
|
+
? currencyFormat({
|
|
30
30
|
amount: cartStore.dutiesTaxFees,
|
|
31
31
|
currency: cartStore.currency,
|
|
32
32
|
})
|
|
33
|
-
: '-', cartStore.isSelectedShippingGuarantee && (h("zonos-badge", null, translate('Guaranteed'))))))), h("tr", { class: "zonos--row zonos--cart-pay-total" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column" }, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Order total'))), h("td", { class: "zonos--column" }, h("zonos-text", { type: "semiBoldLabel" },
|
|
33
|
+
: '-', cartStore.isSelectedShippingGuarantee && (h("zonos-badge", null, translate('Guaranteed'))))))), h("tr", { class: "zonos--row zonos--cart-pay-total" }, h("td", { class: "zonos--column" }), h("td", { class: "zonos--column" }, h("zonos-text", { class: "zonos--title", type: "semiBoldLabel" }, translate('Order total'))), h("td", { class: "zonos--column" }, h("zonos-text", { type: "semiBoldLabel" }, currencyFormat({
|
|
34
34
|
amount: total,
|
|
35
35
|
currency: cartStore.currency,
|
|
36
36
|
})))))));
|
|
@@ -2,7 +2,7 @@ import { h, Host, } from "@stencil/core";
|
|
|
2
2
|
import { cartStore } from "../../../store/checkout/cart";
|
|
3
3
|
import { stripeStore } from "../../../store/checkout/stripe";
|
|
4
4
|
import { translate } from "../../../store/translationStore";
|
|
5
|
-
import {
|
|
5
|
+
import { currencyFormat } from "../../../utils/hello/currencyConversion/currencyFormat";
|
|
6
6
|
import { submitGtag } from "../../../utils/submitGtag";
|
|
7
7
|
export class ZonosCheckoutPayment {
|
|
8
8
|
constructor() {
|
|
@@ -38,7 +38,7 @@ export class ZonosCheckoutPayment {
|
|
|
38
38
|
}
|
|
39
39
|
return (h(Host, { class: "zonos--checkout-payment zonos--elements" }, h("div", { class: "zonos--group" }, h("zonos-text", { class: "zonos--title", type: "semiBoldSubheader" }, translate('Payment method')), this.showErrorBanner && (h("zonos-banner", { class: "zonos--error-banner", intent: "error" }, translate('Missing required fields. Make sure all fields are completed.'))), this.paymentError && (h("zonos-banner", { class: "zonos--payment-error-banner", intent: "error" }, translate("We couldn't complete your payment. Please verify the payment details and try again."))), h("zonos-payment", null), h("div", { class: "zonos--group-btn" }, h("zonos-button", { backgroundColor: this.submitBtnColor, loading: this.continueLoading, onClick: () => this.continueClickHandler(), size: "lg",
|
|
40
40
|
// use primary type when on mobile mode
|
|
41
|
-
variant: this.submitBtnType }, "Pay", ' ',
|
|
41
|
+
variant: this.submitBtnType }, "Pay", ' ', currencyFormat({
|
|
42
42
|
amount: cartStore.total,
|
|
43
43
|
currency: cartStore.currency,
|
|
44
44
|
}))))));
|
|
@@ -119,9 +119,13 @@ export class ZonosCheckout {
|
|
|
119
119
|
const tempCartData = buildCartItemsByTempCart(window.Zonos.tempCartData);
|
|
120
120
|
await cartStoreUpdateItems(tempCartData);
|
|
121
121
|
}
|
|
122
|
-
else if (zonosStore.checkoutSettings.buildCartDetail
|
|
122
|
+
else if (zonosStore.checkoutSettings.buildCartDetail &&
|
|
123
|
+
localizationStore.selectedCountryCode) {
|
|
123
124
|
log('build cart detail');
|
|
124
|
-
const cartItems = await zonosStore.checkoutSettings.buildCartDetail(
|
|
125
|
+
const cartItems = await zonosStore.checkoutSettings.buildCartDetail({
|
|
126
|
+
countryCode: localizationStore.selectedCountryCode,
|
|
127
|
+
currencyCode: localizationStore.targetCurrency,
|
|
128
|
+
});
|
|
125
129
|
await cartStoreUpdateItems(cartItems);
|
|
126
130
|
}
|
|
127
131
|
// if client secret doesn't exist, request a new one.
|
|
@@ -4,7 +4,7 @@ import { translate } from "../../../store/translationStore";
|
|
|
4
4
|
import { zonosStore } from "../../../store/zonosStore";
|
|
5
5
|
import { isCheckoutMobile } from "../../../utils/checkout/isCheckoutMobile";
|
|
6
6
|
import { classes } from "../../../utils/classes";
|
|
7
|
-
import {
|
|
7
|
+
import { currencyFormat } from "../../../utils/hello/currencyConversion/currencyFormat";
|
|
8
8
|
/** These assets neet to be in relative path as https://www.npmjs.com/package/stencil-inline-svg suggested */
|
|
9
9
|
// eslint-disable-next-line no-relative-import-paths/no-relative-import-paths
|
|
10
10
|
import ChevronDownIcon from "./assets/ChevronDownIcon.svg";
|
|
@@ -42,7 +42,7 @@ export class ZonosReview {
|
|
|
42
42
|
return (h(Host, { class: classes([
|
|
43
43
|
'zonos--review zonos--elements',
|
|
44
44
|
this.isMobile && 'mobile',
|
|
45
|
-
]) }, h("div", { class: "zonos--title" }, h("zonos-text", { textColor: titleTextColor, type: titleTextType }, translate('Pay'), " ", zonosStore.organizationName), renderCollapseIcon()), h("div", { class: "zonos--total-pay" }, h("zonos-text", { type: totalTextType },
|
|
45
|
+
]) }, h("div", { class: "zonos--title" }, h("zonos-text", { textColor: titleTextColor, type: titleTextType }, translate('Pay'), " ", zonosStore.organizationName), renderCollapseIcon()), h("div", { class: "zonos--total-pay" }, h("zonos-text", { type: totalTextType }, currencyFormat({
|
|
46
46
|
amount: total,
|
|
47
47
|
currency: cartStore.currency,
|
|
48
48
|
})))));
|
|
@@ -3,7 +3,7 @@ import { cartStore, cartStoreGetShippingTransitInfo, cartStoreUpdateSelectedShip
|
|
|
3
3
|
import { translate } from "../../../store/translationStore";
|
|
4
4
|
import { trackConversionEvent } from "../../../utils/api/trackConversionEvent";
|
|
5
5
|
import { sortServiceLevelOptions } from "../../../utils/checkout/sortServiceLevelOptions";
|
|
6
|
-
import {
|
|
6
|
+
import { currencyFormat } from "../../../utils/hello/currencyConversion/currencyFormat";
|
|
7
7
|
import { submitGtag } from "../../../utils/submitGtag";
|
|
8
8
|
export class ZonosShipping {
|
|
9
9
|
constructor() {
|
|
@@ -67,7 +67,7 @@ export class ZonosShipping {
|
|
|
67
67
|
amount: shippingAmount,
|
|
68
68
|
caption,
|
|
69
69
|
label: item.displayName,
|
|
70
|
-
price:
|
|
70
|
+
price: currencyFormat({
|
|
71
71
|
amount: shippingAmount,
|
|
72
72
|
currency: cartStore.currency,
|
|
73
73
|
}),
|
|
@@ -108,7 +108,7 @@ export class ZonosShipping {
|
|
|
108
108
|
if (this.showErrorBanner) {
|
|
109
109
|
this.showErrorBanner = !this.handleValidate();
|
|
110
110
|
}
|
|
111
|
-
return (h(Host, { key: '
|
|
111
|
+
return (h(Host, { key: '11734c7c14a3a63e733a7fa4f2e202bf3b069fd4', class: "zonos--shipping zonos--elements" }, h("div", { key: 'ac22237e620e0b65c9b3920d57373207f991d926', class: "zonos--group" }, h("zonos-text", { key: 'ee4c12ab90bcd029027284d00ab304ea4dd5a71a', class: "zonos--title", type: "semiBoldSubheader" }, translate('Delivery options')), this.showErrorBanner && !!((_a = this.serviceLevels) === null || _a === void 0 ? void 0 : _a.length) && (h("zonos-banner", { key: '4b641aaf9270a8bf022d66878096768fe2956e4a', class: "zonos--error-banner", intent: "error" }, translate('No shipping method selected'))), h("zonos-text", { key: '6b29f4338c0920040599cdf01154b43d274ecfed', class: "zonos--shipping-method-title", type: "semiBoldLabel" }, translate('Shipping method')), !((_b = this.serviceLevels) === null || _b === void 0 ? void 0 : _b.length) ? (h("zonos-banner", { bannerTitle: translate('No shipping methods found - please review and update your address details by selecting the "Customer" tab above. If you continue to encounter issues, contact our support team for assistance.'), intent: "error" })) : (h("zonos-shipping-rich-radio", { initialSelectedValue: (_c = this.selectedShippingMethod) === null || _c === void 0 ? void 0 : _c.value, items: this.serviceLevels, onRadioSelected: e => this.handleRadioSelected(e) })), h("div", { key: '7b649c6c3da3c8023edc177077679bc2f397a91f', class: "zonos--group-btn" }, h("zonos-button", { key: '18181ad177d5beb7cdd8a3d0e437b332dd20f669', backgroundColor: this.submitBtnColor, loading: this.continueLoading || this.isSelecting, onClick: () => this.continueClickHandler(), size: "lg",
|
|
112
112
|
// use primary type when on mobile mode
|
|
113
113
|
variant: this.submitBtnType }, translate('Go to payment'))))));
|
|
114
114
|
}
|
|
@@ -240,10 +240,15 @@
|
|
|
240
240
|
outline: none;
|
|
241
241
|
}
|
|
242
242
|
:host button:not(.override-background).subtle:not([disabled]):hover {
|
|
243
|
-
background: var(--zonos-elements-gray-
|
|
244
|
-
color: var(--zonos-elements-gray-0);
|
|
243
|
+
background: var(--zonos-elements-gray-900);
|
|
245
244
|
}
|
|
246
245
|
:host button:not(.override-background).subtle:not([disabled]):active {
|
|
246
|
+
background: var(--zonos-elements-gray-800);
|
|
247
|
+
}
|
|
248
|
+
:host button:not(.override-background).subtle:not([disabled]).dark-hover-subtle:hover {
|
|
249
|
+
background: var(--zonos-elements-gray-100);
|
|
250
|
+
}
|
|
251
|
+
:host button:not(.override-background).subtle:not([disabled]).dark-hover-subtle:active {
|
|
247
252
|
background: var(--zonos-elements-gray-200);
|
|
248
253
|
}
|
|
249
254
|
:host button:not(.override-background).subtle:focus {
|
|
@@ -5,6 +5,7 @@ import { getBorderRadius } from "../../utils/getBorderRadius";
|
|
|
5
5
|
import { getButtonTheme } from "../../utils/getButtonTheme";
|
|
6
6
|
import { isColorVariable } from "../../utils/isColorVariable";
|
|
7
7
|
import { isDarkColor } from "../../utils/isDarkColor";
|
|
8
|
+
import { isElementUsingDarkTheme } from "../../utils/isElementUsingDarkTheme";
|
|
8
9
|
import { styles } from "../../utils/styles";
|
|
9
10
|
export class ZonosButton {
|
|
10
11
|
constructor() {
|
|
@@ -15,6 +16,69 @@ export class ZonosButton {
|
|
|
15
16
|
this.hasContent = true;
|
|
16
17
|
};
|
|
17
18
|
this.getColorVarProperty = (color) => color.replace('var(', '').replace(')', '');
|
|
19
|
+
this.getButtonStyle = () => {
|
|
20
|
+
/**
|
|
21
|
+
* If the parent component pass in the variant prop with `undefined` value, it would not re-assign the `undefined` value with the default value.
|
|
22
|
+
* So need to re-assign the variant prop with the default value if the value is `undefined` here.
|
|
23
|
+
*/
|
|
24
|
+
const variant = this.variant || 'standard';
|
|
25
|
+
// use the variable if it's a color variable, otherwise use the color
|
|
26
|
+
const color = this.buttonColor && isColorVariable(this.buttonColor)
|
|
27
|
+
? `var(--zonos-elements-${this.buttonColor})`
|
|
28
|
+
: this.buttonColor;
|
|
29
|
+
const actualTextColor = window
|
|
30
|
+
.getComputedStyle(this.ele)
|
|
31
|
+
.getPropertyValue(this.getColorVarProperty(color || '')) ||
|
|
32
|
+
color ||
|
|
33
|
+
'';
|
|
34
|
+
/**
|
|
35
|
+
* Determine if the button should use dark hover subtle
|
|
36
|
+
* If variable = LIGHT && text color = LIGHT, use white hover subtle
|
|
37
|
+
* If variable = LIGHT && text color = DARK, use dark hover subtle
|
|
38
|
+
* If variable = DARK && text color = LIGHT, use dark hover subtle (invert hover color)
|
|
39
|
+
* If variable = DARK && text color = DARK, use white hover subtle (invert hover color)
|
|
40
|
+
*/
|
|
41
|
+
const isLightVariable = !isElementUsingDarkTheme(this.ele);
|
|
42
|
+
const isTextLight = !isDarkColor(actualTextColor);
|
|
43
|
+
const useDarkHoverSubtle = (isLightVariable && !isTextLight) || (!isLightVariable && isTextLight);
|
|
44
|
+
switch (variant) {
|
|
45
|
+
case 'subtle': {
|
|
46
|
+
// Background color is not used for subtle variant
|
|
47
|
+
return {
|
|
48
|
+
color,
|
|
49
|
+
useDarkHoverSubtle,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
default: {
|
|
53
|
+
// use the variable if it's a color variable, otherwise use the color
|
|
54
|
+
const backgroundColor = this.backgroundColor && isColorVariable(this.backgroundColor)
|
|
55
|
+
? `var(--zonos-elements-${this.backgroundColor})`
|
|
56
|
+
: this.backgroundColor;
|
|
57
|
+
// use override background if it exists, otherwise use color from setting
|
|
58
|
+
const overrideBackground = backgroundColor || zonosStore.appearance.colorSecondary;
|
|
59
|
+
const backgroundActualColor = overrideBackground &&
|
|
60
|
+
isColorVariable(this.getColorVarProperty(overrideBackground))
|
|
61
|
+
? window
|
|
62
|
+
.getComputedStyle(this.ele)
|
|
63
|
+
.getPropertyValue(this.getColorVarProperty(overrideBackground))
|
|
64
|
+
: overrideBackground;
|
|
65
|
+
// set contrast color if background color is dark for all variants except subtle
|
|
66
|
+
const contrastColor = this.variant !== 'subtle' &&
|
|
67
|
+
backgroundActualColor &&
|
|
68
|
+
isDarkColor(backgroundActualColor)
|
|
69
|
+
? 'white'
|
|
70
|
+
: color;
|
|
71
|
+
return {
|
|
72
|
+
backgroundColor: overrideBackground,
|
|
73
|
+
color: contrastColor,
|
|
74
|
+
spinnerColor: backgroundActualColor && isDarkColor(backgroundActualColor)
|
|
75
|
+
? 'white'
|
|
76
|
+
: 'black',
|
|
77
|
+
useDarkHoverSubtle,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
18
82
|
this.buttonColor = undefined;
|
|
19
83
|
this.backgroundColor = undefined;
|
|
20
84
|
this.borderStyle = undefined;
|
|
@@ -48,48 +112,20 @@ export class ZonosButton {
|
|
|
48
112
|
this.iconChangeHandler();
|
|
49
113
|
}
|
|
50
114
|
render() {
|
|
115
|
+
const { backgroundColor, color, spinnerColor, useDarkHoverSubtle } = this.getButtonStyle();
|
|
51
116
|
const disabled = this.loading || this.isDisabled;
|
|
52
|
-
/**
|
|
53
|
-
* If the parent component pass in the variant prop with `undefined` value, it would not re-assign the `undefined` value with the default value.
|
|
54
|
-
* So need to re-assign the variant prop with the default value if the value is `undefined` here.
|
|
55
|
-
*/
|
|
56
117
|
const variant = this.variant || 'standard';
|
|
57
|
-
//
|
|
58
|
-
const
|
|
59
|
-
? `var(--zonos-elements-${this.backgroundColor})`
|
|
60
|
-
: this.backgroundColor;
|
|
61
|
-
// use override background if it exists, otherwise use color from setting
|
|
62
|
-
const overrideBackground = backgroundColor || zonosStore.appearance.colorSecondary;
|
|
63
|
-
// only set theme for button to change text color if variant is standard and override background is set
|
|
64
|
-
const buttonTheme = variant === 'standard' ? getButtonTheme(overrideBackground) : undefined;
|
|
118
|
+
// // only set theme for button to change text color if variant is standard and override background is set
|
|
119
|
+
const buttonTheme = variant === 'standard' ? getButtonTheme(backgroundColor) : undefined;
|
|
65
120
|
const borderStyle = getBorderRadius({
|
|
66
121
|
overrideBorderStyle: this.borderStyle,
|
|
67
122
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
? window
|
|
71
|
-
.getComputedStyle(this.ele)
|
|
72
|
-
.getPropertyValue(this.getColorVarProperty(overrideBackground))
|
|
73
|
-
: overrideBackground;
|
|
74
|
-
// use the variable if it's a color variable, otherwise use the color
|
|
75
|
-
const color = this.buttonColor && isColorVariable(this.buttonColor)
|
|
76
|
-
? `var(--zonos-elements-${this.buttonColor})`
|
|
77
|
-
: this.buttonColor;
|
|
78
|
-
// set contrast color if background color is dark for all variants except subtle
|
|
79
|
-
const contrastColor = this.variant !== 'subtle' &&
|
|
80
|
-
backgroundActualColor &&
|
|
81
|
-
isDarkColor(backgroundActualColor)
|
|
82
|
-
? 'white'
|
|
83
|
-
: color;
|
|
84
|
-
const spinnerColor = backgroundActualColor && isDarkColor(backgroundActualColor)
|
|
85
|
-
? 'white'
|
|
86
|
-
: 'black';
|
|
87
|
-
return (h(Host, { key: '00d085d600a759366f4a2de8617d81831c0ce16b', class: classes(['zonos--elements']), "data-theme": this.theme || buttonTheme, disabled: disabled, style: styles({
|
|
88
|
-
'--background-color': overrideBackground,
|
|
123
|
+
return (h(Host, { key: 'a07724884592f96388174eb751bc3349391e2bf6', class: classes(['zonos--elements']), "data-theme": this.theme || buttonTheme, disabled: disabled, style: styles({
|
|
124
|
+
'--background-color': backgroundColor,
|
|
89
125
|
'--border-radius': borderStyle,
|
|
90
|
-
'--color':
|
|
126
|
+
'--color': color,
|
|
91
127
|
'--font-family': zonosStoreFontFamily(),
|
|
92
|
-
}) }, h("button", { key: '
|
|
128
|
+
}) }, h("button", { key: 'd34d62c7582abdb6aee6a1ec7fefb89bcc7a31ac', class: classes([
|
|
93
129
|
this.hasIcon && 'has-icon',
|
|
94
130
|
this.hasContent && 'has-content',
|
|
95
131
|
this.noBackground && 'no-background',
|
|
@@ -97,13 +133,12 @@ export class ZonosButton {
|
|
|
97
133
|
this.noPaddingRight && 'no-padding-right',
|
|
98
134
|
this.iconRight && 'icon-right',
|
|
99
135
|
this.withBoxShadow && 'with-box-shadow',
|
|
136
|
+
useDarkHoverSubtle && 'dark-hover-subtle',
|
|
100
137
|
variant,
|
|
101
138
|
this.size,
|
|
102
139
|
// only override background if variant is set to standard
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
'override-background',
|
|
106
|
-
]), disabled: disabled }, this.loading && (h("div", { key: '4462430185736b45b11bd18f08d1e3c6177f192f', class: "zonos--spinner-wrapper" }, h("zonos-spinner", { key: 'c866ff989b95929e8d6a44d950dc943531f1dc0c', size: 16, spinnerColor: spinnerColor }))), !this.loading && !this.iconRight && this.icon, h("slot", { key: 'a57d0b3924eef51bf3938261c8d823e9d8aa0206', onSlotchange: this.handleSlotChange }), !this.loading && this.iconRight && this.icon)));
|
|
140
|
+
backgroundColor && variant === 'standard' && 'override-background',
|
|
141
|
+
]), disabled: disabled }, this.loading && (h("div", { key: 'aaa929d205d5a4cec679f3ee7ef6097801dc69d0', class: "zonos--spinner-wrapper" }, h("zonos-spinner", { key: '372b0a8504ecb0af54c7f68a67d6ad400bb13173', size: 16, spinnerColor: spinnerColor }))), !this.loading && !this.iconRight && this.icon, h("slot", { key: '0eefacfb7af58abf8049fd72180ba82f09ef9a34', onSlotchange: this.handleSlotChange }), !this.loading && this.iconRight && this.icon)));
|
|
107
142
|
}
|
|
108
143
|
static get is() { return "zonos-button"; }
|
|
109
144
|
static get encapsulation() { return "shadow"; }
|
|
@@ -9,7 +9,6 @@ export class ZonosText {
|
|
|
9
9
|
this.size = undefined;
|
|
10
10
|
this.type = 'body';
|
|
11
11
|
this.weight = undefined;
|
|
12
|
-
this.content = undefined;
|
|
13
12
|
this.ready = false;
|
|
14
13
|
}
|
|
15
14
|
componentDidRender() {
|
|
@@ -157,23 +156,6 @@ export class ZonosText {
|
|
|
157
156
|
},
|
|
158
157
|
"attribute": "weight",
|
|
159
158
|
"reflect": false
|
|
160
|
-
},
|
|
161
|
-
"content": {
|
|
162
|
-
"type": "string",
|
|
163
|
-
"mutable": false,
|
|
164
|
-
"complexType": {
|
|
165
|
-
"original": "string",
|
|
166
|
-
"resolved": "string | undefined",
|
|
167
|
-
"references": {}
|
|
168
|
-
},
|
|
169
|
-
"required": false,
|
|
170
|
-
"optional": true,
|
|
171
|
-
"docs": {
|
|
172
|
-
"tags": [],
|
|
173
|
-
"text": "The tag to use for the text"
|
|
174
|
-
},
|
|
175
|
-
"attribute": "content",
|
|
176
|
-
"reflect": false
|
|
177
159
|
}
|
|
178
160
|
};
|
|
179
161
|
}
|
|
@@ -15,7 +15,6 @@ import { getProductsOnPage } from "../../utils/hello/getProductsOnPage";
|
|
|
15
15
|
import { getZCountryUrlParam } from "../../utils/hello/getZCountryUrlParam";
|
|
16
16
|
import { setZCountryUrlParam } from "../../utils/hello/setZCountryUrlParam";
|
|
17
17
|
import { log } from "../../utils/logging/log";
|
|
18
|
-
import { logError } from "../../utils/logging/logError";
|
|
19
18
|
import { mergeConfig } from "../../utils/mergeConfig";
|
|
20
19
|
const PEEK_MESSAGE_CLOSE_DELAY_MS = 3000;
|
|
21
20
|
const RESIZE_DEBOUNCE_DELAY_MS = 500;
|
|
@@ -38,7 +37,9 @@ export class ZonosHello {
|
|
|
38
37
|
case 'productDetail':
|
|
39
38
|
return translate(`See duty and tax thresholds`);
|
|
40
39
|
default:
|
|
41
|
-
return
|
|
40
|
+
return translate('Welcome to [storeName]!', {
|
|
41
|
+
storeName: organizationName,
|
|
42
|
+
});
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
this.enableShowPeekMessage = () => {
|
|
@@ -215,8 +216,12 @@ export class ZonosHello {
|
|
|
215
216
|
* @returns void
|
|
216
217
|
*/
|
|
217
218
|
async displayCurrency() {
|
|
219
|
+
if (zonosStore.helloSettings.currencyBehavior === 'DISABLED') {
|
|
220
|
+
// do nothing if currency behavior is disabled
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
218
223
|
if (!localizationStore.exchangeRate) {
|
|
219
|
-
|
|
224
|
+
log('Could not display currency. Exchange rate and format data is not available.', 'warn');
|
|
220
225
|
return;
|
|
221
226
|
}
|
|
222
227
|
currencyDisplay();
|
|
@@ -240,7 +245,7 @@ export class ZonosHello {
|
|
|
240
245
|
* @returns number
|
|
241
246
|
*/
|
|
242
247
|
async format(value) {
|
|
243
|
-
return currencyFormat(value);
|
|
248
|
+
return currencyFormat({ amount: value });
|
|
244
249
|
}
|
|
245
250
|
/**
|
|
246
251
|
* This method show the hello dialog
|
|
@@ -13,13 +13,14 @@ export class ZonosHelloDialogFooter {
|
|
|
13
13
|
this.setShowLanguageSelect = () => { };
|
|
14
14
|
}
|
|
15
15
|
render() {
|
|
16
|
-
var _a, _b
|
|
16
|
+
var _a, _b;
|
|
17
17
|
const primaryColor = (_a = this.appearanceSettings) === null || _a === void 0 ? void 0 : _a.colorPrimary;
|
|
18
|
-
const footerTheme = primaryColor && isDarkColor(primaryColor) ? 'DARK' : 'LIGHT';
|
|
19
18
|
const language = (_b = languages.find(x => x.code === localizationStore.selectedLocale)) === null || _b === void 0 ? void 0 : _b.translatedLabel;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
// Only use gray-0 (white) when the background color is dark (apply inverted color if the element is using dark theme variable)
|
|
20
|
+
const mainColor = primaryColor && isDarkColor(primaryColor) ? 'white' : 'black';
|
|
21
|
+
return (h(Host, { key: 'a43121c2a6e9410362a570f9270f0b32c587200b', class: "zonos--elements" }, h("div", { key: 'f8bf4003c536abd60a903b808f1cd136bcebbd0a', class: "zonos--hello-dialog-footer", style: {
|
|
22
|
+
'--primary-color': primaryColor,
|
|
23
|
+
} }, h("a", { key: 'a3967d63fee336a53ede4dfe30f270d7c932dfed', href: "https://zonos.com", target: "_blank", title: "Zonos website" }, h("zonos-icon", { key: '72e918b1b6800d97df8f73487b7d72f8130312d7', "aria-label": "Zonos Logo", autoHeight: true, content: ZonosIcon, iconColor: mainColor, size: 108 })), h("div", { key: '9614506f8b3eac485fa19a1743ac6fc0117f9611', class: "zonos--hello-locale-wrapper" }, h("zonos-button", { key: '2e72f28b9b08d9a729340f6c0999bf48381bfe00', buttonColor: mainColor, icon: h("zonos-icon", { "aria-label": "Open language select", content: Globe, iconColor: mainColor }), onClick: () => this.setShowLanguageSelect(true), variant: "subtle" }, language), h("zonos-button", { key: 'd4832d123d553b71eacda5f6ec66d0a36e1018d3', buttonColor: mainColor, icon: h("zonos-country-flag", { "aria-label": "Open country select", class: "zonos--footer-country-flag", countryCode: localizationStore.selectedCountryCode }), onClick: () => this.setShowCountrySelect(true), variant: "subtle" }, localizationStore.selectedCountryCode)))));
|
|
23
24
|
}
|
|
24
25
|
static get is() { return "zonos-hello-dialog-footer"; }
|
|
25
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -100,4 +101,5 @@ export class ZonosHelloDialogFooter {
|
|
|
100
101
|
}
|
|
101
102
|
};
|
|
102
103
|
}
|
|
104
|
+
static get elementRef() { return "ele"; }
|
|
103
105
|
}
|
|
@@ -48,7 +48,7 @@ export class ZonosHelloDialog {
|
|
|
48
48
|
const { countryLandedCost } = localizationStore;
|
|
49
49
|
// Our Robby API spells deminimis wrong here
|
|
50
50
|
const dutyDeminimis = (countryLandedCost === null || countryLandedCost === void 0 ? void 0 : countryLandedCost.dutyDeminimus)
|
|
51
|
-
? currencyFormat(countryLandedCost.dutyDeminimus)
|
|
51
|
+
? currencyFormat({ amount: countryLandedCost.dutyDeminimus })
|
|
52
52
|
: null;
|
|
53
53
|
// If deminimis is undefined or null, assume it's $0
|
|
54
54
|
return dutyDeminimis
|
|
@@ -59,7 +59,7 @@ export class ZonosHelloDialog {
|
|
|
59
59
|
const { countryLandedCost } = localizationStore;
|
|
60
60
|
// Our Robby API spells deminimis wrong here
|
|
61
61
|
const taxDeminimis = (countryLandedCost === null || countryLandedCost === void 0 ? void 0 : countryLandedCost.vatTaxDeminimus)
|
|
62
|
-
? currencyFormat(countryLandedCost.vatTaxDeminimus)
|
|
62
|
+
? currencyFormat({ amount: countryLandedCost.vatTaxDeminimus })
|
|
63
63
|
: null;
|
|
64
64
|
return taxDeminimis
|
|
65
65
|
? `${translate('Spend')} ${taxDeminimis} ${translate('tax free')}`
|
|
@@ -71,21 +71,21 @@ export class ZonosHelloDialog {
|
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
73
|
const dutyDeminimis = landedCost.dutyDeminimus;
|
|
74
|
-
return translate('Orders to
|
|
74
|
+
return translate('Orders to [countryName] must be over [threshold] to ship.', {
|
|
75
75
|
countryName: 'United Kingdom',
|
|
76
|
-
threshold: currencyFormat(dutyDeminimis),
|
|
76
|
+
threshold: currencyFormat({ amount: dutyDeminimis }),
|
|
77
77
|
});
|
|
78
78
|
};
|
|
79
79
|
this.getAustraliaDutyTaxMessage = (landedCost) => {
|
|
80
|
-
return translate('
|
|
80
|
+
return translate('[percentage] GST due on any order above [threshold].', {
|
|
81
81
|
percentage: `${landedCost.vatTaxRate * 100}%`,
|
|
82
|
-
threshold: currencyFormat(landedCost.vatTaxDeminimus),
|
|
82
|
+
threshold: currencyFormat({ amount: landedCost.vatTaxDeminimus }),
|
|
83
83
|
});
|
|
84
84
|
};
|
|
85
85
|
this.getNewZealandDutyTaxMessge = (landedCost) => {
|
|
86
|
-
return translate('
|
|
86
|
+
return translate('[percentage] GST due on any order above [threshold] along with an import entry transaction fee and MPI levy.', {
|
|
87
87
|
percentage: `${landedCost.vatTaxRate * 100}%`,
|
|
88
|
-
threshold: currencyFormat(landedCost.vatTaxDeminimus),
|
|
88
|
+
threshold: currencyFormat({ amount: landedCost.vatTaxDeminimus }),
|
|
89
89
|
});
|
|
90
90
|
};
|
|
91
91
|
/**
|
|
@@ -143,23 +143,25 @@ export class ZonosHelloDialog {
|
|
|
143
143
|
(this.dialogRef && getHasMoreSpaceOnRight(this.dialogRef));
|
|
144
144
|
const animateFromBottom = this.dialogRef && getHasMoreSpaceAbove(this.dialogRef);
|
|
145
145
|
const { customMessages } = localizationStore;
|
|
146
|
-
const welcomeMessage =
|
|
146
|
+
const welcomeMessage = translate('Welcome to [storeName]!', {
|
|
147
|
+
storeName: zonosStore.organizationName,
|
|
148
|
+
});
|
|
147
149
|
const defaultMessageStr = ((_a = customMessages.find(x => x.pageName === 'hello_default')) === null || _a === void 0 ? void 0 : _a.message) ||
|
|
148
150
|
translate('Know about duties and taxes before you buy. Shop with confidence!');
|
|
149
151
|
const defaultMessage = formatStringWithLinks(defaultMessageStr);
|
|
150
152
|
const currentPage = this.getCurrentPageEnum();
|
|
151
153
|
const filteredMessages = customMessages.filter(x => x.pageName === currentPage);
|
|
152
|
-
return (h(Host, { key: '
|
|
154
|
+
return (h(Host, { key: 'c8f49239246e63e8df2a57b3349b8ad97e84a216', class: "zonos--elements" }, h("div", { key: '6fd4ac561ae03f823acdecce1a40e0164096b2df', "aria-hidden": "true", class: classes([
|
|
153
155
|
'zonos--hello-dialog',
|
|
154
156
|
animateLeft && 'zonos--hello-dialog-animate-from-left',
|
|
155
157
|
animateFromBottom && 'zonos--hello-dialog-animate-from-bottom',
|
|
156
158
|
!!this.mobileLocationOverride &&
|
|
157
159
|
'zonos--hello-dialog-mobile-override',
|
|
158
160
|
this.isOpen && 'zonos--hello-dialog-open',
|
|
159
|
-
]), ref: el => el && (this.dialogRef = el) }, !this.showCountrySelect && !this.showLanguageSelect && (h("div", { key: '
|
|
161
|
+
]), ref: el => el && (this.dialogRef = el) }, !this.showCountrySelect && !this.showLanguageSelect && (h("div", { key: '7c8fa46a42ca6b4bbaab68e25c77e56306120fbf' }, h("div", { key: 'c2cc19c362b09e6dfd56f62a63302e6d2dc6f500', class: "zonos--hello-dialog-content" }, h("zonos-button", { key: 'b108faf0e9e997be2f6c497dc859f8f154c78c49', class: "zonos--close-button", icon: h("zonos-icon", { "aria-label": "Close Zonos Hello dialog", content: RemoveIcon }), noBackground: true, onClick: () => this.setIsOpen(false) }), h("zonos-v-stack", { key: '1f6ef6edbc73d4935fbfeed08dcbbcf31cf5dcd4', spacing: 24 }, h("zonos-country-flag", { key: '7f1d844bb5b39ecc7555abdda7d3be9f341b11d0', class: "zonos--hello-country-flag", countryCode: selectedCountryCode }), h("zonos-v-stack", { key: '7df9a3867b69e90134565e4115df94f504f1d9f6', class: "zonos--hello-dialog-header", spacing: 4 }, h("zonos-text", { key: '6c10ffcef44b13642496a4ee2d2740498d8c2742', type: "boldSubheader" }, welcomeMessage), h("zonos-text", { key: '5a455ba25cbe525df77c42f8db03c080f51ee1a5', innerHTML: defaultMessage, textColor: "gray-800" })), h("zonos-v-stack", { key: 'b298a89bbbca53b32136093a386fc10d9d9aa39e', spacing: 8 }, this.restrictedItems.map(item => {
|
|
160
162
|
var _a;
|
|
161
163
|
return item && (h("zonos-banner", { bannerTitle: item.name, intent: "error" }, (_a = item.itemRestrictions) === null || _a === void 0 ? void 0 : _a.map(x => (h("zonos-text", { textColor: "red-800" }, x === null || x === void 0 ? void 0 : x.note)))));
|
|
162
|
-
}), h("zonos-card", { key: '
|
|
164
|
+
}), h("zonos-card", { key: '0436fd5b2157162e41426b9a0723c3f94140a465', spacing: "12px" }, h("zonos-v-stack", { key: 'd673d38dee2d274cd0010d3f6ac265548374c238', spacing: 12 }, h("div", { key: 'ab44b5782f6a2d9d2fa0abe36feafbb1f9a56782', class: "zonos--flex-message" }, h("zonos-icon", { key: 'dc84c724a6f2354414ccba221ab7bc6849717534', "aria-label": "Duty de minimis", content: ImportIcon }), h("zonos-text", { key: '534fea4854e05f0550fe97fcdb2c133d21f7dfd7' }, dutyDeMinimisMessage)), h("div", { key: 'fb08aa1b5a63dc3170245e8ea14525da097c6f5f', class: "zonos--flex-message" }, h("zonos-icon", { key: '4e82ccee8a63d682ba818609e9eeb080d9ea2342', "aria-label": "Tax de minimis", content: MoneyIcon }), h("zonos-text", { key: '00f4d5936b105247396fd45c91bc66bc034a2280' }, taxDeMinimisMessage)), additionalInformation && (h("div", { key: 'cb5126e6b7f0c4197dc3247948397b0298dce015', class: "zonos--flex-message" }, h("zonos-icon", { key: '555dfb42452e298c17718cd3cee2179abb9a5e2f', "aria-label": "Low value order shipping restriction", content: BagIcon }), h("zonos-text", { key: 'd1d29153de5ae3c2dcbca2622bc0cea3dc9b6fa5' }, additionalInformation))))), filteredMessages.map(x => (h("zonos-custom-message", { icon: MessageIcon, message: x.message })))))), h("zonos-hello-dialog-footer", { key: '7e1d4b405972059bd759ba12a760e4037eb8a724', appearanceSettings: this.appearanceSettings, setShowCountrySelect: value => this.setShowCountrySelect(value), setShowLanguageSelect: value => this.setShowLanguageSelect(value) }))), this.showCountrySelect && (h("div", { key: '5e8adbd361831901f60687b243030ff20a55de42' }, h("zonos-country-select", { key: '3ac541296c02b366f10aace6a8497e06eded103a', handleOnClose: () => this.setShowCountrySelect(false) }))), this.showLanguageSelect && (h("div", { key: '37aa0ebdf43b0252c4fc3d249751bd6a7cd7341f' }, h("zonos-language-select", { key: '7394d663a509ff75fb5c79cd27403fda02d29877', handleOnClose: () => this.setShowLanguageSelect(false) }))))));
|
|
163
165
|
}
|
|
164
166
|
static get is() { return "zonos-hello-dialog"; }
|
|
165
167
|
static get encapsulation() { return "shadow"; }
|
|
@@ -199,7 +199,7 @@ export class ZonosController {
|
|
|
199
199
|
"mutable": false,
|
|
200
200
|
"complexType": {
|
|
201
201
|
"original": "LoadZonosParamsConfig",
|
|
202
|
-
"resolved": "{ appearance?: Partial<AppearanceConfig> | undefined; checkoutSettings?: Partial<CheckoutConfig> | undefined; currencyConverter?: CurrencyConverter | undefined; helloSettings?: Partial<HelloConfig> | undefined; onCountryChange?: ((props: { countryCode: CountryCode; currencyCode: CurrencyCode; }) => void) | undefined; }",
|
|
202
|
+
"resolved": "{ appearance?: Partial<AppearanceConfig> | undefined; checkoutSettings?: Partial<CheckoutConfig> | undefined; currencyConverter?: CurrencyConverter | undefined; helloSettings?: Partial<HelloConfig> | undefined; overrideCurrencyFormat?: { currencyDisplay?: \"symbol\" | \"name\" | \"code\" | \"narrowSymbol\" | undefined; } | ((params: { amount: number; countryCode: CurrencyCode; }) => string) | undefined; onCountryChange?: ((props: { countryCode: CountryCode; currencyCode: CurrencyCode; }) => void) | undefined; }",
|
|
203
203
|
"references": {
|
|
204
204
|
"LoadZonosParamsConfig": {
|
|
205
205
|
"location": "import",
|
|
@@ -332,7 +332,7 @@ export class ZonosController {
|
|
|
332
332
|
"signature": "(config: LoadZonosParamsConfig) => Promise<void>",
|
|
333
333
|
"parameters": [{
|
|
334
334
|
"name": "config",
|
|
335
|
-
"type": "{ appearance?: Partial<AppearanceConfig> | undefined; checkoutSettings?: Partial<CheckoutConfig> | undefined; currencyConverter?: CurrencyConverter | undefined; helloSettings?: Partial<HelloConfig> | undefined; onCountryChange?: ((props: { countryCode: CountryCode; currencyCode: CurrencyCode; }) => void) | undefined; }",
|
|
335
|
+
"type": "{ appearance?: Partial<AppearanceConfig> | undefined; checkoutSettings?: Partial<CheckoutConfig> | undefined; currencyConverter?: CurrencyConverter | undefined; helloSettings?: Partial<HelloConfig> | undefined; overrideCurrencyFormat?: { currencyDisplay?: \"symbol\" | \"name\" | \"code\" | \"narrowSymbol\" | undefined; } | ((params: { amount: number; countryCode: CurrencyCode; }) => string) | undefined; onCountryChange?: ((props: { countryCode: CountryCode; currencyCode: CurrencyCode; }) => void) | undefined; }",
|
|
336
336
|
"docs": "config that need to override the default setting"
|
|
337
337
|
}],
|
|
338
338
|
"references": {
|
|
@@ -14,7 +14,7 @@ import { getCurrencyCode } from "../../utils/hello/currencyConversion/getCurrenc
|
|
|
14
14
|
import { setZCountryUrlParam } from "../../utils/hello/setZCountryUrlParam";
|
|
15
15
|
import { log } from "../../utils/logging/log";
|
|
16
16
|
import { logError } from "../../utils/logging/logError";
|
|
17
|
-
const { onChange: localizationStoreOnUpdate, state: localizationStore } = createStore({
|
|
17
|
+
const { dispose: localizationDispose, onChange: localizationStoreOnUpdate, state: localizationStore, } = createStore({
|
|
18
18
|
countryLandedCost: null,
|
|
19
19
|
customMessages: [],
|
|
20
20
|
exchangeRate: null,
|
|
@@ -55,6 +55,7 @@ const startExchangeRateTimeout = ({ isGuaranteed, maxAge, }) => {
|
|
|
55
55
|
const getNewLocalization = async () => {
|
|
56
56
|
log('get new localization store');
|
|
57
57
|
const { isShippableCountry, selectedCountryCode } = localizationStore;
|
|
58
|
+
localizationStore.countryLandedCost = await getCountryLandedCost(localizationStore.selectedCountryCode);
|
|
58
59
|
if (zonosStore.helloSettings.currencyBehavior === 'DISABLED' ||
|
|
59
60
|
!isShippableCountry ||
|
|
60
61
|
!selectedCountryCode) {
|
|
@@ -63,7 +64,6 @@ const getNewLocalization = async () => {
|
|
|
63
64
|
const isGuaranteed = zonosStore.checkoutSettings.visibilityStatus === 'ENABLED';
|
|
64
65
|
const { maxAge } = await triggerGetExchangeRate(isGuaranteed);
|
|
65
66
|
startExchangeRateTimeout({ isGuaranteed, maxAge });
|
|
66
|
-
localizationStore.countryLandedCost = await getCountryLandedCost(localizationStore.selectedCountryCode);
|
|
67
67
|
};
|
|
68
68
|
const getCustomMessages = async () => {
|
|
69
69
|
if (!localizationStore.selectedCountryCode || !zonosStore.storeId) {
|
|
@@ -181,4 +181,4 @@ const localizationStoreUpdateSelectedLocale = (newSelectedLocale) => {
|
|
|
181
181
|
translationStoreUpdateLanguage(newSelectedLocale);
|
|
182
182
|
void updateCheckoutSessionLanguage();
|
|
183
183
|
};
|
|
184
|
-
export { initLocalizationStore, localizationStore, localizationStoreOnUpdate, localizationStoreUpdateSelectedCountryCode, localizationStoreUpdateSelectedLocale, };
|
|
184
|
+
export { initLocalizationStore, localizationDispose, localizationStore, localizationStoreOnUpdate, localizationStoreUpdateSelectedCountryCode, localizationStoreUpdateSelectedLocale, };
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
export const stringsArabic = {
|
|
2
|
-
'${percentage} GST due on any order above ${threshold} along with an import entry transaction fee and MPI levy.': {
|
|
3
|
-
value: '${percentage} ضريبة القيمة المضافة مستحقة على أي طلب يتجاوز ${threshold} بالإضافة إلى رسوم معاملة إدخال الاستيراد ورسوم MPI.',
|
|
4
|
-
},
|
|
5
|
-
'${percentage} GST due on any order above ${threshold}.': {
|
|
6
|
-
value: '${percentage} ضريبة القيمة المضافة مستحقة على أي طلب يتجاوز ${threshold}.',
|
|
7
|
-
},
|
|
8
2
|
'Above de minimis threshold for': {
|
|
9
3
|
value: 'أعلى من الحد الأدنى لـ',
|
|
10
4
|
},
|
|
@@ -131,8 +125,8 @@ export const stringsArabic = {
|
|
|
131
125
|
'Order total': {
|
|
132
126
|
value: 'إجمالي الطلبية',
|
|
133
127
|
},
|
|
134
|
-
'Orders to
|
|
135
|
-
value: 'يجب أن تتجاوز الطلبيات إلى
|
|
128
|
+
'Orders to [countryName] must be over [threshold] to ship.': {
|
|
129
|
+
value: 'يجب أن تتجاوز الطلبيات إلى [countryName] [threshold] ليتم شحنها.',
|
|
136
130
|
},
|
|
137
131
|
Pay: {
|
|
138
132
|
value: 'دفع',
|
|
@@ -239,8 +233,8 @@ export const stringsArabic = {
|
|
|
239
233
|
"We've sent an email confirmation of the order details for your review. And our team is carefully preparing your order so it arrives on time.": {
|
|
240
234
|
value: 'لقد أرسلنا إليك تأكيدًا بالبريد الإلكتروني لتفاصيل الطلبية لمراجعتك. ويقوم فريقنا بإعداد طلبيتك بعناية حتى تصل في الوقت المحدد.',
|
|
241
235
|
},
|
|
242
|
-
'Welcome to': {
|
|
243
|
-
value: '
|
|
236
|
+
'Welcome to [storeName]!': {
|
|
237
|
+
value: 'مرحبًا بك في [storeName]!',
|
|
244
238
|
},
|
|
245
239
|
'Welcome!': {
|
|
246
240
|
value: 'أهلا بك!',
|
|
@@ -257,6 +251,12 @@ export const stringsArabic = {
|
|
|
257
251
|
'Your payment went through successfully! Thank you for shopping with us! We hope you had an enjoyable experience and your support means the world to us.': {
|
|
258
252
|
value: 'تمت عملية الدفع بنجاح! شكرا لتسوقك معنا! نأمل أن تكون قد استمتعت بتجربة رائعة ودعمك يعني لنا الكثير.',
|
|
259
253
|
},
|
|
254
|
+
'[percentage] GST due on any order above [threshold] along with an import entry transaction fee and MPI levy.': {
|
|
255
|
+
value: '[percentage] ضريبة القيمة المضافة مستحقة على أي طلب يتجاوز [threshold] بالإضافة إلى رسوم معاملة إدخال الاستيراد ورسوم MPI.',
|
|
256
|
+
},
|
|
257
|
+
'[percentage] GST due on any order above [threshold].': {
|
|
258
|
+
value: '[percentage] ضريبة القيمة المضافة مستحقة على أي طلب يتجاوز [threshold].',
|
|
259
|
+
},
|
|
260
260
|
'business days': {
|
|
261
261
|
value: 'أيام العمل',
|
|
262
262
|
},
|