@driveflux/pdf 4.0.76 → 4.0.78

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 (36) hide show
  1. package/dist/components/FluxLogo.js +3 -62
  2. package/dist/components/StandardPage.js +10 -99
  3. package/dist/index.js +1 -0
  4. package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js +27 -145
  5. package/dist/templates/QuotationPdf/GFV.js +12 -49
  6. package/dist/templates/QuotationPdf/Header.js +5 -63
  7. package/dist/templates/QuotationPdf/Pricing.js +191 -573
  8. package/dist/templates/QuotationPdf/Pricing.js.map +1 -1
  9. package/dist/templates/QuotationPdf/QuotationPdfPage.js +3 -23
  10. package/dist/templates/QuotationPdf/SectionBoxNew.js +4 -34
  11. package/dist/templates/QuotationPdf/TermsSection.js +5 -42
  12. package/dist/templates/QuotationPdf/VehiclePhotos.js +24 -54
  13. package/dist/templates/QuotationPdf/index.js +10 -189
  14. package/dist/templates/QuotationPdf/translations.js +22 -34
  15. package/dist/templates/QuotationPdf/utils.js +49 -83
  16. package/dist/templates/SubscriptionAgreement/Confirmation.js +10 -65
  17. package/dist/templates/SubscriptionAgreement/CoverPage.js +10 -93
  18. package/dist/templates/SubscriptionAgreement/CoverPageSection.js +5 -16
  19. package/dist/templates/SubscriptionAgreement/Details.js +59 -139
  20. package/dist/templates/SubscriptionAgreement/Footer.js +6 -48
  21. package/dist/templates/SubscriptionAgreement/Header.js +5 -35
  22. package/dist/templates/SubscriptionAgreement/LabelValue.js +3 -25
  23. package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js +3 -26
  24. package/dist/templates/SubscriptionAgreement/TermsOfUse.js +8 -94
  25. package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js +11 -97
  26. package/dist/templates/SubscriptionAgreement/index.js +15 -245
  27. package/dist/templates/SubscriptionAgreement/translations.js +194 -195
  28. package/dist/templates/SubscriptionAgreement/types.js +2 -1
  29. package/dist/templates/SubscriptionAgreement/utils.js +11 -16
  30. package/dist/templates/index.js +1 -0
  31. package/dist/theme/colors.js +63 -44
  32. package/dist/theme/index.js +1 -0
  33. package/dist/types.js +2 -1
  34. package/dist/utils.js +16 -159
  35. package/dist/watch.js +4 -3
  36. package/package.json +18 -18
