UNPKG

17.1 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7
8var _react = _interopRequireDefault(require("react"));
9
10var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
11
12var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
13
14var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));
15
16var _AirlineSeatReclineNormal = _interopRequireDefault(require("@material-ui/icons/AirlineSeatReclineNormal"));
17
18var _CalendarToday = _interopRequireDefault(require("@material-ui/icons/CalendarToday"));
19
20var _ColorLens = _interopRequireDefault(require("@material-ui/icons/ColorLens"));
21
22var _DirectionsCar = _interopRequireDefault(require("@material-ui/icons/DirectionsCar"));
23
24var _EuroSymbol = _interopRequireDefault(require("@material-ui/icons/EuroSymbol"));
25
26var _EvStation = _interopRequireDefault(require("@material-ui/icons/EvStation"));
27
28var _Fingerprint = _interopRequireDefault(require("@material-ui/icons/Fingerprint"));
29
30var _LocalActivity = _interopRequireDefault(require("@material-ui/icons/LocalActivity"));
31
32var _LocalShipping = _interopRequireDefault(require("@material-ui/icons/LocalShipping"));
33
34var _Receipt = _interopRequireDefault(require("@material-ui/icons/Receipt"));
35
36var _Schedule = _interopRequireDefault(require("@material-ui/icons/Schedule"));
37
38var _moment = _interopRequireDefault(require("moment"));
39
40var _numeral = _interopRequireDefault(require("numeral"));
41
42var _gearboxIconInline = _interopRequireDefault(require("./assets/gearboxIcon.inline.svg"));
43
44var _mileageIconInline = _interopRequireDefault(require("./assets/mileageIcon.inline.svg"));
45
46var _leafIconInline = _interopRequireDefault(require("./assets/leafIcon.inline.svg"));
47
48var _i18n = require("../i18n");
49
50var _propTypes = _interopRequireDefault(require("prop-types"));
51
52function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
53
54function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
55
56function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
57
58function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
59
60var translations = {
61 VP: {
62 fr: 'Véhicule particulier',
63 en: 'Particular vehicle',
64 es: 'Vehículo privado'
65 },
66 VU: {
67 fr: 'Véhicule utilitaire',
68 en: 'Commercial vehicle',
69 es: 'Vehículo utilitario'
70 },
71 VASP: {
72 fr: 'Véhicule automoteur spécialisé',
73 en: 'Specialized motor vehicle',
74 es: 'Vehiculo especializado'
75 },
76 EL: {
77 fr: 'Electrique',
78 en: 'Electric',
79 es: 'Electrico'
80 },
81 ET: {
82 fr: 'Ethanol',
83 en: 'Ethanol',
84 es: 'Etanol'
85 },
86 GO: {
87 fr: 'Diesel',
88 en: 'Diesel',
89 es: 'Diesel'
90 },
91 GH: {
92 fr: 'Hybride Diesel',
93 en: 'Diesel Hybrid',
94 es: 'Híbrido diesel'
95 },
96 GF: {
97 fr: 'Diesel GPL',
98 en: 'Diesel LGP',
99 es: 'Diesel GLP'
100 },
101 H2: {
102 fr: 'Hydrogène',
103 en: 'Hydrogen',
104 es: 'Hidrógeno'
105 },
106 LPG: {
107 fr: 'GPL',
108 en: 'LGP',
109 es: 'GLP'
110 },
111 GN: {
112 fr: 'Gaz naturel',
113 en: 'Natural gas',
114 es: 'Gas natural'
115 },
116 ES: {
117 fr: 'Essence',
118 en: 'Gasoline',
119 es: 'Gasolina'
120 },
121 EH: {
122 fr: 'Hybride Essence',
123 en: 'Gasoline hybrid',
124 es: 'Híbrido gasolina'
125 },
126 EG: {
127 fr: 'Essence GPL',
128 en: 'Gasoline LPG',
129 es: 'Gasolina GLP'
130 },
131 doors: {
132 fr: 'portes',
133 en: 'doors',
134 es: 'puertas'
135 },
136 seats: {
137 fr: 'places',
138 en: 'seats',
139 es: 'asientos'
140 },
141 releaseDate: {
142 fr: 'Date M.E.C.',
143 en: 'Release date',
144 es: 'Fecha de puesta en circulación'
145 },
146 mileage: {
147 fr: 'Kilométrage',
148 en: 'Mileage',
149 es: 'Kilometraje'
150 },
151 'delivery mileage': {
152 fr: 'Km livraison',
153 en: 'Delivery mileage',
154 es: 'Kilometraje a la entrega'
155 },
156 'delivery date': {
157 fr: 'Date de livraison',
158 en: 'Delivery date',
159 es: 'Fecha de entrega'
160 },
161 AT: {
162 fr: 'Automatique',
163 en: 'Automatic',
164 es: 'Automática'
165 },
166 MT: {
167 fr: 'Boite manuelle',
168 en: 'Manual gearbox',
169 es: 'Caja manual'
170 },
171 ST: {
172 fr: 'Sequentielle',
173 en: 'Sequential gearbox',
174 es: 'Caja secuencial'
175 },
176 RT: {
177 fr: 'Boîte de vitesses robotisée',
178 en: 'Robotic gearbox',
179 es: 'Caja de cambios robótica'
180 },
181 CVT: {
182 fr: 'Boîte de vitesses CVT',
183 en: 'CVT gearbox',
184 es: 'Caja de cambios CVT'
185 },
186 NONE: {
187 fr: '--',
188 en: '--',
189 es: '--'
190 },
191 'euro standard': {
192 fr: 'Norme Euro',
193 en: 'Euro standard',
194 es: 'Norma Euro'
195 },
196 'first sell price': {
197 fr: 'Prix neuf',
198 en: 'First sell price',
199 es: 'Nueavo precio'
200 },
201 NATCode: {
202 fr: 'NATCode',
203 en: 'NATCode',
204 es: 'NATCode'
205 },
206 VIN: {
207 fr: 'V.I.N.',
208 en: 'V.I.N.',
209 es: 'V.I.N.'
210 },
211 'last registration date': {
212 fr: 'Date certif. immat.',
213 en: 'Registration certificate date',
214 es: 'Fecha de certificado de matriculación'
215 },
216 SALOON: {
217 fr: 'Berline',
218 en: 'Saloon',
219 es: 'Sedán'
220 },
221 SEDAN: {
222 fr: 'Berline',
223 en: 'Saloon',
224 es: 'Sedán'
225 },
226 COMMERCIAL: {
227 fr: 'Véhicule utilitaire',
228 en: 'Commercial vehicle',
229 es: 'Vehículo utilitario'
230 },
231 COUPE: {
232 fr: 'Coupé',
233 en: 'Coupe',
234 es: 'Cupé'
235 },
236 CONVERTIBLE: {
237 fr: 'Cabriolet',
238 en: 'Convertible',
239 es: 'Descapotable'
240 },
241 PICKUP: {
242 fr: 'Pick-up,',
243 en: 'Pickup,',
244 es: 'Camioneta,'
245 },
246 BUS: {
247 fr: 'Bus',
248 en: 'Bus',
249 es: 'Bus'
250 },
251 TRUCK: {
252 fr: 'Camion',
253 en: 'Truck',
254 es: 'Camión'
255 },
256 MINIBUS: {
257 fr: 'Minibus',
258 en: 'Minibus',
259 es: 'Microbús'
260 },
261 BREAK: {
262 fr: 'Break',
263 en: 'Break',
264 es: 'Break'
265 },
266 MPV: {
267 fr: 'Multi-usages',
268 en: 'Multipurpose',
269 es: 'Multipropósito'
270 },
271 ALLROAD: {
272 fr: 'Tout-terrain',
273 en: 'All road',
274 es: 'Todoterreno'
275 },
276 CTTE: {
277 fr: 'Camionnette',
278 en: 'Van',
279 es: 'Furgoneta'
280 },
281 UNKNOWN: {
282 fr: 'Carrosserie inconnue',
283 en: 'Unknown body',
284 es: 'Carrocería desconocida'
285 }
286};
287var allInformation = [{
288 key: 'releaseDate',
289 icon: function icon() {
290 return _react["default"].createElement(_CalendarToday["default"], {
291 fontSize: "small"
292 });
293 },
294 vehicleInfo: function vehicleInfo(_ref) {
295 var releaseDate = _ref.releaseDate,
296 translate = _ref.translate;
297 var formattedDate = "".concat(releaseDate ? (0, _moment["default"])(releaseDate).format('DD/MM/YYYY') : '--');
298 return "".concat(translate('releaseDate'), " : ").concat(formattedDate);
299 }
300}, {
301 key: 'mileage',
302 icon: function icon(_ref2) {
303 var rest = _extends({}, _ref2);
304
305 return _react["default"].createElement(_mileageIconInline["default"], _extends({
306 fontSize: "small"
307 }, rest));
308 },
309 vehicleInfo: function vehicleInfo(_ref3) {
310 var currentKm = _ref3.currentKm,
311 translate = _ref3.translate;
312 var formattedMileage = "".concat(currentKm ? "".concat((0, _numeral["default"])(currentKm).format(), " km") : '--');
313 return "".concat(translate('mileage'), " : ").concat(formattedMileage);
314 }
315}, {
316 key: 'deliveryMileage',
317 icon: function icon() {
318 return _react["default"].createElement(_LocalShipping["default"], {
319 fontSize: "small"
320 });
321 },
322 vehicleInfo: function vehicleInfo(_ref4) {
323 var deliveryKm = _ref4.deliveryKm,
324 translate = _ref4.translate;
325 var formattedMileage = "".concat(deliveryKm ? "".concat((0, _numeral["default"])(deliveryKm).format(), " km") : '--');
326 return "".concat(translate('delivery mileage'), " : ").concat(formattedMileage);
327 }
328}, {
329 key: 'deliveryDate',
330 icon: function icon() {
331 return _react["default"].createElement(_Schedule["default"], {
332 fontSize: "small"
333 });
334 },
335 vehicleInfo: function vehicleInfo(_ref5) {
336 var deliveryDate = _ref5.deliveryDate,
337 translate = _ref5.translate;
338 var formattedDate = "".concat(deliveryDate ? (0, _moment["default"])(deliveryDate).format('DD/MM/YYYY') : '--');
339 return "".concat(translate('delivery date'), " : ").concat(formattedDate);
340 }
341}, {
342 key: 'energy',
343 icon: function icon() {
344 return _react["default"].createElement(_EvStation["default"], {
345 fontSize: "small"
346 });
347 },
348 vehicleInfo: function vehicleInfo(_ref6) {
349 var energy = _ref6.energy,
350 taxPower = _ref6.taxPower,
351 kwPower = _ref6.kwPower,
352 translate = _ref6.translate;
353 var formattedEnergy = energy ? translate(energy) : '--';
354 var formattedKwPower = kwPower ? "".concat(kwPower, " kw") : '--';
355 var formattedTaxPower = taxPower ? "".concat(taxPower, " CV") : '--';
356 return "".concat(formattedEnergy, " / ").concat(formattedKwPower, " / ").concat(formattedTaxPower);
357 }
358}, {
359 key: 'body',
360 icon: function icon() {
361 return _react["default"].createElement(_DirectionsCar["default"], {
362 fontSize: "small"
363 });
364 },
365 vehicleInfo: function vehicleInfo(_ref7) {
366 var body = _ref7.body,
367 type = _ref7.type,
368 translate = _ref7.translate;
369 return "".concat(body ? translate(body) : '--', " / ").concat(type ? translate(type) : '--');
370 }
371}, {
372 key: 'doorsAndSeats',
373 icon: function icon() {
374 return _react["default"].createElement(_AirlineSeatReclineNormal["default"], {
375 fontSize: "small"
376 });
377 },
378 vehicleInfo: function vehicleInfo(_ref8) {
379 var doors = _ref8.doors,
380 seats = _ref8.seats,
381 translate = _ref8.translate;
382 var formattedDoors = doors ? "".concat(doors, " ").concat(translate('doors')) : '--';
383 var formattedSeats = seats ? "".concat(seats, " ").concat(translate('seats')) : '--';
384 return "".concat(formattedDoors, " / ").concat(formattedSeats);
385 }
386}, {
387 key: 'gears',
388 icon: function icon() {
389 return _react["default"].createElement(_gearboxIconInline["default"], null);
390 },
391 vehicleInfo: function vehicleInfo(_ref9) {
392 var gearbox = _ref9.gearbox,
393 hpPower = _ref9.hpPower,
394 translate = _ref9.translate;
395 var formattedHpPower = "".concat(hpPower ? "".concat(hpPower, " ch") : '--');
396 var formattedGearbox = gearbox ? translate(gearbox) : '--';
397 return "".concat(formattedHpPower, " / ").concat(formattedGearbox);
398 }
399}, {
400 key: 'co2',
401 icon: function icon() {
402 return _react["default"].createElement(_leafIconInline["default"], {
403 fontSize: "small"
404 });
405 },
406 vehicleInfo: function vehicleInfo(_ref10) {
407 var co2 = _ref10.co2,
408 euroStandard = _ref10.euroStandard,
409 translate = _ref10.translate;
410 var formattedCo2 = "".concat(co2 ? "".concat(co2, " g/Km") : '--');
411 var formattedEuroStandard = "".concat(translate('euro standard'), " : ").concat(euroStandard || '--');
412 return "".concat(formattedCo2, " / ").concat(formattedEuroStandard);
413 }
414}, {
415 key: 'lastRegDate',
416 icon: function icon() {
417 return _react["default"].createElement(_Receipt["default"], {
418 fontSize: "small"
419 });
420 },
421 vehicleInfo: function vehicleInfo(_ref11) {
422 var lastRegDate = _ref11.lastRegDate,
423 translate = _ref11.translate;
424 var formattedDate = "".concat(lastRegDate ? (0, _moment["default"])(lastRegDate).format('DD/MM/YYYY') : '--');
425 return "".concat(translate('last registration date'), " : ").concat(formattedDate);
426 }
427}, {
428 key: 'color',
429 icon: function icon() {
430 return _react["default"].createElement(_ColorLens["default"], {
431 fontSize: "small"
432 });
433 },
434 vehicleInfo: function vehicleInfo(_ref12) {
435 var color = _ref12.color;
436 return color || '--';
437 }
438}, {
439 key: 'vin',
440 icon: function icon() {
441 return _react["default"].createElement(_Fingerprint["default"], {
442 fontSize: "small"
443 });
444 },
445 vehicleInfo: function vehicleInfo(_ref13) {
446 var vin = _ref13.vin,
447 translate = _ref13.translate;
448 return "".concat(translate('VIN'), " : ").concat(vin || '--');
449 }
450}, {
451 key: 'firstSellPrice',
452 icon: function icon() {
453 return _react["default"].createElement(_EuroSymbol["default"], {
454 fontSize: "small"
455 });
456 },
457 vehicleInfo: function vehicleInfo(_ref14) {
458 var firstSellPrice = _ref14.firstSellPrice,
459 translate = _ref14.translate;
460 var formattedPrice = "".concat(translate('first sell price'), " : ").concat(firstSellPrice ? (0, _numeral["default"])(firstSellPrice).format() : '--', " \u20AC");
461 return "".concat(formattedPrice);
462 }
463}, {
464 key: 'natcode',
465 icon: function icon() {
466 return _react["default"].createElement(_LocalActivity["default"], {
467 fontSize: "small"
468 });
469 },
470 vehicleInfo: function vehicleInfo(_ref15) {
471 var catalogId = _ref15.catalogId,
472 translate = _ref15.translate;
473 return "".concat(translate('NATCode'), " : ").concat(catalogId || '--');
474 }
475}];
476var configLanguage = (0, _i18n.getLanguage)(); // One can use "exclude" and "only" parameters (Array<string>) to choose which fields are displayed
477// and "important" parameter to choose which fields are set highlighted
478// Possible keys of these three parameters are :
479// body | energy | doorsAndSeats | releaseDate | mileage | deliveryMileage | deliveryDate ...
480// ... gears | co2 | firstSellPrice | natcode | color | vin
481
482var VehicleInformationJSX = function VehicleInformationJSX(_ref16) {
483 var css = _ref16.classes,
484 storyLanguage = _ref16.storyLanguage,
485 exclude = _ref16.exclude,
486 only = _ref16.only,
487 important = _ref16.important,
488 className = _ref16.className,
489 style = _ref16.style,
490 rest = _objectWithoutProperties(_ref16, ["classes", "storyLanguage", "exclude", "only", "important", "className", "style"]);
491
492 var translate = function translate(key) {
493 var _storyLanguage;
494
495 return (0, _i18n.getTranslation)(translations, (_storyLanguage = storyLanguage) !== null && _storyLanguage !== void 0 ? _storyLanguage : configLanguage, key);
496 };
497
498 var filteredInformation = allInformation;
499
500 if (exclude && (exclude === null || exclude === void 0 ? void 0 : exclude.length) > 0) {
501 filteredInformation = allInformation.filter(function (_ref17) {
502 var key = _ref17.key;
503 return !exclude.includes(key);
504 });
505 }
506
507 if (only && (only === null || only === void 0 ? void 0 : only.length) > 0) {
508 filteredInformation = allInformation.filter(function (_ref18) {
509 var key = _ref18.key;
510 return only.includes(key);
511 });
512 }
513
514 return _react["default"].createElement(_Grid["default"], _extends({
515 item: true
516 }, {
517 className: className,
518 style: style
519 }), filteredInformation.map(function (_ref19) {
520 var key = _ref19.key,
521 Icon = _ref19.icon,
522 VehicleInfo = _ref19.vehicleInfo;
523 return _react["default"].createElement(_Typography["default"], _extends({
524 variant: "body1",
525 style: {
526 display: 'flex',
527 alignItems: 'center'
528 },
529 className: important && important.includes(key) ? css.important : ''
530 }, {
531 key: key
532 }), _react["default"].createElement("span", {
533 className: css.icon
534 }, _react["default"].createElement(Icon, {
535 className: css.greyIcon
536 })), _react["default"].createElement(VehicleInfo, _extends({
537 translate: translate
538 }, rest)));
539 }));
540};
541
542VehicleInformationJSX.propTypes = {
543 classes: _propTypes["default"].object.isRequired,
544 storyLanguage: _propTypes["default"].string,
545 exclude: _propTypes["default"].arrayOf(_propTypes["default"].string.isRequired),
546 only: _propTypes["default"].arrayOf(_propTypes["default"].string.isRequired),
547 important: _propTypes["default"].arrayOf(_propTypes["default"].string.isRequired),
548 className: _propTypes["default"].string,
549 style: _propTypes["default"].object
550};
551var VehicleInformation = (0, _withStyles["default"])(function (theme) {
552 return {
553 icon: {
554 marginRight: '1rem',
555 display: 'inline-flex',
556 '& svg': {
557 width: '1rem',
558 height: '1rem',
559 fill: theme.palette.secondary.dark
560 }
561 },
562 greyIcon: {
563 '& path': {
564 stroke: theme.palette.secondary.dark
565 }
566 },
567 important: {
568 fontWeight: 900,
569 fontSize: '1.125rem',
570 margin: '4px 0'
571 }
572 };
573})(VehicleInformationJSX);
574var _default = VehicleInformation;
575exports["default"] = _default;
\No newline at end of file