@driveflux/pdf 4.0.40 → 4.0.41-next.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.
Files changed (39) hide show
  1. package/dist/__mocks__/quotation.js +10 -11
  2. package/dist/__mocks__/subscription.js +379 -121
  3. package/dist/__mocks__/tou.js +9 -10
  4. package/dist/components/FluxLogo.js +62 -3
  5. package/dist/components/StandardPage.js +99 -10
  6. package/dist/debug.js +205 -26
  7. package/dist/index.js +0 -1
  8. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js +145 -27
  9. package/dist/templates/QuotationPdf/GFV.js +49 -12
  10. package/dist/templates/QuotationPdf/Header.js +63 -5
  11. package/dist/templates/QuotationPdf/Pricing.js +573 -201
  12. package/dist/templates/QuotationPdf/QuotationPdfPage.js +23 -3
  13. package/dist/templates/QuotationPdf/SectionBoxNew.js +34 -4
  14. package/dist/templates/QuotationPdf/TermsSection.js +42 -5
  15. package/dist/templates/QuotationPdf/VehiclePhotos.js +54 -24
  16. package/dist/templates/QuotationPdf/index.js +189 -10
  17. package/dist/templates/QuotationPdf/translations.js +34 -22
  18. package/dist/templates/QuotationPdf/utils.js +83 -49
  19. package/dist/templates/SubscriptionAgreement/Confirmation.js +65 -10
  20. package/dist/templates/SubscriptionAgreement/CoverPage.js +93 -10
  21. package/dist/templates/SubscriptionAgreement/CoverPageSection.js +16 -5
  22. package/dist/templates/SubscriptionAgreement/Details.js +139 -59
  23. package/dist/templates/SubscriptionAgreement/Footer.js +48 -6
  24. package/dist/templates/SubscriptionAgreement/Header.js +35 -5
  25. package/dist/templates/SubscriptionAgreement/LabelValue.js +25 -3
  26. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js +26 -3
  27. package/dist/templates/SubscriptionAgreement/TermsOfUse.js +94 -8
  28. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js +97 -11
  29. package/dist/templates/SubscriptionAgreement/index.js +245 -15
  30. package/dist/templates/SubscriptionAgreement/translations.js +195 -194
  31. package/dist/templates/SubscriptionAgreement/types.js +1 -2
  32. package/dist/templates/SubscriptionAgreement/utils.js +16 -11
  33. package/dist/templates/index.js +0 -1
  34. package/dist/theme/colors.js +44 -63
  35. package/dist/theme/index.js +0 -1
  36. package/dist/types.js +1 -2
  37. package/dist/utils.js +159 -16
  38. package/dist/watch.js +3 -4
  39. package/package.json +2 -2
@@ -3,49 +3,77 @@ import { formatMoney } from '@driveflux/format-money';
3
3
  import { Text, View } from '@react-pdf/renderer';
4
4
  import { colors } from '../../theme/colors.js';
5
5
  import SectionBoxNew from './SectionBoxNew.js';
