@driveflux/pdf 4.0.39 → 4.0.40

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 (42) hide show
  1. package/dist/__mocks__/quotation.js +11 -10
  2. package/dist/__mocks__/subscription.js +121 -379
  3. package/dist/__mocks__/tou.js +10 -9
  4. package/dist/components/FluxLogo.js +3 -62
  5. package/dist/components/StandardPage.js +10 -99
  6. package/dist/debug.js +26 -205
  7. package/dist/index.js +1 -0
  8. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js +27 -145
  9. package/dist/templates/QuotationPdf/GFV.js +12 -49
  10. package/dist/templates/QuotationPdf/Header.js +5 -63
  11. package/dist/templates/QuotationPdf/Pricing.js +201 -573
  12. package/dist/templates/QuotationPdf/QuotationPdfPage.js +3 -23
  13. package/dist/templates/QuotationPdf/SectionBoxNew.js +4 -34
  14. package/dist/templates/QuotationPdf/TermsSection.js +5 -42
  15. package/dist/templates/QuotationPdf/VehiclePhotos.js +24 -54
  16. package/dist/templates/QuotationPdf/index.js +10 -189
  17. package/dist/templates/QuotationPdf/translations.js +22 -34
  18. package/dist/templates/QuotationPdf/utils.d.ts +3 -3
  19. package/dist/templates/QuotationPdf/utils.d.ts.map +1 -1
  20. package/dist/templates/QuotationPdf/utils.js +49 -83
  21. package/dist/templates/QuotationPdf/utils.js.map +1 -1
  22. package/dist/templates/SubscriptionAgreement/Confirmation.js +10 -65
  23. package/dist/templates/SubscriptionAgreement/CoverPage.js +10 -93
  24. package/dist/templates/SubscriptionAgreement/CoverPageSection.js +5 -16
  25. package/dist/templates/SubscriptionAgreement/Details.js +59 -139
  26. package/dist/templates/SubscriptionAgreement/Footer.js +6 -48
  27. package/dist/templates/SubscriptionAgreement/Header.js +5 -35
  28. package/dist/templates/SubscriptionAgreement/LabelValue.js +3 -25
  29. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js +3 -26
  30. package/dist/templates/SubscriptionAgreement/TermsOfUse.js +8 -94
  31. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js +11 -97
  32. package/dist/templates/SubscriptionAgreement/index.js +15 -245
  33. package/dist/templates/SubscriptionAgreement/translations.js +194 -195
  34. package/dist/templates/SubscriptionAgreement/types.js +2 -1
  35. package/dist/templates/SubscriptionAgreement/utils.js +11 -16
  36. package/dist/templates/index.js +1 -0
  37. package/dist/theme/colors.js +63 -44
  38. package/dist/theme/index.js +1 -0
  39. package/dist/types.js +2 -1
  40. package/dist/utils.js +16 -159
  41. package/dist/watch.js +4 -3
  42. package/package.json +2 -2
@@ -3,77 +3,49 @@ 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
- 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;
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;
15
17
  if (hasDiscounts) {
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
- }
18
+ for (const charge of quotedPrices.extraCharges) {
19
+ if (charge.type === 'upfront') {
20
+ totalUpfrontFee += charge.amount;
25
21
  }
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
- }
22
+ else if (charge.type === 'monthly') {
23
+ totalMonthlyFee += charge.amount;
38
24
  }
39
25
  }
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
- }
26
+ }
27
+ else {
28
+ for (const charge of extraCharges) {
29
+ if (charge.type === 'upfront') {
30
+ totalUpfrontFee += charge.amount;
50
31
  }
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
- }
32
+ else if (charge.type === 'monthly') {
33
+ totalMonthlyFee += charge.amount;
63
34
  }
64
35
  }
65
36
  }
66
37
  if (quotation.couponCode) {
67
38
  if (couponType === 'upfront') {
68
39
  totalUpfrontFee -= discountAmount || 0;
69
- } else if (couponType === 'monthly') {
40
+ }
41
+ else if (couponType === 'monthly') {
70
42
  totalMonthlyFee -= discountAmount || 0;
71
43
  }
72
44
  }
