@wix/headless-bookings 0.0.30 → 0.0.31
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/cjs/dist/react/core/payment/Payment.d.ts +193 -0
- package/cjs/dist/react/core/payment/Payment.js +202 -0
- package/cjs/dist/react/index.d.ts +2 -0
- package/cjs/dist/react/index.js +2 -0
- package/cjs/dist/react/payment/Payment.d.ts +342 -0
- package/cjs/dist/react/payment/Payment.js +294 -0
- package/cjs/dist/react/payment/PaymentLineItem.d.ts +144 -0
- package/cjs/dist/react/payment/PaymentLineItem.js +141 -0
- package/cjs/dist/services/index.d.ts +1 -0
- package/cjs/dist/services/index.js +1 -0
- package/cjs/dist/services/payment/payment.d.ts +32 -0
- package/cjs/dist/services/payment/payment.def.d.ts +66 -0
- package/cjs/dist/services/payment/payment.def.js +9 -0
- package/cjs/dist/services/payment/payment.js +167 -0
- package/cjs/dist/utils/money.d.ts +11 -0
- package/cjs/dist/utils/money.js +16 -0
- package/dist/react/core/payment/Payment.d.ts +193 -0
- package/dist/react/core/payment/Payment.js +202 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +2 -0
- package/dist/react/payment/Payment.d.ts +342 -0
- package/dist/react/payment/Payment.js +294 -0
- package/dist/react/payment/PaymentLineItem.d.ts +144 -0
- package/dist/react/payment/PaymentLineItem.js +141 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/services/payment/payment.d.ts +32 -0
- package/dist/services/payment/payment.def.d.ts +66 -0
- package/dist/services/payment/payment.def.js +9 -0
- package/dist/services/payment/payment.js +167 -0
- package/dist/utils/money.d.ts +11 -0
- package/dist/utils/money.js +16 -0
- package/package.json +2 -2
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Payment Components
|
|
3
|
+
* Provides low-level access to PaymentService via render props
|
|
4
|
+
* Note: Currently supports single service only
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { type PaymentServiceConfig, type PaymentDetails, type SlotService } from '../../../services/payment/payment.js';
|
|
8
|
+
import type { MoneyData } from '@wix/headless-components/react';
|
|
9
|
+
/**
|
|
10
|
+
* Props for Payment.Root component
|
|
11
|
+
*/
|
|
12
|
+
export interface RootProps {
|
|
13
|
+
children: React.ReactNode | ((props: {
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
hasError: boolean;
|
|
16
|
+
}) => React.ReactNode);
|
|
17
|
+
/** Service config - SSR only (paymentDetails) */
|
|
18
|
+
paymentServiceConfig?: PaymentServiceConfig;
|
|
19
|
+
/** Slot services for lazy loading (triggers API call) */
|
|
20
|
+
slotServices?: SlotService[];
|
|
21
|
+
/** Number of participants for lazy loading */
|
|
22
|
+
numberOfParticipants?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Root component that provides payment context.
|
|
26
|
+
* Supports 3 modes:
|
|
27
|
+
* 1. SSR: paymentServiceConfig.paymentDetails - pre-fetched data
|
|
28
|
+
* 2. Lazy loading: slotServices + numberOfParticipants props - calls API on init
|
|
29
|
+
* 3. Reactive: no config/props - reads from BookingService signals
|
|
30
|
+
*
|
|
31
|
+
* @component
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* // SSR mode
|
|
35
|
+
* <Payment.Root paymentServiceConfig={{ paymentDetails }}>
|
|
36
|
+
* <Payment.Summary />
|
|
37
|
+
* </Payment.Root>
|
|
38
|
+
*
|
|
39
|
+
* // Lazy loading mode
|
|
40
|
+
* <Payment.Root slotServices={[...]} numberOfParticipants={2}>
|
|
41
|
+
* {({ isLoading }) => isLoading ? <div>Loading...</div> : <Payment.Summary />}
|
|
42
|
+
* </Payment.Root>
|
|
43
|
+
*
|
|
44
|
+
* // Reactive mode
|
|
45
|
+
* <Payment.Root>
|
|
46
|
+
* <Payment.Summary />
|
|
47
|
+
* </Payment.Root>
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function Root(props: RootProps): React.ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* Props for Payment render prop component
|
|
53
|
+
*/
|
|
54
|
+
export interface PaymentProps {
|
|
55
|
+
children: (data: {
|
|
56
|
+
paymentDetails: PaymentDetails | null;
|
|
57
|
+
isLoading: boolean;
|
|
58
|
+
error: string | null;
|
|
59
|
+
}) => React.ReactNode;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Core component that provides access to full payment details via render props.
|
|
63
|
+
*
|
|
64
|
+
* @component
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* <Payment.Payment>
|
|
68
|
+
* {({ paymentDetails, isLoading, error }) => (
|
|
69
|
+
* isLoading ? <div>Loading...</div> : <div>{JSON.stringify(paymentDetails)}</div>
|
|
70
|
+
* )}
|
|
71
|
+
* </Payment.Payment>
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function Payment(props: PaymentProps): React.ReactNode;
|
|
75
|
+
/**
|
|
76
|
+
* Props for Summary render prop component
|
|
77
|
+
*/
|
|
78
|
+
export interface SummaryProps {
|
|
79
|
+
children: (data: {
|
|
80
|
+
subtotal: MoneyData | null;
|
|
81
|
+
total: MoneyData | null;
|
|
82
|
+
currency: string;
|
|
83
|
+
tax: MoneyData | null;
|
|
84
|
+
hasTax: boolean;
|
|
85
|
+
discount: MoneyData | null;
|
|
86
|
+
hasDiscount: boolean;
|
|
87
|
+
payNow: MoneyData | null;
|
|
88
|
+
payLater: MoneyData | null;
|
|
89
|
+
isDeposit: boolean;
|
|
90
|
+
}) => React.ReactNode;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Core component that provides access to payment summary totals via render props.
|
|
94
|
+
* Returns all pricing totals with MoneyData format for the Money component.
|
|
95
|
+
* Use data-attributes for conditional visibility via CSS.
|
|
96
|
+
*
|
|
97
|
+
* @component
|
|
98
|
+
* @example
|
|
99
|
+
* ```tsx
|
|
100
|
+
* <Payment.Summary>
|
|
101
|
+
* {({ subtotal, tax, total, hasTax, hasDiscount, discount, isDeposit, payNow }) => (
|
|
102
|
+
* <div>
|
|
103
|
+
* <div>Subtotal: <Money money={subtotal} /></div>
|
|
104
|
+
* <div data-has-tax={hasTax}>Tax: <Money money={tax} /></div>
|
|
105
|
+
* <div data-has-discount={hasDiscount}>Discount: <Money money={discount} /></div>
|
|
106
|
+
* <div>Total: <Money money={total} /></div>
|
|
107
|
+
* <div data-has-deposit={isDeposit}>Pay Now: <Money money={payNow} /></div>
|
|
108
|
+
* </div>
|
|
109
|
+
* )}
|
|
110
|
+
* </Payment.Summary>
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function Summary(props: SummaryProps): React.ReactNode;
|
|
114
|
+
import type { CalculatedLineItem as ApiCalculatedLineItem } from '@wix/auto_sdk_ecom_totals-calculator';
|
|
115
|
+
import type { LineItemAdditionalInfo } from '../../../services/payment/payment.js';
|
|
116
|
+
/**
|
|
117
|
+
* Combined line item with SDK data and additional computed info
|
|
118
|
+
*/
|
|
119
|
+
export interface CombinedLineItem {
|
|
120
|
+
/** SDK line item data */
|
|
121
|
+
sdkLineItem: ApiCalculatedLineItem;
|
|
122
|
+
/** Additional computed info */
|
|
123
|
+
additionalInfo: LineItemAdditionalInfo | undefined;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Props for LineItems render prop component
|
|
127
|
+
*/
|
|
128
|
+
export interface LineItemsProps {
|
|
129
|
+
children: (data: {
|
|
130
|
+
lineItems: CombinedLineItem[];
|
|
131
|
+
hasLineItems: boolean;
|
|
132
|
+
currency: string;
|
|
133
|
+
}) => React.ReactNode;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Core component that provides access to calculated line items via render props.
|
|
137
|
+
* Combines SDK line items with additional computed info.
|
|
138
|
+
* Note: Currently supports single service only (always 1 line item).
|
|
139
|
+
*
|
|
140
|
+
* @component
|
|
141
|
+
* @example
|
|
142
|
+
* ```tsx
|
|
143
|
+
* <Payment.LineItems>
|
|
144
|
+
* {({ lineItems, hasLineItems, currency }) => (
|
|
145
|
+
* <ul data-has-items={hasLineItems}>
|
|
146
|
+
* {lineItems.map((item) => (
|
|
147
|
+
* <Payment.LineItem key={item.sdkLineItem.lineItemId} lineItem={item} currency={currency}>
|
|
148
|
+
* {({ totalPriceAfterTaxAndDiscount }) => (
|
|
149
|
+
* <li><Money money={totalPriceAfterTaxAndDiscount} /></li>
|
|
150
|
+
* )}
|
|
151
|
+
* </Payment.LineItem>
|
|
152
|
+
* ))}
|
|
153
|
+
* </ul>
|
|
154
|
+
* )}
|
|
155
|
+
* </Payment.LineItems>
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare function LineItems(props: LineItemsProps): React.ReactNode;
|
|
159
|
+
/**
|
|
160
|
+
* Props for LineItem render prop component
|
|
161
|
+
*/
|
|
162
|
+
export interface LineItemProps {
|
|
163
|
+
lineItem: CombinedLineItem;
|
|
164
|
+
currency: string;
|
|
165
|
+
children: (data: {
|
|
166
|
+
totalPrice: MoneyData | null;
|
|
167
|
+
subtotal: MoneyData | null;
|
|
168
|
+
tax: MoneyData | null;
|
|
169
|
+
discount: MoneyData | null;
|
|
170
|
+
deposit: MoneyData | null;
|
|
171
|
+
priceText: string | null;
|
|
172
|
+
}) => React.ReactNode;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Core component that provides access to a single line item via render props.
|
|
176
|
+
* Use data-attributes for conditional visibility via CSS.
|
|
177
|
+
*
|
|
178
|
+
* @component
|
|
179
|
+
* @example
|
|
180
|
+
* ```tsx
|
|
181
|
+
* <Payment.LineItem lineItem={item} currency="USD">
|
|
182
|
+
* {({ totalPrice, subtotal, tax, discount, deposit, priceText }) => (
|
|
183
|
+
* <div>
|
|
184
|
+
* <span><Money money={totalPrice} /></span>
|
|
185
|
+
* <span data-has-discount={!!discount?.amount}><Money money={discount} /></span>
|
|
186
|
+
* <span data-has-deposit={!!deposit?.amount}><Money money={deposit} /></span>
|
|
187
|
+
* <span data-has-price-text={!!priceText}>{priceText}</span>
|
|
188
|
+
* </div>
|
|
189
|
+
* )}
|
|
190
|
+
* </Payment.LineItem>
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
export declare function LineItem(props: LineItemProps): React.ReactNode;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { WixServices, useService } from '@wix/services-manager-react';
|
|
3
|
+
import { createServicesMap } from '@wix/services-manager';
|
|
4
|
+
import { PaymentServiceDefinition, PaymentService, } from '../../../services/payment/payment.js';
|
|
5
|
+
import { convertMultiCurrencyPriceToMoneyData } from '../../../utils/money.js';
|
|
6
|
+
/**
|
|
7
|
+
* Internal content component that reads from service
|
|
8
|
+
*/
|
|
9
|
+
function RootContent({ children, }) {
|
|
10
|
+
const paymentService = useService(PaymentServiceDefinition);
|
|
11
|
+
const isLoading = paymentService.isLoadingSignal.get();
|
|
12
|
+
const error = paymentService.errorSignal.get();
|
|
13
|
+
const hasError = !!error;
|
|
14
|
+
if (typeof children === 'function') {
|
|
15
|
+
return children({ isLoading, hasError });
|
|
16
|
+
}
|
|
17
|
+
return children;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Root component that provides payment context.
|
|
21
|
+
* Supports 3 modes:
|
|
22
|
+
* 1. SSR: paymentServiceConfig.paymentDetails - pre-fetched data
|
|
23
|
+
* 2. Lazy loading: slotServices + numberOfParticipants props - calls API on init
|
|
24
|
+
* 3. Reactive: no config/props - reads from BookingService signals
|
|
25
|
+
*
|
|
26
|
+
* @component
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* // SSR mode
|
|
30
|
+
* <Payment.Root paymentServiceConfig={{ paymentDetails }}>
|
|
31
|
+
* <Payment.Summary />
|
|
32
|
+
* </Payment.Root>
|
|
33
|
+
*
|
|
34
|
+
* // Lazy loading mode
|
|
35
|
+
* <Payment.Root slotServices={[...]} numberOfParticipants={2}>
|
|
36
|
+
* {({ isLoading }) => isLoading ? <div>Loading...</div> : <Payment.Summary />}
|
|
37
|
+
* </Payment.Root>
|
|
38
|
+
*
|
|
39
|
+
* // Reactive mode
|
|
40
|
+
* <Payment.Root>
|
|
41
|
+
* <Payment.Summary />
|
|
42
|
+
* </Payment.Root>
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export function Root(props) {
|
|
46
|
+
const { children, paymentServiceConfig = {}, slotServices, numberOfParticipants } = props;
|
|
47
|
+
// Merge public config with lazy loading props into internal config
|
|
48
|
+
const internalConfig = {
|
|
49
|
+
...paymentServiceConfig,
|
|
50
|
+
slotServices,
|
|
51
|
+
numberOfParticipants,
|
|
52
|
+
};
|
|
53
|
+
return (_jsx(WixServices, { servicesMap: createServicesMap().addService(PaymentServiceDefinition, PaymentService, internalConfig), children: _jsx(RootContent, { children: children }) }));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Core component that provides access to full payment details via render props.
|
|
57
|
+
*
|
|
58
|
+
* @component
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* <Payment.Payment>
|
|
62
|
+
* {({ paymentDetails, isLoading, error }) => (
|
|
63
|
+
* isLoading ? <div>Loading...</div> : <div>{JSON.stringify(paymentDetails)}</div>
|
|
64
|
+
* )}
|
|
65
|
+
* </Payment.Payment>
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export function Payment(props) {
|
|
69
|
+
const paymentService = useService(PaymentServiceDefinition);
|
|
70
|
+
const paymentDetails = paymentService.paymentDetailsSignal.get();
|
|
71
|
+
const isLoading = paymentService.isLoadingSignal.get();
|
|
72
|
+
const error = paymentService.errorSignal.get();
|
|
73
|
+
return props.children({ paymentDetails, isLoading, error });
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Core component that provides access to payment summary totals via render props.
|
|
77
|
+
* Returns all pricing totals with MoneyData format for the Money component.
|
|
78
|
+
* Use data-attributes for conditional visibility via CSS.
|
|
79
|
+
*
|
|
80
|
+
* @component
|
|
81
|
+
* @example
|
|
82
|
+
* ```tsx
|
|
83
|
+
* <Payment.Summary>
|
|
84
|
+
* {({ subtotal, tax, total, hasTax, hasDiscount, discount, isDeposit, payNow }) => (
|
|
85
|
+
* <div>
|
|
86
|
+
* <div>Subtotal: <Money money={subtotal} /></div>
|
|
87
|
+
* <div data-has-tax={hasTax}>Tax: <Money money={tax} /></div>
|
|
88
|
+
* <div data-has-discount={hasDiscount}>Discount: <Money money={discount} /></div>
|
|
89
|
+
* <div>Total: <Money money={total} /></div>
|
|
90
|
+
* <div data-has-deposit={isDeposit}>Pay Now: <Money money={payNow} /></div>
|
|
91
|
+
* </div>
|
|
92
|
+
* )}
|
|
93
|
+
* </Payment.Summary>
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export function Summary(props) {
|
|
97
|
+
const paymentService = useService(PaymentServiceDefinition);
|
|
98
|
+
const paymentDetails = paymentService.paymentDetailsSignal.get();
|
|
99
|
+
const currency = paymentDetails?.response?.currency || 'USD';
|
|
100
|
+
const priceSummary = paymentDetails?.response?.priceSummary;
|
|
101
|
+
// Always present
|
|
102
|
+
const subtotal = convertMultiCurrencyPriceToMoneyData(priceSummary?.subtotal, currency);
|
|
103
|
+
const total = convertMultiCurrencyPriceToMoneyData(priceSummary?.total, currency);
|
|
104
|
+
// May or may not exist
|
|
105
|
+
const tax = convertMultiCurrencyPriceToMoneyData(priceSummary?.tax, currency);
|
|
106
|
+
const hasTax = tax !== null && tax.amount > 0;
|
|
107
|
+
const discount = convertMultiCurrencyPriceToMoneyData(priceSummary?.discount, currency);
|
|
108
|
+
const hasDiscount = discount !== null && discount.amount > 0;
|
|
109
|
+
// Deposit scenarios only
|
|
110
|
+
const payNow = convertMultiCurrencyPriceToMoneyData(paymentDetails?.response?.payNow?.total, currency);
|
|
111
|
+
const payLater = convertMultiCurrencyPriceToMoneyData(paymentDetails?.response?.payLater?.total, currency);
|
|
112
|
+
const isDeposit = payNow !== null && total !== null && payNow.amount < total.amount;
|
|
113
|
+
return props.children({
|
|
114
|
+
subtotal,
|
|
115
|
+
total,
|
|
116
|
+
currency,
|
|
117
|
+
tax,
|
|
118
|
+
hasTax,
|
|
119
|
+
discount,
|
|
120
|
+
hasDiscount,
|
|
121
|
+
payNow,
|
|
122
|
+
payLater,
|
|
123
|
+
isDeposit,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Core component that provides access to calculated line items via render props.
|
|
128
|
+
* Combines SDK line items with additional computed info.
|
|
129
|
+
* Note: Currently supports single service only (always 1 line item).
|
|
130
|
+
*
|
|
131
|
+
* @component
|
|
132
|
+
* @example
|
|
133
|
+
* ```tsx
|
|
134
|
+
* <Payment.LineItems>
|
|
135
|
+
* {({ lineItems, hasLineItems, currency }) => (
|
|
136
|
+
* <ul data-has-items={hasLineItems}>
|
|
137
|
+
* {lineItems.map((item) => (
|
|
138
|
+
* <Payment.LineItem key={item.sdkLineItem.lineItemId} lineItem={item} currency={currency}>
|
|
139
|
+
* {({ totalPriceAfterTaxAndDiscount }) => (
|
|
140
|
+
* <li><Money money={totalPriceAfterTaxAndDiscount} /></li>
|
|
141
|
+
* )}
|
|
142
|
+
* </Payment.LineItem>
|
|
143
|
+
* ))}
|
|
144
|
+
* </ul>
|
|
145
|
+
* )}
|
|
146
|
+
* </Payment.LineItems>
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export function LineItems(props) {
|
|
150
|
+
const paymentService = useService(PaymentServiceDefinition);
|
|
151
|
+
const paymentDetails = paymentService.paymentDetailsSignal.get();
|
|
152
|
+
const sdkLineItems = paymentDetails?.response?.calculatedLineItems || [];
|
|
153
|
+
const additionalInfoList = paymentDetails?.additionalInfo?.lineItems || [];
|
|
154
|
+
const currency = paymentDetails?.response?.currency || 'USD';
|
|
155
|
+
// Combine SDK line items with additional info
|
|
156
|
+
const lineItems = sdkLineItems.map((sdkLineItem) => ({
|
|
157
|
+
sdkLineItem,
|
|
158
|
+
additionalInfo: additionalInfoList.find((info) => info.lineItemId === sdkLineItem.lineItemId),
|
|
159
|
+
}));
|
|
160
|
+
const hasLineItems = lineItems.length > 0;
|
|
161
|
+
return props.children({ lineItems, hasLineItems, currency });
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Core component that provides access to a single line item via render props.
|
|
165
|
+
* Use data-attributes for conditional visibility via CSS.
|
|
166
|
+
*
|
|
167
|
+
* @component
|
|
168
|
+
* @example
|
|
169
|
+
* ```tsx
|
|
170
|
+
* <Payment.LineItem lineItem={item} currency="USD">
|
|
171
|
+
* {({ totalPrice, subtotal, tax, discount, deposit, priceText }) => (
|
|
172
|
+
* <div>
|
|
173
|
+
* <span><Money money={totalPrice} /></span>
|
|
174
|
+
* <span data-has-discount={!!discount?.amount}><Money money={discount} /></span>
|
|
175
|
+
* <span data-has-deposit={!!deposit?.amount}><Money money={deposit} /></span>
|
|
176
|
+
* <span data-has-price-text={!!priceText}>{priceText}</span>
|
|
177
|
+
* </div>
|
|
178
|
+
* )}
|
|
179
|
+
* </Payment.LineItem>
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export function LineItem(props) {
|
|
183
|
+
const { lineItem, currency, children } = props;
|
|
184
|
+
const { sdkLineItem, additionalInfo } = lineItem;
|
|
185
|
+
const pricesBreakdown = sdkLineItem?.pricesBreakdown;
|
|
186
|
+
// Prices (from SDK)
|
|
187
|
+
const totalPrice = convertMultiCurrencyPriceToMoneyData(pricesBreakdown?.totalPriceAfterTax, currency);
|
|
188
|
+
const subtotal = convertMultiCurrencyPriceToMoneyData(pricesBreakdown?.fullPrice, currency);
|
|
189
|
+
const tax = convertMultiCurrencyPriceToMoneyData(pricesBreakdown?.taxDetails?.totalTax, currency);
|
|
190
|
+
const discount = convertMultiCurrencyPriceToMoneyData(pricesBreakdown?.totalDiscount, currency);
|
|
191
|
+
const deposit = convertMultiCurrencyPriceToMoneyData(pricesBreakdown?.depositAmount, currency);
|
|
192
|
+
// Custom price text (for CUSTOM rate type)
|
|
193
|
+
const priceText = additionalInfo?.priceText || null;
|
|
194
|
+
return children({
|
|
195
|
+
totalPrice,
|
|
196
|
+
subtotal,
|
|
197
|
+
tax,
|
|
198
|
+
discount,
|
|
199
|
+
deposit,
|
|
200
|
+
priceText,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
@@ -5,3 +5,5 @@ export * as ServiceMedia from './service/ServiceMedia.js';
|
|
|
5
5
|
export * as TimeSlotList from './time-slot-list/TimeSlotList.js';
|
|
6
6
|
export * as ServiceList from './service-list/ServiceList.js';
|
|
7
7
|
export * as Location from './location/Location.js';
|
|
8
|
+
export * as Payment from './payment/Payment.js';
|
|
9
|
+
export * as PaymentLineItem from './payment/PaymentLineItem.js';
|
package/cjs/dist/react/index.js
CHANGED
|
@@ -5,3 +5,5 @@ export * as ServiceMedia from './service/ServiceMedia.js';
|
|
|
5
5
|
export * as TimeSlotList from './time-slot-list/TimeSlotList.js';
|
|
6
6
|
export * as ServiceList from './service-list/ServiceList.js';
|
|
7
7
|
export * as Location from './location/Location.js';
|
|
8
|
+
export * as Payment from './payment/Payment.js';
|
|
9
|
+
export * as PaymentLineItem from './payment/PaymentLineItem.js';
|