6
- const Pricing = ({ quotation, t }) => {
7
- const { reservationFee, deposit, subscriptionFee, extraCharges, couponType, discountAmount, quotedPrices, } = quotation.fees;
8
- const taxRate = quotation.fees.taxAmount / quotation.fees.amountBeforeTax;
9
- const taxPercentage = (taxRate * 100).toFixed(0);
10
- const hasDiscounts = quotedPrices !== null && quotedPrices !== undefined;
11
- let totalUpfrontFee = hasDiscounts
12
- ? (reservationFee || 0) + (quotedPrices?.deposit || 0)
13
- : (reservationFee || 0) + deposit;
14
- let totalMonthlyFee = hasDiscounts
15
- ? quotedPrices?.subscriptionFee || 0
16
- : subscriptionFee;
6
+ var Pricing = function(param) {
7
+ var quotation = param.quotation, t = param.t;
8
+ var _quotation_fees_discountAmount, _quotation_fees_discountAmount1;
9
+ var _quotation_fees = quotation.fees, reservationFee = _quotation_fees.reservationFee, deposit = _quotation_fees.deposit, subscriptionFee = _quotation_fees.subscriptionFee, extraCharges = _quotation_fees.extraCharges, couponType = _quotation_fees.couponType, discountAmount = _quotation_fees.discountAmount, quotedPrices = _quotation_fees.quotedPrices;
10
+ var taxRate = quotation.fees.taxAmount / quotation.fees.amountBeforeTax;
11
+ var taxPercentage = (taxRate * 100).toFixed(0);
12
+ var hasDiscounts = quotedPrices !== null && quotedPrices !== undefined;
13
+ var totalUpfrontFee = hasDiscounts ? (reservationFee || 0) + ((quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.deposit) || 0) : (reservationFee || 0) + deposit;
14
+ var totalMonthlyFee = hasDiscounts ? (quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.subscriptionFee) || 0 : subscriptionFee;
17
15
  if (hasDiscounts) {
18
- for (const charge of quotedPrices.extraCharges) {
19
- if (charge.type === 'upfront') {
20
- totalUpfrontFee += charge.amount;
16
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
17
+ try {
18
+ for(var _iterator = quotedPrices.extraCharges[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
19
+ var charge = _step.value;
20
+ if (charge.type === 'upfront') {
21
+ totalUpfrontFee += charge.amount;
22
+ } else if (charge.type === 'monthly') {
23
+ totalMonthlyFee += charge.amount;
24
+ }
21
25
  }
22
- else if (charge.type === 'monthly') {
23
- totalMonthlyFee += charge.amount;
26
+ } catch (err) {
27
+ _didIteratorError = true;
28
+ _iteratorError = err;
29
+ } finally{
30
+ try {
31
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
32
+ _iterator.return();
33
+ }
34
+ } finally{
35
+ if (_didIteratorError) {
36
+ throw _iteratorError;
37
+ }
24
38
  }
25
39
  }
26
- }
27
- else {
28
- for (const charge of extraCharges) {
29
- if (charge.type === 'upfront') {
30
- totalUpfrontFee += charge.amount;
40
+ } else {
41
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
42
+ try {
43
+ for(var _iterator1 = extraCharges[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
44
+ var charge1 = _step1.value;
45
+ if (charge1.type === 'upfront') {
46
+ totalUpfrontFee += charge1.amount;
47
+ } else if (charge1.type === 'monthly') {
48
+ totalMonthlyFee += charge1.amount;
49
+ }
31
50
  }
32
- else if (charge.type === 'monthly') {
33
- totalMonthlyFee += charge.amount;
51
+ } catch (err) {
52
+ _didIteratorError1 = true;
53
+ _iteratorError1 = err;
54
+ } finally{
55
+ try {
56
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
57
+ _iterator1.return();
58
+ }
59
+ } finally{
60
+ if (_didIteratorError1) {
61
+ throw _iteratorError1;
62
+ }
34
63
  }
35
64
  }
36
65
  }
37
66
  if (quotation.couponCode) {
38
67
  if (couponType === 'upfront') {
39
68
  totalUpfrontFee -= discountAmount || 0;
40
- }
41
- else if (couponType === 'monthly') {
69
+ } else if (couponType === 'monthly') {
42
70
  totalMonthlyFee -= discountAmount || 0;
43
71
  }
44
72
  }
45
- const serviceMonthlyFee = totalMonthlyFee * taxRate;
46
- const serviceUpfrontFee = (totalUpfrontFee * taxRate).toFixed(2);
47
- const getFeeValue = (key) => {
48
- switch (key) {
73
+ var serviceMonthlyFee = totalMonthlyFee * taxRate;
74
+ var serviceUpfrontFee = (totalUpfrontFee * taxRate).toFixed(2);
75
+ var getFeeValue = function(key) {
76
+ switch(key){
49
77
  case 'reservationFee':
50
78
  return reservationFee;
51
79
  case 'deposit':
@@ -56,296 +84,640 @@ const Pricing = ({ quotation, t }) => {
56
84
  return null;
57
85
  }
58
86
  };
59
- const getQuotedFeeValue = (key) => {
60
- switch (key) {
87
+ var getQuotedFeeValue = function(key) {
88
+ switch(key){
61
89
  case 'deposit':
62
- return quotedPrices?.deposit;
90
+ return quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.deposit;
63
91
  case 'subscriptionFee':
64
- return quotedPrices?.subscriptionFee;
92
+ return quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.subscriptionFee;
65
93
  case 'reservationFee':
66
94
  return reservationFee;
67
95
  default:
68
96
  return null;
69
97
  }
70
98
  };
71
- const upfrontTotalDiscount = () => {
99
+ var upfrontTotalDiscount = function() {
100
+ var _quotedPrices_extraCharges;
72
101
  // Calculate base fees total (deposit)
73
- const originalBaseTotal = deposit;
74
- const quotedBaseTotal = quotedPrices?.deposit || 0;
102
+ var originalBaseTotal = deposit;
103
+ var quotedBaseTotal = (quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.deposit) || 0;
75
104
  // Calculate original upfront extra charges
76
- const originalExtraCharges = extraCharges
77
- .filter((charge) => charge.type === 'upfront')
78
- .reduce((sum, charge) => sum + charge.amount, 0);
105
+ var originalExtraCharges = extraCharges.filter(function(charge) {
106
+ return charge.type === 'upfront';
107
+ }).reduce(function(sum, charge) {
108
+ return sum + charge.amount;
109
+ }, 0);
79
110
  // Calculate quoted upfront extra charges
80
- const quotedExtraCharges = quotedPrices?.extraCharges
81
- ?.filter((charge) => charge.type === 'upfront')
82
- .reduce((sum, charge) => sum + charge.amount, 0) || originalExtraCharges;
83
- const originalTotal = originalBaseTotal + originalExtraCharges;
84
- const quotedTotal = quotedBaseTotal + quotedExtraCharges;
111
+ var quotedExtraCharges = (quotedPrices === null || quotedPrices === void 0 ? void 0 : (_quotedPrices_extraCharges = quotedPrices.extraCharges) === null || _quotedPrices_extraCharges === void 0 ? void 0 : _quotedPrices_extraCharges.filter(function(charge) {
112
+ return charge.type === 'upfront';
113
+ }).reduce(function(sum, charge) {
114
+ return sum + charge.amount;
115
+ }, 0)) || originalExtraCharges;
116
+ var originalTotal = originalBaseTotal + originalExtraCharges;
117
+ var quotedTotal = quotedBaseTotal + quotedExtraCharges;
85
118
  // Calculate total discount (original - quoted)
86
- const totalDiscount = originalTotal - quotedTotal;
119
+ var totalDiscount = originalTotal - quotedTotal;
87
120
  return totalDiscount;
88
121
  };
89
- return (_jsx(View, { children: _jsx(SectionBoxNew, { topContent: _jsxs(_Fragment, { children: [_jsx(Text, { style: {
122
+ return /*#__PURE__*/ _jsx(View, {
123
+ children: /*#__PURE__*/ _jsx(SectionBoxNew, {
124
+ topContent: /*#__PURE__*/ _jsxs(_Fragment, {
125
+ children: [
126
+ /*#__PURE__*/ _jsx(Text, {
127
+ style: {
90
128
  textTransform: 'uppercase',
91
129
  fontSize: 12,
92
- fontWeight: 'bold',
93
- }, children: t?.title }), _jsx(Text, { style: {
130
+ fontWeight: 'bold'
131
+ },
132
+ children: t === null || t === void 0 ? void 0 : t.title
133
+ }),
134
+ /*#__PURE__*/ _jsx(Text, {
135
+ style: {
94
136
  fontWeight: 'bold',
95
137
  color: colors.black,
96
- letterSpacing: 1,
97
- }, children: t?.fees.upfront.title }), t?.fees.upfront.content.map((fee) => {
98
- const feeValue = getFeeValue(fee.key)?.toFixed(2);
99
- const quotedFeeValue = getQuotedFeeValue(fee.key)?.toFixed(2) ?? undefined;
138
+ letterSpacing: 1
139
+ },
140
+ children: t === null || t === void 0 ? void 0 : t.fees.upfront.title
141
+ }),
142
+ t === null || t === void 0 ? void 0 : t.fees.upfront.content.map(function(fee) {
143
+ var _getFeeValue, _getQuotedFeeValue;
144
+ var feeValue = (_getFeeValue = getFeeValue(fee.key)) === null || _getFeeValue === void 0 ? void 0 : _getFeeValue.toFixed(2);
145
+ var _getQuotedFeeValue_toFixed;
146
+ var quotedFeeValue = (_getQuotedFeeValue_toFixed = (_getQuotedFeeValue = getQuotedFeeValue(fee.key)) === null || _getQuotedFeeValue === void 0 ? void 0 : _getQuotedFeeValue.toFixed(2)) !== null && _getQuotedFeeValue_toFixed !== void 0 ? _getQuotedFeeValue_toFixed : undefined;
100
147
  if (feeValue === '0.00') {
101
148
  return null;
102
149
  }
103
- return (_jsxs(View, { style: {
150
+ return /*#__PURE__*/ _jsxs(View, {
151
+ style: {
104
152
  justifyContent: 'space-between',
105
153
  flexDirection: 'row',
106
- rowGap: 8,
107
- }, children: [_jsx(Text, { style: {
154
+ rowGap: 8
155
+ },
156
+ children: [
157
+ /*#__PURE__*/ _jsx(Text, {
158
+ style: {
108
159
  paddingRight: 4,
109
160
  letterSpacing: 1,
110
- color: colors.primary3,
111
- }, children: fee.title }), hasDiscounts && fee.key !== 'reservationFee' ? (
112
- // Only show strikethrough if quoted value is different from original value
113
- feeValue !== quotedFeeValue ? (_jsxs(View, { style: {
161
+ color: colors.primary3
162
+ },
163
+ children: fee.title
164
+ }),
165
+ hasDiscounts && fee.key !== 'reservationFee' ? // Only show strikethrough if quoted value is different from original value
166
+ feeValue !== quotedFeeValue ? /*#__PURE__*/ _jsxs(View, {
167
+ style: {
114
168
  justifyContent: 'flex-end',
115
- flexDirection: 'row',
116
- }, children: [_jsx(Text, { style: {
169
+ flexDirection: 'row'
170
+ },
171
+ children: [
172
+ /*#__PURE__*/ _jsx(Text, {
173
+ style: {
117
174
  color: colors.primary2,
118
175
  letterSpacing: 1,
119
176
  textDecoration: 'line-through',
120
- marginRight: 4,
121
- }, children: feeValue !== null ? feeValue : '' }), _jsx(Text, { style: {
177
+ marginRight: 4
178
+ },
179
+ children: feeValue !== null ? feeValue : ''
180
+ }),
181
+ /*#__PURE__*/ _jsx(Text, {
182
+ style: {
122
183
  color: colors.primary3,
123
- letterSpacing: 1,
124
- }, children: quotedFeeValue })] })) : (
125
- // When values are the same, just show the single value
126
- _jsx(Text, { style: {
184
+ letterSpacing: 1
185
+ },
186
+ children: quotedFeeValue
187
+ })
188
+ ]
189
+ }) : // When values are the same, just show the single value
190
+ /*#__PURE__*/ _jsx(Text, {
191
+ style: {
127
192
  color: colors.primary3,
128
- letterSpacing: 1,
129
- }, children: feeValue !== null ? feeValue : '' }))) : (
130
- // When no discounts or it's a reservation fee
131
- _jsx(Text, { style: {
193
+ letterSpacing: 1
194
+ },
195
+ children: feeValue !== null ? feeValue : ''
196
+ }) : // When no discounts or it's a reservation fee
197
+ /*#__PURE__*/ _jsx(Text, {
198
+ style: {
132
199
  color: colors.primary3,
133
- letterSpacing: 1,
134
- }, children: feeValue !== null ? feeValue : '' }))] }, fee.key));
135
- }), quotation.fees.extraCharges.length > 0 &&
136
- quotation.fees.extraCharges
137
- .filter((charge) => charge.amount > 0)
138
- .filter((charge) => charge.type === 'upfront')
139
- .map((charge, i) => (_jsxs(View
140
- // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
141
- , { style: {
200
+ letterSpacing: 1
201
+ },
202
+ children: feeValue !== null ? feeValue : ''
203
+ })
204
+ ]
205
+ }, fee.key);
206
+ }),
207
+ quotation.fees.extraCharges.length > 0 && quotation.fees.extraCharges.filter(function(charge) {
208
+ return charge.amount > 0;
209
+ }).filter(function(charge) {
210
+ return charge.type === 'upfront';
211
+ }).map(function(charge, i) {
212
+ return /*#__PURE__*/ _jsxs(View, {
213
+ style: {
142
214
  justifyContent: 'space-between',
143
215
  flexDirection: 'row',
144
- rowGap: 8,
145
- }, children: [_jsx(Text, { style: {
216
+ rowGap: 8
217
+ },
218
+ children: [
219
+ /*#__PURE__*/ _jsx(Text, {
220
+ style: {
146
221
  paddingRight: 4,
147
222
  letterSpacing: 1,
148
- color: colors.primary3,
149
- }, children: charge.description }), hasDiscounts ? ((() => {
150
- const quotedCharge = quotedPrices.extraCharges.find((extraCharge) => extraCharge.description === charge.description);
151
- const originalAmount = charge.amount.toFixed(2);
152
- const quotedAmount = quotedCharge?.amount.toFixed(2);
223
+ color: colors.primary3
224
+ },
225
+ children: charge.description
226
+ }),
227
+ hasDiscounts ? function() {
228
+ var quotedCharge = quotedPrices.extraCharges.find(function(extraCharge) {
229
+ return extraCharge.description === charge.description;
230
+ });
231
+ var originalAmount = charge.amount.toFixed(2);
232
+ var quotedAmount = quotedCharge === null || quotedCharge === void 0 ? void 0 : quotedCharge.amount.toFixed(2);
153
233
  // Only show strikethrough if amounts are different
154
- return originalAmount !== quotedAmount ? (_jsxs(View, { style: {
234
+ return originalAmount !== quotedAmount ? /*#__PURE__*/ _jsxs(View, {
235
+ style: {
155
236
  justifyContent: 'flex-end',
156
- flexDirection: 'row',
157
- }, children: [_jsx(Text, { style: {
237
+ flexDirection: 'row'
238
+ },
239
+ children: [
240
+ /*#__PURE__*/ _jsx(Text, {
241
+ style: {
158
242
  color: colors.primary2,
159
243
  letterSpacing: 1,
160
244
  textDecoration: 'line-through',
161
- marginRight: 4,
162
- }, children: originalAmount }), _jsx(Text, { style: {
245
+ marginRight: 4
246
+ },
247
+ children: originalAmount
248
+ }),
249
+ /*#__PURE__*/ _jsx(Text, {
250
+ style: {
163
251
  color: colors.primary3,
164
- letterSpacing: 1,
165
- }, children: quotedAmount })] })) : (
166
- // When amounts are the same, show single value
167
- _jsx(Text, { style: {
252
+ letterSpacing: 1
253
+ },
254
+ children: quotedAmount
255
+ })
256
+ ]
257
+ }) : // When amounts are the same, show single value
258
+ /*#__PURE__*/ _jsx(Text, {
259
+ style: {
168
260
  color: colors.primary3,
169
- letterSpacing: 1,
170
- }, children: originalAmount }));
171
- })()) : (_jsx(Text, { style: {
261
+ letterSpacing: 1
262
+ },
263
+ children: originalAmount
264
+ });
265
+ }() : /*#__PURE__*/ _jsx(Text, {
266
+ style: {
172
267
  color: colors.primary3,
173
- letterSpacing: 1,
174
- }, children: charge.amount.toFixed(2) }))] }, i))), quotation.couponCode !== null && couponType === 'upfront' && (_jsxs(View, { style: {
268
+ letterSpacing: 1
269
+ },
270
+ children: charge.amount.toFixed(2)
271
+ })
272
+ ]
273
+ }, i);
274
+ }),
275
+ quotation.couponCode !== null && couponType === 'upfront' && /*#__PURE__*/ _jsxs(View, {
276
+ style: {
175
277
  justifyContent: 'space-between',
176
278
  flexDirection: 'row',
177
- rowGap: 8,
178
- }, children: [_jsxs(Text, { style: {
279
+ rowGap: 8
280
+ },
281
+ children: [
282
+ /*#__PURE__*/ _jsxs(Text, {
283
+ style: {
179
284
  paddingRight: 4,
180
285
  letterSpacing: 1,
181
- color: colors.primary3,
182
- }, children: [t?.fees.promo, " - ", quotation.couponCode] }), _jsxs(Text, { style: {
286
+ color: colors.primary3
287
+ },
288
+ children: [
289
+ t === null || t === void 0 ? void 0 : t.fees.promo,
290
+ " - ",
291
+ quotation.couponCode
292
+ ]
293
+ }),
294
+ /*#__PURE__*/ _jsxs(Text, {
295
+ style: {
183
296
  color: colors.success4,
184
297
  letterSpacing: 1,
185
- fontWeight: 'bold',
186
- }, children: ["- ", quotation.fees.discountAmount?.toFixed(2)] })] })), hasDiscounts && (_jsxs(View, { style: {
298
+ fontWeight: 'bold'
299
+ },
300
+ children: [
301
+ "- ",
302
+ (_quotation_fees_discountAmount = quotation.fees.discountAmount) === null || _quotation_fees_discountAmount === void 0 ? void 0 : _quotation_fees_discountAmount.toFixed(2)
303
+ ]
304
+ })
305
+ ]
306
+ }),
307
+ hasDiscounts && /*#__PURE__*/ _jsxs(View, {
308
+ style: {
187
309
  justifyContent: 'space-between',
188
310
  flexDirection: 'row',
189
- rowGap: 8,
190
- }, children: [_jsx(Text, { style: {
311
+ rowGap: 8
312
+ },
313
+ children: [
314
+ /*#__PURE__*/ _jsx(Text, {
315
+ style: {
191
316
  color: colors.primary3,
192
317
  letterSpacing: 1,
193
- paddingRight: 4,
194
- }, children: t?.fees.totalDiscount }), _jsxs(Text, { style: {
318
+ paddingRight: 4
319
+ },
320
+ children: t === null || t === void 0 ? void 0 : t.fees.totalDiscount
321
+ }),
322
+ /*#__PURE__*/ _jsxs(Text, {
323
+ style: {
195
324
  color: colors.success4,
196
325
  fontWeight: 'bold',
197
- letterSpacing: 1,
198
- }, children: ["- ", upfrontTotalDiscount()] })] })), _jsxs(View, { style: {
326
+ letterSpacing: 1
327
+ },
328
+ children: [
329
+ "- ",
330
+ upfrontTotalDiscount()
331
+ ]
332
+ })
333
+ ]
334
+ }),
335
+ /*#__PURE__*/ _jsxs(View, {
336
+ style: {
199
337
  justifyContent: 'space-between',
200
338
  flexDirection: 'row',
201
- rowGap: 8,
202
- }, children: [_jsx(Text, { style: {
339
+ rowGap: 8
340
+ },
341
+ children: [
342
+ /*#__PURE__*/ _jsx(Text, {
343
+ style: {
203
344
  color: colors.primary3,
204
345
  letterSpacing: 1,
205
- paddingRight: 4,
206
- }, children: `${t?.serviceFee} (${taxPercentage}%)` }), quotedPrices !== undefined ? (_jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: serviceUpfrontFee })) : (_jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: serviceUpfrontFee }))] }), _jsxs(View, { style: {
346
+ paddingRight: 4
347
+ },
348
+ children: "".concat(t === null || t === void 0 ? void 0 : t.serviceFee, " (").concat(taxPercentage, "%)")
349
+ }),
350
+ quotedPrices !== undefined ? /*#__PURE__*/ _jsx(Text, {
351
+ style: {
352
+ color: colors.primary3,
353
+ letterSpacing: 1
354
+ },
355
+ children: serviceUpfrontFee
356
+ }) : /*#__PURE__*/ _jsx(Text, {
357
+ style: {
358
+ color: colors.primary3,
359
+ letterSpacing: 1
360
+ },
361
+ children: serviceUpfrontFee
362
+ })
363
+ ]
364
+ }),
365
+ /*#__PURE__*/ _jsxs(View, {
366
+ style: {
207
367
  backgroundColor: colors.primary1,
208
- borderTop: `1px solid ${colors.primary1}`,
368
+ borderTop: "1px solid ".concat(colors.primary1),
209
369
  justifyContent: 'space-between',
210
370
  flexDirection: 'row',
211
- padding: 4,
212
- }, children: [_jsx(Text, { style: {
371
+ padding: 4
372
+ },
373
+ children: [
374
+ /*#__PURE__*/ _jsx(Text, {
375
+ style: {
213
376
  letterSpacing: 1,
214
377
  paddingRight: 4,
215
- fontWeight: 'bold',
216
- }, children: "Total" }), _jsx(Text, { style: { letterSpacing: 1, fontWeight: 'bold' }, children: formatMoney(totalUpfrontFee + Number.parseFloat(serviceUpfrontFee)) })] }), _jsx(View, { children: _jsx(Text, { style: {
378
+ fontWeight: 'bold'
379
+ },
380
+ children: "Total"
381
+ }),
382
+ /*#__PURE__*/ _jsx(Text, {
383
+ style: {
384
+ letterSpacing: 1,
385
+ fontWeight: 'bold'
386
+ },
387
+ children: formatMoney(totalUpfrontFee + Number.parseFloat(serviceUpfrontFee))
388
+ })
389
+ ]
390
+ }),
391
+ /*#__PURE__*/ _jsx(View, {
392
+ children: /*#__PURE__*/ _jsx(Text, {
393
+ style: {
217
394
  color: colors.primary3,
218
395
  letterSpacing: 1,
219
- fontSize: '9px',
220
- }, children: t?.fees.upfront.depositDisclaimer }) }), _jsx(View, { style: { borderBottom: `1px solid ${colors.primary2}` } }), _jsx(Text, { style: {
396
+ fontSize: '9px'
397
+ },
398
+ children: t === null || t === void 0 ? void 0 : t.fees.upfront.depositDisclaimer
399
+ })
400
+ }),
401
+ /*#__PURE__*/ _jsx(View, {
402
+ style: {
403
+ borderBottom: "1px solid ".concat(colors.primary2)
404
+ }
405
+ }),
406
+ /*#__PURE__*/ _jsx(Text, {
407
+ style: {
221
408
  fontWeight: 'bold',
222
409
  color: colors.black,
223
- letterSpacing: 1,
224
- }, children: t?.fees.monthly.title }), t?.fees.monthly.content.map((fee) => {
225
- const feeValue = getFeeValue(fee.key)?.toFixed(2);
226
- const quotedFeeValue = getQuotedFeeValue(fee.key)?.toFixed(2) ?? undefined;
410
+ letterSpacing: 1
411
+ },
412
+ children: t === null || t === void 0 ? void 0 : t.fees.monthly.title
413
+ }),
414
+ t === null || t === void 0 ? void 0 : t.fees.monthly.content.map(function(fee) {
415
+ var _getFeeValue, _getQuotedFeeValue;
416
+ var feeValue = (_getFeeValue = getFeeValue(fee.key)) === null || _getFeeValue === void 0 ? void 0 : _getFeeValue.toFixed(2);
417
+ var _getQuotedFeeValue_toFixed;
418
+ var quotedFeeValue = (_getQuotedFeeValue_toFixed = (_getQuotedFeeValue = getQuotedFeeValue(fee.key)) === null || _getQuotedFeeValue === void 0 ? void 0 : _getQuotedFeeValue.toFixed(2)) !== null && _getQuotedFeeValue_toFixed !== void 0 ? _getQuotedFeeValue_toFixed : undefined;
227
419
  if (feeValue === '0.00') {
228
420
  return null;
229
421
  }
230
- return (_jsxs(View, { style: {
422
+ return /*#__PURE__*/ _jsxs(View, {
423
+ style: {
231
424
  justifyContent: 'space-between',
232
425
  flexDirection: 'row',
233
- rowGap: 8,
234
- }, children: [_jsx(Text, { style: {
426
+ rowGap: 8
427
+ },
428
+ children: [
429
+ /*#__PURE__*/ _jsx(Text, {
430
+ style: {
235
431
  paddingRight: 4,
236
432
  letterSpacing: 1,
237
- color: colors.primary3,
238
- }, children: fee.title }), hasDiscounts ? (feeValue !== quotedFeeValue ? (_jsxs(View, { style: {
433
+ color: colors.primary3
434
+ },
435
+ children: fee.title
436
+ }),
437
+ hasDiscounts ? feeValue !== quotedFeeValue ? /*#__PURE__*/ _jsxs(View, {
438
+ style: {
239
439
  justifyContent: 'flex-end',
240
- flexDirection: 'row',
241
- }, children: [_jsx(Text, { style: {
440
+ flexDirection: 'row'
441
+ },
442
+ children: [
443
+ /*#__PURE__*/ _jsx(Text, {
444
+ style: {
242
445
  color: colors.primary2,
243
446
  letterSpacing: 1,
244
447
  textDecoration: 'line-through',
245
- marginRight: 4,
246
- }, children: feeValue !== null ? feeValue : '' }), _jsx(Text, { style: {
448
+ marginRight: 4
449
+ },
450
+ children: feeValue !== null ? feeValue : ''
451
+ }),
452
+ /*#__PURE__*/ _jsx(Text, {
453
+ style: {
247
454
  color: colors.primary3,
248
- letterSpacing: 1,
249
- }, children: quotedFeeValue })] })) : (
250
- // When values are the same, just show the single value
251
- _jsx(Text, { style: {
455
+ letterSpacing: 1
456
+ },
457
+ children: quotedFeeValue
458
+ })
459
+ ]
460
+ }) : // When values are the same, just show the single value
461
+ /*#__PURE__*/ _jsx(Text, {
462
+ style: {
252
463
  color: colors.primary3,
253
- letterSpacing: 1,
254
- }, children: feeValue !== null ? feeValue : '' }))) : (_jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: feeValue !== null ? feeValue : '' }))] }, fee.key));
255
- }), quotation.fees.extraCharges.length > 0 &&
256
- quotation.fees.extraCharges
257
- .filter((charge) => charge.type === 'monthly')
258
- .map((charge) => (_jsxs(View, { style: {
464
+ letterSpacing: 1
465
+ },
466
+ children: feeValue !== null ? feeValue : ''
467
+ }) : /*#__PURE__*/ _jsx(Text, {
468
+ style: {
469
+ color: colors.primary3,
470
+ letterSpacing: 1
471
+ },
472
+ children: feeValue !== null ? feeValue : ''
473
+ })
474
+ ]
475
+ }, fee.key);
476
+ }),
477
+ quotation.fees.extraCharges.length > 0 && quotation.fees.extraCharges.filter(function(charge) {
478
+ return charge.type === 'monthly';
479
+ }).map(function(charge) {
480
+ return /*#__PURE__*/ _jsxs(View, {
481
+ style: {
259
482
  justifyContent: 'space-between',
260
483
  flexDirection: 'row',
261
- rowGap: 8,
262
- }, children: [_jsx(Text, { style: {
484
+ rowGap: 8
485
+ },
486
+ children: [
487
+ /*#__PURE__*/ _jsx(Text, {
488
+ style: {
263
489
  paddingRight: 4,
264
490
  letterSpacing: 1,
265
- color: colors.primary3,
266
- }, children: charge.description }), hasDiscounts ? ((() => {
267
- const quotedCharge = quotedPrices.extraCharges.find((extraCharge) => extraCharge.description === charge.description);
268
- const originalAmount = charge.amount.toFixed(2);
269
- const quotedAmount = quotedCharge?.amount.toFixed(2);
491
+ color: colors.primary3
492
+ },
493
+ children: charge.description
494
+ }),
495
+ hasDiscounts ? function() {
496
+ var quotedCharge = quotedPrices.extraCharges.find(function(extraCharge) {
497
+ return extraCharge.description === charge.description;
498
+ });
499
+ var originalAmount = charge.amount.toFixed(2);
500
+ var quotedAmount = quotedCharge === null || quotedCharge === void 0 ? void 0 : quotedCharge.amount.toFixed(2);
270
501
  // Only show strikethrough if amounts are different
271
- return originalAmount !== quotedAmount ? (_jsxs(View, { style: {
502
+ return originalAmount !== quotedAmount ? /*#__PURE__*/ _jsxs(View, {
503
+ style: {
272
504
  justifyContent: 'flex-end',
273
- flexDirection: 'row',
274
- }, children: [_jsx(Text, { style: {
505
+ flexDirection: 'row'
506
+ },
507
+ children: [
508
+ /*#__PURE__*/ _jsx(Text, {
509
+ style: {
275
510
  color: colors.primary2,
276
511
  letterSpacing: 1,
277
512
  textDecoration: 'line-through',
278
- marginRight: 4,
279
- }, children: originalAmount }), _jsx(Text, { style: {
513
+ marginRight: 4
514
+ },
515
+ children: originalAmount
516
+ }),
517
+ /*#__PURE__*/ _jsx(Text, {
518
+ style: {
280
519
  color: colors.primary3,
281
- letterSpacing: 1,
282
- }, children: quotedAmount })] })) : (
283
- // When amounts are the same, show single value
284
- _jsx(Text, { style: {
520
+ letterSpacing: 1
521
+ },
522
+ children: quotedAmount
523
+ })
524
+ ]
525
+ }) : // When amounts are the same, show single value
526
+ /*#__PURE__*/ _jsx(Text, {
527
+ style: {
285
528
  color: colors.primary3,
286
- letterSpacing: 1,
287
- }, children: originalAmount }));
288
- })()) : (_jsx(Text, { style: {
529
+ letterSpacing: 1
530
+ },
531
+ children: originalAmount
532
+ });
533
+ }() : /*#__PURE__*/ _jsx(Text, {
534
+ style: {
289
535
  color: colors.primary3,
290
- letterSpacing: 1,
291
- }, children: charge.amount.toFixed(2) }))] }, charge.description))), quotation.couponCode !== null && couponType === 'monthly' && (_jsxs(View, { style: {
536
+ letterSpacing: 1
537
+ },
538
+ children: charge.amount.toFixed(2)
539
+ })
540
+ ]
541
+ }, charge.description);
542
+ }),
543
+ quotation.couponCode !== null && couponType === 'monthly' && /*#__PURE__*/ _jsxs(View, {
544
+ style: {
292
545
  justifyContent: 'space-between',
293
546
  flexDirection: 'row',
294
- rowGap: 8,
295
- }, children: [_jsxs(Text, { style: {
547
+ rowGap: 8
548
+ },
549
+ children: [
550
+ /*#__PURE__*/ _jsxs(Text, {
551
+ style: {
296
552
  paddingRight: 4,
297
553
  letterSpacing: 1,
298
- color: colors.primary3,
299
- }, children: [t?.fees.promo, " - ", quotation.couponCode] }), _jsxs(Text, { style: {
554
+ color: colors.primary3
555
+ },
556
+ children: [
557
+ t === null || t === void 0 ? void 0 : t.fees.promo,
558
+ " - ",
559
+ quotation.couponCode
560
+ ]
561
+ }),
562
+ /*#__PURE__*/ _jsxs(Text, {
563
+ style: {
300
564
  color: colors.success4,
301
565
  letterSpacing: 1,
302
- fontWeight: 'bold',
303
- }, children: ["- ", quotation.fees.discountAmount?.toFixed(2)] })] })), _jsxs(View, { style: {
566
+ fontWeight: 'bold'
567
+ },
568
+ children: [
569
+ "- ",
570
+ (_quotation_fees_discountAmount1 = quotation.fees.discountAmount) === null || _quotation_fees_discountAmount1 === void 0 ? void 0 : _quotation_fees_discountAmount1.toFixed(2)
571
+ ]
572
+ })
573
+ ]
574
+ }),
575
+ /*#__PURE__*/ _jsxs(View, {
576
+ style: {
304
577
  justifyContent: 'space-between',
305
578
  flexDirection: 'row',
306
- rowGap: 8,
307
- }, children: [_jsx(Text, { style: {
579
+ rowGap: 8
580
+ },
581
+ children: [
582
+ /*#__PURE__*/ _jsx(Text, {
583
+ style: {
308
584
  color: colors.primary3,
309
585
  letterSpacing: 1,
310
- paddingRight: 4,
311
- }, children: `${t?.serviceFee} (${taxPercentage}%)` }), _jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: serviceMonthlyFee.toFixed(2) })] }), _jsxs(View, { style: {
586
+ paddingRight: 4
587
+ },
588
+ children: "".concat(t === null || t === void 0 ? void 0 : t.serviceFee, " (").concat(taxPercentage, "%)")
589
+ }),
590
+ /*#__PURE__*/ _jsx(Text, {
591
+ style: {
592
+ color: colors.primary3,
593
+ letterSpacing: 1
594
+ },
595
+ children: serviceMonthlyFee.toFixed(2)
596
+ })
597
+ ]
598
+ }),
599
+ /*#__PURE__*/ _jsxs(View, {
600
+ style: {
312
601
  backgroundColor: colors.primary1,
313
- borderTop: `1px solid ${colors.primary1}`,
602
+ borderTop: "1px solid ".concat(colors.primary1),
314
603
  justifyContent: 'space-between',
315
604
  flexDirection: 'row',
316
- padding: 4,
317
- }, children: [_jsx(Text, { style: {
605
+ padding: 4
606
+ },
607
+ children: [
608
+ /*#__PURE__*/ _jsx(Text, {
609
+ style: {
318
610
  letterSpacing: 1,
319
611
  paddingRight: 4,
320
- fontWeight: 'bold',
321
- }, children: "Total" }), _jsx(Text, { style: { letterSpacing: 1, fontWeight: 'bold' }, children: formatMoney(totalMonthlyFee + serviceMonthlyFee) })] })] }), bottomContent: _jsxs(View, { style: { rowGap: 16 }, children: [_jsx(Text, { style: {
612
+ fontWeight: 'bold'
613
+ },
614
+ children: "Total"
615
+ }),
616
+ /*#__PURE__*/ _jsx(Text, {
617
+ style: {
618
+ letterSpacing: 1,
619
+ fontWeight: 'bold'
620
+ },
621
+ children: formatMoney(totalMonthlyFee + serviceMonthlyFee)
622
+ })
623
+ ]
624
+ })
625
+ ]
626
+ }),
627
+ bottomContent: /*#__PURE__*/ _jsxs(View, {
628
+ style: {
629
+ rowGap: 16
630
+ },
631
+ children: [
632
+ /*#__PURE__*/ _jsx(Text, {
633
+ style: {
322
634
  textTransform: 'uppercase',
323
635
  fontSize: 12,
324
636
  fontWeight: 'bold',
325
- letterSpacing: 1,
326
- }, children: t?.fees.dueToday.title }), _jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: t?.fees.dueToday.description }), _jsxs(View, { style: {
637
+ letterSpacing: 1
638
+ },
639
+ children: t === null || t === void 0 ? void 0 : t.fees.dueToday.title
640
+ }),
641
+ /*#__PURE__*/ _jsx(Text, {
642
+ style: {
643
+ color: colors.primary3,
644
+ letterSpacing: 1
645
+ },
646
+ children: t === null || t === void 0 ? void 0 : t.fees.dueToday.description
647
+ }),
648
+ /*#__PURE__*/ _jsxs(View, {
649
+ style: {
327
650
  justifyContent: 'space-between',
328
- flexDirection: 'row',
329
- }, children: [_jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: t?.fees.dueToday.subTotal }), _jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: hasDiscounts
330
- ? quotedPrices?.amountBeforeTax.toFixed(2)
331
- : quotation.fees.amountBeforeTax.toFixed(2) })] }), _jsxs(View, { style: {
651
+ flexDirection: 'row'
652
+ },
653
+ children: [
654
+ /*#__PURE__*/ _jsx(Text, {
655
+ style: {
656
+ letterSpacing: 1,
657
+ color: colors.primary3
658
+ },
659
+ children: t === null || t === void 0 ? void 0 : t.fees.dueToday.subTotal
660
+ }),
661
+ /*#__PURE__*/ _jsx(Text, {
662
+ style: {
663
+ letterSpacing: 1,
664
+ color: colors.primary3
665
+ },
666
+ children: hasDiscounts ? quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.amountBeforeTax.toFixed(2) : quotation.fees.amountBeforeTax.toFixed(2)
667
+ })
668
+ ]
669
+ }),
670
+ /*#__PURE__*/ _jsxs(View, {
671
+ style: {
332
672
  justifyContent: 'space-between',
333
- flexDirection: 'row',
334
- }, children: [_jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: `${t?.serviceFee} (${taxPercentage}%)` }), _jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: hasDiscounts
335
- ? quotedPrices?.taxAmount.toFixed(2)
336
- : quotation.fees.taxAmount.toFixed(2) })] }), _jsxs(View, { style: {
673
+ flexDirection: 'row'
674
+ },
675
+ children: [
676
+ /*#__PURE__*/ _jsx(Text, {
677
+ style: {
678
+ letterSpacing: 1,
679
+ color: colors.primary3
680
+ },
681
+ children: "".concat(t === null || t === void 0 ? void 0 : t.serviceFee, " (").concat(taxPercentage, "%)")
682
+ }),
683
+ /*#__PURE__*/ _jsx(Text, {
684
+ style: {
685
+ letterSpacing: 1,
686
+ color: colors.primary3
687
+ },
688
+ children: hasDiscounts ? quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.taxAmount.toFixed(2) : quotation.fees.taxAmount.toFixed(2)
689
+ })
690
+ ]
691
+ }),
692
+ /*#__PURE__*/ _jsxs(View, {
693
+ style: {
337
694
  backgroundColor: colors.primary1,
338
- borderTop: `1px solid ${colors.primary1}`,
695
+ borderTop: "1px solid ".concat(colors.primary1),
339
696
  justifyContent: 'space-between',
340
697
  flexDirection: 'row',
341
- padding: 4,
342
- }, children: [_jsx(Text, { style: {
698
+ padding: 4
699
+ },
700
+ children: [
701
+ /*#__PURE__*/ _jsx(Text, {
702
+ style: {
343
703
  letterSpacing: 1,
344
704
  paddingRight: 4,
345
- fontWeight: 'bold',
346
- }, children: t?.fees.dueToday.grandTotal }), _jsx(Text, { style: { letterSpacing: 1, fontWeight: 'bold' }, children: hasDiscounts
347
- ? quotedPrices?.amountAfterTax.toFixed(2)
348
- : quotation.fees.amountAfterTax.toFixed(2) })] })] }) }) }));
705
+ fontWeight: 'bold'
706
+ },
707
+ children: t === null || t === void 0 ? void 0 : t.fees.dueToday.grandTotal
708
+ }),
709
+ /*#__PURE__*/ _jsx(Text, {
710
+ style: {
711
+ letterSpacing: 1,
712
+ fontWeight: 'bold'
713
+ },
714
+ children: hasDiscounts ? quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.amountAfterTax.toFixed(2) : quotation.fees.amountAfterTax.toFixed(2)
715
+ })
716
+ ]
717
+ })
718
+ ]
719
+ })
720
+ })
721
+ });
349
722
  };
350
723
  export default Pricing;
351
- //# sourceMappingURL=Pricing.js.map