@driveflux/pdf 4.0.77 → 4.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/FluxLogo.js +3 -62
- package/dist/components/StandardPage.js +10 -108
- package/dist/index.js +1 -0
- package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js +27 -145
- package/dist/templates/QuotationPdf/GFV.js +12 -49
- package/dist/templates/QuotationPdf/Header.js +5 -63
- package/dist/templates/QuotationPdf/Pricing.js +191 -573
- package/dist/templates/QuotationPdf/QuotationPdfPage.js +3 -23
- package/dist/templates/QuotationPdf/SectionBoxNew.js +4 -34
- package/dist/templates/QuotationPdf/TermsSection.js +5 -42
- package/dist/templates/QuotationPdf/VehiclePhotos.js +24 -54
- package/dist/templates/QuotationPdf/index.js +10 -197
- package/dist/templates/QuotationPdf/translations.js +22 -34
- package/dist/templates/QuotationPdf/utils.js +49 -92
- package/dist/templates/SubscriptionAgreement/Confirmation.js +10 -65
- package/dist/templates/SubscriptionAgreement/CoverPage.js +10 -93
- package/dist/templates/SubscriptionAgreement/CoverPageSection.js +5 -16
- package/dist/templates/SubscriptionAgreement/Details.js +59 -139
- package/dist/templates/SubscriptionAgreement/Footer.js +6 -48
- package/dist/templates/SubscriptionAgreement/Header.js +5 -35
- package/dist/templates/SubscriptionAgreement/LabelValue.js +3 -25
- package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js +3 -26
- package/dist/templates/SubscriptionAgreement/TermsOfUse.js +8 -94
- package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js +11 -97
- package/dist/templates/SubscriptionAgreement/index.js +15 -253
- package/dist/templates/SubscriptionAgreement/translations.js +194 -195
- package/dist/templates/SubscriptionAgreement/types.js +2 -1
- package/dist/templates/SubscriptionAgreement/utils.js +11 -16
- package/dist/templates/index.js +1 -0
- package/dist/theme/colors.js +63 -44
- package/dist/theme/index.js +1 -0
- package/dist/types.js +2 -1
- package/dist/utils.js +16 -167
- package/dist/watch.js +4 -3
- package/package.json +10 -10
|
@@ -3,28 +3,8 @@ import { View } from '@react-pdf/renderer';
|
|
|
3
3
|
import { format } from 'date-fns';
|
|
4
4
|
import StandardPage from '../../components/StandardPage.js';
|
|
5
5
|
import Header from './Header.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return /*#__PURE__*/ _jsxs(StandardPage, {
|
|
9
|
-
style: {
|
|
10
|
-
padding: 40,
|
|
11
|
-
fontSize: 10,
|
|
12
|
-
gap: 16
|
|
13
|
-
},
|
|
14
|
-
children: [
|
|
15
|
-
/*#__PURE__*/ _jsx(Header, {
|
|
16
|
-
tTitle: 'Quotation',
|
|
17
|
-
quotationId: quotation.id,
|
|
18
|
-
quotationDate: format(quotation.createdAt, 'dd-MM-yyyy')
|
|
19
|
-
}),
|
|
20
|
-
/*#__PURE__*/ _jsx(View, {
|
|
21
|
-
style: {
|
|
22
|
-
flex: 1,
|
|
23
|
-
rowGap: 24
|
|
24
|
-
},
|
|
25
|
-
children: children
|
|
26
|
-
})
|
|
27
|
-
]
|
|
28
|
-
});
|
|
6
|
+
const QuotationPdfPage = ({ quotation, children, }) => {
|
|
7
|
+
return (_jsxs(StandardPage, { style: { padding: 40, fontSize: 10, gap: 16 }, children: [_jsx(Header, { tTitle: 'Quotation', quotationId: quotation.id, quotationDate: format(quotation.createdAt, 'dd-MM-yyyy') }), _jsx(View, { style: { flex: 1, rowGap: 24 }, children: children })] }));
|
|
29
8
|
};
|
|
30
9
|
export default QuotationPdfPage;
|
|
10
|
+
//# sourceMappingURL=QuotationPdfPage.js.map
|
|
@@ -1,38 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { View } from '@react-pdf/renderer';
|
|
3
3
|
import { colors } from '../../theme/colors.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return /*#__PURE__*/ _jsxs(View, {
|
|
7
|
-
style: {
|
|
8
|
-
border: "1px solid ".concat(colors.primary2)
|
|
9
|
-
},
|
|
10
|
-
children: [
|
|
11
|
-
/*#__PURE__*/ _jsx(View, {
|
|
12
|
-
style: {
|
|
13
|
-
padding: 16,
|
|
14
|
-
rowGap: 16
|
|
15
|
-
},
|
|
16
|
-
children: topContent
|
|
17
|
-
}),
|
|
18
|
-
bottomContent && /*#__PURE__*/ _jsxs(_Fragment, {
|
|
19
|
-
children: [
|
|
20
|
-
/*#__PURE__*/ _jsx(View, {
|
|
21
|
-
style: {
|
|
22
|
-
borderBottom: "1px solid ".concat(colors.primary2)
|
|
23
|
-
}
|
|
24
|
-
}),
|
|
25
|
-
/*#__PURE__*/ _jsx(View, {
|
|
26
|
-
style: {
|
|
27
|
-
padding: 16,
|
|
28
|
-
rowGap: 16
|
|
29
|
-
},
|
|
30
|
-
children: bottomContent
|
|
31
|
-
})
|
|
32
|
-
]
|
|
33
|
-
}),
|
|
34
|
-
children
|
|
35
|
-
]
|
|
36
|
-
});
|
|
4
|
+
const SectionBoxNew = ({ topContent, bottomContent, children }) => {
|
|
5
|
+
return (_jsxs(View, { style: { border: `1px solid ${colors.primary2}` }, children: [_jsx(View, { style: { padding: 16, rowGap: 16 }, children: topContent }), bottomContent && (_jsxs(_Fragment, { children: [_jsx(View, { style: { borderBottom: `1px solid ${colors.primary2}` } }), _jsx(View, { style: { padding: 16, rowGap: 16 }, children: bottomContent })] })), children] }));
|
|
37
6
|
};
|
|
38
7
|
export default SectionBoxNew;
|
|
8
|
+
//# sourceMappingURL=SectionBoxNew.js.map
|
|
@@ -1,50 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Text, View } from '@react-pdf/renderer';
|
|
3
3
|
import { colors } from '../../theme/colors.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return /*#__PURE__*/ _jsxs(View, {
|
|
7
|
-
style: {
|
|
8
|
-
gap: 16
|
|
9
|
-
},
|
|
10
|
-
children: [
|
|
11
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
12
|
-
style: {
|
|
4
|
+
const TermsSection = ({ t }) => {
|
|
5
|
+
return (_jsxs(View, { style: { gap: 16 }, children: [_jsx(Text, { style: {
|
|
13
6
|
fontWeight: 'bold',
|
|
14
7
|
color: colors.black,
|
|
15
8
|
letterSpacing: 1,
|
|
16
|
-
textTransform: 'uppercase'
|
|
17
|
-
},
|
|
18
|
-
children: t === null || t === void 0 ? void 0 : t.title
|
|
19
|
-
}),
|
|
20
|
-
/*#__PURE__*/ _jsx(View, {
|
|
21
|
-
children: t.content.map(function(line, _i) {
|
|
22
|
-
return /*#__PURE__*/ _jsxs(View, {
|
|
23
|
-
style: {
|
|
24
|
-
flexDirection: 'row',
|
|
25
|
-
alignItems: 'flex-start'
|
|
26
|
-
},
|
|
27
|
-
children: [
|
|
28
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
29
|
-
style: {
|
|
30
|
-
marginRight: 4,
|
|
31
|
-
fontSize: 8
|
|
32
|
-
},
|
|
33
|
-
children: "•"
|
|
34
|
-
}),
|
|
35
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
36
|
-
style: {
|
|
37
|
-
color: colors.primary3,
|
|
38
|
-
letterSpacing: 1,
|
|
39
|
-
fontSize: 8
|
|
40
|
-
},
|
|
41
|
-
children: line
|
|
42
|
-
})
|
|
43
|
-
]
|
|
44
|
-
}, line);
|
|
45
|
-
})
|
|
46
|
-
})
|
|
47
|
-
]
|
|
48
|
-
});
|
|
9
|
+
textTransform: 'uppercase',
|
|
10
|
+
}, children: t?.title }), _jsx(View, { children: t.content.map((line, _i) => (_jsxs(View, { style: { flexDirection: 'row', alignItems: 'flex-start' }, children: [_jsx(Text, { style: { marginRight: 4, fontSize: 8 }, children: "\u2022" }), _jsx(Text, { style: { color: colors.primary3, letterSpacing: 1, fontSize: 8 }, children: line })] }, line))) })] }));
|
|
49
11
|
};
|
|
50
12
|
export default TermsSection;
|
|
13
|
+
//# sourceMappingURL=TermsSection.js.map
|
|
@@ -2,65 +2,35 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { Image, Text, View } from '@react-pdf/renderer';
|
|
3
3
|
import { colors } from '../../theme/colors.js';
|
|
4
4
|
import { getInspectionTypeTranslation } from './utils.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return /*#__PURE__*/ _jsxs(View, {
|
|
9
|
-
style: {
|
|
10
|
-
border: "1px solid ".concat(colors.primary2),
|
|
11
|
-
padding: 16
|
|
12
|
-
},
|
|
13
|
-
children: [
|
|
14
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
15
|
-
style: {
|
|
5
|
+
const VehiclePhotos = ({ quotation, t }) => {
|
|
6
|
+
const images = quotation.images;
|
|
7
|
+
return (_jsxs(View, { style: { border: `1px solid ${colors.primary2}`, padding: 16 }, children: [_jsx(Text, { style: {
|
|
16
8
|
textTransform: 'uppercase',
|
|
17
9
|
fontSize: 12,
|
|
18
10
|
fontWeight: 'bold',
|
|
19
|
-
marginBottom: 16
|
|
20
|
-
},
|
|
21
|
-
children: t === null || t === void 0 ? void 0 : t.title
|
|
22
|
-
}),
|
|
23
|
-
/*#__PURE__*/ _jsx(View, {
|
|
24
|
-
style: {
|
|
11
|
+
marginBottom: 16,
|
|
12
|
+
}, children: t?.title }), _jsx(View, { style: {
|
|
25
13
|
display: 'flex',
|
|
26
14
|
flexDirection: 'row',
|
|
27
15
|
flexWrap: 'wrap',
|
|
28
|
-
gap: 15
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
width: 150
|
|
47
|
-
}
|
|
48
|
-
})
|
|
49
|
-
}),
|
|
50
|
-
image.inspectionType && /*#__PURE__*/ _jsx(Text, {
|
|
51
|
-
style: {
|
|
52
|
-
color: colors.black,
|
|
53
|
-
fontSize: 10,
|
|
54
|
-
textAlign: 'center'
|
|
55
|
-
},
|
|
56
|
-
children: getInspectionTypeTranslation(image.inspectionType)
|
|
57
|
-
})
|
|
58
|
-
]
|
|
59
|
-
}, image.default)
|
|
60
|
-
});
|
|
61
|
-
})
|
|
62
|
-
})
|
|
63
|
-
]
|
|
64
|
-
});
|
|
16
|
+
gap: 15,
|
|
17
|
+
}, children: images.map((image) => (_jsx(_Fragment, { children: _jsxs(View, { style: {
|
|
18
|
+
overflow: 'hidden',
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
gap: 4,
|
|
21
|
+
}, children: [_jsx(View, { children: _jsx(Image
|
|
22
|
+
// @ts-expect-error
|
|
23
|
+
, {
|
|
24
|
+
// @ts-expect-error
|
|
25
|
+
source: image.default, style: {
|
|
26
|
+
objectFit: 'cover',
|
|
27
|
+
height: 90,
|
|
28
|
+
width: 150,
|
|
29
|
+
} }) }), image.inspectionType && (_jsx(Text, { style: {
|
|
30
|
+
color: colors.black,
|
|
31
|
+
fontSize: 10,
|
|
32
|
+
textAlign: 'center',
|
|
33
|
+
}, children: getInspectionTypeTranslation(image.inspectionType) }))] }, image.default) }))) })] }));
|
|
65
34
|
};
|
|
66
35
|
export default VehiclePhotos;
|
|
36
|
+
//# sourceMappingURL=VehiclePhotos.js.map
|
|
@@ -1,131 +1,3 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
-
try {
|
|
3
|
-
var info = gen[key](arg);
|
|
4
|
-
var value = info.value;
|
|
5
|
-
} catch (error) {
|
|
6
|
-
reject(error);
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
if (info.done) {
|
|
10
|
-
resolve(value);
|
|
11
|
-
} else {
|
|
12
|
-
Promise.resolve(value).then(_next, _throw);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function _async_to_generator(fn) {
|
|
16
|
-
return function() {
|
|
17
|
-
var self = this, args = arguments;
|
|
18
|
-
return new Promise(function(resolve, reject) {
|
|
19
|
-
var gen = fn.apply(self, args);
|
|
20
|
-
function _next(value) {
|
|
21
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
-
}
|
|
23
|
-
function _throw(err) {
|
|
24
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
-
}
|
|
26
|
-
_next(undefined);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function _ts_generator(thisArg, body) {
|
|
31
|
-
var f, y, t, _ = {
|
|
32
|
-
label: 0,
|
|
33
|
-
sent: function() {
|
|
34
|
-
if (t[0] & 1) throw t[1];
|
|
35
|
-
return t[1];
|
|
36
|
-
},
|
|
37
|
-
trys: [],
|
|
38
|
-
ops: []
|
|
39
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
40
|
-
return d(g, "next", {
|
|
41
|
-
value: verb(0)
|
|
42
|
-
}), d(g, "throw", {
|
|
43
|
-
value: verb(1)
|
|
44
|
-
}), d(g, "return", {
|
|
45
|
-
value: verb(2)
|
|
46
|
-
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
47
|
-
value: function() {
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
}), g;
|
|
51
|
-
function verb(n) {
|
|
52
|
-
return function(v) {
|
|
53
|
-
return step([
|
|
54
|
-
n,
|
|
55
|
-
v
|
|
56
|
-
]);
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function step(op) {
|
|
60
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
61
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
62
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
63
|
-
if (y = 0, t) op = [
|
|
64
|
-
op[0] & 2,
|
|
65
|
-
t.value
|
|
66
|
-
];
|
|
67
|
-
switch(op[0]){
|
|
68
|
-
case 0:
|
|
69
|
-
case 1:
|
|
70
|
-
t = op;
|
|
71
|
-
break;
|
|
72
|
-
case 4:
|
|
73
|
-
_.label++;
|
|
74
|
-
return {
|
|
75
|
-
value: op[1],
|
|
76
|
-
done: false
|
|
77
|
-
};
|
|
78
|
-
case 5:
|
|
79
|
-
_.label++;
|
|
80
|
-
y = op[1];
|
|
81
|
-
op = [
|
|
82
|
-
0
|
|
83
|
-
];
|
|
84
|
-
continue;
|
|
85
|
-
case 7:
|
|
86
|
-
op = _.ops.pop();
|
|
87
|
-
_.trys.pop();
|
|
88
|
-
continue;
|
|
89
|
-
default:
|
|
90
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
91
|
-
_ = 0;
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
95
|
-
_.label = op[1];
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
99
|
-
_.label = t[1];
|
|
100
|
-
t = op;
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
if (t && _.label < t[2]) {
|
|
104
|
-
_.label = t[2];
|
|
105
|
-
_.ops.push(op);
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
if (t[2]) _.ops.pop();
|
|
109
|
-
_.trys.pop();
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
op = body.call(thisArg, _);
|
|
113
|
-
} catch (e) {
|
|
114
|
-
op = [
|
|
115
|
-
6,
|
|
116
|
-
e
|
|
117
|
-
];
|
|
118
|
-
y = 0;
|
|
119
|
-
} finally{
|
|
120
|
-
f = t = 0;
|
|
121
|
-
}
|
|
122
|
-
if (op[0] & 5) throw op[1];
|
|
123
|
-
return {
|
|
124
|
-
value: op[0] ? op[1] : void 0,
|
|
125
|
-
done: true
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
130
2
|
import { Document } from '@react-pdf/renderer';
|
|
131
3
|
import { useMemo } from 'react';
|
|
@@ -138,77 +10,18 @@ import QuotationPdfPage from './QuotationPdfPage.js';
|
|
|
138
10
|
import TermsSection from './TermsSection.js';
|
|
139
11
|
import { useTranslations } from './translations.js';
|
|
140
12
|
import VehiclePhotos from './VehiclePhotos.js';
|
|
141
|
-
export
|
|
142
|
-
|
|
143
|
-
return _async_to_generator(function() {
|
|
144
|
-
return _ts_generator(this, function(_state) {
|
|
145
|
-
switch(_state.label){
|
|
146
|
-
case 0:
|
|
147
|
-
return [
|
|
148
|
-
4,
|
|
149
|
-
toPdf(/*#__PURE__*/ _jsx(QuotationPDF, {
|
|
150
|
-
locale: locale,
|
|
151
|
-
quotation: quotation
|
|
152
|
-
}), fileName)
|
|
153
|
-
];
|
|
154
|
-
case 1:
|
|
155
|
-
return [
|
|
156
|
-
2,
|
|
157
|
-
_state.sent()
|
|
158
|
-
];
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
})();
|
|
13
|
+
export const generateQuotationPdf = async ({ locale = 'en', quotation }, fileName) => {
|
|
14
|
+
return await toPdf(_jsx(QuotationPDF, { locale: locale, quotation: quotation }), fileName);
|
|
162
15
|
};
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
var pageProps = useMemo(function() {
|
|
16
|
+
const QuotationPDF = ({ locale = 'en', quotation }) => {
|
|
17
|
+
const th = useTranslations(locale);
|
|
18
|
+
const pageProps = useMemo(() => {
|
|
167
19
|
return {
|
|
168
20
|
t: th,
|
|
169
|
-
quotation: quotation
|
|
21
|
+
quotation: quotation,
|
|
170
22
|
};
|
|
171
|
-
}, [
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
]);
|
|
175
|
-
var t = pageProps.t;
|
|
176
|
-
return /*#__PURE__*/ _jsxs(Document, {
|
|
177
|
-
language: locale,
|
|
178
|
-
children: [
|
|
179
|
-
/*#__PURE__*/ _jsxs(QuotationPdfPage, {
|
|
180
|
-
quotation: quotation,
|
|
181
|
-
children: [
|
|
182
|
-
/*#__PURE__*/ _jsx(CustomerSubscriptionSection, {
|
|
183
|
-
quotation: quotation,
|
|
184
|
-
t: t
|
|
185
|
-
}),
|
|
186
|
-
/*#__PURE__*/ _jsx(Pricing, {
|
|
187
|
-
quotation: quotation,
|
|
188
|
-
t: t.pricing
|
|
189
|
-
}),
|
|
190
|
-
quotation.fees.gfv && /*#__PURE__*/ _jsx(GFV, {
|
|
191
|
-
quotation: quotation,
|
|
192
|
-
t: t.pricing
|
|
193
|
-
})
|
|
194
|
-
]
|
|
195
|
-
}),
|
|
196
|
-
/*#__PURE__*/ _jsxs(StandardPage, {
|
|
197
|
-
style: {
|
|
198
|
-
padding: 40,
|
|
199
|
-
fontSize: 10,
|
|
200
|
-
gap: 16
|
|
201
|
-
},
|
|
202
|
-
children: [
|
|
203
|
-
/*#__PURE__*/ _jsx(VehiclePhotos, {
|
|
204
|
-
quotation: quotation,
|
|
205
|
-
t: t.vehiclePhotos
|
|
206
|
-
}),
|
|
207
|
-
/*#__PURE__*/ _jsx(TermsSection, {
|
|
208
|
-
t: t.terms
|
|
209
|
-
})
|
|
210
|
-
]
|
|
211
|
-
})
|
|
212
|
-
]
|
|
213
|
-
});
|
|
23
|
+
}, [th, quotation]);
|
|
24
|
+
const { t } = pageProps;
|
|
25
|
+
return (_jsxs(Document, { language: locale, children: [_jsxs(QuotationPdfPage, { quotation: quotation, children: [_jsx(CustomerSubscriptionSection, { quotation: quotation, t: t }), _jsx(Pricing, { quotation: quotation, t: t.pricing }), quotation.fees.gfv && _jsx(GFV, { quotation: quotation, t: t.pricing })] }), _jsxs(StandardPage, { style: { padding: 40, fontSize: 10, gap: 16 }, children: [_jsx(VehiclePhotos, { quotation: quotation, t: t.vehiclePhotos }), _jsx(TermsSection, { t: t.terms })] })] }));
|
|
214
26
|
};
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
const enTranslation = {
|
|
2
2
|
quotation: 'Quotation',
|
|
3
3
|
date: 'Date',
|
|
4
4
|
customer: {
|
|
5
5
|
title: 'Customer',
|
|
6
6
|
name: 'Name',
|
|
7
7
|
email: 'Email',
|
|
8
|
-
address: 'Address'
|
|
8
|
+
address: 'Address',
|
|
9
9
|
},
|
|
10
10
|
subscription: {
|
|
11
11
|
title: 'Subscription',
|
|
12
12
|
vehicleName: 'Vehicle',
|
|
13
13
|
plan: 'Subscription Plan',
|
|
14
|
-
mileagePackage: 'Mileage Package'
|
|
14
|
+
mileagePackage: 'Mileage Package',
|
|
15
15
|
},
|
|
16
16
|
subIncludes: {
|
|
17
17
|
title: "What's Included:",
|
|
@@ -25,14 +25,12 @@ var enTranslation = {
|
|
|
25
25
|
'24/7 nationwide roadside assistance',
|
|
26
26
|
'Theft recovery services',
|
|
27
27
|
'Independently rated vehicle inspection',
|
|
28
|
-
'Option to purchase the vehicle at the end of the subscription'
|
|
28
|
+
'Option to purchase the vehicle at the end of the subscription',
|
|
29
29
|
],
|
|
30
30
|
excessMileage: {
|
|
31
31
|
title: 'Excess Mileage Fees',
|
|
32
|
-
description:
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
}
|
|
32
|
+
description: (excessMileage) => `If usage exceeds chosen mileage package, excess mileage fees for this vehicle is RM${excessMileage} per KM.`,
|
|
33
|
+
},
|
|
36
34
|
},
|
|
37
35
|
pricing: {
|
|
38
36
|
title: 'Pricing',
|
|
@@ -41,39 +39,28 @@ var enTranslation = {
|
|
|
41
39
|
upfront: {
|
|
42
40
|
title: 'Upfront Fees',
|
|
43
41
|
content: [
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
key: 'reservationFee'
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
title: 'Refundable Deposit*',
|
|
50
|
-
key: 'deposit'
|
|
51
|
-
}
|
|
42
|
+
{ title: 'Booking Fee', key: 'reservationFee' },
|
|
43
|
+
{ title: 'Refundable Deposit*', key: 'deposit' },
|
|
52
44
|
],
|
|
53
|
-
depositDisclaimer: '* The deposit will be refunded to you once the finalization upon your FLUX car is done excluding any service fee, tax, damages, fines, penalties or excess mileage charges that have incurred'
|
|
45
|
+
depositDisclaimer: '* The deposit will be refunded to you once the finalization upon your FLUX car is done excluding any service fee, tax, damages, fines, penalties or excess mileage charges that have incurred',
|
|
54
46
|
},
|
|
55
47
|
monthly: {
|
|
56
48
|
title: 'Monthly Fees',
|
|
57
|
-
content: [
|
|
58
|
-
{
|
|
59
|
-
title: 'Subscription Fee',
|
|
60
|
-
key: 'subscriptionFee'
|
|
61
|
-
}
|
|
62
|
-
]
|
|
49
|
+
content: [{ title: 'Subscription Fee', key: 'subscriptionFee' }],
|
|
63
50
|
},
|
|
64
51
|
dueToday: {
|
|
65
52
|
title: 'Due Today',
|
|
66
53
|
description: 'Grand Total is due before your subscription start. Monthly fee is due on the first day of every cycle period.',
|
|
67
54
|
subTotal: 'Upfront Fees + Monthly Fee',
|
|
68
|
-
grandTotal: 'Grand Total'
|
|
55
|
+
grandTotal: 'Grand Total',
|
|
69
56
|
},
|
|
70
57
|
extraCharge: 'Extra Charge',
|
|
71
58
|
promo: 'Promo',
|
|
72
59
|
gfv: {
|
|
73
|
-
title: 'Guaranteed Future Value (GFV)'
|
|
60
|
+
title: 'Guaranteed Future Value (GFV)',
|
|
74
61
|
},
|
|
75
|
-
totalDiscount: 'Total Discount'
|
|
76
|
-
}
|
|
62
|
+
totalDiscount: 'Total Discount',
|
|
63
|
+
},
|
|
77
64
|
},
|
|
78
65
|
terms: {
|
|
79
66
|
title: 'Terms',
|
|
@@ -86,16 +73,17 @@ var enTranslation = {
|
|
|
86
73
|
'The upfront fees are billed one-time per subscription, before the subscription starts.',
|
|
87
74
|
'All monthly recurring fees are billed on the same date as the delivery of the vehicle.',
|
|
88
75
|
'Scheduling delivery will only commence Grand Total is fully paid, 7 - 30+ days after payment and subject to vehicle availability.',
|
|
89
|
-
'Guaranteed Future Value prices are not inclusive of processing fees'
|
|
90
|
-
]
|
|
76
|
+
'Guaranteed Future Value prices are not inclusive of processing fees',
|
|
77
|
+
],
|
|
91
78
|
},
|
|
92
79
|
vehiclePhotos: {
|
|
93
|
-
title: 'Vehicle Photos'
|
|
94
|
-
}
|
|
80
|
+
title: 'Vehicle Photos',
|
|
81
|
+
},
|
|
95
82
|
};
|
|
96
|
-
export
|
|
97
|
-
|
|
98
|
-
en: enTranslation
|
|
83
|
+
export const useTranslations = (locale) => {
|
|
84
|
+
const translation = {
|
|
85
|
+
en: enTranslation,
|
|
99
86
|
};
|
|
100
87
|
return translation[locale];
|
|
101
88
|
};
|
|
89
|
+
//# sourceMappingURL=translations.js.map
|