@sonic-equipment/ui 126.0.0 → 128.0.0
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/address/address.d.ts +6 -1
- package/dist/address/address.js +2 -2
- package/dist/algolia/filter-section.js +1 -1
- package/dist/cards/orderline-card/connected-orderline-card.js +1 -1
- package/dist/cards/orderline-card/orderline-card.d.ts +3 -3
- package/dist/cards/orderline-card/orderline-card.js +3 -2
- package/dist/cards/orderline-card/orderline-card.module.css.js +1 -1
- package/dist/cards/product-card/product-card.js +1 -1
- package/dist/cart-totals/cart-totals.d.ts +1 -1
- package/dist/cart-totals/cart-totals.js +1 -1
- package/dist/checkout/adyen-payment.d.ts +3 -5
- package/dist/checkout/adyen-payment.js +22 -10
- package/dist/checkout/adyen-payment.module.css.js +3 -0
- package/dist/checkout/payment-details.d.ts +5 -2
- package/dist/checkout/payment-details.js +54 -4
- package/dist/checkout/payment.d.ts +8 -3
- package/dist/checkout/payment.js +168 -34
- package/dist/checkout/payment.module.css.js +3 -0
- package/dist/checkout/use-get-adyen-redirect-result.d.ts +1 -0
- package/dist/checkout/use-get-adyen-redirect-result.js +13 -0
- package/dist/checkout/use-has-returned-from-adyen.d.ts +1 -0
- package/dist/checkout/use-has-returned-from-adyen.js +8 -0
- package/dist/collapsables/accordion/accordion.d.ts +10 -2
- package/dist/collapsables/accordion/accordion.js +20 -1
- package/dist/collapsables/accordion/accordion.module.css.js +1 -1
- package/dist/exports.d.ts +38 -24
- package/dist/forms/checkbox/checkbox.d.ts +2 -1
- package/dist/forms/checkbox/checkbox.js +2 -2
- package/dist/forms/input/input.js +1 -3
- package/dist/forms/label/label.d.ts +1 -1
- package/dist/forms/select/select.d.ts +4 -2
- package/dist/forms/select/select.js +6 -3
- package/dist/forms/select/select.module.css.js +1 -1
- package/dist/global-search/search-input/connected-search-input.js +1 -1
- package/dist/index.js +41 -27
- package/dist/intl/missing-translation-provider.js +9 -2
- package/dist/intl/translation-id.d.ts +1 -1
- package/dist/loading/loading-overlay.js +1 -1
- package/dist/pages/{cart-page → checkout/cart-page}/cart-page.js +20 -20
- package/dist/pages/{layouts → checkout/layouts}/checkout-page-layout/checkout-page-layout.js +3 -3
- package/dist/pages/checkout/layouts/checkout-page-layout/checkout-page-layout.module.css.js +3 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section-content.d.ts +7 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section-content.js +9 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section-header.d.ts +8 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section-header.js +9 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section-link.d.ts +4 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section-link.js +8 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section.d.ts +7 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section.js +10 -0
- package/dist/pages/checkout/layouts/checkout-page-layout/components/checkout-page-section.module.css.js +3 -0
- package/dist/pages/checkout/payment-page/payment-page.d.ts +1 -0
- package/dist/pages/checkout/payment-page/payment-page.js +89 -0
- package/dist/pages/{shipping-page → checkout/shipping-page}/components/edit-address.d.ts +1 -1
- package/dist/pages/{shipping-page → checkout/shipping-page}/components/edit-address.js +13 -13
- package/dist/pages/checkout/shipping-page/components/edit-address.module.css.js +3 -0
- package/dist/pages/{shipping-page → checkout/shipping-page}/components/readonly-address.d.ts +1 -1
- package/dist/pages/checkout/shipping-page/components/readonly-address.js +27 -0
- package/dist/pages/checkout/shipping-page/components/readonly-address.module.css.js +3 -0
- package/dist/pages/checkout/shipping-page/shipping-page.js +114 -0
- package/dist/pages/{page → components/page}/page.d.ts +1 -1
- package/dist/pages/{page → components/page}/page.js +3 -5
- package/dist/pages/components/page/page.module.css.js +3 -0
- package/dist/pages/components/page-container/page-container.module.css.js +3 -0
- package/dist/pages/components/page-meta-data/page-meta-data.d.ts +16 -0
- package/dist/pages/components/page-meta-data/page-meta-data.js +95 -0
- package/dist/pages/error-page/error-page.js +1 -1
- package/dist/pages/product/layouts/product-details-page-layout/product-details-page-layout.module.css.js +3 -0
- package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-images/product-detail-images.d.ts +1 -1
- package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-images/product-detail-images.js +6 -6
- package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-images/product-detail-images.module.css.js +1 -1
- package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-panel/product-details-panel.js +11 -11
- package/dist/pages/product/product-details-page/components/product-details-panel/product-details-panel.module.css.js +3 -0
- package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-recently-viewed/product-details-recently-viewed.d.ts +1 -1
- package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-recently-viewed/product-details-recently-viewed.js +4 -4
- package/dist/pages/product/product-details-page/product-details-page.js +30 -0
- package/dist/pages/{product-details-page → product/product-details-page}/product-details.d.ts +1 -1
- package/dist/pages/{product-details-page → product/product-details-page}/product-details.js +7 -7
- package/dist/pages/{product-listing-page → product/product-listing-page}/no-results/no-results.js +4 -4
- package/dist/pages/product/product-listing-page/no-results/no-results.module.css.js +3 -0
- package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-category-carousel/product-listing-page-category-carousel.js +3 -3
- package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-data-types.d.ts +3 -1
- package/dist/pages/product/product-listing-page/product-listing-page.js +37 -0
- package/dist/pages/product/product-listing-page/product-listing-page.module.css.js +3 -0
- package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-product-overview/product-listing-product-overview.js +6 -6
- package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing.js +16 -16
- package/dist/pages/{search-result-page → product/search-result-page}/search-result-product-overview/search-result-product-overview.js +6 -6
- package/dist/pages/{search-result-page → product/search-result-page}/search-results-page-category-carousel/search-results-page-category-carousel.js +3 -3
- package/dist/pages/{search-result-page → product/search-result-page}/search-results-page.js +22 -17
- package/dist/pages/product/search-result-page/search-results-page.module.css.js +3 -0
- package/dist/shared/api/bff/model/bff.model.d.ts +14 -0
- package/dist/shared/api/bff/services/bff-service.d.ts +1 -1
- package/dist/shared/api/bff/services/bff-service.js +1 -0
- package/dist/shared/api/shared/hooks/use-awaitable-mutation.d.ts +20 -4
- package/dist/shared/api/shared/hooks/use-awaitable-mutation.js +29 -21
- package/dist/shared/api/storefront/hooks/authentication/use-patch-session.d.ts +7 -4
- package/dist/shared/api/storefront/hooks/authentication/use-patch-session.js +4 -3
- package/dist/shared/api/storefront/hooks/cart/use-fetch-current-cart-with-atp.d.ts +2 -1
- package/dist/shared/api/storefront/hooks/cart/use-fetch-current-cart-with-atp.js +4 -2
- package/dist/shared/api/storefront/hooks/cart/use-fetch-current-cart.d.ts +3 -1
- package/dist/shared/api/storefront/hooks/cart/use-fetch-current-cart.js +3 -2
- package/dist/shared/api/storefront/hooks/cart/use-patch-cart.d.ts +9 -8
- package/dist/shared/api/storefront/hooks/cart/use-patch-cart.js +6 -4
- package/dist/shared/api/storefront/hooks/cart/use-place-order.d.ts +10 -4
- package/dist/shared/api/storefront/hooks/cart/use-place-order.js +11 -6
- package/dist/shared/api/storefront/hooks/customer/use-fetch-fulfillment-methods-by-customer-id.d.ts +4 -0
- package/dist/shared/api/storefront/hooks/customer/use-fetch-fulfillment-methods-by-customer-id.js +12 -0
- package/dist/shared/api/storefront/hooks/customer/use-fetch-fulfillment-methods-for-current-cart.d.ts +3 -0
- package/dist/shared/api/storefront/hooks/customer/use-fetch-fulfillment-methods-for-current-cart.js +12 -0
- package/dist/shared/api/storefront/hooks/customer/use-patch-bill-to-address.d.ts +5 -2
- package/dist/shared/api/storefront/hooks/customer/use-patch-bill-to-address.js +1 -1
- package/dist/shared/api/storefront/hooks/payment/use-invalidate-adyen.d.ts +1 -1
- package/dist/shared/api/storefront/hooks/payment/use-invalidate-adyen.js +1 -1
- package/dist/shared/api/storefront/model/storefront.model.d.ts +3 -1
- package/dist/shared/api/storefront/services/cart-service.d.ts +7 -3
- package/dist/shared/api/storefront/services/cart-service.js +11 -8
- package/dist/shared/api/storefront/services/customer-service.d.ts +3 -0
- package/dist/shared/api/storefront/services/customer-service.js +9 -1
- package/dist/shared/api/storefront/services/finance-service.d.ts +13 -0
- package/dist/shared/api/storefront/services/finance-service.js +17 -0
- package/dist/shared/api/storefront/services/translation-service.js +1 -1
- package/dist/shared/hooks/use-css-link.d.ts +3 -0
- package/dist/shared/hooks/use-css-link.js +20 -0
- package/dist/shared/hooks/use-script.d.ts +15 -0
- package/dist/shared/hooks/use-script.js +33 -0
- package/dist/shared/providers/react-query-container.js +4 -2
- package/dist/shared/routing/route-provider.d.ts +12 -4
- package/dist/shared/routing/route-provider.js +14 -10
- package/dist/shared/routing/with-routing.js +6 -6
- package/dist/shared/utils/string.d.ts +1 -0
- package/dist/shared/utils/string.js +6 -1
- package/dist/shared/utils/string.test.d.ts +1 -0
- package/dist/shared/utils/types.d.ts +3 -0
- package/dist/shared/utils/types.js +8 -0
- package/dist/styles.css +690 -331
- package/dist/tooltip/tooltip.d.ts +2 -2
- package/dist/typography/heading/heading.d.ts +4 -2
- package/dist/typography/heading/heading.js +3 -2
- package/dist/typography/heading/heading.module.css.js +1 -1
- package/package.json +1 -1
- package/dist/pages/layouts/checkout-page-layout/checkout-page-layout.module.css.js +0 -3
- package/dist/pages/layouts/product-details-page-layout/product-details-page-layout.module.css.js +0 -3
- package/dist/pages/page/page.module.css.js +0 -3
- package/dist/pages/page-container/page-container.module.css.js +0 -3
- package/dist/pages/product-details-page/components/product-details-panel/product-details-panel.module.css.js +0 -3
- package/dist/pages/product-details-page/product-details-page.js +0 -22
- package/dist/pages/product-listing-page/no-results/no-results.module.css.js +0 -3
- package/dist/pages/product-listing-page/product-listing-page.js +0 -29
- package/dist/pages/product-listing-page/product-listing-page.module.css.js +0 -3
- package/dist/pages/search-result-page/search-results-page.module.css.js +0 -3
- package/dist/pages/shipping-page/components/edit-address.module.css.js +0 -3
- package/dist/pages/shipping-page/components/readonly-address.js +0 -25
- package/dist/pages/shipping-page/components/readonly-address.module.css.js +0 -3
- package/dist/pages/shipping-page/shipping-page.js +0 -75
- package/dist/pages/shipping-page/shipping-page.module.css.js +0 -3
- /package/dist/pages/{cart-page → checkout/cart-page}/cart-page.d.ts +0 -0
- /package/dist/pages/{layouts → checkout/layouts}/checkout-page-layout/checkout-page-layout.d.ts +0 -0
- /package/dist/pages/{shipping-page → checkout/shipping-page}/shipping-page.d.ts +0 -0
- /package/dist/pages/{page-container → components/page-container}/page-container.d.ts +0 -0
- /package/dist/pages/{page-container → components/page-container}/page-container.js +0 -0
- /package/dist/pages/{layouts → product/layouts}/product-details-page-layout/product-details-page-layout.d.ts +0 -0
- /package/dist/pages/{layouts → product/layouts}/product-details-page-layout/product-details-page-layout.js +0 -0
- /package/dist/pages/{product-details-page → product/product-details-page}/components/product-details-panel/product-details-panel.d.ts +0 -0
- /package/dist/pages/{product-details-page → product/product-details-page}/product-details-page.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/no-results/no-results.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-category-carousel/product-listing-page-category-carousel.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-provider/product-listing-page-context.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-provider/product-listing-page-context.js +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-provider/product-listing-page-provider.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page-provider/product-listing-page-provider.js +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-page.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing-product-overview/product-listing-product-overview.d.ts +0 -0
- /package/dist/pages/{product-listing-page → product/product-listing-page}/product-listing.d.ts +0 -0
- /package/dist/pages/{search-result-page → product/search-result-page}/search-result-product-overview/search-result-product-overview.d.ts +0 -0
- /package/dist/pages/{search-result-page → product/search-result-page}/search-results-page-category-carousel/search-results-page-category-carousel.d.ts +0 -0
- /package/dist/pages/{search-result-page → product/search-result-page}/search-results-page.d.ts +0 -0
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export interface AddressProps {
|
|
2
|
+
address1?: string;
|
|
3
|
+
address2?: string;
|
|
4
|
+
address3?: string;
|
|
2
5
|
city?: string;
|
|
3
6
|
companyName?: string;
|
|
4
7
|
country?: string;
|
|
5
8
|
email?: string;
|
|
9
|
+
firstName?: string;
|
|
10
|
+
lastName?: string;
|
|
6
11
|
phone?: string;
|
|
7
12
|
postalCode?: string;
|
|
8
13
|
}
|
|
9
|
-
export declare function Address({ city, companyName, country, email, phone, postalCode, }: AddressProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function Address({ address1, address2, address3, city, companyName, country, email, firstName, lastName, phone, postalCode, }: AddressProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/address/address.js
CHANGED
|
@@ -2,8 +2,8 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { capitalizeFirstLetter } from '../shared/utils/string.js';
|
|
3
3
|
import styles from './address.module.css.js';
|
|
4
4
|
|
|
5
|
-
function Address({ city, companyName, country, email, phone, postalCode, }) {
|
|
6
|
-
return (jsxs("address", { className: styles.address, children: [companyName && jsx("p", { children: companyName }), (postalCode || city) && (jsxs("p", { children: [postalCode, " ", city ? capitalizeFirstLetter(city) : ''] })), country && jsx("p", { children: country }), phone && jsx("p", { children: phone }), email && jsx("p", { children: email })] }));
|
|
5
|
+
function Address({ address1, address2, address3, city, companyName, country, email, firstName, lastName, phone, postalCode, }) {
|
|
6
|
+
return (jsxs("address", { className: styles.address, children: [(firstName || lastName) && jsx("p", { children: `${firstName} ${lastName}` }), companyName && jsx("p", { children: companyName }), address1 && jsx("p", { children: address1 }), address2 && jsx("p", { children: address2 }), address3 && jsx("p", { children: address3 }), (postalCode || city) && (jsxs("p", { children: [postalCode, " ", city ? capitalizeFirstLetter(city) : ''] })), country && jsx("p", { children: country }), phone && jsx("p", { children: phone }), email && jsx("p", { children: email })] }));
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export { Address };
|
|
@@ -21,7 +21,7 @@ function FilterSection({ ...props }) {
|
|
|
21
21
|
/* eslint-enable @typescript-eslint/no-unnecessary-condition */
|
|
22
22
|
}
|
|
23
23
|
function CollapsibleFilterSection({ children, gap = 'md', initialIsOpen = true, title, variant, }) {
|
|
24
|
-
return (jsx("section", { className: clsx(filterSectionStyles['filter-section'], filterSectionStyles[variant], filterSectionStyles[gap]), children: jsx(Accordion, { borderType: "middle", children: jsx(AccordionItem, { id: title, initialIsOpen: initialIsOpen, title: jsx("span", { className: filterSectionStyles['accordion-title'], children: jsx(FormattedMessage, {
|
|
24
|
+
return (jsx("section", { className: clsx(filterSectionStyles['filter-section'], filterSectionStyles[variant], filterSectionStyles[gap]), children: jsx(Accordion, { borderType: "middle", children: jsx(AccordionItem, { id: title, initialIsOpen: initialIsOpen, title: jsx("span", { className: filterSectionStyles['accordion-title'], children: jsx(FormattedMessage, { fallbackValue: title, id: `facet.${title.toLowerCase()}` }) }), children: jsx("div", { className: filterSectionStyles.content, children: children }) }) }) }));
|
|
25
25
|
}
|
|
26
26
|
function WithActionFilterSection({ button, children, gap = 'md', title, variant, }) {
|
|
27
27
|
return (jsxs("section", { className: clsx(filterSectionStyles['filter-section'], filterSectionStyles[variant], filterSectionStyles[gap]), children: [jsxs("div", { className: filterSectionStyles.header, children: [jsx("h3", { className: filterSectionStyles.title, children: title }), jsx("div", { children: button })] }), jsx("div", { className: filterSectionStyles.content, children: children })] }));
|
|
@@ -5,7 +5,7 @@ import { ConnectedRemoveButton } from './connected-remove-button.js';
|
|
|
5
5
|
import { OrderLineCard } from './orderline-card.js';
|
|
6
6
|
|
|
7
7
|
function ConnectedOrderLineCard({ onRemove, orderLineId, productId, ...props }) {
|
|
8
|
-
return (jsx(OrderLineCard, { productId: productId, ...props, addToCartButton: jsx(ConnectedAddToCartButton, { productId: productId }),
|
|
8
|
+
return (jsx(OrderLineCard, { productId: productId, ...props, addToCartButton: jsx(ConnectedAddToCartButton, { productId: productId }), isReadonly: false, removeButton: jsx(ConnectedRemoveButton, { id: orderLineId, onRemove: orderLineId => {
|
|
9
9
|
onRemove?.(orderLineId);
|
|
10
10
|
} }) }));
|
|
11
11
|
}
|
|
@@ -5,21 +5,21 @@ export interface BaseOrderLineCardProps {
|
|
|
5
5
|
deliveryDate?: Date;
|
|
6
6
|
href: string;
|
|
7
7
|
image: ImageSourceType;
|
|
8
|
+
isReadonly: boolean;
|
|
8
9
|
price: ProductTotalPriceType;
|
|
9
10
|
productId: string;
|
|
10
|
-
readonly: boolean;
|
|
11
11
|
sku: string;
|
|
12
12
|
tags?: string[];
|
|
13
13
|
title: string;
|
|
14
14
|
}
|
|
15
15
|
export interface InteractiveOrderLineCardProps extends BaseOrderLineCardProps {
|
|
16
16
|
addToCartButton: ReactElement;
|
|
17
|
-
|
|
17
|
+
isReadonly: false;
|
|
18
18
|
removeButton: ReactElement;
|
|
19
19
|
}
|
|
20
20
|
export interface ReadonlyOrderLineCardProps extends BaseOrderLineCardProps {
|
|
21
|
+
isReadonly: true;
|
|
21
22
|
quantity: number;
|
|
22
|
-
readonly: true;
|
|
23
23
|
}
|
|
24
24
|
export type OrderLineCardProps = InteractiveOrderLineCardProps | ReadonlyOrderLineCardProps;
|
|
25
25
|
export declare function OrderLineCard(props: OrderLineCardProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import clsx from 'clsx';
|
|
2
3
|
import { Tag } from '../../badges/tag/tag.js';
|
|
3
4
|
import { DeliveryTime } from '../../delivery-time/delivery-time.js';
|
|
4
5
|
import { ProductTotalPrice } from '../../display/product-price/product-total-price.js';
|
|
@@ -10,8 +11,8 @@ import { Heading } from '../../typography/heading/heading.js';
|
|
|
10
11
|
import styles from './orderline-card.module.css.js';
|
|
11
12
|
|
|
12
13
|
function OrderLineCard(props) {
|
|
13
|
-
const { deliveryDate, href, image, price, productId,
|
|
14
|
-
return (jsxs(RouteLink, { className: styles['orderline-card'], href: href, id: productId, children: [jsx("div", { className: styles['image-container'], children: jsx(Image, { ...image }) }), jsxs("div", { className: styles.body, children: [jsxs("div", { className: styles['title-container'], children: [tags && (jsx("div", { className: styles.tag, children: tags.map(tag => (jsx(Tag, { children: jsx(FormattedMessage, {
|
|
14
|
+
const { deliveryDate, href, image, isReadonly, price, productId, sku, tags, title, } = props;
|
|
15
|
+
return (jsxs(RouteLink, { className: clsx(styles['orderline-card'], isReadonly && styles.readonly), href: href, id: productId, isDisabled: isReadonly, children: [jsx("div", { className: styles['image-container'], children: jsx(Image, { ...image }) }), jsxs("div", { className: styles.body, children: [jsxs("div", { className: styles['title-container'], children: [tags && (jsx("div", { className: styles.tag, children: tags.map(tag => (jsx(Tag, { children: jsx(FormattedMessage, { fallbackValue: tag, id: `tag.${tag.toLowerCase()}` }) }, tag))) })), jsx(Heading, { className: styles.title, size: "xxxs", tag: "h3", children: title }), jsx("div", { className: styles.sku, children: jsx(ProductSku, { sku: sku }) })] }), isReadonly ? (jsx("p", { className: styles.amount, children: jsx(FormattedMessage, { id: "Amount: {0}", replacementValues: { '0': props.quantity.toString() } }) })) : (jsx("div", { className: styles['add-to-cart-button'], children: props.addToCartButton })), jsx(ProductTotalPrice, { className: styles.price, originalTotalPrice: price.originalTotalPrice, pricePerUnit: price.pricePerUnit, totalPrice: price.totalPrice }), deliveryDate && (jsx(DeliveryTime, { className: styles.delivery, deliveryDate: deliveryDate })), !isReadonly && (jsx("div", { className: styles.remove, children: props.removeButton }))] })] }));
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export { OrderLineCard };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var styles = {"orderline-card":"orderline-card-module-AMTMm","image-container":"orderline-card-module-TlhUg","body":"orderline-card-module-L0kX1","title-container":"orderline-card-module-D-6JE","tag":"orderline-card-module-uiHOY","title":"orderline-card-module-C8xE6","amount":"orderline-card-module-s-u3O","add-to-cart-button":"orderline-card-module-ZjAaX","price":"orderline-card-module-q3yjo","delivery":"orderline-card-module-N-Oe-","remove":"orderline-card-module-0CunP"};
|
|
1
|
+
var styles = {"orderline-card":"orderline-card-module-AMTMm","readonly":"orderline-card-module-NU77X","image-container":"orderline-card-module-TlhUg","body":"orderline-card-module-L0kX1","title-container":"orderline-card-module-D-6JE","tag":"orderline-card-module-uiHOY","title":"orderline-card-module-C8xE6","amount":"orderline-card-module-s-u3O","add-to-cart-button":"orderline-card-module-ZjAaX","price":"orderline-card-module-q3yjo","delivery":"orderline-card-module-N-Oe-","remove":"orderline-card-module-0CunP"};
|
|
2
2
|
|
|
3
3
|
export { styles as default };
|
|
@@ -9,7 +9,7 @@ import { RouteLink } from '../../shared/routing/route-link.js';
|
|
|
9
9
|
import styles from './product-card.module.css.js';
|
|
10
10
|
|
|
11
11
|
function ProductCard({ addToCartButton: AddToCartButton, favoriteButton: FavoriteButton, href, id, image, onClick, price, sku, tags, title, }) {
|
|
12
|
-
return (jsx("div", { className: styles['product-card-container'], children: jsxs(RouteLink, { className: styles['product-card'], "data-product-id": sku, href: href, id: id, onClick: onClick, children: [jsx("div", { className: styles.image, children: jsx(Image, { ...image }) }), jsx("div", { className: styles['favorite-button'], children: FavoriteButton && FavoriteButton }), jsxs("div", { className: styles.content, children: [jsxs("div", { className: styles.top, children: [jsx("div", { className: styles.tag, children: tags?.map(tag => (jsx(Tag, { children: jsx(FormattedMessage, {
|
|
12
|
+
return (jsx("div", { className: styles['product-card-container'], children: jsxs(RouteLink, { className: styles['product-card'], "data-product-id": sku, href: href, id: id, onClick: onClick, children: [jsx("div", { className: styles.image, children: jsx(Image, { ...image }) }), jsx("div", { className: styles['favorite-button'], children: FavoriteButton && FavoriteButton }), jsxs("div", { className: styles.content, children: [jsxs("div", { className: styles.top, children: [jsx("div", { className: styles.tag, children: tags?.map(tag => (jsx(Tag, { children: jsx(FormattedMessage, { fallbackValue: tag, id: `tag.${tag.toLowerCase()}` }) }, tag))) }), jsx("h2", { className: styles.title, children: title }), jsx(ProductSku, { sku: sku })] }), jsxs("div", { className: styles.bottom, children: [jsx("div", { className: styles.price, children: jsx(ProductPrice, { isVatIncluded: price.isVatIncluded, originalPrice: price.originalPrice, price: price.price }) }), jsx("div", { className: styles['add-to-cart-button'], children: AddToCartButton })] })] })] }) }));
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { ProductCard };
|
|
@@ -5,6 +5,6 @@ export interface CartTotalsProps {
|
|
|
5
5
|
subtotal: string;
|
|
6
6
|
tax: string;
|
|
7
7
|
total: string;
|
|
8
|
-
vatPercentage: number;
|
|
8
|
+
vatPercentage: number | undefined;
|
|
9
9
|
}
|
|
10
10
|
export declare function CartTotals({ fulfillmentMethod, orderNumber, shippingCost, subtotal, tax, total, vatPercentage, }: CartTotalsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,7 +4,7 @@ import { Heading } from '../typography/heading/heading.js';
|
|
|
4
4
|
import styles from './cart-totals.module.css.js';
|
|
5
5
|
|
|
6
6
|
function CartTotals({ fulfillmentMethod, orderNumber, shippingCost, subtotal, tax, total, vatPercentage, }) {
|
|
7
|
-
return (jsxs("div", { className: styles['cart-totals'], children: [orderNumber && (jsxs("section", { className: styles.section, children: [jsx(Heading, { className: styles['section-header'], size: "xxxs", tag: "h3", children: jsx(FormattedMessage, { id: "Order number" }) }), jsx("div", { children: jsx("div", { className: styles.line, children: jsx("p", { className: styles.label, "data-test-selector": "orderConfirmation_orderNumber", children: orderNumber }) }) })] })), fulfillmentMethod && (jsxs("section", { className: styles.section, children: [jsx(Heading, { className: styles['section-header'], size: "xxxs", tag: "h3", children: jsx(FormattedMessage, { id: "Fulfillment method" }) }), jsx("div", { children: jsx("div", { className: styles.line, children: jsx("p", { className: styles.label, children: fulfillmentMethod }) }) })] })), jsxs("section", { className: styles.section, children: [jsx(Heading, { className: styles['section-header'], size: "xxxs", tag: "h3", children: jsx(FormattedMessage, { id: "Cost overview" }) }), jsxs("div", { children: [jsxs("div", { className: styles.line, children: [jsxs("p", { className: styles.label, children: [jsx(FormattedMessage, { id: "Subtotal" }), ' ', jsx(FormattedMessage, { id: "Excl. VAT" })] }), jsx("p", { className: styles.value, "data-test-selector": "cartTotal_subTotal", children: subtotal })] }), jsxs("div", { className: styles.line, children: [jsx("p", { className: styles.label, children: jsx(FormattedMessage, { id: "Shipping and handling" }) }), jsx("p", { className: styles.value, children: shippingCost })] }), jsxs("div", { className: styles.line, children: [jsxs("p", { className: styles.label, children: [jsx(FormattedMessage, { id: "VAT" }),
|
|
7
|
+
return (jsxs("div", { className: styles['cart-totals'], children: [orderNumber && (jsxs("section", { className: styles.section, children: [jsx(Heading, { className: styles['section-header'], size: "xxxs", tag: "h3", children: jsx(FormattedMessage, { id: "Order number" }) }), jsx("div", { children: jsx("div", { className: styles.line, children: jsx("p", { className: styles.label, "data-test-selector": "orderConfirmation_orderNumber", children: orderNumber }) }) })] })), fulfillmentMethod && (jsxs("section", { className: styles.section, children: [jsx(Heading, { className: styles['section-header'], size: "xxxs", tag: "h3", children: jsx(FormattedMessage, { id: "Fulfillment method" }) }), jsx("div", { children: jsx("div", { className: styles.line, children: jsx("p", { className: styles.label, "data-test-selector": "fulfullmentMethod", children: fulfillmentMethod }) }) })] })), jsxs("section", { className: styles.section, children: [jsx(Heading, { className: styles['section-header'], size: "xxxs", tag: "h3", children: jsx(FormattedMessage, { id: "Cost overview" }) }), jsxs("div", { children: [jsxs("div", { className: styles.line, children: [jsxs("p", { className: styles.label, children: [jsx(FormattedMessage, { id: "Subtotal" }), ' ', jsx(FormattedMessage, { id: "Excl. VAT" })] }), jsx("p", { className: styles.value, "data-test-selector": "cartTotal_subTotal", children: subtotal })] }), jsxs("div", { className: styles.line, children: [jsx("p", { className: styles.label, children: jsx(FormattedMessage, { id: "Shipping and handling" }) }), jsx("p", { className: styles.value, "data-test-selector": "shippingCost", children: shippingCost })] }), jsxs("div", { className: styles.line, children: [jsxs("p", { className: styles.label, children: [jsx(FormattedMessage, { id: "VAT" }), ' ', vatPercentage ? `${vatPercentage}%` : ''] }), jsx("p", { className: styles.value, "data-test-selector": "vatAmount", children: tax })] })] })] }), jsx("section", { className: styles.totals, children: jsxs("div", { className: styles.line, children: [jsx("p", { className: styles.label, children: jsx(FormattedMessage, { id: "Total" }) }), jsx("p", { className: styles.value, "data-test-selector": "cartTotal_orderGrandTotalDisplay", children: total })] }) })] }));
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export { CartTotals };
|
|
@@ -4,18 +4,16 @@ import { AdyenPaymentModel } from 'shared/api/storefront/model/storefront.model'
|
|
|
4
4
|
import '@adyen/adyen-web/dist/adyen.css';
|
|
5
5
|
interface AdyenPaymentProps {
|
|
6
6
|
amount: number;
|
|
7
|
-
billToId: string;
|
|
8
7
|
cartId: string;
|
|
9
8
|
countryCode: string;
|
|
10
9
|
currencyCode: string;
|
|
10
|
+
customerId: string;
|
|
11
11
|
dropinRef: MutableRefObject<Dropin | null>;
|
|
12
12
|
environment: 'test' | 'live' | 'live-us' | 'live-au' | 'live-apse' | 'live-in';
|
|
13
|
-
locale: string;
|
|
14
13
|
onComplete: (result: AdyenPaymentModel) => Promise<void>;
|
|
15
|
-
onError: (error: unknown, result: AdyenPaymentModel) => void;
|
|
14
|
+
onError: (error: unknown, result: AdyenPaymentModel | null) => void;
|
|
16
15
|
orderAmount: number;
|
|
17
|
-
redirectResult: string | undefined;
|
|
18
16
|
returnUrl: string;
|
|
19
17
|
}
|
|
20
|
-
export declare function AdyenPayment({ amount,
|
|
18
|
+
export declare function AdyenPayment({ amount, cartId, countryCode, currencyCode, customerId, dropinRef, environment, onComplete, onError, orderAmount, returnUrl, }: AdyenPaymentProps): import("react/jsx-runtime").JSX.Element;
|
|
21
19
|
export {};
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useRef, useEffect } from 'react';
|
|
3
3
|
import AdyenCheckout from '@adyen/adyen-web';
|
|
4
|
+
import clsx from 'clsx';
|
|
4
5
|
import qs from 'query-string';
|
|
6
|
+
import { useCultureCode } from '../intl/use-culture-code.js';
|
|
5
7
|
import { useCreateAdyenSession } from '../shared/api/storefront/hooks/payment/use-create-adyen-session.js';
|
|
6
8
|
import { useFetchAdyenConfig } from '../shared/api/storefront/hooks/payment/use-fetch-adyen-config.js';
|
|
7
9
|
import { getAdyenPaymentDetails, postAdyenPayment } from '../shared/api/storefront/services/cart-service.js';
|
|
8
10
|
import { parseAmount } from './parse-amount.js';
|
|
11
|
+
import styles from './adyen-payment.module.css.js';
|
|
9
12
|
|
|
10
|
-
function AdyenPayment({ amount,
|
|
13
|
+
function AdyenPayment({ amount, cartId, countryCode, currencyCode, customerId, dropinRef, environment, onComplete, onError, orderAmount, returnUrl, }) {
|
|
14
|
+
const cultureCode = useCultureCode();
|
|
15
|
+
// Get and remove Adyen query string params and keep them in a ref
|
|
16
|
+
const queryStringParams = useRef(getAndRemoveAdyenQueryParams());
|
|
17
|
+
const { amount: adyenAmount, customerId: adyenCustomerId, redirectResult, } = queryStringParams.current;
|
|
11
18
|
const dropinDivRef = useRef(null);
|
|
12
19
|
const { data: adyenSettings } = useFetchAdyenConfig();
|
|
13
20
|
const { data: adyenSession, error, mutate: createAdyenSession, } = useCreateAdyenSession();
|
|
@@ -29,22 +36,23 @@ function AdyenPayment({ amount, billToId, cartId, countryCode, currencyCode, dro
|
|
|
29
36
|
clientKey: adyenSettings.clientKey,
|
|
30
37
|
countryCode,
|
|
31
38
|
environment,
|
|
32
|
-
locale,
|
|
39
|
+
locale: cultureCode,
|
|
33
40
|
onAdditionalDetails: (async (state, _component) => {
|
|
41
|
+
dropinDivRef.current?.classList.add(styles.loading);
|
|
34
42
|
if (!state.details.redirectResult) {
|
|
35
|
-
|
|
43
|
+
return onError(new Error('No redirectResult'), null);
|
|
36
44
|
}
|
|
37
45
|
const result = await getAdyenPaymentDetails({
|
|
38
46
|
redirectResult: state.details.redirectResult,
|
|
39
47
|
});
|
|
40
|
-
const { amount: adyenAmount, customerId: adyenCustomerId } = getAndRemoveAdyenQueryParams();
|
|
41
48
|
if (amount.toFixed(2).replaceAll(/[,.]/gi, '') !== adyenAmount)
|
|
42
49
|
return onError(new Error('Invalid amount'), result);
|
|
43
|
-
if (
|
|
50
|
+
if (customerId !== adyenCustomerId)
|
|
44
51
|
return onError(new Error('Invalid customer'), result);
|
|
45
52
|
return handlePaymentResponse(result, onComplete, onError);
|
|
46
53
|
}),
|
|
47
54
|
onSubmit: (async (state, _component) => {
|
|
55
|
+
dropinDivRef.current?.classList.add(styles.loading);
|
|
48
56
|
if (state.data.paymentMethod.type === 'paybybank') {
|
|
49
57
|
state.data.countryCode = countryCode;
|
|
50
58
|
}
|
|
@@ -59,7 +67,7 @@ function AdyenPayment({ amount, billToId, cartId, countryCode, currencyCode, dro
|
|
|
59
67
|
if (result.action.type === 'redirect') {
|
|
60
68
|
return handleRedirectPaymentAction(result);
|
|
61
69
|
}
|
|
62
|
-
|
|
70
|
+
return onError(new Error('Invalid payment response'), result);
|
|
63
71
|
}
|
|
64
72
|
return handlePaymentResponse(result, onComplete, onError);
|
|
65
73
|
}),
|
|
@@ -76,29 +84,33 @@ function AdyenPayment({ amount, billToId, cartId, countryCode, currencyCode, dro
|
|
|
76
84
|
const dropIn = checkout.create('dropin');
|
|
77
85
|
if (redirectResult)
|
|
78
86
|
checkout.submitDetails({ details: { redirectResult } });
|
|
87
|
+
// Remove Adyen query strings params from ref
|
|
88
|
+
queryStringParams.current = {};
|
|
79
89
|
if (dropinRef.current)
|
|
80
90
|
dropinRef.current.unmount();
|
|
81
91
|
dropinRef.current = dropIn.mount(dropinDivRef.current);
|
|
82
92
|
})();
|
|
83
93
|
}, [
|
|
84
|
-
|
|
94
|
+
customerId,
|
|
85
95
|
adyenSettings,
|
|
86
96
|
adyenSession,
|
|
87
97
|
amount,
|
|
88
98
|
countryCode,
|
|
89
99
|
currencyCode,
|
|
90
100
|
environment,
|
|
91
|
-
|
|
101
|
+
cultureCode,
|
|
92
102
|
orderAmount,
|
|
93
103
|
redirectResult,
|
|
94
104
|
returnUrl,
|
|
95
105
|
dropinRef,
|
|
96
106
|
onComplete,
|
|
97
107
|
onError,
|
|
108
|
+
adyenAmount,
|
|
109
|
+
adyenCustomerId,
|
|
98
110
|
]);
|
|
99
111
|
if (error)
|
|
100
112
|
return jsx("div", { children: String(error) });
|
|
101
|
-
return jsx("div", { ref: dropinDivRef, id: "dropin" });
|
|
113
|
+
return (jsx("div", { ref: dropinDivRef, className: clsx(Boolean(redirectResult) && styles.loading), id: "dropin" }));
|
|
102
114
|
}
|
|
103
115
|
function getAndRemoveAdyenQueryParams() {
|
|
104
116
|
if (typeof window === 'undefined')
|
|
@@ -115,7 +127,7 @@ async function handlePaymentResponse(result, onSubmit, onError) {
|
|
|
115
127
|
try {
|
|
116
128
|
if (result.action) {
|
|
117
129
|
if (result.action.type === 'redirect') {
|
|
118
|
-
handleRedirectPaymentAction(result);
|
|
130
|
+
return handleRedirectPaymentAction(result);
|
|
119
131
|
}
|
|
120
132
|
else {
|
|
121
133
|
throw new Error('Adyen_Error');
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { CartModel } from '../shared/api/storefront/model/storefront.model';
|
|
2
|
-
export declare function PaymentDetails({ cart, onCartChanged, }: {
|
|
1
|
+
import { CartModel, CheckoutAtpEntry } from '../shared/api/storefront/model/storefront.model';
|
|
2
|
+
export declare function PaymentDetails({ atp, cart, fulfillmentMethods, isDisabled, onCartChanged, }: {
|
|
3
|
+
atp: CheckoutAtpEntry[];
|
|
3
4
|
cart: CartModel;
|
|
5
|
+
fulfillmentMethods: string[];
|
|
6
|
+
isDisabled: boolean;
|
|
4
7
|
onCartChanged: (cart: CartModel) => void;
|
|
5
8
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,21 +1,71 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Checkbox } from '../forms/checkbox/checkbox.js';
|
|
4
|
+
import { Select } from '../forms/select/select.js';
|
|
3
5
|
import { TextField } from '../forms/text-field/text-field.js';
|
|
6
|
+
import { FormattedMessage } from '../intl/formatted-message.js';
|
|
4
7
|
import { useFormattedMessage } from '../intl/use-formatted-message.js';
|
|
5
8
|
import { useDebouncedCallback } from '../shared/hooks/use-debounced-callback.js';
|
|
9
|
+
import { Tooltip } from '../tooltip/tooltip.js';
|
|
10
|
+
import styles from './payment.module.css.js';
|
|
6
11
|
|
|
7
|
-
function PaymentDetails({ cart, onCartChanged, }) {
|
|
12
|
+
function PaymentDetails({ atp, cart, fulfillmentMethods, isDisabled, onCartChanged, }) {
|
|
8
13
|
const [vatNumber, setVatNumber] = useState(cart.customerVatNumber);
|
|
9
14
|
const [poNumber, setPONumber] = useState(cart.poNumber);
|
|
15
|
+
const [industry, setIndustry] = useState(cart.properties.industry);
|
|
16
|
+
const [deliveryDate, setDeliveryDate] = useState(cart.requestedDeliveryDate);
|
|
17
|
+
const [asSoonAsPossible, setAsSoonAsPossible] = useState(false);
|
|
18
|
+
const [fulfillmentMethod, setFulfillmentMethod] = useState();
|
|
19
|
+
const [paymentMethod, setPaymentMethod] = useState(cart.paymentOptions?.paymentMethods?.[0]?.name || 'ADY');
|
|
10
20
|
const t = useFormattedMessage();
|
|
11
21
|
const onCartChangedDebounced = useDebouncedCallback(onCartChanged, 500);
|
|
12
22
|
useEffect(() => {
|
|
13
23
|
if (!vatNumber || !poNumber)
|
|
14
24
|
return;
|
|
15
|
-
onCartChangedDebounced({
|
|
25
|
+
onCartChangedDebounced({
|
|
26
|
+
...cart,
|
|
27
|
+
customerVatNumber: vatNumber,
|
|
28
|
+
fulfillmentMethod: 'Ship',
|
|
29
|
+
poNumber,
|
|
30
|
+
properties: { ...cart.properties, industry: industry || '' },
|
|
31
|
+
requestedDeliveryDate: deliveryDate || '',
|
|
32
|
+
requestedPickupDate: deliveryDate || '',
|
|
33
|
+
});
|
|
16
34
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
-
}, [vatNumber, poNumber]);
|
|
18
|
-
|
|
35
|
+
}, [vatNumber, poNumber, industry, deliveryDate]);
|
|
36
|
+
const atpSelectOptions = atp
|
|
37
|
+
.filter(atp => atp.date !== null)
|
|
38
|
+
.reduce((acc, atp) => ({
|
|
39
|
+
...acc,
|
|
40
|
+
[atp.date || '']: atp.displayDate,
|
|
41
|
+
}), {});
|
|
42
|
+
const fulfillmentMethodOptions = fulfillmentMethods.reduce((acc, method) => ({
|
|
43
|
+
...acc,
|
|
44
|
+
[method.toLocaleLowerCase()]: t(`fulfillmentMethod.${method}`),
|
|
45
|
+
}), {});
|
|
46
|
+
const paymentMethodOptions = cart.paymentOptions?.paymentMethods?.reduce((acc, method) => {
|
|
47
|
+
acc[method.name] = t(`paymentMethod.${method.description}`);
|
|
48
|
+
return acc;
|
|
49
|
+
}, {});
|
|
50
|
+
return (jsxs(Fragment, { children: [jsxs("div", { className: styles['delivery-date'], children: [jsx(Select, { isRequired: true, showLabel: true, "data-test-selector": "delivery-date", defaultSelectedOption: atp[0]?.date ?? undefined, isDisabled: asSoonAsPossible, label: t('Select a desired delivery date'), onChange: value => setDeliveryDate(value), options: atpSelectOptions, selectedOption: deliveryDate, variant: "solid" }), jsxs("div", { className: styles['asap-checkbox'], children: [jsx(Checkbox, { "data-test-selector": "asapCheckbox", isSelected: asSoonAsPossible, onChange: checked => {
|
|
51
|
+
setAsSoonAsPossible(checked);
|
|
52
|
+
if (checked)
|
|
53
|
+
setDeliveryDate('');
|
|
54
|
+
}, children: jsx(FormattedMessage, { id: "As soon as possible" }) }), jsx(Tooltip, { text: t('Selecting As Soon As Possible will enable us to send the products to you as they become available.') })] })] }), jsx(Select, { showLabel: true, isDisabled: fulfillmentMethods.length <= 1, label: t('Fulfillment method'), onChange: setFulfillmentMethod, options: fulfillmentMethodOptions, selectedOption: fulfillmentMethod, variant: "solid" }), jsx(Select, { isRequired: true, label: t('Industry'), onChange: value => setIndustry(value), options: {
|
|
55
|
+
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
|
56
|
+
PP: 'Private User',
|
|
57
|
+
AU: 'Automotive',
|
|
58
|
+
MC: 'Motorcycle',
|
|
59
|
+
BC: 'Bicycle',
|
|
60
|
+
TR: 'Truck',
|
|
61
|
+
AG: 'Agricultural',
|
|
62
|
+
AV: 'Aviation',
|
|
63
|
+
MA: 'Maritime',
|
|
64
|
+
OT: 'Other',
|
|
65
|
+
/* eslint-enable sort-keys-fix/sort-keys-fix */
|
|
66
|
+
}, selectedOption: industry, variant: "solid" }), jsx(TextField, { showLabel: true, isDisabled: isDisabled, label: t('VAT Number'), minLength: 8, name: "vatNumber", onChange: setVatNumber, value: vatNumber }), jsx(TextField, { showLabel: true, isDisabled: isDisabled, label: t('PO Number'), onChange: setPONumber, value: poNumber }), paymentMethodOptions && (jsx(Select, { isDisabled: (cart.paymentOptions?.paymentMethods &&
|
|
67
|
+
cart.paymentOptions.paymentMethods.length <= 1) ??
|
|
68
|
+
true, label: t('Payment method'), onChange: value => setPaymentMethod(value), options: paymentMethodOptions, selectedOption: paymentMethod, variant: "solid" }))] }));
|
|
19
69
|
}
|
|
20
70
|
|
|
21
71
|
export { PaymentDetails };
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import { AdyenPaymentModel, CartModel } from '../shared/api/storefront/model/storefront.model';
|
|
2
|
-
export declare function Payment({ cart: _cart, onError, onPaymentComplete, }: {
|
|
1
|
+
import { AdyenPaymentModel, CartModel, CheckoutAtpEntry } from '../shared/api/storefront/model/storefront.model';
|
|
2
|
+
export declare function Payment({ atp, cart: _cart, form, fulfillmentMethods, onError: _onError, onPaymentComplete, onProcessing, onValidating, }: {
|
|
3
|
+
atp: CheckoutAtpEntry[];
|
|
3
4
|
cart: CartModel;
|
|
4
|
-
|
|
5
|
+
form: string;
|
|
6
|
+
fulfillmentMethods: string[];
|
|
7
|
+
onError?: (error: unknown, result: AdyenPaymentModel | null) => void;
|
|
5
8
|
onPaymentComplete: () => void;
|
|
9
|
+
onProcessing: (processing: boolean) => void;
|
|
10
|
+
onValidating: (validating: boolean) => void;
|
|
6
11
|
}): import("react/jsx-runtime").JSX.Element;
|