73
- var serviceMonthlyFee = totalMonthlyFee * taxRate;
74
- var serviceUpfrontFee = (totalUpfrontFee * taxRate).toFixed(2);
75
- var getFeeValue = function(key) {
76
- switch(key){
45
+ const serviceMonthlyFee = totalMonthlyFee * taxRate;
46
+ const serviceUpfrontFee = (totalUpfrontFee * taxRate).toFixed(2);
47
+ const getFeeValue = (key) => {
48
+ switch (key) {
77
49
  case 'reservationFee':
78
50
  return reservationFee;
79
51
  case 'deposit':
@@ -84,640 +56,296 @@ var Pricing = function(param) {
84
56
  return null;
85
57
  }
86
58
  };
87
- var getQuotedFeeValue = function(key) {
88
- switch(key){
59
+ const getQuotedFeeValue = (key) => {
60
+ switch (key) {
89
61
  case 'deposit':
90
- return quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.deposit;
62
+ return quotedPrices?.deposit;
91
63
  case 'subscriptionFee':
92
- return quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.subscriptionFee;
64
+ return quotedPrices?.subscriptionFee;
93
65
  case 'reservationFee':
94
66
  return reservationFee;
95
67
  default:
96
68
  return null;
97
69
  }
98
70
  };
99
- var upfrontTotalDiscount = function() {
100
- var _quotedPrices_extraCharges;
71
+ const upfrontTotalDiscount = () => {
101
72
  // Calculate base fees total (deposit)
102
- var originalBaseTotal = deposit;
103
- var quotedBaseTotal = (quotedPrices === null || quotedPrices === void 0 ? void 0 : quotedPrices.deposit) || 0;
73
+ const originalBaseTotal = deposit;
74
+ const quotedBaseTotal = quotedPrices?.deposit || 0;
104
75
  // Calculate original upfront extra charges
105
- var originalExtraCharges = extraCharges.filter(function(charge) {
106
- return charge.type === 'upfront';
107
- }).reduce(function(sum, charge) {
108
- return sum + charge.amount;
109
- }, 0);
76
+ const originalExtraCharges = extraCharges
77
+ .filter((charge) => charge.type === 'upfront')
78
+ .reduce((sum, charge) => sum + charge.amount, 0);
110
79
  // Calculate quoted upfront extra charges
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;
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;
118
85
  // Calculate total discount (original - quoted)
119
- var totalDiscount = originalTotal - quotedTotal;
86
+ const totalDiscount = originalTotal - quotedTotal;
120
87
  return totalDiscount;
121
88
  };
122
- return /*#__PURE__*/ _jsx(View, {
123
- children: /*#__PURE__*/ _jsx(SectionBoxNew, {
124
- topContent: /*#__PURE__*/ _jsxs(_Fragment, {
125
- children: [
126
- /*#__PURE__*/ _jsx(Text, {
127
- style: {
89
+ return (_jsx(View, { children: _jsx(SectionBoxNew, { topContent: _jsxs(_Fragment, { children: [_jsx(Text, { style: {
128
90
  textTransform: 'uppercase',
129
91
  fontSize: 12,
130
- fontWeight: 'bold'
131
- },
132
- children: t === null || t === void 0 ? void 0 : t.title
133
- }),
134
- /*#__PURE__*/ _jsx(Text, {
135
- style: {
92
+ fontWeight: 'bold',
93
+ }, children: t?.title }), _jsx(Text, { style: {
136
94
  fontWeight: 'bold',
137
95
  color: colors.black,
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;
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;
147
100
  if (feeValue === '0.00') {
148
101
  return null;
149
102
  }
150
- return /*#__PURE__*/ _jsxs(View, {
151
- style: {
103
+ return (_jsxs(View, { style: {
152
104
  justifyContent: 'space-between',
153
105
  flexDirection: 'row',
154
- rowGap: 8
155
- },
156
- children: [
157
- /*#__PURE__*/ _jsx(Text, {
158
- style: {
106
+ rowGap: 8,
107
+ }, children: [_jsx(Text, { style: {
159
108
  paddingRight: 4,
160
109
  letterSpacing: 1,
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: {
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: {
168
114
  justifyContent: 'flex-end',
169
- flexDirection: 'row'
170
- },
171
- children: [
172
- /*#__PURE__*/ _jsx(Text, {
173
- style: {
115
+ flexDirection: 'row',
116
+ }, children: [_jsx(Text, { style: {
174
117
  color: colors.primary2,
175
118
  letterSpacing: 1,
176
119
  textDecoration: 'line-through',
177
- marginRight: 4
178
- },
179
- children: feeValue !== null ? feeValue : ''
180
- }),
181
- /*#__PURE__*/ _jsx(Text, {
182
- style: {
120
+ marginRight: 4,
121
+ }, children: feeValue !== null ? feeValue : '' }), _jsx(Text, { style: {
183
122
  color: colors.primary3,
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: {
123
+ letterSpacing: 1,
124
+ }, children: quotedFeeValue })] })) : (
125
+ // When values are the same, just show the single value
126
+ _jsx(Text, { style: {
192
127
  color: colors.primary3,
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: {
128
+ letterSpacing: 1,
129
+ }, children: feeValue !== null ? feeValue : '' }))) : (
130
+ // When no discounts or it's a reservation fee
131
+ _jsx(Text, { style: {
199
132
  color: colors.primary3,
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: {
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: {
214
142
  justifyContent: 'space-between',
215
143
  flexDirection: 'row',
216
- rowGap: 8
217
- },
218
- children: [
219
- /*#__PURE__*/ _jsx(Text, {
220
- style: {
144
+ rowGap: 8,
145
+ }, children: [_jsx(Text, { style: {
221
146
  paddingRight: 4,
222
147
  letterSpacing: 1,
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);
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);
233
153
  // Only show strikethrough if amounts are different
234
- return originalAmount !== quotedAmount ? /*#__PURE__*/ _jsxs(View, {
235
- style: {
154
+ return originalAmount !== quotedAmount ? (_jsxs(View, { style: {
236
155
  justifyContent: 'flex-end',
237
- flexDirection: 'row'
238
- },
239
- children: [
240
- /*#__PURE__*/ _jsx(Text, {
241
- style: {
156
+ flexDirection: 'row',
157
+ }, children: [_jsx(Text, { style: {
242
158
  color: colors.primary2,
243
159
  letterSpacing: 1,
244
160
  textDecoration: 'line-through',
245
- marginRight: 4
246
- },
247
- children: originalAmount
248
- }),
249
- /*#__PURE__*/ _jsx(Text, {
250
- style: {
161
+ marginRight: 4,
162
+ }, children: originalAmount }), _jsx(Text, { style: {
251
163
  color: colors.primary3,
252
- letterSpacing: 1
253
- },
254
- children: quotedAmount
255
- })
256
- ]
257
- }) : // When amounts are the same, show single value
258
- /*#__PURE__*/ _jsx(Text, {
259
- style: {
164
+ letterSpacing: 1,
165
+ }, children: quotedAmount })] })) : (
166
+ // When amounts are the same, show single value
167
+ _jsx(Text, { style: {
260
168
  color: colors.primary3,
261
- letterSpacing: 1
262
- },
263
- children: originalAmount
264
- });
265
- }() : /*#__PURE__*/ _jsx(Text, {
266
- style: {
169
+ letterSpacing: 1,
170
+ }, children: originalAmount }));
171
+ })()) : (_jsx(Text, { style: {
267
172
  color: colors.primary3,
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: {
173
+ letterSpacing: 1,
174
+ }, children: charge.amount.toFixed(2) }))] }, i))), quotation.couponCode !== null && couponType === 'upfront' && (_jsxs(View, { style: {
277
175
  justifyContent: 'space-between',
278
176
  flexDirection: 'row',
279
- rowGap: 8
280
- },
281
- children: [
282
- /*#__PURE__*/ _jsxs(Text, {
283
- style: {
177
+ rowGap: 8,
178
+ }, children: [_jsxs(Text, { style: {
284
179
  paddingRight: 4,
285
180
  letterSpacing: 1,
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: {
181
+ color: colors.primary3,
182
+ }, children: [t?.fees.promo, " - ", quotation.couponCode] }), _jsxs(Text, { style: {
296
183
  color: colors.success4,
297
184
  letterSpacing: 1,
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: {
185
+ fontWeight: 'bold',
186
+ }, children: ["- ", quotation.fees.discountAmount?.toFixed(2)] })] })), hasDiscounts && (_jsxs(View, { style: {
309
187
  justifyContent: 'space-between',
310
188
  flexDirection: 'row',
311
- rowGap: 8
312
- },
313
- children: [
314
- /*#__PURE__*/ _jsx(Text, {
315
- style: {
189
+ rowGap: 8,
190
+ }, children: [_jsx(Text, { style: {
316
191
  color: colors.primary3,
317
192
  letterSpacing: 1,
318
- paddingRight: 4
319
- },
320
- children: t === null || t === void 0 ? void 0 : t.fees.totalDiscount
321
- }),
322
- /*#__PURE__*/ _jsxs(Text, {
323
- style: {
193
+ paddingRight: 4,
194
+ }, children: t?.fees.totalDiscount }), _jsxs(Text, { style: {
324
195
  color: colors.success4,
325
196
  fontWeight: 'bold',
326
- letterSpacing: 1
327
- },
328
- children: [
329
- "- ",
330
- upfrontTotalDiscount()
331
- ]
332
- })
333
- ]
334
- }),
335
- /*#__PURE__*/ _jsxs(View, {
336
- style: {
197
+ letterSpacing: 1,
198
+ }, children: ["- ", upfrontTotalDiscount()] })] })), _jsxs(View, { style: {
337
199
  justifyContent: 'space-between',
338
200
  flexDirection: 'row',
339
- rowGap: 8
340
- },
341
- children: [
342
- /*#__PURE__*/ _jsx(Text, {
343
- style: {
201
+ rowGap: 8,
202
+ }, children: [_jsx(Text, { style: {
344
203
  color: colors.primary3,
345
204
  letterSpacing: 1,
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: {
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: {
367
207
  backgroundColor: colors.primary1,
368
- borderTop: "1px solid ".concat(colors.primary1),
208
+ borderTop: `1px solid ${colors.primary1}`,
369
209
  justifyContent: 'space-between',
370
210
  flexDirection: 'row',
371
- padding: 4
372
- },
373
- children: [
374
- /*#__PURE__*/ _jsx(Text, {
375
- style: {
211
+ padding: 4,
212
+ }, children: [_jsx(Text, { style: {
376
213
  letterSpacing: 1,
377
214
  paddingRight: 4,
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: {
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: {
394
217
  color: colors.primary3,
395
218
  letterSpacing: 1,
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: {
219
+ fontSize: '9px',
220
+ }, children: t?.fees.upfront.depositDisclaimer }) }), _jsx(View, { style: { borderBottom: `1px solid ${colors.primary2}` } }), _jsx(Text, { style: {
408
221
  fontWeight: 'bold',
409
222
  color: colors.black,
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;
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;
419
227
  if (feeValue === '0.00') {
420
228
  return null;
421
229
  }
422
- return /*#__PURE__*/ _jsxs(View, {
423
- style: {
230
+ return (_jsxs(View, { style: {
424
231
  justifyContent: 'space-between',
425
232
  flexDirection: 'row',
426
- rowGap: 8
427
- },
428
- children: [
429
- /*#__PURE__*/ _jsx(Text, {
430
- style: {
233
+ rowGap: 8,
234
+ }, children: [_jsx(Text, { style: {
431
235
  paddingRight: 4,
432
236
  letterSpacing: 1,
433
- color: colors.primary3
434
- },
435
- children: fee.title
436
- }),
437
- hasDiscounts ? feeValue !== quotedFeeValue ? /*#__PURE__*/ _jsxs(View, {
438
- style: {
237
+ color: colors.primary3,
238
+ }, children: fee.title }), hasDiscounts ? (feeValue !== quotedFeeValue ? (_jsxs(View, { style: {
439
239
  justifyContent: 'flex-end',
440
- flexDirection: 'row'
441
- },
442
- children: [
443
- /*#__PURE__*/ _jsx(Text, {
444
- style: {
240
+ flexDirection: 'row',
241
+ }, children: [_jsx(Text, { style: {
445
242
  color: colors.primary2,
446
243
  letterSpacing: 1,
447
244
  textDecoration: 'line-through',
448
- marginRight: 4
449
- },
450
- children: feeValue !== null ? feeValue : ''
451
- }),
452
- /*#__PURE__*/ _jsx(Text, {
453
- style: {
245
+ marginRight: 4,
246
+ }, children: feeValue !== null ? feeValue : '' }), _jsx(Text, { style: {
454
247
  color: colors.primary3,
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: {
463
- color: colors.primary3,
464
- letterSpacing: 1
465
- },
466
- children: feeValue !== null ? feeValue : ''
467
- }) : /*#__PURE__*/ _jsx(Text, {
468
- style: {
248
+ letterSpacing: 1,
249
+ }, children: quotedFeeValue })] })) : (
250
+ // When values are the same, just show the single value
251
+ _jsx(Text, { style: {
469
252
  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: {
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: {
482
259
  justifyContent: 'space-between',
483
260
  flexDirection: 'row',
484
- rowGap: 8
485
- },
486
- children: [
487
- /*#__PURE__*/ _jsx(Text, {
488
- style: {
261
+ rowGap: 8,
262
+ }, children: [_jsx(Text, { style: {
489
263
  paddingRight: 4,
490
264
  letterSpacing: 1,
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);
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);
501
270
  // Only show strikethrough if amounts are different
502
- return originalAmount !== quotedAmount ? /*#__PURE__*/ _jsxs(View, {
503
- style: {
271
+ return originalAmount !== quotedAmount ? (_jsxs(View, { style: {
504
272
  justifyContent: 'flex-end',
505
- flexDirection: 'row'
506
- },
507
- children: [
508
- /*#__PURE__*/ _jsx(Text, {
509
- style: {
273
+ flexDirection: 'row',
274
+ }, children: [_jsx(Text, { style: {
510
275
  color: colors.primary2,
511
276
  letterSpacing: 1,
512
277
  textDecoration: 'line-through',
513
- marginRight: 4
514
- },
515
- children: originalAmount
516
- }),
517
- /*#__PURE__*/ _jsx(Text, {
518
- style: {
278
+ marginRight: 4,
279
+ }, children: originalAmount }), _jsx(Text, { style: {
519
280
  color: colors.primary3,
520
- letterSpacing: 1
521
- },
522
- children: quotedAmount
523
- })
524
- ]
525
- }) : // When amounts are the same, show single value
526
- /*#__PURE__*/ _jsx(Text, {
527
- style: {
281
+ letterSpacing: 1,
282
+ }, children: quotedAmount })] })) : (
283
+ // When amounts are the same, show single value
284
+ _jsx(Text, { style: {
528
285
  color: colors.primary3,
529
- letterSpacing: 1
530
- },
531
- children: originalAmount
532
- });
533
- }() : /*#__PURE__*/ _jsx(Text, {
534
- style: {
286
+ letterSpacing: 1,
287
+ }, children: originalAmount }));
288
+ })()) : (_jsx(Text, { style: {
535
289
  color: colors.primary3,
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: {
290
+ letterSpacing: 1,
291
+ }, children: charge.amount.toFixed(2) }))] }, charge.description))), quotation.couponCode !== null && couponType === 'monthly' && (_jsxs(View, { style: {
545
292
  justifyContent: 'space-between',
546
293
  flexDirection: 'row',
547
- rowGap: 8
548
- },
549
- children: [
550
- /*#__PURE__*/ _jsxs(Text, {
551
- style: {
294
+ rowGap: 8,
295
+ }, children: [_jsxs(Text, { style: {
552
296
  paddingRight: 4,
553
297
  letterSpacing: 1,
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: {
298
+ color: colors.primary3,
299
+ }, children: [t?.fees.promo, " - ", quotation.couponCode] }), _jsxs(Text, { style: {
564
300
  color: colors.success4,
565
301
  letterSpacing: 1,
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: {
302
+ fontWeight: 'bold',
303
+ }, children: ["- ", quotation.fees.discountAmount?.toFixed(2)] })] })), _jsxs(View, { style: {
577
304
  justifyContent: 'space-between',
578
305
  flexDirection: 'row',
579
- rowGap: 8
580
- },
581
- children: [
582
- /*#__PURE__*/ _jsx(Text, {
583
- style: {
306
+ rowGap: 8,
307
+ }, children: [_jsx(Text, { style: {
584
308
  color: colors.primary3,
585
309
  letterSpacing: 1,
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: {
310
+ paddingRight: 4,
311
+ }, children: `${t?.serviceFee} (${taxPercentage}%)` }), _jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: serviceMonthlyFee.toFixed(2) })] }), _jsxs(View, { style: {
601
312
  backgroundColor: colors.primary1,
602
- borderTop: "1px solid ".concat(colors.primary1),
313
+ borderTop: `1px solid ${colors.primary1}`,
603
314
  justifyContent: 'space-between',
604
315
  flexDirection: 'row',
605
- padding: 4
606
- },
607
- children: [
608
- /*#__PURE__*/ _jsx(Text, {
609
- style: {
316
+ padding: 4,
317
+ }, children: [_jsx(Text, { style: {
610
318
  letterSpacing: 1,
611
319
  paddingRight: 4,
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: {
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: {
634
322
  textTransform: 'uppercase',
635
323
  fontSize: 12,
636
324
  fontWeight: 'bold',
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: {
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: {
650
327
  justifyContent: 'space-between',
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: {
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: {
672
332
  justifyContent: 'space-between',
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: {
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: {
694
337
  backgroundColor: colors.primary1,
695
- borderTop: "1px solid ".concat(colors.primary1),
338
+ borderTop: `1px solid ${colors.primary1}`,
696
339
  justifyContent: 'space-between',
697
340
  flexDirection: 'row',
698
- padding: 4
699
- },
700
- children: [
701
- /*#__PURE__*/ _jsx(Text, {
702
- style: {
341
+ padding: 4,
342
+ }, children: [_jsx(Text, { style: {
703
343
  letterSpacing: 1,
704
344
  paddingRight: 4,
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
- });
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) })] })] }) }) }));
722
349
  };
723
350
  export default Pricing;
351
+ //# sourceMappingURL=Pricing.js.map