@@ -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,286 @@ 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 })] })) : (_jsx(Text, { style: {
192
125
  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: {
126
+ letterSpacing: 1,
127
+ }, children: feeValue !== null ? feeValue : '' }))) : (_jsx(Text, { style: {
199
128
  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: {
129
+ letterSpacing: 1,
130
+ }, children: feeValue !== null ? feeValue : '' }))] }, fee.key));
131
+ }), quotation.fees.extraCharges.length > 0 &&
132
+ quotation.fees.extraCharges
133
+ .filter((charge) => charge.amount > 0)
134
+ .filter((charge) => charge.type === 'upfront')
135
+ .map((charge, i) => (_jsxs(View
136
+ // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
137
+ , { style: {
214
138
  justifyContent: 'space-between',
215
139
  flexDirection: 'row',
216
- rowGap: 8
217
- },
218
- children: [
219
- /*#__PURE__*/ _jsx(Text, {
220
- style: {
140
+ rowGap: 8,
141
+ }, children: [_jsx(Text, { style: {
221
142
  paddingRight: 4,
222
143
  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);
144
+ color: colors.primary3,
145
+ }, children: charge.description }), hasDiscounts ? ((() => {
146
+ const quotedCharge = quotedPrices.extraCharges.find((extraCharge) => extraCharge.description === charge.description);
147
+ const originalAmount = charge.amount.toFixed(2);
148
+ const quotedAmount = quotedCharge?.amount.toFixed(2);
233
149
  // Only show strikethrough if amounts are different
234
- return originalAmount !== quotedAmount ? /*#__PURE__*/ _jsxs(View, {
235
- style: {
150
+ return originalAmount !== quotedAmount ? (_jsxs(View, { style: {
236
151
  justifyContent: 'flex-end',
237
- flexDirection: 'row'
238
- },
239
- children: [
240
- /*#__PURE__*/ _jsx(Text, {
241
- style: {
152
+ flexDirection: 'row',
153
+ }, children: [_jsx(Text, { style: {
242
154
  color: colors.primary2,
243
155
  letterSpacing: 1,
244
156
  textDecoration: 'line-through',
245
- marginRight: 4
246
- },
247
- children: originalAmount
248
- }),
249
- /*#__PURE__*/ _jsx(Text, {
250
- style: {
157
+ marginRight: 4,
158
+ }, children: originalAmount }), _jsx(Text, { style: {
251
159
  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: {
160
+ letterSpacing: 1,
161
+ }, children: quotedAmount })] })) : (_jsx(Text, { style: {
260
162
  color: colors.primary3,
261
- letterSpacing: 1
262
- },
263
- children: originalAmount
264
- });
265
- }() : /*#__PURE__*/ _jsx(Text, {
266
- style: {
163
+ letterSpacing: 1,
164
+ }, children: originalAmount }));
165
+ })()) : (_jsx(Text, { style: {
267
166
  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: {
167
+ letterSpacing: 1,
168
+ }, children: charge.amount.toFixed(2) }))] }, i))), quotation.couponCode !== null && couponType === 'upfront' && (_jsxs(View, { style: {
277
169
  justifyContent: 'space-between',
278
170
  flexDirection: 'row',
279
- rowGap: 8
280
- },
281
- children: [
282
- /*#__PURE__*/ _jsxs(Text, {
283
- style: {
171
+ rowGap: 8,
172
+ }, children: [_jsxs(Text, { style: {
284
173
  paddingRight: 4,
285
174
  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: {
175
+ color: colors.primary3,
176
+ }, children: [t?.fees.promo, " - ", quotation.couponCode] }), _jsxs(Text, { style: {
296
177
  color: colors.success4,
297
178
  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: {
179
+ fontWeight: 'bold',
180
+ }, children: ["- ", quotation.fees.discountAmount?.toFixed(2)] })] })), hasDiscounts && (_jsxs(View, { style: {
309
181
  justifyContent: 'space-between',
310
182
  flexDirection: 'row',
311
- rowGap: 8
312
- },
313
- children: [
314
- /*#__PURE__*/ _jsx(Text, {
315
- style: {
183
+ rowGap: 8,
184
+ }, children: [_jsx(Text, { style: {
316
185
  color: colors.primary3,
317
186
  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: {
187
+ paddingRight: 4,
188
+ }, children: t?.fees.totalDiscount }), _jsxs(Text, { style: {
324
189
  color: colors.success4,
325
190
  fontWeight: 'bold',
326
- letterSpacing: 1
327
- },
328
- children: [
329
- "- ",
330
- upfrontTotalDiscount()
331
- ]
332
- })
333
- ]
334
- }),
335
- /*#__PURE__*/ _jsxs(View, {
336
- style: {
191
+ letterSpacing: 1,
192
+ }, children: ["- ", upfrontTotalDiscount()] })] })), _jsxs(View, { style: {
337
193
  justifyContent: 'space-between',
338
194
  flexDirection: 'row',
339
- rowGap: 8
340
- },
341
- children: [
342
- /*#__PURE__*/ _jsx(Text, {
343
- style: {
195
+ rowGap: 8,
196
+ }, children: [_jsx(Text, { style: {
344
197
  color: colors.primary3,
345
198
  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: {
199
+ paddingRight: 4,
200
+ }, 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
201
  backgroundColor: colors.primary1,
368
- borderTop: "1px solid ".concat(colors.primary1),
202
+ borderTop: `1px solid ${colors.primary1}`,
369
203
  justifyContent: 'space-between',
370
204
  flexDirection: 'row',
371
- padding: 4
372
- },
373
- children: [
374
- /*#__PURE__*/ _jsx(Text, {
375
- style: {
205
+ padding: 4,
206
+ }, children: [_jsx(Text, { style: {
376
207
  letterSpacing: 1,
377
208
  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: {
209
+ fontWeight: 'bold',
210
+ }, children: "Total" }), _jsx(Text, { style: { letterSpacing: 1, fontWeight: 'bold' }, children: formatMoney(totalUpfrontFee + Number.parseFloat(serviceUpfrontFee)) })] }), _jsx(View, { children: _jsx(Text, { style: {
394
211
  color: colors.primary3,
395
212
  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: {
213
+ fontSize: '9px',
214
+ }, children: t?.fees.upfront.depositDisclaimer }) }), _jsx(View, { style: { borderBottom: `1px solid ${colors.primary2}` } }), _jsx(Text, { style: {
408
215
  fontWeight: 'bold',
409
216
  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;
217
+ letterSpacing: 1,
218
+ }, children: t?.fees.monthly.title }), t?.fees.monthly.content.map((fee) => {
219
+ const feeValue = getFeeValue(fee.key)?.toFixed(2);
220
+ const quotedFeeValue = getQuotedFeeValue(fee.key)?.toFixed(2) ?? undefined;
419
221
  if (feeValue === '0.00') {
420
222
  return null;
421
223
  }
422
- return /*#__PURE__*/ _jsxs(View, {
423
- style: {
224
+ return (_jsxs(View, { style: {
424
225
  justifyContent: 'space-between',
425
226
  flexDirection: 'row',
426
- rowGap: 8
427
- },
428
- children: [
429
- /*#__PURE__*/ _jsx(Text, {
430
- style: {
227
+ rowGap: 8,
228
+ }, children: [_jsx(Text, { style: {
431
229
  paddingRight: 4,
432
230
  letterSpacing: 1,
433
- color: colors.primary3
434
- },
435
- children: fee.title
436
- }),
437
- hasDiscounts ? feeValue !== quotedFeeValue ? /*#__PURE__*/ _jsxs(View, {
438
- style: {
231
+ color: colors.primary3,
232
+ }, children: fee.title }), hasDiscounts ? (feeValue !== quotedFeeValue ? (_jsxs(View, { style: {
439
233
  justifyContent: 'flex-end',
440
- flexDirection: 'row'
441
- },
442
- children: [
443
- /*#__PURE__*/ _jsx(Text, {
444
- style: {
234
+ flexDirection: 'row',
235
+ }, children: [_jsx(Text, { style: {
445
236
  color: colors.primary2,
446
237
  letterSpacing: 1,
447
238
  textDecoration: 'line-through',
448
- marginRight: 4
449
- },
450
- children: feeValue !== null ? feeValue : ''
451
- }),
452
- /*#__PURE__*/ _jsx(Text, {
453
- style: {
239
+ marginRight: 4,
240
+ }, children: feeValue !== null ? feeValue : '' }), _jsx(Text, { style: {
454
241
  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: {
242
+ letterSpacing: 1,
243
+ }, children: quotedFeeValue })] })) : (_jsx(Text, { style: {
469
244
  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: {
245
+ letterSpacing: 1,
246
+ }, children: feeValue !== null ? feeValue : '' }))) : (_jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: feeValue !== null ? feeValue : '' }))] }, fee.key));
247
+ }), quotation.fees.extraCharges.length > 0 &&
248
+ quotation.fees.extraCharges
249
+ .filter((charge) => charge.type === 'monthly')
250
+ .map((charge) => (_jsxs(View, { style: {
482
251
  justifyContent: 'space-between',
483
252
  flexDirection: 'row',
484
- rowGap: 8
485
- },
486
- children: [
487
- /*#__PURE__*/ _jsx(Text, {
488
- style: {
253
+ rowGap: 8,
254
+ }, children: [_jsx(Text, { style: {
489
255
  paddingRight: 4,
490
256
  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);
257
+ color: colors.primary3,
258
+ }, children: charge.description }), hasDiscounts ? ((() => {
259
+ const quotedCharge = quotedPrices.extraCharges.find((extraCharge) => extraCharge.description === charge.description);
260
+ const originalAmount = charge.amount.toFixed(2);
261
+ const quotedAmount = quotedCharge?.amount.toFixed(2);
501
262
  // Only show strikethrough if amounts are different
502
- return originalAmount !== quotedAmount ? /*#__PURE__*/ _jsxs(View, {
503
- style: {
263
+ return originalAmount !== quotedAmount ? (_jsxs(View, { style: {
504
264
  justifyContent: 'flex-end',
505
- flexDirection: 'row'
506
- },
507
- children: [
508
- /*#__PURE__*/ _jsx(Text, {
509
- style: {
265
+ flexDirection: 'row',
266
+ }, children: [_jsx(Text, { style: {
510
267
  color: colors.primary2,
511
268
  letterSpacing: 1,
512
269
  textDecoration: 'line-through',
513
- marginRight: 4
514
- },
515
- children: originalAmount
516
- }),
517
- /*#__PURE__*/ _jsx(Text, {
518
- style: {
270
+ marginRight: 4,
271
+ }, children: originalAmount }), _jsx(Text, { style: {
519
272
  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: {
273
+ letterSpacing: 1,
274
+ }, children: quotedAmount })] })) : (_jsx(Text, { style: {
528
275
  color: colors.primary3,
529
- letterSpacing: 1
530
- },
531
- children: originalAmount
532
- });
533
- }() : /*#__PURE__*/ _jsx(Text, {
534
- style: {
276
+ letterSpacing: 1,
277
+ }, children: originalAmount }));
278
+ })()) : (_jsx(Text, { style: {
535
279
  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: {
280
+ letterSpacing: 1,
281
+ }, children: charge.amount.toFixed(2) }))] }, charge.description))), quotation.couponCode !== null && couponType === 'monthly' && (_jsxs(View, { style: {
545
282
  justifyContent: 'space-between',
546
283
  flexDirection: 'row',
547
- rowGap: 8
548
- },
549
- children: [
550
- /*#__PURE__*/ _jsxs(Text, {
551
- style: {
284
+ rowGap: 8,
285
+ }, children: [_jsxs(Text, { style: {
552
286
  paddingRight: 4,
553
287
  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: {
288
+ color: colors.primary3,
289
+ }, children: [t?.fees.promo, " - ", quotation.couponCode] }), _jsxs(Text, { style: {
564
290
  color: colors.success4,
565
291
  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: {
292
+ fontWeight: 'bold',
293
+ }, children: ["- ", quotation.fees.discountAmount?.toFixed(2)] })] })), _jsxs(View, { style: {
577
294
  justifyContent: 'space-between',
578
295
  flexDirection: 'row',
579
- rowGap: 8
580
- },
581
- children: [
582
- /*#__PURE__*/ _jsx(Text, {
583
- style: {
296
+ rowGap: 8,
297
+ }, children: [_jsx(Text, { style: {
584
298
  color: colors.primary3,
585
299
  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: {
300
+ paddingRight: 4,
301
+ }, children: `${t?.serviceFee} (${taxPercentage}%)` }), _jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: serviceMonthlyFee.toFixed(2) })] }), _jsxs(View, { style: {
601
302
  backgroundColor: colors.primary1,
602
- borderTop: "1px solid ".concat(colors.primary1),
303
+ borderTop: `1px solid ${colors.primary1}`,
603
304
  justifyContent: 'space-between',
604
305
  flexDirection: 'row',
605
- padding: 4
606
- },
607
- children: [
608
- /*#__PURE__*/ _jsx(Text, {
609
- style: {
306
+ padding: 4,
307
+ }, children: [_jsx(Text, { style: {
610
308
  letterSpacing: 1,
611
309
  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: {
310
+ fontWeight: 'bold',
311
+ }, children: "Total" }), _jsx(Text, { style: { letterSpacing: 1, fontWeight: 'bold' }, children: formatMoney(totalMonthlyFee + serviceMonthlyFee) })] })] }), bottomContent: _jsxs(View, { style: { rowGap: 16 }, children: [_jsx(Text, { style: {
634
312
  textTransform: 'uppercase',
635
313
  fontSize: 12,
636
314
  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: {
315
+ letterSpacing: 1,
316
+ }, children: t?.fees.dueToday.title }), _jsx(Text, { style: { color: colors.primary3, letterSpacing: 1 }, children: t?.fees.dueToday.description }), _jsxs(View, { style: {
650
317
  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: {
318
+ flexDirection: 'row',
319
+ }, children: [_jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: t?.fees.dueToday.subTotal }), _jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: hasDiscounts
320
+ ? quotedPrices?.amountBeforeTax.toFixed(2)
321
+ : quotation.fees.amountBeforeTax.toFixed(2) })] }), _jsxs(View, { style: {
672
322
  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: {
323
+ flexDirection: 'row',
324
+ }, children: [_jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: `${t?.serviceFee} (${taxPercentage}%)` }), _jsx(Text, { style: { letterSpacing: 1, color: colors.primary3 }, children: hasDiscounts
325
+ ? quotedPrices?.taxAmount.toFixed(2)
326
+ : quotation.fees.taxAmount.toFixed(2) })] }), _jsxs(View, { style: {
694
327
  backgroundColor: colors.primary1,
695
- borderTop: "1px solid ".concat(colors.primary1),
328
+ borderTop: `1px solid ${colors.primary1}`,
696
329
  justifyContent: 'space-between',
697
330
  flexDirection: 'row',
698
- padding: 4
699
- },
700
- children: [
701
- /*#__PURE__*/ _jsx(Text, {
702
- style: {
331
+ padding: 4,
332
+ }, children: [_jsx(Text, { style: {
703
333
  letterSpacing: 1,
704
334
  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
- });
335
+ fontWeight: 'bold',
336
+ }, children: t?.fees.dueToday.grandTotal }), _jsx(Text, { style: { letterSpacing: 1, fontWeight: 'bold' }, children: hasDiscounts
337
+ ? quotedPrices?.amountAfterTax.toFixed(2)
338
+ : quotation.fees.amountAfterTax.toFixed(2) })] })] }) }) }));
722
339
  };
723
340
  export default Pricing;
341
+ //# sourceMappingURL=Pricing.js.map