@bytebrand/fe-ui-core 4.8.26 → 4.8.28

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 (1059) hide show
  1. package/.editorconfig +10 -10
  2. package/.husky/pre-push +4 -4
  3. package/.storybook/addons.js +4 -4
  4. package/.storybook/config.js +64 -64
  5. package/.storybook/postcss.config.js +6 -6
  6. package/.storybook/preview-head.html +9 -9
  7. package/.storybook/webpack.config.js +130 -130
  8. package/__tests__/components/Checkout/OrderOverviewItem/OrderOverviewItem.test.tsx +42 -42
  9. package/__tests__/components/Checkout/PaymentTypeCard/PaymentTypeCard.test.tsx +49 -49
  10. package/__tests__/components/Checkout/RadioGroup.test.tsx +95 -95
  11. package/__tests__/components/Checkout/ServiceCardWrapper.test.tsx +53 -53
  12. package/__tests__/components/Checkout/Switcher.test.tsx +43 -43
  13. package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +613 -613
  14. package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +335 -335
  15. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/AdditionalOrderInfo.test.tsx +127 -127
  16. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCar.test.tsx +58 -58
  17. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCard.test.tsx +74 -74
  18. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusSection.test.tsx +62 -62
  19. package/__tests__/components/UserDasboardPage/sections/RequestedCarsSection/RequestedCarsSection.test.tsx +117 -117
  20. package/__tests__/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.test.tsx +58 -58
  21. package/__tests__/components/VehicleSmallCard/VehicleInfo.test.tsx +87 -87
  22. package/__tests__/components/VehicleSmallCard/VehicleTitle.test.tsx +90 -90
  23. package/__tests__/components/_common/Badge/Badge.test.tsx +15 -15
  24. package/__tests__/components/_common/IconSVG/IconSVG.test.tsx +22 -22
  25. package/__tests__/components/_common/Image/Image.test.tsx +82 -82
  26. package/__tests__/components/_common/MaterialAutocomplete/MaterialAutocomplete.test.tsx +48 -48
  27. package/__tests__/components/_common/MaterialDatePicker/MaterialDatePicker.test.tsx +54 -54
  28. package/__tests__/components/_common/MaterialField/MaterialField.test.tsx +58 -58
  29. package/__tests__/components/_common/StarButton/StarButton.test.tsx +45 -45
  30. package/__tests__/mockedData/financingConfig.js +201 -201
  31. package/__tests__/mockedData/mockedPendingRequestedCar.js +68 -68
  32. package/__tests__/utils/CommonUtils/addPrefixToKeys.test.ts +18 -18
  33. package/__tests__/utils/CommonUtils/arrToObj.test.js +32 -32
  34. package/__tests__/utils/CommonUtils/checkRangeValuesOnEqual.test.ts +16 -16
  35. package/__tests__/utils/CommonUtils/fixNumber.test.ts +19 -19
  36. package/__tests__/utils/CommonUtils/formatMileage.test.ts +8 -8
  37. package/__tests__/utils/CommonUtils/getChipFilterValue.test.ts +22 -22
  38. package/__tests__/utils/CommonUtils/getFormattedNumber.test.ts +18 -18
  39. package/__tests__/utils/CommonUtils/getFormattedPrice.test.ts +19 -19
  40. package/__tests__/utils/CommonUtils/getGroupValuesForQuery.test.ts +51 -51
  41. package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +63 -63
  42. package/__tests__/utils/CommonUtils/getPriceRating.test.ts +26 -26
  43. package/__tests__/utils/CommonUtils/getPriceRatingConfig.test.ts +33 -33
  44. package/__tests__/utils/CommonUtils/preloadNearbyImages.test.ts +8 -8
  45. package/__tests__/utils/CommonUtils/sliceLessThan.test.ts +23 -23
  46. package/__tests__/utils/CommonUtils/sliceMoreThan.test.ts +23 -23
  47. package/common.ts +164 -164
  48. package/feWpComponents.ts +25 -25
  49. package/index.ts +4 -4
  50. package/jest.config.js +43 -43
  51. package/landing.ts +38 -38
  52. package/media/images/advantages/advantage_cart.svg +4 -4
  53. package/media/images/advantages/advantage_check.svg +4 -4
  54. package/media/images/advantages/advantage_like.svg +10 -10
  55. package/media/images/advantages/advantage_secure.svg +6 -6
  56. package/media/images/check-blue.svg +40 -40
  57. package/media/images/raiting-star.svg +3 -3
  58. package/media/images/raiting-stars-min.svg +7 -7
  59. package/media/images/refresh-button.svg +49 -49
  60. package/media/images/slider-arrow-big.svg +11 -11
  61. package/media/images/user-icon.svg +16 -16
  62. package/media/locales/de/promoSlider.json +25 -25
  63. package/media/locales/en/promoSlider.json +25 -25
  64. package/media/svg/common/arrow_breadcrumps.svg +3 -3
  65. package/media/svg/common/home.svg +8 -8
  66. package/media/svg/common/whyAutodeIconSet-F.svg +9 -9
  67. package/media/svg/common/whyAutodeIconSet-G.svg +8 -8
  68. package/media/svg/common/whyAutodeIconSet-Q.svg +6 -6
  69. package/media/svg/common/whyAutodeIconSet-R.svg +9 -9
  70. package/media/svg/infoBlocks/whyAutodeIconSet-F.svg +9 -9
  71. package/media/svg/infoBlocks/whyAutodeIconSet-G.svg +8 -8
  72. package/media/svg/infoBlocks/whyAutodeIconSet-Q.svg +6 -6
  73. package/media/svg/infoBlocks/whyAutodeIconSet-R.svg +9 -9
  74. package/media/svg/usp/icon1.svg +16 -16
  75. package/media/svg/usp/icon2.svg +13 -13
  76. package/media/svg/usp/icon3.svg +10 -10
  77. package/media/svg/usp/icon4.svg +14 -14
  78. package/package.json +117 -118
  79. package/profile.ts +1 -1
  80. package/setupTests.js +7 -7
  81. package/source/components/AccardionSection/AccardionSection.styl +45 -45
  82. package/source/components/AccardionSection/AccardionSection.tsx +56 -56
  83. package/source/components/AccordionWidget/AccordionWidget.styl +208 -208
  84. package/source/components/AccordionWidget/AccordionWidget.tsx +216 -216
  85. package/source/components/AdvantageItem/AdvantageItem.story.js +23 -23
  86. package/source/components/AdvantageItem/AdvantageItem.styl +47 -47
  87. package/source/components/AdvantageItem/AdvantageItem.tsx +26 -26
  88. package/source/components/Alternative/Dealer.story.js +31 -31
  89. package/source/components/Alternative/Dealer.story.styl +2 -2
  90. package/source/components/Alternative/DealerInfo.styl +116 -116
  91. package/source/components/Alternative/DealerInfo.tsx +171 -171
  92. package/source/components/Breadcrumbs/Breadcrumbs.story.js +40 -40
  93. package/source/components/Breadcrumbs/Breadcrumbs.styl +136 -136
  94. package/source/components/Breadcrumbs/Breadcrumbs.tsx +93 -93
  95. package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.story.js +45 -45
  96. package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.styl +54 -54
  97. package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.tsx +17 -17
  98. package/source/components/Checkout/CheckoutStepper/CheckoutStepper.styl +34 -34
  99. package/source/components/Checkout/CheckoutStepper/CheckoutStepper.tsx +69 -69
  100. package/source/components/Checkout/CheckoutStepper/CheckoutStepperClasses.js +173 -173
  101. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.js +243 -243
  102. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.styl +20 -20
  103. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.styl +36 -36
  104. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.tsx +53 -53
  105. package/source/components/Checkout/RadioCards/AdditionalServiceCard/ServiceCardWrapper.styl +201 -201
  106. package/source/components/Checkout/RadioCards/AdditionalServiceCard/ServiceCardWrapper.tsx +212 -212
  107. package/source/components/Checkout/RadioCards/ContentCard/AdditionalServiceContent.styl +30 -30
  108. package/source/components/Checkout/RadioCards/ContentCard/AdditionalServiceContent.tsx +62 -62
  109. package/source/components/Checkout/RadioCards/ContentCard/VehicleDeliveryContent.styl +73 -73
  110. package/source/components/Checkout/RadioCards/ContentCard/VehicleDeliveryContent.tsx +61 -61
  111. package/source/components/Checkout/RadioCards/PaymentTypeCard/PaymentTypeCard.styl +193 -193
  112. package/source/components/Checkout/RadioCards/PaymentTypeCard/PaymentTypeCard.tsx +181 -181
  113. package/source/components/Checkout/RadioCards/RadioCheckout.styl +158 -158
  114. package/source/components/Checkout/RadioCards/RadioCheckout.tsx +178 -178
  115. package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.js +105 -105
  116. package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.styl +37 -37
  117. package/source/components/Checkout/Switcher/Switcher.story.js +41 -41
  118. package/source/components/Checkout/Switcher/Switcher.story.styl +1 -1
  119. package/source/components/Checkout/Switcher/Switcher.styled.tsx +53 -53
  120. package/source/components/Checkout/Switcher/Switcher.tsx +48 -48
  121. package/source/components/CompactSearchWidget/CompactSearchFields/CompactSearchFields.styl +176 -176
  122. package/source/components/CompactSearchWidget/CompactSearchFields/CompactSearchFields.tsx +477 -477
  123. package/source/components/CompactSearchWidget/CompactSearchWidget.story.js +187 -187
  124. package/source/components/CompactSearchWidget/CompactSearchWidget.styl +43 -43
  125. package/source/components/CompactSearchWidget/CompactSearchWidget.tsx +165 -165
  126. package/source/components/ContactForm/ContactForm.story.js +93 -93
  127. package/source/components/ContactForm/ContactForm.styl +260 -260
  128. package/source/components/ContactForm/ContactForm.tsx +588 -588
  129. package/source/components/ContactForm/WpContactForm.tsx +287 -287
  130. package/source/components/ContactInfo/ContactInfo.story.js +58 -58
  131. package/source/components/ContactInfo/ContactInfo.styl +22 -22
  132. package/source/components/ContactInfo/ContactInfo.tsx +161 -161
  133. package/source/components/ContactInfo/TemporaryTranslation.ts +11 -11
  134. package/source/components/CustomerQuote/CustomerQuote.story.js +41 -41
  135. package/source/components/CustomerQuote/CustomerQuote.styl +79 -79
  136. package/source/components/CustomerQuote/CustomerQuote.tsx +68 -68
  137. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.js +73 -73
  138. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.styl +4 -4
  139. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.styl +46 -46
  140. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.tsx +79 -79
  141. package/source/components/CustomerQuotesSlider/SliderArrow.tsx +20 -20
  142. package/source/components/FormattedNumber/FormattedNumber.story.js +114 -114
  143. package/source/components/FormattedNumber/FormattedNumber.styl +1 -1
  144. package/source/components/FormattedNumber/FormattedNumber.tsx +90 -90
  145. package/source/components/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.styl +7 -7
  146. package/source/components/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.tsx +30 -30
  147. package/source/components/ImageSettings/EditableOptionsTable/EditableOptionsTable.styl +122 -122
  148. package/source/components/ImageSettings/EditableOptionsTable/EditableOptionsTable.tsx +199 -199
  149. package/source/components/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.styl +3 -3
  150. package/source/components/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.tsx +15 -15
  151. package/source/components/ImageSettings/OptionsTable/OptionsTable.styl +47 -47
  152. package/source/components/ImageSettings/OptionsTable/OptionsTable.tsx +122 -122
  153. package/source/components/ImageSettings/PricePlan/PricePlan.styl +63 -63
  154. package/source/components/ImageSettings/PricePlan/PricePlan.tsx +32 -32
  155. package/source/components/ImageSettings/index.ts +42 -42
  156. package/source/components/ImageSettings/story.js +1212 -1212
  157. package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlock.styl +33 -33
  158. package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlock.tsx +48 -48
  159. package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +66 -66
  160. package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.tsx +21 -21
  161. package/source/components/InfoBlocks/InfoBlockWrapper/InfoBlockWrapper.styl +41 -41
  162. package/source/components/InfoBlocks/InfoBlockWrapper/InfoBlockWrapper.tsx +45 -45
  163. package/source/components/InfoBlocks/InfoBlockWrapper.story.js +101 -101
  164. package/source/components/InfoBlocks/InfoBlockWrapper.story.styl +45 -45
  165. package/source/components/InfoBlocks/PricingToolBlock/PricingTool.styl +6 -6
  166. package/source/components/InfoBlocks/PricingToolBlock/PricingTool.tsx +29 -29
  167. package/source/components/InfoBlocks/PricingToolBlock/PricingToolBlock.styl +45 -45
  168. package/source/components/InfoBlocks/PricingToolBlock/PricingToolBlock.tsx +81 -81
  169. package/source/components/InfoBlocks/ServicesBlock/ServiceBlockItem.styl +47 -47
  170. package/source/components/InfoBlocks/ServicesBlock/ServiceBlockItem.tsx +25 -25
  171. package/source/components/OfferDetailedSection/OfferDetailedSection.styl +31 -31
  172. package/source/components/OfferDetailedSection/OfferDetailedSection.tsx +100 -100
  173. package/source/components/OfferDetailedSection/partials/PanelConfig.styl +131 -131
  174. package/source/components/OfferDetailedSection/partials/PanelConfig.tsx +121 -121
  175. package/source/components/OfferPanel/AboAccordion/AboAccordion.styl +24 -24
  176. package/source/components/OfferPanel/AboAccordion/AboAccordion.tsx +128 -128
  177. package/source/components/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.styl +11 -11
  178. package/source/components/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.tsx +35 -35
  179. package/source/components/OfferPanel/AboAccordion/AboFaq/AboFaq.story.js +97 -97
  180. package/source/components/OfferPanel/AboAccordion/AboFaq/AboFaq.styl +20 -20
  181. package/source/components/OfferPanel/AboAccordion/AboFaq/AboFaq.tsx +25 -25
  182. package/source/components/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.styl +13 -13
  183. package/source/components/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.tsx +39 -39
  184. package/source/components/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.theme.tsx +25 -25
  185. package/source/components/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +73 -73
  186. package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +140 -140
  187. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +120 -120
  188. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +24 -24
  189. package/source/components/OfferPanel/OfferPanel.story.js +139 -139
  190. package/source/components/OfferPanel/OfferPanel.styl +193 -193
  191. package/source/components/OfferPanel/OfferPanel.tsx +81 -81
  192. package/source/components/OfferPanel/OfferPeriod/OfferPeriod.styl +24 -24
  193. package/source/components/OfferPanel/OfferPeriod/OfferPeriod.tsx +45 -45
  194. package/source/components/OfferPanel/RangeGroup/RangeGroup.story.js +35 -35
  195. package/source/components/OfferPanel/RangeGroup/RangeGroup.story.styl +2 -2
  196. package/source/components/OfferPanel/RangeGroup/RangeGroup.tsx +39 -39
  197. package/source/components/PriceRating/PriceRating.story.js +39 -39
  198. package/source/components/PriceRating/PriceRating.story.styl +1 -1
  199. package/source/components/PriceRating/PriceRating.styl +47 -47
  200. package/source/components/PriceRating/PriceRating.tsx +64 -64
  201. package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.js +78 -78
  202. package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.styl +11 -11
  203. package/source/components/PriceRatingDetailed/PriceRatingDetailed.styl +120 -120
  204. package/source/components/PriceRatingDetailed/PriceRatingDetailed.tsx +191 -191
  205. package/source/components/RateSearchValue/RateSearchValue.story.js +78 -78
  206. package/source/components/RateSearchValue/RateSearchValue.story.styl +1 -1
  207. package/source/components/RateSearchValue/RateSearchValue.styl +22 -22
  208. package/source/components/RateSearchValue/RateSearchValue.tsx +55 -55
  209. package/source/components/RateSearchWidget/RateSearchWidget.story.js +57 -57
  210. package/source/components/RateSearchWidget/RateSearchWidget.story.styl +12 -12
  211. package/source/components/RateSearchWidget/RateSearchWidget.styl +106 -106
  212. package/source/components/RateSearchWidget/RateSearchWidget.tsx +163 -163
  213. package/source/components/SearchFilters/FiltersFactory.story.js +273 -273
  214. package/source/components/SearchFilters/FiltersFactory.tsx +85 -85
  215. package/source/components/SearchFilters/Slider.styl +66 -66
  216. package/source/components/SearchFilters/common/Color/Color.styl +29 -29
  217. package/source/components/SearchFilters/common/Color/Color.tsx +60 -60
  218. package/source/components/SearchFilters/common/FilterBlock/FilterBlock.styl +39 -39
  219. package/source/components/SearchFilters/common/FilterBlock/FilterBlock.styled.tsx +28 -28
  220. package/source/components/SearchFilters/common/FilterBlock/FilterBlock.tsx +54 -54
  221. package/source/components/SearchFilters/common/FilterBlock/FilterBlockFactory.tsx +151 -151
  222. package/source/components/SearchFilters/common/RangeControlled/RangeControlled.tsx +155 -155
  223. package/source/components/SearchFilters/filters/AlternativeID.styl +98 -98
  224. package/source/components/SearchFilters/filters/AlternativeID.tsx +67 -67
  225. package/source/components/SearchFilters/filters/Consumption.styl +41 -41
  226. package/source/components/SearchFilters/filters/Consumption.tsx +52 -52
  227. package/source/components/SearchFilters/filters/Cost.styl +43 -43
  228. package/source/components/SearchFilters/filters/Cost.tsx +112 -112
  229. package/source/components/SearchFilters/filters/CubicCapacity.styl +30 -30
  230. package/source/components/SearchFilters/filters/CubicCapacity.tsx +134 -134
  231. package/source/components/SearchFilters/filters/Damaged.styl +1 -1
  232. package/source/components/SearchFilters/filters/Damaged.tsx +40 -40
  233. package/source/components/SearchFilters/filters/Doors.styl +18 -18
  234. package/source/components/SearchFilters/filters/Doors.tsx +113 -113
  235. package/source/components/SearchFilters/filters/DriveType.styl +22 -22
  236. package/source/components/SearchFilters/filters/DriveType.tsx +72 -72
  237. package/source/components/SearchFilters/filters/EmissionClass.tsx +35 -35
  238. package/source/components/SearchFilters/filters/EmissionSticker.styl +46 -46
  239. package/source/components/SearchFilters/filters/EmissionSticker.tsx +52 -52
  240. package/source/components/SearchFilters/filters/FirstRegistration.tsx +96 -96
  241. package/source/components/SearchFilters/filters/Fuel.styl +27 -27
  242. package/source/components/SearchFilters/filters/Fuel.tsx +75 -75
  243. package/source/components/SearchFilters/filters/Highlights.styl +38 -38
  244. package/source/components/SearchFilters/filters/Highlights.tsx +69 -69
  245. package/source/components/SearchFilters/filters/ImagesCount.tsx +66 -66
  246. package/source/components/SearchFilters/filters/InteriorColor.styl +29 -29
  247. package/source/components/SearchFilters/filters/InteriorColor.tsx +71 -71
  248. package/source/components/SearchFilters/filters/InteriorMaterial.styl +28 -28
  249. package/source/components/SearchFilters/filters/InteriorMaterial.tsx +72 -72
  250. package/source/components/SearchFilters/filters/MakeModel.styl +106 -106
  251. package/source/components/SearchFilters/filters/MakeModel.tsx +164 -164
  252. package/source/components/SearchFilters/filters/Mileage.tsx +108 -108
  253. package/source/components/SearchFilters/filters/OwnerID.styl +14 -14
  254. package/source/components/SearchFilters/filters/OwnerID.tsx +65 -65
  255. package/source/components/SearchFilters/filters/Owners.styl +23 -23
  256. package/source/components/SearchFilters/filters/Owners.tsx +72 -72
  257. package/source/components/SearchFilters/filters/Power.tsx +176 -176
  258. package/source/components/SearchFilters/filters/PriceDifference.tsx +67 -67
  259. package/source/components/SearchFilters/filters/Rate.styl +34 -34
  260. package/source/components/SearchFilters/filters/Rate.tsx +53 -53
  261. package/source/components/SearchFilters/filters/Seats.styl +31 -31
  262. package/source/components/SearchFilters/filters/Seats.tsx +53 -53
  263. package/source/components/SearchFilters/filters/StateOptions.styl +16 -16
  264. package/source/components/SearchFilters/filters/StateOptions.tsx +57 -57
  265. package/source/components/SearchFilters/filters/StateOptionsNew.styl +23 -23
  266. package/source/components/SearchFilters/filters/StateOptionsNew.tsx +72 -72
  267. package/source/components/SearchFilters/filters/Transmission.styl +20 -20
  268. package/source/components/SearchFilters/filters/Transmission.tsx +71 -71
  269. package/source/components/SearchFilters/filters/commonFilters.styl +93 -93
  270. package/source/components/SearchPage/ChipFilter/ChipFilter.styl +45 -45
  271. package/source/components/SearchPage/ChipFilter/ChipFilter.tsx +21 -21
  272. package/source/components/SearchPage/DropDown/DropDown.styl +99 -99
  273. package/source/components/SearchPage/DropDown/DropDown.tsx +52 -52
  274. package/source/components/SearchPage/DropDown/MultiDropDown.tsx +84 -84
  275. package/source/components/SearchPage/DropDown/index.ts +8 -8
  276. package/source/components/SearchPage/Filters/HistogramSlider.styl +77 -77
  277. package/source/components/SearchPage/Filters/MakeModel/MakeModel.story.js +11 -11
  278. package/source/components/SearchPage/Filters/MakeModel/MakeModel.styl +95 -95
  279. package/source/components/SearchPage/Filters/MakeModel/MakeModel.tsx +152 -152
  280. package/source/components/SearchPage/Pagination/Pagination.styl +95 -95
  281. package/source/components/SearchPage/Pagination/Pagination.tsx +89 -89
  282. package/source/components/SearchPage/SearchChips/SearchChips.styl +52 -52
  283. package/source/components/SearchPage/SearchChips/SearchChips.tsx +76 -76
  284. package/source/components/SearchPage/SearchTopBar/SearchTopBar.styl +109 -109
  285. package/source/components/SearchPage/SearchTopBar/SearchTopBar.tsx +116 -116
  286. package/source/components/SearchPageMobile/FiltersContainer/FiltersContainer.styl +44 -44
  287. package/source/components/SearchPageMobile/FiltersContainer/FiltersContainer.tsx +162 -162
  288. package/source/components/SearchPageMobile/FiltersDetailed/BodyType.styl +47 -47
  289. package/source/components/SearchPageMobile/FiltersDetailed/BodyType.tsx +85 -85
  290. package/source/components/SearchPageMobile/FiltersDetailed/Consumption.styl +48 -48
  291. package/source/components/SearchPageMobile/FiltersDetailed/Consumption.tsx +76 -76
  292. package/source/components/SearchPageMobile/FiltersDetailed/Doors.styl +52 -52
  293. package/source/components/SearchPageMobile/FiltersDetailed/Doors.tsx +103 -103
  294. package/source/components/SearchPageMobile/FiltersDetailed/FirstRegistration.tsx +69 -69
  295. package/source/components/SearchPageMobile/FiltersDetailed/Fuel.styl +31 -31
  296. package/source/components/SearchPageMobile/FiltersDetailed/Fuel.tsx +83 -83
  297. package/source/components/SearchPageMobile/FiltersDetailed/HistogramSlider.styl +100 -100
  298. package/source/components/SearchPageMobile/FiltersDetailed/MakeModel.styl +95 -95
  299. package/source/components/SearchPageMobile/FiltersDetailed/MakeModel.tsx +171 -171
  300. package/source/components/SearchPageMobile/FiltersDetailed/MakeModelExclude.styl +112 -112
  301. package/source/components/SearchPageMobile/FiltersDetailed/MakeModelExclude.tsx +122 -122
  302. package/source/components/SearchPageMobile/FiltersDetailed/Mileage.tsx +80 -80
  303. package/source/components/SearchPageMobile/FiltersDetailed/Power.tsx +116 -116
  304. package/source/components/SearchPageMobile/FiltersDetailed/Price.tsx +129 -129
  305. package/source/components/SearchPageMobile/FiltersDetailed/Rate.tsx +252 -252
  306. package/source/components/SearchPageMobile/FiltersDetailed/Seats.styl +41 -41
  307. package/source/components/SearchPageMobile/FiltersDetailed/Seats.tsx +85 -85
  308. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.js +834 -834
  309. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.styl +40 -40
  310. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.styl +37 -37
  311. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.tsx +130 -130
  312. package/source/components/SearchWidget/ColorWidget/BodyColorWidget.styl +54 -54
  313. package/source/components/SearchWidget/ColorWidget/BodyColorWidget.tsx +122 -122
  314. package/source/components/SearchWidget/DriveTransmissionWidget/DriveTransmissionWidget.styl +17 -17
  315. package/source/components/SearchWidget/DriveTransmissionWidget/DriveTransmissionWidget.tsx +36 -36
  316. package/source/components/SearchWidget/EnvironmentWidget/DetailedEnvironmentWidget.styl +25 -25
  317. package/source/components/SearchWidget/EnvironmentWidget/DetailedEnvironmentWidget.tsx +126 -126
  318. package/source/components/SearchWidget/EnvironmentWidget/EnvironmentWidget.styl +54 -54
  319. package/source/components/SearchWidget/EnvironmentWidget/EnvironmentWidget.tsx +173 -173
  320. package/source/components/SearchWidget/HighlightsWidget/HighlightsWidget.styl +39 -39
  321. package/source/components/SearchWidget/HighlightsWidget/HighlightsWidget.tsx +99 -99
  322. package/source/components/SearchWidget/InteriorWidget/DetailedInteriorWidget.tsx +44 -44
  323. package/source/components/SearchWidget/InteriorWidget/InteriorWidget.styl +28 -28
  324. package/source/components/SearchWidget/InteriorWidget/InteriorWidget.tsx +42 -42
  325. package/source/components/SearchWidget/OfferDetalisWidget/OfferDetailsWidgetMobile.tsx +59 -59
  326. package/source/components/SearchWidget/SearchWidget.story.js +191 -191
  327. package/source/components/SearchWidget/SearchWidget.story.styl +5 -5
  328. package/source/components/SearchWidget/SearchWidget.styl +196 -196
  329. package/source/components/SearchWidget/SearchWidget.tsx +208 -208
  330. package/source/components/SearchWidget/StateWidget/StateWidget.styl +57 -57
  331. package/source/components/SearchWidget/StateWidget/StateWidget.tsx +106 -106
  332. package/source/components/SearchWidget/SuperAdminWidget/SuperAdminWidget.styl +10 -10
  333. package/source/components/SearchWidget/SuperAdminWidget/SuperAdminWidget.tsx +64 -64
  334. package/source/components/SearchWidget/partials/BuyCar/BuyCar.styl +19 -19
  335. package/source/components/SearchWidget/partials/BuyCar/BuyCar.tsx +162 -162
  336. package/source/components/SearchWidget/partials/DropDown/DropDown.styl +70 -70
  337. package/source/components/SearchWidget/partials/DropDown/DropDown.tsx +36 -36
  338. package/source/components/SearchWidget/partials/DropDown/MultiDropDown.tsx +76 -76
  339. package/source/components/SearchWidget/partials/DropDown/index.ts +7 -7
  340. package/source/components/SearchWidget/partials/DropDownGroup/DropDownGroup.styl +48 -48
  341. package/source/components/SearchWidget/partials/DropDownGroup/DropDownGroup.tsx +101 -101
  342. package/source/components/SearchWidget/partials/FastSearch/FastSearch.tsx +55 -55
  343. package/source/components/SearchWidget/partials/MakerFilter/MakerFilter.styl +8 -8
  344. package/source/components/SearchWidget/partials/MakerFilter/MakerFilter.tsx +69 -69
  345. package/source/components/SearchWidget/partials/PanelFilter/Item.tsx +43 -43
  346. package/source/components/SearchWidget/partials/PanelFilter/PanelFilter.styl +32 -32
  347. package/source/components/SearchWidget/partials/PanelFilter/PanelFilter.tsx +53 -53
  348. package/source/components/SearchWidget/partials/TabPanel/TabPanel.tsx +29 -29
  349. package/source/components/SearchWidget/partials/Tabs/Tab.tsx +20 -20
  350. package/source/components/SearchWidget/partials/Tabs/Tabs.styl +27 -27
  351. package/source/components/SearchWidget/partials/Tabs/Tabs.tsx +69 -69
  352. package/source/components/SearchWidget/partials/Tabs/index.ts +7 -7
  353. package/source/components/SearchWidgetsMobile/BasicDataWidgetMobile/BasicDataWidgetMobile.styl +91 -91
  354. package/source/components/SearchWidgetsMobile/BasicDataWidgetMobile/BasicDataWidgetMobile.tsx +219 -219
  355. package/source/components/SearchWidgetsMobile/EngineTransDriveWidget/EngineTransDriveWidget.styl +47 -47
  356. package/source/components/SearchWidgetsMobile/EngineTransDriveWidget/EngineTransDriveWidget.tsx +126 -126
  357. package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.styl +62 -62
  358. package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.styled.tsx +38 -38
  359. package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.tsx +294 -294
  360. package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidgetCategory.tsx +50 -50
  361. package/source/components/SearchWidgetsMobile/HighlightsWidgetMobile/HighlightsWidgetMobile.styl +50 -50
  362. package/source/components/SearchWidgetsMobile/HighlightsWidgetMobile/HighlightsWidgetMobile.tsx +96 -96
  363. package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidget.styl +30 -30
  364. package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidget.tsx +33 -33
  365. package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidgetMobile.tsx +44 -44
  366. package/source/components/SearchWidgetsMobile/SafetyWidget/SafetyWidget.styl +45 -45
  367. package/source/components/SearchWidgetsMobile/SafetyWidget/SafetyWidget.tsx +149 -149
  368. package/source/components/SearchWidgetsMobile/StateWidget/StateWidget.styl +59 -59
  369. package/source/components/SearchWidgetsMobile/StateWidget/StateWidget.tsx +172 -172
  370. package/source/components/SearchWidgetsMobile/index.ts +18 -18
  371. package/source/components/Stepper/Step/Step.styl +46 -46
  372. package/source/components/Stepper/Step/Step.tsx +44 -44
  373. package/source/components/Stepper/Stepper.story.js +119 -119
  374. package/source/components/Stepper/Stepper.story.styl +41 -41
  375. package/source/components/Stepper/Stepper.styl +10 -10
  376. package/source/components/Stepper/Stepper.tsx +68 -68
  377. package/source/components/Stepper/StepsDivider/StepsDivider.styl +15 -15
  378. package/source/components/Stepper/StepsDivider/StepsDivider.tsx +23 -23
  379. package/source/components/Theme.story.js +36 -36
  380. package/source/components/Theme.story.styl +85 -85
  381. package/source/components/TickerText/TickerText.story.js +17 -17
  382. package/source/components/TickerText/TickerText.styl +43 -43
  383. package/source/components/TickerText/TickerText.tsx +24 -24
  384. package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.styl +38 -38
  385. package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.tsx +120 -120
  386. package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.styl +21 -21
  387. package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.tsx +84 -84
  388. package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.styl +100 -100
  389. package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.tsx +90 -90
  390. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCar.tsx +149 -149
  391. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCard.styl +53 -53
  392. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCard.tsx +41 -41
  393. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.story.js +95 -95
  394. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.styl +166 -166
  395. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.tsx +263 -263
  396. package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.story.js +97 -97
  397. package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.styl +144 -144
  398. package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.tsx +124 -124
  399. package/source/components/UserDashboardPage/sections/RequestedCarsSection/SupportSection.styl +46 -46
  400. package/source/components/UserDashboardPage/sections/RequestedCarsSection/SupportSection.tsx +32 -32
  401. package/source/components/Vehicle/VehicleConsumption/VehicleConsumption.styl +10 -10
  402. package/source/components/Vehicle/VehicleConsumption/VehicleConsumption.tsx +44 -44
  403. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.story.js +247 -247
  404. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.styl +148 -148
  405. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.tsx +163 -163
  406. package/source/components/VehicleCompared/CompareGeneral/CompareGeneral.story.js +30 -30
  407. package/source/components/VehicleCompared/CompareGeneral/CompareGeneral.styl +49 -49
  408. package/source/components/VehicleCompared/CompareGeneral/CompareGeneral.tsx +55 -55
  409. package/source/components/VehicleCompared/ComparePrice/ComparePrice.story.js +18 -18
  410. package/source/components/VehicleCompared/ComparePrice/ComparePrice.styl +17 -17
  411. package/source/components/VehicleCompared/ComparePrice/ComparePrice.tsx +33 -33
  412. package/source/components/VehicleCompared/CompareTitle/CompareTitle.story.js +19 -19
  413. package/source/components/VehicleCompared/CompareTitle/CompareTitle.styl +38 -38
  414. package/source/components/VehicleCompared/CompareTitle/CompareTitle.tsx +32 -32
  415. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.story.js +44 -44
  416. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +36 -36
  417. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +175 -175
  418. package/source/components/VehicleDetailedSidebar/partials/Price.styl +27 -27
  419. package/source/components/VehicleDetailedSidebar/partials/Price.tsx +41 -41
  420. package/source/components/VehicleDetailedSidebar/partials/PriceContent.styl +123 -123
  421. package/source/components/VehicleDetailedSidebar/partials/PriceContent.tsx +128 -128
  422. package/source/components/VehicleDetailedSidebar/partials/Properties.styl +53 -53
  423. package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +117 -117
  424. package/source/components/VehicleDetailedSidebar/partials/Title.styl +35 -35
  425. package/source/components/VehicleDetailedSidebar/partials/Title.tsx +33 -33
  426. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.story.js +120 -120
  427. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.styl +146 -146
  428. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +376 -376
  429. package/source/components/VehicleDetailedSlider/partials/MobileStast.tsx +61 -61
  430. package/source/components/VehicleDetailedSlider/partials/MobileStats.styl +71 -71
  431. package/source/components/VehicleDetailedSlider/partials/PriceData.styl +50 -50
  432. package/source/components/VehicleDetailedSlider/partials/PriceData.tsx +44 -44
  433. package/source/components/VehicleDetailedSlider/partials/Stats.styl +80 -80
  434. package/source/components/VehicleDetailedSlider/partials/Stats.tsx +62 -62
  435. package/source/components/VehicleDetailedSlider/partials/Title.styl +44 -44
  436. package/source/components/VehicleDetailedSlider/partials/Title.tsx +36 -36
  437. package/source/components/VehiclePromoSlider/VehiclePromoInfo/VehiclePromoInfo.story.js +42 -42
  438. package/source/components/VehiclePromoSlider/VehiclePromoInfo/VehiclePromoInfo.styl +298 -298
  439. package/source/components/VehiclePromoSlider/VehiclePromoInfo/VehiclePromoInfo.tsx +201 -201
  440. package/source/components/VehiclePromoSlider/VehiclePromoSlide/VehiclePromoSlide.story.js +62 -62
  441. package/source/components/VehiclePromoSlider/VehiclePromoSlide/VehiclePromoSlide.styl +263 -263
  442. package/source/components/VehiclePromoSlider/VehiclePromoSlide/VehiclePromoSlide.tsx +141 -141
  443. package/source/components/VehiclePromoSlider/VehiclePromoSlider.story.js +42 -42
  444. package/source/components/VehiclePromoSlider/VehiclePromoSlider.styl +122 -122
  445. package/source/components/VehiclePromoSlider/VehiclePromoSlider.tsx +111 -111
  446. package/source/components/VehiclePromoSlider/cars.js +220 -220
  447. package/source/components/VehicleSmallCard/SeoText/SeoText.styl +8 -8
  448. package/source/components/VehicleSmallCard/SeoText/SeoText.tsx +16 -16
  449. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +162 -162
  450. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +190 -190
  451. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +218 -218
  452. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +161 -161
  453. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +164 -164
  454. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +288 -288
  455. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +29 -29
  456. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +34 -34
  457. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +135 -135
  458. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +91 -91
  459. package/source/components/VehicleSmallCard/VehicleSmallCard.story.js +412 -412
  460. package/source/components/VehicleSmallCard/VehicleSmallCard.story.styl +55 -55
  461. package/source/components/VehicleSmallCard/VehicleSmallCard.styl +244 -244
  462. package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +405 -404
  463. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.js +199 -199
  464. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.styl +40 -40
  465. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.styl +150 -150
  466. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.tsx +185 -185
  467. package/source/components/_common/Accordion/Accordion.story.js +36 -36
  468. package/source/components/_common/Accordion/Accordion.styl +2 -2
  469. package/source/components/_common/Accordion/Accordion.tsx +132 -132
  470. package/source/components/_common/Accordion/AccordionTitle/AccordionTitle.styl +49 -49
  471. package/source/components/_common/Accordion/AccordionTitle/AccordionTitle.tsx +33 -33
  472. package/source/components/_common/AccordionWrapper/AccordionItem/AccordionItem.styl +34 -34
  473. package/source/components/_common/AccordionWrapper/AccordionItem/AccordionItem.tsx +64 -64
  474. package/source/components/_common/AccordionWrapper/AccordionWrapper.tsx +34 -34
  475. package/source/components/_common/Badge/Badge.story.js +27 -27
  476. package/source/components/_common/Badge/Badge.story.styl +5 -5
  477. package/source/components/_common/Badge/Badge.styl +44 -44
  478. package/source/components/_common/Badge/Badge.tsx +25 -25
  479. package/source/components/_common/BodyTypeIcons/Audi.tsx +9 -9
  480. package/source/components/_common/BodyTypeIcons/Bmw.tsx +860 -860
  481. package/source/components/_common/BodyTypeIcons/Ford.tsx +31 -31
  482. package/source/components/_common/BodyTypeIcons/IconsConfig.tsx +44 -44
  483. package/source/components/_common/BodyTypeIcons/IconsConfigCompact.tsx +30 -30
  484. package/source/components/_common/BodyTypeIcons/Mazda.tsx +44 -44
  485. package/source/components/_common/BodyTypeIcons/MercedesBenz.tsx +38 -38
  486. package/source/components/_common/BodyTypeIcons/Opel.tsx +19 -19
  487. package/source/components/_common/BodyTypeIcons/Search.tsx +19 -19
  488. package/source/components/_common/BodyTypeIcons/SelectorCategoryCombi.tsx +68 -68
  489. package/source/components/_common/BodyTypeIcons/SelectorCategoryCompact.tsx +20 -20
  490. package/source/components/_common/BodyTypeIcons/SelectorCategoryConvertible.tsx +68 -68
  491. package/source/components/_common/BodyTypeIcons/SelectorCategoryCoupe.tsx +60 -60
  492. package/source/components/_common/BodyTypeIcons/SelectorCategoryMinibus.tsx +64 -64
  493. package/source/components/_common/BodyTypeIcons/SelectorCategorySedan.tsx +69 -69
  494. package/source/components/_common/BodyTypeIcons/SelectorCategorySuv.tsx +77 -77
  495. package/source/components/_common/BodyTypeIcons/SelectorCategoryTransporter.tsx +68 -68
  496. package/source/components/_common/BodyTypeIcons/SelectorCategoryVan.tsx +72 -72
  497. package/source/components/_common/BodyTypeIcons/Volkswagen.tsx +330 -330
  498. package/source/components/_common/BodyTypeIcons/index.ts +17 -17
  499. package/source/components/_common/Bubble/Bubble.story.js +52 -52
  500. package/source/components/_common/Bubble/Bubble.styl +53 -53
  501. package/source/components/_common/Bubble/Bubble.tsx +37 -37
  502. package/source/components/_common/Button/Button.story.js +52 -52
  503. package/source/components/_common/Button/Button.story.styl +5 -5
  504. package/source/components/_common/Button/Button.styl +12 -12
  505. package/source/components/_common/Button/Button.styled.tsx +51 -51
  506. package/source/components/_common/Button/Button.tsx +79 -79
  507. package/source/components/_common/ButtonOld/Button.story.js +54 -54
  508. package/source/components/_common/ButtonOld/Button.story.styl +5 -5
  509. package/source/components/_common/ButtonOld/Button.styl +65 -65
  510. package/source/components/_common/ButtonOld/Button.tsx +84 -84
  511. package/source/components/_common/Checkbox/Checkbox.story.js +85 -85
  512. package/source/components/_common/Checkbox/Checkbox.story.styl +14 -14
  513. package/source/components/_common/Checkbox/Checkbox.styl +119 -119
  514. package/source/components/_common/Checkbox/Checkbox.tsx +151 -151
  515. package/source/components/_common/Checkbox/FormCheckbox.styl +22 -22
  516. package/source/components/_common/Checkbox/FormCheckbox.tsx +86 -86
  517. package/source/components/_common/Checkbox/index.js +4 -4
  518. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.js +126 -126
  519. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.styl +14 -14
  520. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.styl +155 -155
  521. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.tsx +210 -210
  522. package/source/components/_common/Chip/Chip.story.js +43 -43
  523. package/source/components/_common/Chip/Chip.styl +69 -69
  524. package/source/components/_common/Chip/Chip.tsx +38 -38
  525. package/source/components/_common/ChipList/ChipList.story.js +36 -36
  526. package/source/components/_common/ChipList/ChipList.styl +80 -80
  527. package/source/components/_common/ChipList/ChipList.tsx +58 -58
  528. package/source/components/_common/Co2Widget/CO2Efficiency.styl +219 -219
  529. package/source/components/_common/Co2Widget/CO2Efficiency.tsx +93 -93
  530. package/source/components/_common/Divider/Divider.styl +8 -8
  531. package/source/components/_common/Divider/Divider.tsx +16 -16
  532. package/source/components/_common/DoorSelector/DoorSelector.styl +35 -35
  533. package/source/components/_common/DoorSelector/DoorSelector.tsx +39 -39
  534. package/source/components/_common/DropDown/DropDown.story.js +35 -35
  535. package/source/components/_common/DropDown/DropDown.styl +129 -129
  536. package/source/components/_common/DropDown/DropDown.tsx +111 -111
  537. package/source/components/_common/DropDown/DropDownComponents.tsx +53 -53
  538. package/source/components/_common/DropDown/DropDownGroup.styl +20 -20
  539. package/source/components/_common/DropDown/DropDownGroup.tsx +136 -136
  540. package/source/components/_common/DropDown/FormDropDown.styl +35 -35
  541. package/source/components/_common/DropDown/FormDropDown.tsx +53 -53
  542. package/source/components/_common/DropDown/MultiDropDown.tsx +84 -84
  543. package/source/components/_common/DropDown/index.ts +7 -7
  544. package/source/components/_common/ExpandablePanel/ExpandablePanel.story.js +41 -41
  545. package/source/components/_common/ExpandablePanel/ExpandablePanel.styl +19 -19
  546. package/source/components/_common/ExpandablePanel/ExpandablePanel.tsx +88 -88
  547. package/source/components/_common/ExpansionPanel/ExpansionPanel.styl +36 -36
  548. package/source/components/_common/ExpansionPanel/ExpansionPanel.styled.tsx +28 -28
  549. package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +99 -99
  550. package/source/components/_common/FilterLabel/FilterLabel.styl +25 -25
  551. package/source/components/_common/FilterLabel/FilterLabel.tsx +27 -27
  552. package/source/components/_common/Histogram/Histogram.story.js +51 -51
  553. package/source/components/_common/IconContainer/IconContainer.styl +23 -23
  554. package/source/components/_common/IconContainer/IconContainer.tsx +34 -34
  555. package/source/components/_common/IconSVG/IconSVG.story.js +21 -21
  556. package/source/components/_common/IconSVG/IconSVG.story.styl +25 -25
  557. package/source/components/_common/IconSVG/IconSVG.tsx +30 -30
  558. package/source/components/_common/IconSVG/IconSVGConfig.tsx +768 -768
  559. package/source/components/_common/IconSVG/SVG/AboPartner.tsx +16 -16
  560. package/source/components/_common/IconSVG/SVG/ArrowQuotes.tsx +22 -22
  561. package/source/components/_common/IconSVG/SVG/CloseIcon.tsx +17 -17
  562. package/source/components/_common/IconSVG/SVG/CloseIconSelect.tsx +18 -18
  563. package/source/components/_common/IconSVG/SVG/ClosedLockIcon.tsx +18 -18
  564. package/source/components/_common/IconSVG/SVG/DealerCheckIcon.tsx +18 -18
  565. package/source/components/_common/IconSVG/SVG/DealerPopoverMail.tsx +21 -21
  566. package/source/components/_common/IconSVG/SVG/DealerPopoverPhone.tsx +21 -21
  567. package/source/components/_common/IconSVG/SVG/GrayPhoneIcon.tsx +22 -22
  568. package/source/components/_common/IconSVG/SVG/InternetIcon.tsx +18 -18
  569. package/source/components/_common/IconSVG/SVG/WhiteEnvelopeIcon.tsx +21 -21
  570. package/source/components/_common/IconSVG/SVG/bodyType/Cabrio.tsx +23 -23
  571. package/source/components/_common/IconSVG/SVG/bodyType/Coupe.tsx +22 -22
  572. package/source/components/_common/IconSVG/SVG/bodyType/Minibus.tsx +22 -22
  573. package/source/components/_common/IconSVG/SVG/bodyType/Other.tsx +25 -25
  574. package/source/components/_common/IconSVG/SVG/bodyType/Sedan.tsx +22 -22
  575. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryCombi.tsx +68 -68
  576. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryCompact.tsx +20 -20
  577. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryConvertible.tsx +68 -68
  578. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryCoupe.tsx +60 -60
  579. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryMinibus.tsx +64 -64
  580. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryOther.tsx +60 -60
  581. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategorySedan.tsx +69 -69
  582. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategorySuv.tsx +77 -77
  583. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryTransporter.tsx +68 -68
  584. package/source/components/_common/IconSVG/SVG/bodyType/SelectorCategoryVan.tsx +72 -72
  585. package/source/components/_common/IconSVG/SVG/bodyType/Small.tsx +23 -23
  586. package/source/components/_common/IconSVG/SVG/bodyType/Suv.tsx +23 -23
  587. package/source/components/_common/IconSVG/SVG/bodyType/Van.tsx +23 -23
  588. package/source/components/_common/IconSVG/SVG/bodyType/Wagon.tsx +23 -23
  589. package/source/components/_common/IconSVG/SVG/common/AddIcon.tsx +16 -16
  590. package/source/components/_common/IconSVG/SVG/common/AddPlus.tsx +16 -16
  591. package/source/components/_common/IconSVG/SVG/common/AddressDashboard.tsx +29 -29
  592. package/source/components/_common/IconSVG/SVG/common/AddressIcon.tsx +20 -20
  593. package/source/components/_common/IconSVG/SVG/common/ArrowDetailedAccordionBlue.tsx +26 -26
  594. package/source/components/_common/IconSVG/SVG/common/ArrowDownBlue.tsx +21 -21
  595. package/source/components/_common/IconSVG/SVG/common/ArrowSelect.tsx +23 -23
  596. package/source/components/_common/IconSVG/SVG/common/ArrowStepDown.tsx +18 -18
  597. package/source/components/_common/IconSVG/SVG/common/Autocheck.tsx +19 -19
  598. package/source/components/_common/IconSVG/SVG/common/AutodeLogo.tsx +36 -36
  599. package/source/components/_common/IconSVG/SVG/common/Avatar.tsx +17 -17
  600. package/source/components/_common/IconSVG/SVG/common/BellGray.tsx +19 -19
  601. package/source/components/_common/IconSVG/SVG/common/BigInfoTransparent.tsx +13 -13
  602. package/source/components/_common/IconSVG/SVG/common/Browse.tsx +20 -20
  603. package/source/components/_common/IconSVG/SVG/common/Calendar.tsx +24 -24
  604. package/source/components/_common/IconSVG/SVG/common/CallbackDashboard.tsx +30 -30
  605. package/source/components/_common/IconSVG/SVG/common/Camera.tsx +17 -17
  606. package/source/components/_common/IconSVG/SVG/common/Car.tsx +16 -16
  607. package/source/components/_common/IconSVG/SVG/common/CarBody.tsx +19 -19
  608. package/source/components/_common/IconSVG/SVG/common/CarFront.tsx +43 -43
  609. package/source/components/_common/IconSVG/SVG/common/CarInspectionCheck.tsx +21 -21
  610. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme0.tsx +32 -32
  611. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme1.tsx +53 -53
  612. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme2.tsx +52 -52
  613. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme3.tsx +32 -32
  614. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme4.tsx +32 -32
  615. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme5.tsx +32 -32
  616. package/source/components/_common/IconSVG/SVG/common/CarInspectionScheme6.tsx +32 -32
  617. package/source/components/_common/IconSVG/SVG/common/CarInspectionSchemeGeneral copy.tsx +24 -24
  618. package/source/components/_common/IconSVG/SVG/common/CarInspectionSchemeGeneral.tsx +24 -24
  619. package/source/components/_common/IconSVG/SVG/common/CheckBlue.tsx +18 -18
  620. package/source/components/_common/IconSVG/SVG/common/CheckGreen.tsx +22 -22
  621. package/source/components/_common/IconSVG/SVG/common/CheckMark.tsx +16 -16
  622. package/source/components/_common/IconSVG/SVG/common/CheckWhite.tsx +19 -19
  623. package/source/components/_common/IconSVG/SVG/common/Chevron.tsx +17 -17
  624. package/source/components/_common/IconSVG/SVG/common/CircledCheckmark.tsx +25 -25
  625. package/source/components/_common/IconSVG/SVG/common/Clock.tsx +18 -18
  626. package/source/components/_common/IconSVG/SVG/common/Close.tsx +19 -19
  627. package/source/components/_common/IconSVG/SVG/common/CloseGrey.tsx +22 -22
  628. package/source/components/_common/IconSVG/SVG/common/ContactEmail.tsx +21 -21
  629. package/source/components/_common/IconSVG/SVG/common/ContactPhone.tsx +28 -28
  630. package/source/components/_common/IconSVG/SVG/common/CopyIcon copy.tsx +22 -22
  631. package/source/components/_common/IconSVG/SVG/common/CopyIcon.tsx +22 -22
  632. package/source/components/_common/IconSVG/SVG/common/CopyIconForDealer.tsx +21 -21
  633. package/source/components/_common/IconSVG/SVG/common/DashboardIcon.tsx +20 -20
  634. package/source/components/_common/IconSVG/SVG/common/DashboardQuestionMark.tsx +20 -20
  635. package/source/components/_common/IconSVG/SVG/common/DealersIcon.tsx +20 -20
  636. package/source/components/_common/IconSVG/SVG/common/DeleteCircle.tsx +31 -31
  637. package/source/components/_common/IconSVG/SVG/common/DeleteV1Icon.tsx +18 -18
  638. package/source/components/_common/IconSVG/SVG/common/DeliveryDashboard.tsx +25 -25
  639. package/source/components/_common/IconSVG/SVG/common/DeliveryMail.tsx +24 -24
  640. package/source/components/_common/IconSVG/SVG/common/Discount100De.tsx +18 -18
  641. package/source/components/_common/IconSVG/SVG/common/Discount100En.tsx +19 -19
  642. package/source/components/_common/IconSVG/SVG/common/Discount66De.tsx +28 -28
  643. package/source/components/_common/IconSVG/SVG/common/Discount66En.tsx +20 -20
  644. package/source/components/_common/IconSVG/SVG/common/DoneIcon.tsx +18 -18
  645. package/source/components/_common/IconSVG/SVG/common/EditCircle.tsx +32 -32
  646. package/source/components/_common/IconSVG/SVG/common/EditPriceIcon.tsx +20 -20
  647. package/source/components/_common/IconSVG/SVG/common/EuroCurrency.tsx +18 -18
  648. package/source/components/_common/IconSVG/SVG/common/Export.tsx +20 -20
  649. package/source/components/_common/IconSVG/SVG/common/Eye.tsx +17 -17
  650. package/source/components/_common/IconSVG/SVG/common/EyeCatch.tsx +19 -19
  651. package/source/components/_common/IconSVG/SVG/common/FavoritesIcon.tsx +20 -20
  652. package/source/components/_common/IconSVG/SVG/common/FilterRange.tsx +16 -16
  653. package/source/components/_common/IconSVG/SVG/common/FilterToolBlack.tsx +23 -23
  654. package/source/components/_common/IconSVG/SVG/common/FlagDe.tsx +21 -21
  655. package/source/components/_common/IconSVG/SVG/common/FlagEn.tsx +43 -43
  656. package/source/components/_common/IconSVG/SVG/common/GrayEnvelopeIcon.tsx +19 -19
  657. package/source/components/_common/IconSVG/SVG/common/HamburgerMenuIcon.tsx +18 -18
  658. package/source/components/_common/IconSVG/SVG/common/HandingOverDashboard.tsx +32 -32
  659. package/source/components/_common/IconSVG/SVG/common/ImageSettingsIcon.tsx +20 -20
  660. package/source/components/_common/IconSVG/SVG/common/Info.tsx +16 -16
  661. package/source/components/_common/IconSVG/SVG/common/InfoIcon.tsx +17 -17
  662. package/source/components/_common/IconSVG/SVG/common/InfoTransparent.tsx +18 -18
  663. package/source/components/_common/IconSVG/SVG/common/LogoutIcon.tsx +20 -20
  664. package/source/components/_common/IconSVG/SVG/common/MagnifyingGlass.tsx +31 -31
  665. package/source/components/_common/IconSVG/SVG/common/MenuArrow.tsx +16 -16
  666. package/source/components/_common/IconSVG/SVG/common/MenuGrey.tsx +22 -22
  667. package/source/components/_common/IconSVG/SVG/common/MobileDeLogo.tsx +108 -108
  668. package/source/components/_common/IconSVG/SVG/common/MyOrderIcon.tsx +20 -20
  669. package/source/components/_common/IconSVG/SVG/common/MyVehiclesIcon.tsx +20 -20
  670. package/source/components/_common/IconSVG/SVG/common/NewFlagDe.tsx +25 -25
  671. package/source/components/_common/IconSVG/SVG/common/NewFlagEn.tsx +34 -34
  672. package/source/components/_common/IconSVG/SVG/common/OrderReceivedDashboard.tsx +27 -27
  673. package/source/components/_common/IconSVG/SVG/common/Package.tsx +30 -30
  674. package/source/components/_common/IconSVG/SVG/common/Phone.tsx +18 -18
  675. package/source/components/_common/IconSVG/SVG/common/PhoneGrey.tsx +22 -22
  676. package/source/components/_common/IconSVG/SVG/common/PickupDashboard.tsx +30 -30
  677. package/source/components/_common/IconSVG/SVG/common/Picture.tsx +24 -24
  678. package/source/components/_common/IconSVG/SVG/common/Pictures.tsx +32 -32
  679. package/source/components/_common/IconSVG/SVG/common/Plus.tsx +16 -16
  680. package/source/components/_common/IconSVG/SVG/common/PlusNew.tsx +16 -16
  681. package/source/components/_common/IconSVG/SVG/common/PreparationDashboard.tsx +29 -29
  682. package/source/components/_common/IconSVG/SVG/common/ProfileDashboard.tsx +24 -24
  683. package/source/components/_common/IconSVG/SVG/common/ProfileIcon.tsx +17 -17
  684. package/source/components/_common/IconSVG/SVG/common/Question.tsx +19 -19
  685. package/source/components/_common/IconSVG/SVG/common/QuestionBold.tsx +25 -25
  686. package/source/components/_common/IconSVG/SVG/common/RegistrationDashboard.tsx +31 -31
  687. package/source/components/_common/IconSVG/SVG/common/SavedSearchsIcon.tsx +20 -20
  688. package/source/components/_common/IconSVG/SVG/common/Search.tsx +19 -19
  689. package/source/components/_common/IconSVG/SVG/common/SearchGrey.tsx +22 -22
  690. package/source/components/_common/IconSVG/SVG/common/SettingPenIcon.tsx +20 -20
  691. package/source/components/_common/IconSVG/SVG/common/Share.tsx +16 -16
  692. package/source/components/_common/IconSVG/SVG/common/ShoppingCart.tsx +18 -18
  693. package/source/components/_common/IconSVG/SVG/common/SliderArrow.tsx +21 -21
  694. package/source/components/_common/IconSVG/SVG/common/SliderEye.tsx +17 -17
  695. package/source/components/_common/IconSVG/SVG/common/SortUpDownArrows.tsx +18 -18
  696. package/source/components/_common/IconSVG/SVG/common/Speedometer.tsx +23 -23
  697. package/source/components/_common/IconSVG/SVG/common/Star.tsx +20 -20
  698. package/source/components/_common/IconSVG/SVG/common/StarNew.tsx +16 -16
  699. package/source/components/_common/IconSVG/SVG/common/StarOutline.tsx +20 -20
  700. package/source/components/_common/IconSVG/SVG/common/StarRoundedCorners.tsx +18 -18
  701. package/source/components/_common/IconSVG/SVG/common/Stats.tsx +17 -17
  702. package/source/components/_common/IconSVG/SVG/common/Step1.tsx +21 -21
  703. package/source/components/_common/IconSVG/SVG/common/Step2.tsx +20 -20
  704. package/source/components/_common/IconSVG/SVG/common/Step3.tsx +21 -21
  705. package/source/components/_common/IconSVG/SVG/common/SupportCallbackIcon.tsx +20 -20
  706. package/source/components/_common/IconSVG/SVG/common/Telephone.tsx +22 -22
  707. package/source/components/_common/IconSVG/SVG/common/Time.tsx +17 -17
  708. package/source/components/_common/IconSVG/SVG/common/Timetable.tsx +18 -18
  709. package/source/components/_common/IconSVG/SVG/common/Trash.tsx +22 -22
  710. package/source/components/_common/IconSVG/SVG/common/TrashRed.tsx +23 -23
  711. package/source/components/_common/IconSVG/SVG/common/Upload.tsx +17 -17
  712. package/source/components/_common/IconSVG/SVG/common/UserGrey.tsx +22 -22
  713. package/source/components/_common/IconSVG/SVG/common/UserProfileIcon.tsx +20 -20
  714. package/source/components/_common/IconSVG/SVG/common/ValidateFailure.tsx +21 -21
  715. package/source/components/_common/IconSVG/SVG/common/ValidateSuccess.tsx +21 -21
  716. package/source/components/_common/IconSVG/SVG/common/WarningTriangle.tsx +20 -20
  717. package/source/components/_common/IconSVG/SVG/common/WhiteArrowUp.tsx +21 -21
  718. package/source/components/_common/IconSVG/SVG/common/WhiteKey.tsx +21 -21
  719. package/source/components/_common/IconSVG/SVG/common/WhitePeople.tsx +23 -23
  720. package/source/components/_common/IconSVG/SVG/common/WhiteTick.tsx +19 -19
  721. package/source/components/_common/IconSVG/SVG/flags/AT.tsx +19 -19
  722. package/source/components/_common/IconSVG/SVG/flags/BE.tsx +20 -20
  723. package/source/components/_common/IconSVG/SVG/flags/BG.tsx +20 -20
  724. package/source/components/_common/IconSVG/SVG/flags/CH.tsx +22 -22
  725. package/source/components/_common/IconSVG/SVG/flags/CZ.tsx +18 -18
  726. package/source/components/_common/IconSVG/SVG/flags/DE.tsx +18 -18
  727. package/source/components/_common/IconSVG/SVG/flags/DK.tsx +18 -18
  728. package/source/components/_common/IconSVG/SVG/flags/ES.tsx +2585 -2585
  729. package/source/components/_common/IconSVG/SVG/flags/FI.tsx +18 -18
  730. package/source/components/_common/IconSVG/SVG/flags/FR.tsx +20 -20
  731. package/source/components/_common/IconSVG/SVG/flags/GB.tsx +26 -26
  732. package/source/components/_common/IconSVG/SVG/flags/HR.tsx +135 -135
  733. package/source/components/_common/IconSVG/SVG/flags/HU.tsx +20 -20
  734. package/source/components/_common/IconSVG/SVG/flags/IT.tsx +20 -20
  735. package/source/components/_common/IconSVG/SVG/flags/LI.tsx +106 -106
  736. package/source/components/_common/IconSVG/SVG/flags/LU.tsx +18 -18
  737. package/source/components/_common/IconSVG/SVG/flags/NL.tsx +18 -18
  738. package/source/components/_common/IconSVG/SVG/flags/NO.tsx +20 -20
  739. package/source/components/_common/IconSVG/SVG/flags/PL.tsx +19 -19
  740. package/source/components/_common/IconSVG/SVG/flags/RO.tsx +20 -20
  741. package/source/components/_common/IconSVG/SVG/flags/RU.tsx +20 -20
  742. package/source/components/_common/IconSVG/SVG/flags/SE.tsx +20 -20
  743. package/source/components/_common/IconSVG/SVG/flags/SI.tsx +54 -54
  744. package/source/components/_common/IconSVG/SVG/flags/SK.tsx +34 -34
  745. package/source/components/_common/IconSVG/SVG/flags/UA.tsx +19 -19
  746. package/source/components/_common/IconSVG/SVG/infoBlocks/14DaysReturnPolicy.tsx +18 -18
  747. package/source/components/_common/IconSVG/SVG/infoBlocks/AlertInfo.tsx +19 -19
  748. package/source/components/_common/IconSVG/SVG/infoBlocks/Autocheck.tsx +19 -19
  749. package/source/components/_common/IconSVG/SVG/infoBlocks/CheckTheStory.tsx +22 -22
  750. package/source/components/_common/IconSVG/SVG/infoBlocks/CustomerServiceWhite.tsx +16 -16
  751. package/source/components/_common/IconSVG/SVG/infoBlocks/Guarantee.tsx +16 -16
  752. package/source/components/_common/IconSVG/SVG/infoBlocks/OrderWhite.tsx +13 -13
  753. package/source/components/_common/IconSVG/SVG/infoBlocks/PriceGuarantee.tsx +19 -19
  754. package/source/components/_common/IconSVG/SVG/infoBlocks/PriceGuaranteeWhite.tsx +17 -17
  755. package/source/components/_common/IconSVG/SVG/infoBlocks/TransportAndDelivery.tsx +21 -21
  756. package/source/components/_common/IconSVG/SVG/infoBlocks/Warranty.tsx +23 -23
  757. package/source/components/_common/IconSVG/SVG/popower/Mail.tsx +18 -18
  758. package/source/components/_common/IconSVG/SVG/popower/Phone.tsx +19 -19
  759. package/source/components/_common/IconSVG/SVG/popower/Schedule.tsx +18 -18
  760. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/AAllWheelDrive.tsx +26 -26
  761. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/AllWheelDrive.tsx +26 -26
  762. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/FrontWheelDrive.tsx +25 -25
  763. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/OtherWheelDrive.tsx +26 -26
  764. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/RearWheelDrive.tsx +25 -25
  765. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelDiesel.tsx +18 -18
  766. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelElectrical.tsx +19 -19
  767. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelElectricalDiesel.tsx +34 -34
  768. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelElectricalPetrol.tsx +20 -20
  769. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelEthanol.tsx +53 -53
  770. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelHydrogen.tsx +24 -24
  771. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelLpg.tsx +24 -24
  772. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelNaturalGas.tsx +23 -23
  773. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelOther.tsx +28 -28
  774. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelPetrol.tsx +18 -18
  775. package/source/components/_common/IconSVG/SVG/settings/Account.tsx +17 -17
  776. package/source/components/_common/IconSVG/SVG/settings/DataUsage.tsx +17 -17
  777. package/source/components/_common/IconSVG/SVG/settings/MarketResearch.tsx +17 -17
  778. package/source/components/_common/IconSVG/SVG/settings/Newsletter.tsx +17 -17
  779. package/source/components/_common/IconSVG/SVG/settings/RemoveEye.tsx +17 -17
  780. package/source/components/_common/IconSVG/SVG/settings/RemoveEyeOff.tsx +17 -17
  781. package/source/components/_common/IconSVG/SVG/settings/Security.tsx +17 -17
  782. package/source/components/_common/IconSVG/SVG/settings/Warning.tsx +17 -17
  783. package/source/components/_common/IconSVG/SVG/slider/360.tsx +23 -23
  784. package/source/components/_common/IconSVG/SVG/slider/360New.tsx +20 -20
  785. package/source/components/_common/IconSVG/SVG/slider/Checked.tsx +19 -19
  786. package/source/components/_common/IconSVG/SVG/slider/DiscountRibbon.tsx +51 -51
  787. package/source/components/_common/IconSVG/SVG/slider/DiscountRibbonMobile.tsx +47 -47
  788. package/source/components/_common/IconSVG/SVG/slider/DiscountRibbonNew.tsx +29 -29
  789. package/source/components/_common/IconSVG/SVG/slider/Easy.tsx +19 -19
  790. package/source/components/_common/IconSVG/SVG/slider/Fullscreen.tsx +16 -16
  791. package/source/components/_common/IconSVG/SVG/slider/FullscreenWindow.tsx +23 -23
  792. package/source/components/_common/IconSVG/SVG/slider/Safe.tsx +19 -19
  793. package/source/components/_common/IconSVG/SVG/slider/ToBuy.tsx +19 -19
  794. package/source/components/_common/IconSVG/SVG/slider/YoutubeButton.tsx +26 -26
  795. package/source/components/_common/IconSVG/SVG/slider/ZoomIn.tsx +21 -21
  796. package/source/components/_common/IconSVG/SVG/slider/ZoomOut.tsx +21 -21
  797. package/source/components/_common/IconSVG/SVG/social/AndroidLogo.tsx +18 -18
  798. package/source/components/_common/IconSVG/SVG/social/Apple.tsx +19 -19
  799. package/source/components/_common/IconSVG/SVG/social/FacebookF.tsx +19 -19
  800. package/source/components/_common/IconSVG/SVG/social/GooglePlusG.tsx +19 -19
  801. package/source/components/_common/IconSVG/SVG/social/Instagram.tsx +17 -17
  802. package/source/components/_common/IconSVG/SVG/social/Pinterest.tsx +19 -19
  803. package/source/components/_common/IconSVG/SVG/social/SharingInterface.tsx +21 -21
  804. package/source/components/_common/IconSVG/SVG/social/Twitter.tsx +19 -19
  805. package/source/components/_common/IconSVG/SVG/social/Youtube.tsx +19 -19
  806. package/source/components/_common/IconSVG/SVG/vehicle/AboIcon.tsx +11 -11
  807. package/source/components/_common/IconSVG/SVG/vehicle/Abs.tsx +24 -24
  808. package/source/components/_common/IconSVG/SVG/vehicle/AirCond.tsx +34 -34
  809. package/source/components/_common/IconSVG/SVG/vehicle/Airbag.tsx +21 -21
  810. package/source/components/_common/IconSVG/SVG/vehicle/AuxiliaryHeating.tsx +23 -23
  811. package/source/components/_common/IconSVG/SVG/vehicle/Bluetooth.tsx +22 -22
  812. package/source/components/_common/IconSVG/SVG/vehicle/BuyIcon.tsx +15 -15
  813. package/source/components/_common/IconSVG/SVG/vehicle/CarAvailability.tsx +22 -22
  814. package/source/components/_common/IconSVG/SVG/vehicle/CarInspectionCheck.tsx +21 -21
  815. package/source/components/_common/IconSVG/SVG/vehicle/CarInspectionCross.tsx +21 -21
  816. package/source/components/_common/IconSVG/SVG/vehicle/CheckoutChecked.tsx +15 -15
  817. package/source/components/_common/IconSVG/SVG/vehicle/Co2.tsx +24 -24
  818. package/source/components/_common/IconSVG/SVG/vehicle/CruiseControl.tsx +25 -25
  819. package/source/components/_common/IconSVG/SVG/vehicle/Date.tsx +21 -21
  820. package/source/components/_common/IconSVG/SVG/vehicle/Delivery.tsx +12 -12
  821. package/source/components/_common/IconSVG/SVG/vehicle/Diesel.tsx +28 -28
  822. package/source/components/_common/IconSVG/SVG/vehicle/Display.tsx +25 -25
  823. package/source/components/_common/IconSVG/SVG/vehicle/Done.tsx +11 -11
  824. package/source/components/_common/IconSVG/SVG/vehicle/Door.tsx +19 -19
  825. package/source/components/_common/IconSVG/SVG/vehicle/DoubleDone.tsx +18 -18
  826. package/source/components/_common/IconSVG/SVG/vehicle/EditIcon.tsx +11 -11
  827. package/source/components/_common/IconSVG/SVG/vehicle/EmergencyBrakeAssistant.tsx +27 -27
  828. package/source/components/_common/IconSVG/SVG/vehicle/Eps.tsx +24 -24
  829. package/source/components/_common/IconSVG/SVG/vehicle/Esp.tsx +24 -24
  830. package/source/components/_common/IconSVG/SVG/vehicle/FinancingIcon.tsx +20 -20
  831. package/source/components/_common/IconSVG/SVG/vehicle/FuelConsumption.tsx +20 -20
  832. package/source/components/_common/IconSVG/SVG/vehicle/Fueling.tsx +22 -22
  833. package/source/components/_common/IconSVG/SVG/vehicle/FullDrive.tsx +24 -24
  834. package/source/components/_common/IconSVG/SVG/vehicle/GasElectric.tsx +28 -28
  835. package/source/components/_common/IconSVG/SVG/vehicle/HandsFreePhoneSystem.tsx +24 -24
  836. package/source/components/_common/IconSVG/SVG/vehicle/Kw.tsx +23 -23
  837. package/source/components/_common/IconSVG/SVG/vehicle/LastCrawledAt.tsx +22 -22
  838. package/source/components/_common/IconSVG/SVG/vehicle/LeasingIcon.tsx +14 -14
  839. package/source/components/_common/IconSVG/SVG/vehicle/Led.tsx +24 -24
  840. package/source/components/_common/IconSVG/SVG/vehicle/LightSensor.tsx +22 -22
  841. package/source/components/_common/IconSVG/SVG/vehicle/LinkAlternative.tsx +15 -15
  842. package/source/components/_common/IconSVG/SVG/vehicle/Location.tsx +17 -17
  843. package/source/components/_common/IconSVG/SVG/vehicle/MinusIcon.tsx +11 -11
  844. package/source/components/_common/IconSVG/SVG/vehicle/Mirror.tsx +19 -19
  845. package/source/components/_common/IconSVG/SVG/vehicle/Navigation.tsx +27 -27
  846. package/source/components/_common/IconSVG/SVG/vehicle/NewCar.tsx +21 -21
  847. package/source/components/_common/IconSVG/SVG/vehicle/NoImage.tsx +17 -17
  848. package/source/components/_common/IconSVG/SVG/vehicle/Owner.tsx +18 -18
  849. package/source/components/_common/IconSVG/SVG/vehicle/PanoramicRoof.tsx +23 -23
  850. package/source/components/_common/IconSVG/SVG/vehicle/ParkingAssistants.tsx +24 -24
  851. package/source/components/_common/IconSVG/SVG/vehicle/PickYourself.tsx +18 -18
  852. package/source/components/_common/IconSVG/SVG/vehicle/PlusIcon.tsx +11 -11
  853. package/source/components/_common/IconSVG/SVG/vehicle/Power.tsx +21 -21
  854. package/source/components/_common/IconSVG/SVG/vehicle/Ps.tsx +19 -19
  855. package/source/components/_common/IconSVG/SVG/vehicle/Question.tsx +24 -24
  856. package/source/components/_common/IconSVG/SVG/vehicle/Seats.tsx +21 -21
  857. package/source/components/_common/IconSVG/SVG/vehicle/SeatsHeating.tsx +26 -26
  858. package/source/components/_common/IconSVG/SVG/vehicle/SelectorGearboxAutomatic.tsx +24 -24
  859. package/source/components/_common/IconSVG/SVG/vehicle/SelectorGearboxManualShift.tsx +19 -19
  860. package/source/components/_common/IconSVG/SVG/vehicle/SelectorGearboxOther.tsx +24 -24
  861. package/source/components/_common/IconSVG/SVG/vehicle/SelectorGearboxSemiAutomatic.tsx +30 -30
  862. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypeAlcantara.tsx +225 -225
  863. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypeFabric.tsx +29 -29
  864. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypeFullLeather.tsx +29 -29
  865. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypeOther.tsx +26 -26
  866. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypePartLeather.tsx +142 -142
  867. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypeSyntheticLeather.tsx +27 -27
  868. package/source/components/_common/IconSVG/SVG/vehicle/SelectorInteriorTypeVelours.tsx +39 -39
  869. package/source/components/_common/IconSVG/SVG/vehicle/Shield.tsx +39 -39
  870. package/source/components/_common/IconSVG/SVG/vehicle/Speedometer.tsx +17 -17
  871. package/source/components/_common/IconSVG/SVG/vehicle/StartStopSystem.tsx +30 -30
  872. package/source/components/_common/IconSVG/SVG/vehicle/Stop.tsx +25 -25
  873. package/source/components/_common/IconSVG/SVG/vehicle/TickMark.tsx +21 -21
  874. package/source/components/_common/IconSVG/SVG/vehicle/TrafficSignRecognition.tsx +29 -29
  875. package/source/components/_common/IconSVG/SVG/vehicle/TrailerCoupling.tsx +24 -24
  876. package/source/components/_common/IconSVG/SVG/vehicle/Transmission.tsx +27 -27
  877. package/source/components/_common/IconSVG/SVG/vehicle/Wheel.tsx +43 -43
  878. package/source/components/_common/IconSVG/SVG/vehicle/Wipers.tsx +22 -22
  879. package/source/components/_common/IconSVG/SVG/vehicle/Wrench.tsx +17 -17
  880. package/source/components/_common/Image/Image.story.js +142 -142
  881. package/source/components/_common/Image/Image.story.styl +18 -18
  882. package/source/components/_common/Image/Image.styl +109 -109
  883. package/source/components/_common/Image/Image.tsx +302 -302
  884. package/source/components/_common/ImagesSet/ImagesSet.story.js +34 -34
  885. package/source/components/_common/ImagesSet/ImagesSet.story.styl +3 -3
  886. package/source/components/_common/ImagesSet/ImagesSet.styl +27 -27
  887. package/source/components/_common/ImagesSet/ImagesSet.tsx +76 -76
  888. package/source/components/_common/Loader/Loader.story.js +21 -21
  889. package/source/components/_common/Loader/Loader.styl +39 -39
  890. package/source/components/_common/Loader/Loader.tsx +32 -32
  891. package/source/components/_common/MagnifyGlass/MagnifyGlass.styl +33 -33
  892. package/source/components/_common/MagnifyGlass/MagnifyGlass.tsx +213 -213
  893. package/source/components/_common/MaterialAccordion/MaterialAccordion.tsx +141 -141
  894. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.story.js +49 -49
  895. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.styled.tsx +71 -71
  896. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.tsx +40 -40
  897. package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +204 -204
  898. package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.tsx +248 -248
  899. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.js +45 -45
  900. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.styl +5 -5
  901. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.styled.tsx +20 -20
  902. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.tsx +112 -112
  903. package/source/components/_common/MaterialField/MaterialField.story.js +87 -87
  904. package/source/components/_common/MaterialField/MaterialField.story.styl +33 -33
  905. package/source/components/_common/MaterialField/MaterialField.styled.tsx +52 -52
  906. package/source/components/_common/MaterialField/MaterialField.tsx +132 -132
  907. package/source/components/_common/MaterialSelect/MaterialSelect.story.js +52 -52
  908. package/source/components/_common/MaterialSelect/MaterialSelect.story.styl +5 -5
  909. package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +123 -123
  910. package/source/components/_common/MaterialSelect/MaterialSelect.tsx +222 -222
  911. package/source/components/_common/MaterialStepButton/MaterialStepButton.story.js +47 -47
  912. package/source/components/_common/MaterialStepButton/MaterialStepButton.story.styl +5 -5
  913. package/source/components/_common/MaterialStepButton/MaterialStepButton.styl +32 -32
  914. package/source/components/_common/MaterialStepButton/MaterialStepButton.tsx +61 -61
  915. package/source/components/_common/MaterialSwitch/MaterialSwitch.story.js +17 -17
  916. package/source/components/_common/MaterialSwitch/MaterialSwitch.styled.tsx +5 -5
  917. package/source/components/_common/MaterialSwitch/MaterialSwitch.tsx +37 -37
  918. package/source/components/_common/MaterialTooltip/MaterialTooltip.story.js +10 -10
  919. package/source/components/_common/MaterialTooltip/MaterialTooltip.styled.tsx +24 -24
  920. package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +87 -87
  921. package/source/components/_common/Modal/CookieModal.tsx +49 -49
  922. package/source/components/_common/Modal/Modal.story.js +37 -37
  923. package/source/components/_common/Modal/Modal.styled.tsx +15 -15
  924. package/source/components/_common/Modal/Modal.tsx +24 -24
  925. package/source/components/_common/Modal/ModalsConfig.tsx +23 -23
  926. package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +86 -86
  927. package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +184 -184
  928. package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +66 -66
  929. package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +51 -51
  930. package/source/components/_common/Modal/modals/TestModal.tsx +7 -7
  931. package/source/components/_common/MuiDropDown/MuiDropDown.tsx +93 -93
  932. package/source/components/_common/MuiGroupedSelect/MuiGroupedSelect.story.js +21 -21
  933. package/source/components/_common/MuiGroupedSelect/MuiGroupedSelect.tsx +87 -87
  934. package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styl +119 -119
  935. package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styled.tsx +23 -23
  936. package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +122 -122
  937. package/source/components/_common/PropertySelector/PSGroup.story.js +93 -93
  938. package/source/components/_common/PropertySelector/PSGroup.story.styl +25 -25
  939. package/source/components/_common/PropertySelector/PSGroup.styl +5 -5
  940. package/source/components/_common/PropertySelector/PSGroup.tsx +98 -98
  941. package/source/components/_common/PropertySelector/PropertySelector.styl +139 -139
  942. package/source/components/_common/PropertySelector/PropertySelector.tsx +100 -100
  943. package/source/components/_common/PropertySelector/ProperySelector.story.js +83 -83
  944. package/source/components/_common/Radio/FormRadioGroup.story.js +28 -28
  945. package/source/components/_common/Radio/FormRadioGroup.story.styl +2 -2
  946. package/source/components/_common/Radio/FormRadioGroup.styl +22 -22
  947. package/source/components/_common/Radio/FormRadioGroup.tsx +77 -77
  948. package/source/components/_common/Radio/Radio.story.js +54 -54
  949. package/source/components/_common/Radio/Radio.styl +115 -115
  950. package/source/components/_common/Radio/Radio.tsx +141 -141
  951. package/source/components/_common/Radio/RadioGroup.story.js +90 -90
  952. package/source/components/_common/Radio/RadioGroup.story.styl +39 -39
  953. package/source/components/_common/Radio/RadioGroup.styl +5 -5
  954. package/source/components/_common/Radio/RadioGroup.tsx +65 -65
  955. package/source/components/_common/Range/Range.story.js +46 -46
  956. package/source/components/_common/Range/Range.story.styl +4 -4
  957. package/source/components/_common/Range/Range.styl +71 -71
  958. package/source/components/_common/Range/Range.tsx +87 -87
  959. package/source/components/_common/Skeleton/SkeletonItem.styl +80 -80
  960. package/source/components/_common/Skeleton/SkeletonItem.tsx +80 -80
  961. package/source/components/_common/Skeleton/SkeletonSearchItem.styl +123 -123
  962. package/source/components/_common/Skeleton/SkeletonSearchItem.tsx +92 -92
  963. package/source/components/_common/Slider/Slider.styl +2 -2
  964. package/source/components/_common/Slider/Slider.tsx +130 -130
  965. package/source/components/_common/SliderArrow/SliderArrow.story.js +18 -18
  966. package/source/components/_common/SliderArrow/SliderArrow.styl +32 -32
  967. package/source/components/_common/SliderArrow/SliderArrow.tsx +36 -36
  968. package/source/components/_common/StarButton/StarButton.styl +39 -39
  969. package/source/components/_common/StarButton/StarButton.tsx +31 -31
  970. package/source/components/_common/Tabs/TabPanel.tsx +28 -28
  971. package/source/components/_common/Tabs/Tabs.story.js +55 -55
  972. package/source/components/_common/Tabs/Tabs.styl +40 -40
  973. package/source/components/_common/Tabs/Tabs.tsx +44 -44
  974. package/source/components/_common/TextAreaField/TextAreaField.styl +47 -47
  975. package/source/components/_common/TextAreaField/TextAreaField.tsx +74 -74
  976. package/source/components/_common/TextField/TextField.styl +37 -37
  977. package/source/components/_common/TextField/TextField.tsx +77 -77
  978. package/source/components/_common/TimePicker/TimePicker.story.js +37 -37
  979. package/source/components/_common/TimePicker/TimePicker.styl +22 -22
  980. package/source/components/_common/TimePicker/TimePicker.tsx +155 -155
  981. package/source/components/_common/Tooltip/Tooltip.story.js +28 -28
  982. package/source/components/_common/Tooltip/Tooltip.styl +117 -117
  983. package/source/components/_common/Tooltip/Tooltip.tsx +62 -62
  984. package/source/components/_common/UserMenu/MaterialMenu.story.js +73 -73
  985. package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +84 -84
  986. package/source/components/_common/UserMenu/MaterialMenu.tsx +101 -101
  987. package/source/components/_common/UserMenu/MaterialMenuItem.tsx +76 -76
  988. package/source/components/_common/UserMenu/NestedMenu.tsx +59 -59
  989. package/source/components/_common/Usp/Usp.styl +78 -78
  990. package/source/components/_common/Usp/Usp.tsx +30 -30
  991. package/source/components/_common/VehicleSlider/VehicleSlider.story.js +99 -99
  992. package/source/components/_common/VehicleSlider/VehicleSlider.styl +62 -62
  993. package/source/components/_common/VehicleSlider/VehicleSlider.tsx +125 -125
  994. package/source/components/_common/VehicleSlider/VehicleSliderForSRL.tsx +175 -174
  995. package/source/components/_common/withLabel/withLabel.story.js +62 -62
  996. package/source/components/_common/withLabel/withLabel.styl +33 -33
  997. package/source/components/_common/withLabel/withLabel.tsx +44 -44
  998. package/source/components/_common/withPopover/withPopover.story.js +48 -48
  999. package/source/components/_common/withPopover/withPopover.story.styl +53 -53
  1000. package/source/components/_common/withPopover/withPopover.styl +3 -3
  1001. package/source/components/_common/withPopover/withPopover.tsx +88 -88
  1002. package/source/components/_common/withStats/withStats.story.js +75 -75
  1003. package/source/components/_common/withStats/withStats.styl +153 -153
  1004. package/source/components/_common/withStats/withStats.tsx +182 -182
  1005. package/source/components/containers/DasboardSection/DashboardSection.styl +14 -14
  1006. package/source/components/containers/DasboardSection/DashboardSection.tsx +23 -23
  1007. package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +67 -67
  1008. package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.tsx +463 -463
  1009. package/source/framework/DataTransformers.ts +86 -86
  1010. package/source/framework/constants/RateSearchWidget.ts +15 -15
  1011. package/source/framework/constants/Search.ts +290 -290
  1012. package/source/framework/constants/SearchWidget.ts +108 -108
  1013. package/source/framework/constants/app.ts +223 -223
  1014. package/source/framework/constants/cars.ts +36 -36
  1015. package/source/framework/constants/common.ts +127 -123
  1016. package/source/framework/constants/data.ts +52 -52
  1017. package/source/framework/constants/filters.ts +11 -11
  1018. package/source/framework/constants/highlights.ts +165 -165
  1019. package/source/framework/constants/price.ts +9 -9
  1020. package/source/framework/constants/queryBuilder.ts +4 -4
  1021. package/source/framework/constants/selectors.ts +38 -38
  1022. package/source/framework/constants.ts +131 -131
  1023. package/source/framework/data.ts +6 -6
  1024. package/source/framework/factories/BreadcrumbsFactory.tsx +285 -285
  1025. package/source/framework/factories/FactoryTypes.d.ts +30 -30
  1026. package/source/framework/factories/FilterFactory.ts +364 -364
  1027. package/source/framework/factories/ModalsFactory.tsx +11 -11
  1028. package/source/framework/hooks/useModal.ts +13 -13
  1029. package/source/framework/schemes/AggregationScheme.ts +73 -73
  1030. package/source/framework/types/types.ts +370 -370
  1031. package/source/framework/utils/CommonUtils.ts +645 -645
  1032. package/source/framework/utils/CookieUtils.ts +61 -61
  1033. package/source/framework/utils/DateUtils.ts +101 -101
  1034. package/source/framework/utils/FiltersUtils.ts +234 -234
  1035. package/source/framework/utils/RequestUtils.ts +20 -20
  1036. package/source/framework/utils/StyledComponent.ts +2 -2
  1037. package/source/framework/vehiclesProps/cbdSelectors.ts +117 -117
  1038. package/source/framework/vehiclesProps/decoratedLightProps.tsx +481 -481
  1039. package/source/framework/vehiclesProps/decoratedProps.tsx +1690 -1690
  1040. package/source/framework/vehiclesProps/equipment.ts +129 -129
  1041. package/source/framework/vehiclesProps/highlights.ts +54 -54
  1042. package/source/framework/vehiclesProps/vehicleDetails.ts +426 -426
  1043. package/source/globals.d.ts +18 -18
  1044. package/source/locales/SearchDetailedPage.ts +205 -205
  1045. package/source/locales/SearchPage.ts +224 -224
  1046. package/source/locales/cbd.ts +719 -719
  1047. package/source/locales/common.ts +109 -109
  1048. package/source/locales/data.ts +1112 -1112
  1049. package/source/locales/priceRating.ts +10 -10
  1050. package/source/locales/sortingOptions.ts +21 -21
  1051. package/source/theme/colors.styl +46 -46
  1052. package/source/theme/mixins.styl +93 -93
  1053. package/source/theme/priceReviewColors.styl +12 -12
  1054. package/source/theme/selector_colors.styl +61 -61
  1055. package/source/theme/slider.global.styl +3 -3
  1056. package/source/theme/theme.styl +136 -136
  1057. package/tsconfig.json +65 -65
  1058. package/tslint.json +38 -38
  1059. package/utils.ts +59 -59
@@ -1,1690 +1,1690 @@
1
- import * as React from 'react';
2
- import moment from 'moment';
3
-
4
- import Icon from '../../components/_common/IconContainer/IconContainer';
5
- import CO2Efficiency from '../../components/_common/Co2Widget/CO2Efficiency';
6
- import { formatTimestamp } from '../utils/DateUtils';
7
- import { formatMileage } from '../utils/CommonUtils';
8
- import { EMISSION_STICKERS_ICONS, WP_EMISSION_STICKERS_ICONS } from '../constants/Search';
9
- import { DELIVERY_PERIODS_EXTRA } from '../constants';
10
- import { IDecoratedProp, ICar, IFinancingUtils } from '../types/types';
11
- import { getFormattedPrice } from '../utils/CommonUtils';
12
-
13
- const formatDeliveryPeriod = (t: (key: string, options?: object) => string, deliveryPeriod: string) => {
14
- const count: number = +DELIVERY_PERIODS_EXTRA.find((period: any) => period.value === deliveryPeriod).label;
15
- // months until delivery date unrounded (float)
16
- const monthsTo: number = moment.utc().diff(moment.utc().subtract(count, 'd'), 'M', true);
17
- return Math.round(monthsTo) > 1
18
- ? t('vehicleProps:value.deliveryPeriodMonths', { count: Math.round(monthsTo) })
19
- : t('vehicleProps:value.deliveryPeriodDays', { count });
20
- };
21
-
22
- const isPropDefined = (prop: any) => {
23
- const type = typeof prop;
24
- if (type === 'string') {
25
- return prop.indexOf('other') === -1
26
- && prop.indexOf('unknown') === -1;
27
- }
28
- return !(prop === undefined || prop === null) && type !== 'undefined';
29
- };
30
-
31
- const isCheckedBatteryTime = (prop: any, t: (key: string, options?: object) => string) => {
32
- switch (prop) {
33
- case 'selector_batteryCharchingDurationMinutes':
34
- return 'min';
35
- break;
36
- case 'selector_batteryCharchingDurationHours':
37
- return 'h';
38
- break;
39
- default:
40
- return t('vehicleProps:value.na');
41
- }
42
- };
43
-
44
- export const getPowerLabel = (powerKW: number, powerPS: number): string => {
45
- const powerKWlabel = !!powerKW ? `${powerKW} kW ` : '';
46
- const powerPSlabel = !!powerPS ? `${!!powerKW ? '(' : ''}${powerPS} PS${!!powerKW ? ')' : ''}` : '';
47
- const powerKWpowerPS = `${powerKWlabel}${powerPSlabel}`;
48
-
49
- return powerKWpowerPS;
50
- };
51
- const wrapValue = (value:string): React.ReactNode => {
52
- const regex = /-?\d+(\,\d+)?/; // match any digit
53
- const matches = value.match(regex); // get an array of all digits found
54
-
55
- if (matches && matches.length > 0) { // If at least one number is found in the input string
56
- const index = value.indexOf(matches[0]) + matches[0].length;
57
- const beforeText = value.slice(0, index);
58
- const afterText = value.slice(index);
59
-
60
- return (
61
- <>
62
- {beforeText}
63
- <span className='smallText'>{afterText}</span>
64
- </>
65
- ); // Return a JSX element with a span wrapper around the text after the number
66
- }
67
- return <>{value}</>; // If no numbers are found in the input string, return the original string without any modification
68
- };
69
-
70
- const getDecoratedProps = (
71
- car: ICar, // @TODO should have a proper interface
72
- t: (key: string, options?: object) => string,
73
- language: string = 'en',
74
- simplifiedLabels: boolean = false, // shortened labels for repsonsive layout (see 'power'),
75
- financingUtils?: IFinancingUtils
76
- ): IDecoratedProp => {
77
- const {
78
- offer = {},
79
- // countryName,
80
- mainData: {
81
- firstRegistration = '',
82
- mileage = '',
83
- numberOfPreviousOwners = '',
84
- doors = '',
85
- usageType = '',
86
- countryVersion = '',
87
- condition = '',
88
- damaged = '',
89
- category = '',
90
- seats = '',
91
- nonSmokerVehicle = '',
92
- make = '',
93
- model = ''
94
- } = {}
95
- } = car;
96
- const props: any = {
97
- makeModel: {
98
- title: t('vehicleProps:title.makeModel'),
99
- get value() { return `${make} ${model}`; }
100
- },
101
- mileage: {
102
- title: t('vehicleProps:title.mileage'),
103
- icon: 'speed',
104
- get value() {
105
- return Number.isFinite(parseInt(mileage, 10))
106
- ? t('vehicleProps:value.mileage', { mileage: formatMileage(mileage) })
107
- : t('vehicleProps:value.na');
108
- }
109
- },
110
-
111
- firstRegistration: {
112
- title: t('vehicleProps:title.firstRegistration'),
113
- icon: 'date',
114
- get value() {
115
- return Number.isFinite(firstRegistration)
116
- ? formatTimestamp({ timestamp: firstRegistration, format: 'MM/YYYY' })
117
- : t('vehicleProps:value.na');
118
- }
119
- },
120
-
121
- numberOfPreviousOwners: {
122
- title: t('vehicleProps:title.numberOfPreviousOwners'),
123
- icon: 'owner',
124
- get value() {
125
- return Number.isFinite(numberOfPreviousOwners)
126
- ? t('vehicleProps:value.vehicleOwners', { count: numberOfPreviousOwners })
127
- : t('vehicleProps:value.na');
128
- }
129
- },
130
-
131
- doorsOnly: {
132
- icon: 'door',
133
- get value() {
134
- if (doors > 0) {
135
- return t('vehicleProps:value.doorsOnly', { doors });
136
- }
137
-
138
- return t('vehicleProps:value.na');
139
- }
140
- },
141
-
142
- usageType: {
143
- icon: 'new',
144
- get value() {
145
- if (condition === 'selector_condition_new') return t('vehicleProps:value.newCar');
146
- return isPropDefined(usageType) ? t(`cbd:${usageType}`) : t('cbd:selector_condition_used');
147
- }
148
- },
149
-
150
- gearbox: {
151
- get icon() {
152
- const gearbox = car.driveSuspension.gearbox;
153
- return isPropDefined(gearbox) ? car.driveSuspension.gearbox : 'selector_gearbox_manualShift';
154
- },
155
- get value() {
156
- const gearbox = car.driveSuspension.gearbox;
157
- return isPropDefined(gearbox) ? t(`cbd:${gearbox}`) : t('vehicleProps:value.na');
158
- }
159
- },
160
-
161
- power: {
162
- title: t('vehicleProps:title.power'),
163
- icon: 'ps',
164
- get value() {
165
- const { powerKW, powerPS } = car.engineData;
166
-
167
- if (Number.isFinite(powerKW) && Number.isFinite(powerPS)) {
168
- return simplifiedLabels
169
- ? t('vehicleProps:value.powerPS', { powerPS })
170
- : t('vehicleProps:value.power', { powerKW, powerPS });
171
- }
172
-
173
- return t('vehicleProps:value.na');
174
- }
175
- },
176
-
177
- powerAlternateView: {
178
- title: t('vehicleProps:title.power'),
179
- icon: 'kw',
180
- get value() {
181
- const { powerKW, powerPS } = car.engineData;
182
- return Number.isFinite(powerKW) && Number.isFinite(powerPS)
183
- ? t('vehicleProps:value.powerAlternateView', { powerKW, powerPS })
184
- : t('vehicleProps:value.na');
185
- }
186
- },
187
-
188
- fuel: {
189
- title: t('vehicleProps:title.fuel'),
190
- get icon() { return car.consumption.fuel; },
191
- get value() {
192
- const fuel = car.consumption.fuel;
193
- return isPropDefined(fuel) ? t(`cbd:${fuel}`) : t('vehicleProps:value.na');
194
- }
195
- },
196
-
197
- accidentDamaged: {
198
- title: t('cbd:mainData_accidentDamaged'),
199
- icon: 'wrench',
200
- get value() {
201
- return damaged ? t('vehicleProps:value.damaged') : t('vehicleProps:value.accidentFree');
202
- }
203
- },
204
-
205
- co2: {
206
- icon: 'co2',
207
- get value() {
208
- const co2 = car.environmentEmissions.co2;
209
- return Number.isFinite(co2)
210
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
211
- : t('vehicleProps:value.na');
212
- }
213
- },
214
-
215
- cylinders: {
216
- title: t('vehicleProps:title.cylinders'),
217
- get value() {
218
- const { engineLocation } = car.engineData;
219
- const cylinders = parseInt(car.engineData.cylinders, 10);
220
- return Number.isFinite(cylinders)
221
- ? (engineLocation ? `${cylinders} / ${t(`cbd:${engineLocation}`)}` : cylinders)
222
- : t('vehicleProps:value.na');
223
- }
224
- },
225
-
226
- plugIn: {
227
- title: 'Plug-In',
228
- get value() {
229
- const { hybridPlugin } = car.engineData;
230
- return hybridPlugin ? t(`cbd:selector_hybridPlugin_yes`) : t('cbd:selector_hybridPlugin_no');
231
- }
232
- },
233
-
234
- cubicCapacity: {
235
- title: t('vehicleProps:title.cubicCapacity'),
236
- get value() {
237
- const cubicCapacity = car.engineData.cubicCapacity;
238
- return Number.isFinite(cubicCapacity)
239
- ? t('vehicleProps:value.cubicCapacity', { cubicCapacity: cubicCapacity.toLocaleString(language) })
240
- : t('vehicleProps:value.na');
241
- }
242
- },
243
-
244
- torque: {
245
- title: t('vehicleProps:title.torque'),
246
- get value() {
247
- const torque = car.engineData.torque;
248
- return torque
249
- ? t('vehicleProps:value.torque', { torque })
250
- : t('vehicleProps:value.na');
251
- }
252
- },
253
-
254
- acceleration: {
255
- title: t('vehicleProps:title.acceleration'),
256
- get value() {
257
- const acceleration = car.engineData.acceleration100;
258
- return isPropDefined(acceleration)
259
- ? (t('vehicleProps:value.acceleration', { seconds: acceleration }))
260
- : t('vehicleProps:value.na');
261
- }
262
- },
263
-
264
- topSpeed: {
265
- title: t('vehicleProps:title.topSpeed'),
266
- get value() {
267
- const topSpeed = car.engineData.highSpeed;
268
- return isPropDefined(topSpeed)
269
- ? (t('vehicleProps:value.topSpeed', { mileage: topSpeed }))
270
- : t('vehicleProps:value.na');
271
- }
272
- },
273
-
274
- transmission: {
275
- title: t('vehicleProps:title.transmission'),
276
- get value() {
277
- const gearbox = car.driveSuspension.gearbox;
278
- return isPropDefined(gearbox) ? t(`cbd:${gearbox}`) : t('vehicleProps:value.na');
279
- }
280
- },
281
-
282
- driveType: {
283
- title: t('vehicleProps:title.driveType'),
284
- get icon() {
285
- const driveType = car.driveSuspension.driveType;
286
- return isPropDefined(driveType) ? car.driveSuspension.driveType : 'selector_driveType_frontWheelDrive';
287
- },
288
- get value() {
289
- const driveType = car.driveSuspension.driveType;
290
- return isPropDefined(driveType) ? t(`cbd:${driveType}`) : t('vehicleProps:value.na');
291
- }
292
- },
293
-
294
- fuelCapacity: {
295
- title: t('vehicleProps:title.fuelCapacity'),
296
- get value() {
297
- const fuelCapacity = car.sizeVolumeWeight && car.sizeVolumeWeight.fuelCapacity;
298
- return Number.isFinite(fuelCapacity)
299
- ? t('vehicleProps:value.fuelCapacity', { capacity: fuelCapacity.toLocaleString(language) })
300
- : t('vehicleProps:value.na');
301
- }
302
- },
303
-
304
- batteryCapacity: {
305
- title: t('vehicleProps:title.batteryCapacityTitle'),
306
- get value() {
307
- const batteryCapacity = car.battery && car.battery.batteryCapacity;
308
- return batteryCapacity && Number.isFinite(batteryCapacity)
309
- ? t('vehicleProps:value.batteryCapacity', { batteryCapacity: batteryCapacity.toLocaleString(language) })
310
- : t('vehicleProps:value.na');
311
- }
312
- },
313
-
314
- chargingDuration230V: {
315
- title: t('vehicleProps:title.chargingDuration230V'),
316
- get value() {
317
- const batteryChargingDuration230VSelect = car.battery && car.battery.batteryChargingDuration230VSelect;
318
- const batteryChargingDuration230VHour = car.battery && car.battery.batteryChargingDuration230VHour;
319
- const batteryCharchingDuration230VMinutesHours = car.battery && car.battery.batteryCharchingDuration230VMinutesHours;
320
-
321
- return batteryChargingDuration230VSelect
322
- ? `${batteryChargingDuration230VHour ? `${batteryChargingDuration230VHour} ${isCheckedBatteryTime(batteryCharchingDuration230VMinutesHours, t)}` : ''} ${batteryChargingDuration230VSelect}`
323
- : t('vehicleProps:value.na');
324
- }
325
- },
326
- chargingDurationMaxSpeed: {
327
- title: t('vehicleProps:title.chargingDurationMaxSpeed'),
328
- get value() {
329
- const batteryChargingDurationMaxSelect = car.battery && car.battery.batteryChargingDurationMaxSelect;
330
- const batteryChargingDurationMaxHour = car.battery && car.battery.batteryChargingDurationMaxHour;
331
- const batteryCharchingDurationMaxSelectMinutesHours = car.battery && car.battery.batteryCharchingDurationMaxSelectMinutesHours;
332
-
333
- return batteryChargingDurationMaxSelect
334
- ? `${batteryChargingDurationMaxHour ? `${batteryChargingDurationMaxHour} ${isCheckedBatteryTime(batteryCharchingDurationMaxSelectMinutesHours, t)}` : ''} ${batteryChargingDurationMaxSelect}`
335
- : t('vehicleProps:value.na');
336
- }
337
- },
338
- batteryChargerType: {
339
- title: t('vehicleProps:title.batteryChargerType'),
340
- get value() {
341
- const batteryChargerType = car.battery && car.battery.batteryChargerType;
342
-
343
- return isPropDefined(batteryChargerType)
344
- ? batteryChargerType.map((item: any) => t(`cbd:${item}`)).join('\n')
345
- : t('vehicleProps:value.na');
346
- }
347
- },
348
- hsn: {
349
- title: 'HSN',
350
- get value() {
351
- const hsn = car.metaData.hsn;
352
- return isPropDefined(hsn) ? hsn : t('vehicleProps:value.na');
353
- }
354
- },
355
-
356
- tsn: {
357
- title: 'TSN',
358
- get value() {
359
- const tsn = car.metaData.tsn;
360
- return isPropDefined(tsn) ? tsn : t('vehicleProps:value.na');
361
- }
362
- },
363
-
364
- category: {
365
- title: t('vehicleProps:title.category'),
366
- get value() {
367
- return isPropDefined(category) ? t(`cbd:${category}`) : t('vehicleProps:value.na');
368
- }
369
- },
370
-
371
- length: {
372
- title: t('vehicleProps:title.length'),
373
- get value() {
374
- const length = car.sizeVolumeWeight && car.sizeVolumeWeight.length;
375
- return Number.isFinite(length)
376
- ? t('vehicleProps:value.length', { size: length.toLocaleString(language) })
377
- : t('vehicleProps:value.na');
378
- }
379
- },
380
-
381
- width: {
382
- title: t('vehicleProps:title.width'),
383
- get value() {
384
- const width = car.sizeVolumeWeight && car.sizeVolumeWeight.width;
385
- return Number.isFinite(width)
386
- ? t('vehicleProps:value.width', { size: width.toLocaleString(language) })
387
- : t('vehicleProps:value.na');
388
- }
389
- },
390
-
391
- height: {
392
- title: t('vehicleProps:title.height'),
393
- get value() {
394
- const height = car.sizeVolumeWeight && car.sizeVolumeWeight.height;
395
- return Number.isFinite(height)
396
- ? t('vehicleProps:value.height', { size: height.toLocaleString(language) })
397
- : t('vehicleProps:value.na');
398
- }
399
- },
400
-
401
- base: {
402
- title: t('vehicleProps:title.base'),
403
- get value() {
404
- const wheelBase = car.driveSuspension.wheelBase;
405
- return Number.isFinite(wheelBase)
406
- ? t('vehicleProps:value.base', { size: wheelBase.toLocaleString(language) })
407
- : t('vehicleProps:value.na');
408
- }
409
- },
410
-
411
- capacityLoad: {
412
- title: t('vehicleProps:title.loadingVolume'),
413
- get value() {
414
- const completeCapacity = car.sizeVolumeWeight && car.sizeVolumeWeight.completeCapacity;
415
- return Number.isFinite(completeCapacity)
416
- ? t('vehicleProps:value.capacityLoad', { capacity: completeCapacity.toLocaleString(language) })
417
- : t('vehicleProps:value.na');
418
- }
419
- },
420
-
421
- bootCapacity: {
422
- title: t('vehicleProps:title.bootCapacity'),
423
- get value() {
424
- const cargoCapacity = car.sizeVolumeWeight && car.sizeVolumeWeight.cargoCapacity;
425
- return Number.isFinite(cargoCapacity)
426
- ? t('vehicleProps:value.bootCapacity', { capacity: cargoCapacity.toLocaleString(language) })
427
- : t('vehicleProps:value.na');
428
- }
429
- },
430
-
431
- doors: {
432
- title: t('vehicleProps:title.doors'),
433
- get value() { return doors > 0 ? doors : t('vehicleProps:value.na'); }
434
- },
435
-
436
- seats: {
437
- title: t('vehicleProps:title.seats'),
438
- get value() { return seats > 0 ? seats : t('vehicleProps:value.na'); }
439
- },
440
-
441
- tare: {
442
- title: t('vehicleProps:title.tare'),
443
- get value() {
444
- const emptyWeight = car.sizeVolumeWeight && car.sizeVolumeWeight.emptyWeight;
445
- return Number.isFinite(emptyWeight)
446
- ? t('vehicleProps:value.tareWeight', { weight: (emptyWeight).toLocaleString(language) })
447
- : t('vehicleProps:value.na');
448
- }
449
- },
450
-
451
- maximumWeight: {
452
- title: t('vehicleProps:title.maximumWeight'),
453
- get value() {
454
- const maxWeight = car.sizeVolumeWeight && car.sizeVolumeWeight.maxWeight;
455
- return Number.isFinite(maxWeight)
456
- ? t('vehicleProps:value.maximumWeightCapacity', { capacity: maxWeight.toLocaleString(language) })
457
- : t('vehicleProps:value.na');
458
- }
459
- },
460
-
461
- trailerWeightBraked: {
462
- title: t('vehicleProps:title.trailerLoadBraked'),
463
- get value() {
464
- const trailerWeightBraked = car.sizeVolumeWeight && car.sizeVolumeWeight.trailerWeightBraked;
465
- return Number.isFinite(trailerWeightBraked)
466
- ? t('vehicleProps:value.weight', { weight: trailerWeightBraked.toLocaleString(language) })
467
- : t('vehicleProps:value.na');
468
- }
469
- },
470
-
471
- trailerWeightUnbraked: {
472
- title: t('vehicleProps:title.trailerLoadUnbraked'),
473
- get value() {
474
- const trailerWeightUnbraked = car.sizeVolumeWeight && car.sizeVolumeWeight.trailerWeightUnbraked;
475
- return Number.isFinite(trailerWeightUnbraked)
476
- ? t('vehicleProps:value.weight', { weight: trailerWeightUnbraked.toLocaleString(language) })
477
- : t('vehicleProps:value.na');
478
- }
479
- },
480
-
481
- consumptionInner: {
482
- icon: 'fuelConsumption',
483
- title: t('vehicleProps:title.consumptionInner'),
484
- get value() {
485
- const consumptionInner = car.consumption.consumptionInner;
486
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
487
- const translatedUnit = t(`cbd:${consumptionUnit}`);
488
- return Number.isFinite(consumptionInner)
489
- ? t('vehicleProps:value.consumption', { consumption: consumptionInner.toLocaleString(language), unit: translatedUnit })
490
- : t('vehicleProps:value.na');
491
- }
492
- },
493
-
494
- consumptionPowerInner: {
495
- icon: 'fuelConsumption',
496
- title: t('vehicleProps:title.consumptionPowerInner'),
497
- get value() {
498
- const consumptionPowerInner = car.consumption.consumptionInner;
499
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
500
- const translatedUnit = t(`cbd:${consumptionUnit}`);
501
- return Number.isFinite(consumptionPowerInner)
502
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerInner.toLocaleString(language), unit: translatedUnit })
503
- : t('vehicleProps:value.na');
504
- }
505
- },
506
-
507
- consumptionPowerHybridInner: {
508
- icon: 'fuelConsumption',
509
- title: t('vehicleProps:title.consumptionPowerInner'),
510
- get value() {
511
- const consumptionPowerInner = car.consumption.consumptionPowerInner;
512
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
513
- const translatedUnit = t(`cbd:${consumptionUnit}`);
514
- return Number.isFinite(consumptionPowerInner)
515
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerInner.toLocaleString(language), unit: translatedUnit })
516
- : t('vehicleProps:value.na');
517
- }
518
- },
519
-
520
- consumptionHydrogenInner: {
521
- icon: 'fuelConsumption',
522
- title: t('vehicleProps:title.consumptionHydrogenInner'),
523
- get value() {
524
- const consumptionHydrogenInner = car.consumption.consumptionInner;
525
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
526
- const translatedUnit = t(`cbd:${consumptionUnit}`);
527
- return Number.isFinite(consumptionHydrogenInner)
528
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenInner.toLocaleString(language), unit: translatedUnit })
529
- : t('vehicleProps:value.na');
530
- }
531
- },
532
- consumptionGasInner: {
533
- icon: 'fuelConsumption',
534
- title: t('vehicleProps:title.consumptionGasInner'),
535
- get value() {
536
- const consumptionGasInner = car.consumption.consumptionInner;
537
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
538
- const translatedUnit = t(`cbd:${consumptionUnit}`);
539
- return Number.isFinite(consumptionGasInner)
540
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasInner.toLocaleString(language), unit: translatedUnit })
541
- : t('vehicleProps:value.na');
542
- }
543
- },
544
-
545
- consumptionOuter: {
546
- icon: 'fuelConsumption',
547
- title: t('vehicleProps:title.consumptionOuter'),
548
- get value() {
549
- const consumptionOuter = car.consumption.consumptionOuter;
550
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
551
- const translatedUnit = t(`cbd:${consumptionUnit}`);
552
- return Number.isFinite(consumptionOuter)
553
- ? t('vehicleProps:value.consumption', { consumption: consumptionOuter.toLocaleString(language), unit: translatedUnit })
554
- : t('vehicleProps:value.na');
555
- }
556
- },
557
-
558
- consumptionPowerOuter: {
559
- icon: 'fuelConsumption',
560
- title: t('vehicleProps:title.consumptionPowerOuter'),
561
- get value() {
562
- const consumptionPowerOuter = car.consumption.consumptionOuter;
563
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
564
- const translatedUnit = t(`cbd:${consumptionUnit}`);
565
- return Number.isFinite(consumptionPowerOuter)
566
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerOuter.toLocaleString(language), unit: translatedUnit })
567
- : t('vehicleProps:value.na');
568
- }
569
- },
570
-
571
- consumptionPowerHybridOuter: {
572
- icon: 'fuelConsumption',
573
- title: t('vehicleProps:title.consumptionPowerOuter'),
574
- get value() {
575
- const consumptionPowerOuter = car.consumption.consumptionPowerOuter;
576
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
577
- const translatedUnit = t(`cbd:${consumptionUnit}`);
578
- return Number.isFinite(consumptionPowerOuter)
579
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerOuter.toLocaleString(language), unit: translatedUnit })
580
- : t('vehicleProps:value.na');
581
- }
582
- },
583
-
584
- consumptionHydrogenOuter: {
585
- icon: 'fuelConsumption',
586
- title: t('vehicleProps:title.consumptionHydrogenOuter'),
587
- get value() {
588
- const consumptionHydrogenOuter = car.consumption.consumptionOuter;
589
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
590
- const translatedUnit = t(`cbd:${consumptionUnit}`);
591
- return Number.isFinite(consumptionHydrogenOuter)
592
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenOuter.toLocaleString(language), unit: translatedUnit })
593
- : t('vehicleProps:value.na');
594
- }
595
- },
596
-
597
- consumptionGasOuter: {
598
- icon: 'fuelConsumption',
599
- title: t('vehicleProps:title.consumptionGasOuter'),
600
- get value() {
601
- const consumptionGasOuter = car.consumption.consumptionOuter;
602
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
603
- const translatedUnit = t(`cbd:${consumptionUnit}`);
604
- return Number.isFinite(consumptionGasOuter)
605
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasOuter.toLocaleString(language), unit: translatedUnit })
606
- : t('vehicleProps:value.na');
607
- }
608
- },
609
-
610
- consumptionCombined: {
611
- icon: 'fuelConsumption',
612
- title: t('vehicleProps:title.сonsumptionCombined'),
613
- get value() {
614
- const consumptionCombined = car.consumption.consumptionCombined;
615
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
616
- const translatedUnit = t(`cbd:${consumptionUnit}`);
617
- return Number.isFinite(consumptionCombined)
618
- ? t('vehicleProps:value.consumption', { consumption: consumptionCombined.toLocaleString(language), unit: translatedUnit })
619
- : t('vehicleProps:value.na');
620
- }
621
- },
622
-
623
- consumptionPowerCombined: {
624
- icon: 'fuelConsumption',
625
- title: t('vehicleProps:title.consumptionPowerCombined'),
626
- get value() {
627
- const consumptionPowerCombined = car.consumption.consumptionCombined;
628
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
629
- const translatedUnit = t(`cbd:${consumptionUnit}`);
630
- return Number.isFinite(consumptionPowerCombined)
631
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
632
- : t('vehicleProps:value.na');
633
- }
634
- },
635
-
636
- consumptionPowerHybridCombined: {
637
- icon: 'fuelConsumption',
638
- title: t('vehicleProps:title.consumptionPowerCombined'),
639
- get value() {
640
- const consumptionPowerCombined = car.consumption.consumptionPowerCombined;
641
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
642
- const translatedUnit = t(`cbd:${consumptionUnit}`);
643
- return Number.isFinite(consumptionPowerCombined)
644
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
645
- : t('vehicleProps:value.na');
646
- }
647
- },
648
-
649
- consumptionHydrogenCombined: {
650
- icon: 'fuelConsumption',
651
- title: t('vehicleProps:title.consumptionHydrogenCombined'),
652
- get value() {
653
- const consumptionHydrogenCombined = car.consumption.consumptionCombined;
654
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
655
- const translatedUnit = t(`cbd:${consumptionUnit}`);
656
- return Number.isFinite(consumptionHydrogenCombined)
657
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenCombined.toLocaleString(language), unit: translatedUnit })
658
- : t('vehicleProps:value.na');
659
- }
660
- },
661
-
662
- consumptionGasCombined: {
663
- icon: 'fuelConsumption',
664
- title: t('vehicleProps:title.consumptionGasCombined'),
665
- get value() {
666
- const consumptionGasCombined = car.consumption.consumptionCombined;
667
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
668
- const translatedUnit = t(`cbd:${consumptionUnit}`);
669
- return Number.isFinite(consumptionGasCombined)
670
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasCombined.toLocaleString(language), unit: translatedUnit })
671
- : t('vehicleProps:value.na');
672
- }
673
- },
674
-
675
- consumptionCombinedAlternateView: {
676
- icon: 'fuelConsumption',
677
- get value() {
678
- const consumptionCombined = car.consumption.consumptionCombined;
679
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
680
- const translatedUnit = t(`cbd:${consumptionUnit}`);
681
- const wltpConsumptionCombined = car.consumption.wltpCombined;
682
- const wltpCo2 = car.environmentEmissions.wltpCo2;
683
-
684
- const co2 = car.environmentEmissions.co2;
685
-
686
- const wltpConsumptionValue = Number.isFinite(wltpConsumptionCombined)
687
- ? t('vehicleProps:value.consumptionCombined', { consumption: wltpConsumptionCombined.toLocaleString(language), unit: translatedUnit })
688
- : null;
689
-
690
- const wltpCo2Value = Number.isFinite(wltpCo2)
691
- ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
692
- : null;
693
-
694
- const consumptionValue = Number.isFinite(consumptionCombined)
695
- ? t('vehicleProps:value.consumptionCombined', { consumption: consumptionCombined.toLocaleString(language), unit: translatedUnit })
696
- : t('vehicleProps:value.na');
697
-
698
- const co2Value = Number.isFinite(co2)
699
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
700
- : t('vehicleProps:value.na');
701
-
702
- if (wltpConsumptionValue && wltpCo2Value) {
703
- return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
704
- }
705
-
706
- return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
707
- }
708
- },
709
- consumptionPowerCombinedAlternateView: {
710
- icon: 'fuelConsumption',
711
- title: t('vehicleProps:title.consumptionPowerCombined'),
712
- get value() {
713
- const consumptionPowerCombined = car.consumption.consumptionCombined;
714
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
715
- const translatedUnit = t(`cbd:${consumptionUnit}`);
716
- const co2 = car.environmentEmissions.co2;
717
- const wltpConsumptionPowerCombined = car.consumption.wltpPowerCombined;
718
- const wltpCo2 = car.environmentEmissions.wltpCo2;
719
-
720
- const wltpConsumptionValue = Number.isFinite(wltpConsumptionPowerCombined)
721
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpConsumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
722
- : null;
723
-
724
- const wltpCo2Value = Number.isFinite(wltpCo2)
725
- ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
726
- : null;
727
-
728
- const consumptionValue = Number.isFinite(consumptionPowerCombined)
729
- ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
730
- : t('vehicleProps:value.na');
731
-
732
- const co2Value = Number.isFinite(co2)
733
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
734
- : t('vehicleProps:value.na');
735
-
736
- if (wltpConsumptionValue && wltpCo2Value) {
737
- return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
738
- }
739
-
740
- return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
741
- }
742
- },
743
- consumptionHydrogenCombinedAlternateView: {
744
- icon: 'fuelConsumption',
745
- title: t('vehicleProps:title.consumptionHydrogenCombined'),
746
- get value() {
747
- const consumptionHydrogenCombined = car.consumption.consumptionCombined;
748
- const wltpConsumptionCombined = car.consumption.wltpCombined;
749
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
750
- const translatedUnit = t(`cbd:${consumptionUnit}`);
751
- const co2 = car.environmentEmissions.co2;
752
- const wltpCo2 = car.environmentEmissions.wltpCo2;
753
-
754
- const consumptionValue = Number.isFinite(consumptionHydrogenCombined)
755
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenCombined.toLocaleString(language), unit: translatedUnit })
756
- : t('vehicleProps:value.na');
757
-
758
- const wltpConsumptionValue = Number.isFinite(wltpConsumptionCombined)
759
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpConsumptionCombined.toLocaleString(language), unit: translatedUnit })
760
- : null;
761
-
762
- const co2Value = Number.isFinite(co2)
763
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
764
- : t('vehicleProps:value.na');
765
-
766
- const wltpCo2Value = Number.isFinite(wltpCo2)
767
- ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
768
- : null;
769
-
770
- if (wltpConsumptionValue && wltpCo2Value) {
771
- return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
772
- }
773
-
774
- return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
775
- }
776
- },
777
- consumptionGasCombinedAlternateView: {
778
- icon: 'fuelConsumption',
779
- title: t('vehicleProps:title.consumptionGasCombined'),
780
- get value() {
781
- const consumptionGasCombined = car.consumption.consumptionCombined;
782
- const wltpConsumptionCombined = car.consumption.wltpCombined;
783
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
784
- const translatedUnit = t(`cbd:${consumptionUnit}`);
785
-
786
- const co2 = car.environmentEmissions.co2;
787
- const wltpCo2 = car.environmentEmissions.wltpCo2;
788
-
789
- const consumptionValue = Number.isFinite(consumptionGasCombined)
790
- ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasCombined.toLocaleString(language), unit: translatedUnit })
791
- : t('vehicleProps:value.na');
792
-
793
- const co2Value = Number.isFinite(co2)
794
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
795
- : t('vehicleProps:value.na');
796
-
797
- const wltpConsumptionValue = Number.isFinite(wltpConsumptionCombined)
798
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpConsumptionCombined.toLocaleString(language), unit: translatedUnit })
799
- : null;
800
-
801
- const wltpCo2Value = Number.isFinite(wltpCo2)
802
- ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
803
- : null;
804
-
805
- if (wltpConsumptionValue && wltpCo2Value) {
806
- return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
807
- }
808
-
809
- return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
810
- }
811
- },
812
-
813
- consumptionCombinedHybridAlternateView: {
814
- icon: 'fuelConsumption',
815
- get value() {
816
- const consumptionCombined = +car.consumption.consumptionCombined;
817
- const consumptionPowerCombined = +car.consumption.consumptionPowerCombined;
818
- // const wltpPowerCombined = car.consumption.wltpPowerCombined || car.consumption.wltpWeightedPowerCombined;
819
- const wltpCombined = car.consumption.wltpCombined;
820
- const wltpWeightedCombined = car.consumption.wltpWeightedCombined;
821
- const wltpWeightedPowerCombined = car.consumption.wltpWeightedPowerCombined;
822
-
823
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
824
- const translatedUnit = t(`cbd:${consumptionUnit}`);
825
-
826
- const consumptionPowerCombinedContent = t('vehicleProps:value.consumptionPowerCombined', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit });
827
- // const wltpConsumptionPowerCombinedContent = wltpPowerCombined
828
- // ? t('vehicleProps:value.consumptionPowerCombined', { consumption: wltpPowerCombined.toLocaleString(language), unit: translatedUnit })
829
- // : null;
830
-
831
- const wltpConsumptionWeightedPowerCombinedContent = wltpWeightedPowerCombined
832
- ? t('vehicleProps:value.consumptionPowerCombined', { consumption: wltpWeightedPowerCombined.toLocaleString(language), unit: translatedUnit })
833
- : null;
834
- const consumptionCombinedContent = t('vehicleProps:value.consumptionCombined', { consumption: consumptionCombined.toLocaleString(language), unit: translatedUnit });
835
- const wltpConsumptionCombinedContent = wltpCombined ?
836
- t('vehicleProps:value.consumptionCombined', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
837
- : null;
838
- const wltpConsumptionWeightedCombinedContent = wltpWeightedCombined ?
839
- t('vehicleProps:value.consumptionCombined', { consumption: wltpWeightedCombined.toLocaleString(language), unit: translatedUnit })
840
- : null;
841
-
842
- const co2 = car.environmentEmissions.co2;
843
- const wltpCo2 = car.environmentEmissions.wltpCo2;
844
- const co2Value = Number.isFinite(co2)
845
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
846
- : t('vehicleProps:value.na');
847
- const wltpCo2Value = Number.isFinite(wltpCo2)
848
- ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
849
- : null;
850
- const wltpCo2PluginValue = Number.isFinite(wltpCo2)
851
- ? t('vehicleProps:value.wltpCo2WtdCombined', { co2: wltpCo2.toLocaleString(language) })
852
- : null;
853
- const hybridPlugin = car.engineData.hybridPlugin;
854
-
855
- if (hybridPlugin && wltpConsumptionWeightedPowerCombinedContent && wltpConsumptionWeightedCombinedContent) {
856
- return <React.Fragment>
857
- {wrapValue(wltpConsumptionWeightedPowerCombinedContent)}{', '}
858
- {wrapValue(wltpConsumptionWeightedCombinedContent)}{', '}
859
- {wrapValue(wltpCo2PluginValue)}
860
- </React.Fragment>
861
- }
862
-
863
- if (wltpConsumptionCombinedContent && wltpCo2Value) {
864
- return <React.Fragment>
865
- {wrapValue(wltpConsumptionCombinedContent)}{', '}
866
- {wrapValue(wltpCo2Value)}
867
- </React.Fragment>
868
- }
869
-
870
- return Number.isFinite(consumptionCombined) && Number.isFinite(consumptionPowerCombined)
871
- ? <React.Fragment>
872
- {consumptionPowerCombined && hybridPlugin ? wrapValue(consumptionPowerCombinedContent) : ''}
873
- {consumptionPowerCombined && hybridPlugin ? <br /> : ''}
874
- {wrapValue(consumptionCombinedContent)} <br />
875
- {wrapValue(co2Value)}
876
- </React.Fragment>
877
- : t('vehicleProps:value.na');
878
- }
879
- },
880
-
881
- rangeHydrogen: {
882
- title: t('vehicleProps:title.rangeHydrogen'),
883
- get value() {
884
- const { rangeHydrogen } = car.engineData;
885
- return Number.isFinite(rangeHydrogen)
886
- ? t('vehicleProps:value.batteryRangeElectric', { consumption: rangeHydrogen.toLocaleString(language) })
887
- : t('vehicleProps:value.na');
888
- }
889
- },
890
- batteryRangeElectric: {
891
- title: t('vehicleProps:title.batteryRangeElectric'),
892
- get value() {
893
- const batteryRangeElectric = car.battery && car.battery.batteryRangeElectric;
894
- return Number.isFinite(batteryRangeElectric)
895
- ? t('vehicleProps:value.batteryRangeElectric', { consumption: batteryRangeElectric.toLocaleString(language) })
896
- : t('vehicleProps:value.na');
897
- }
898
- },
899
-
900
- c02: {
901
- title: t('vehicleProps:title.co2'),
902
- get value() {
903
- const c02 = car.environmentEmissions.co2;
904
- return Number.isFinite(c02)
905
- ? t('vehicleProps:value.co2', { co2: c02.toLocaleString(language) })
906
- : t('vehicleProps:value.na');
907
- }
908
- },
909
-
910
- consumptionAndCo2: {
911
- title: t('vehicleProps:title.consumptionAndCo2'),
912
- get value() {
913
- const consumptionPowerCombined = car.consumption.consumptionCombined;
914
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
915
- const translatedUnit = t(`cbd:${consumptionUnit}`);
916
- const co2 = car.environmentEmissions.co2;
917
- const consumptionValue = Number.isFinite(consumptionPowerCombined)
918
- ? t('vehicleProps:value.consumptionCombined', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
919
- : t('vehicleProps:value.na');
920
- const co2Value = Number.isFinite(co2)
921
- ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
922
- : t('vehicleProps:value.na');
923
-
924
- return `${consumptionValue} | ${co2Value}`;
925
- }
926
- },
927
- emissionClass: {
928
- title: t('vehicleProps:title.emissionClass'),
929
- get value() {
930
- const emissionClass = car.environmentEmissions.emissionClass;
931
- return isPropDefined(emissionClass) ? t(`cbd:${emissionClass}`) : t('vehicleProps:value.na');
932
- }
933
- },
934
-
935
- emissionSticker: {
936
- title: t('vehicleProps:title.emissionsSticker'),
937
- get value() {
938
- const emissionSticker = car.environmentEmissions.emissionSticker;
939
- let icon = null;
940
- const size = 25;
941
-
942
- if (emissionSticker !== 'selector_emissionSticker_no') {
943
- icon = EMISSION_STICKERS_ICONS[emissionSticker];
944
- }
945
-
946
- return icon ? <Icon src={icon} width={size} height={size} /> : t('vehicleProps:value.na');
947
- }
948
- },
949
-
950
- wpEmissionSticker: {
951
- title: t('vehicleProps:title.emissionsSticker'),
952
- get value() {
953
- const emissionSticker = car.environmentEmissions.emissionSticker;
954
- let icon = null;
955
- const size = 25;
956
-
957
- if (emissionSticker !== 'selector_emissionSticker_no') {
958
- icon = WP_EMISSION_STICKERS_ICONS[emissionSticker];
959
- }
960
-
961
- return icon ? <Icon src={icon} width={size} height={size} /> : t('vehicleProps:value.na');
962
- }
963
- },
964
-
965
- energyEfficiencyClass: {
966
- title: t('vehicleProps:title.energyEfficiencyClass'),
967
- subTitle: t('vehicleProps:title.subTitle'),
968
- get value() {
969
- const level = car.environmentEmissions.energyEfficiencyClass;
970
- return isPropDefined(level) ? <CO2Efficiency level={level} t={t} /> : t('vehicleProps:value.na');
971
- }
972
- },
973
-
974
- offerAvailability: {
975
- title: t('vehicleProps:title.offerAvailability'),
976
- icon: 'carAvailability',
977
- get value() {
978
- const offerAvailabilityMode = offer.availabilityMode;
979
- const offerAvailabilityTimestamp = offer.availabilityFrom;
980
- const humanViewTime = moment.unix(offerAvailabilityTimestamp).format('DD.MM.YYYY');
981
- let offerAvailability: string;
982
-
983
- switch (offerAvailabilityMode) {
984
- case 'selector_availabilityMode_always':
985
- offerAvailability = t(`cbd:${offerAvailabilityMode}`);
986
- break;
987
-
988
- case 'selector_availabilityMode_fromDate':
989
- if (offer.deliveryPeriod != null && offer.deliveryPeriod !== 'selector_unknown') {
990
- offerAvailability = formatDeliveryPeriod(t, offer.deliveryPeriod);
991
- break;
992
- }
993
-
994
- if (moment.utc(offerAvailabilityTimestamp, 'X').isBefore()) {
995
- offerAvailability = t('cbd:selector_availabilityMode_always');
996
- } else if (!!offerAvailabilityTimestamp) {
997
- offerAvailability = t('vehicleProps:value.fromDate', { date: humanViewTime });
998
- } else {
999
- offerAvailability = t('vehicleProps:value.onRequest'); // case when "availabilityFrom" is undefined
1000
- }
1001
- break;
1002
-
1003
- default:
1004
- if (!offerAvailabilityMode && !firstRegistration && !mileage) offerAvailability = t('vehicleProps:value.onRequest');
1005
- else offerAvailability = null;
1006
- }
1007
- return isPropDefined(offerAvailability) ? offerAvailability : t('vehicleProps:value.na');
1008
- }
1009
- },
1010
-
1011
- lastTechnicalService: {
1012
- title: t('vehicleProps:title.lastTechnicalService'),
1013
- get value() {
1014
- const lastTechnicalService = car.careService.lastTechnicalService;
1015
- return Number.isFinite(lastTechnicalService)
1016
- ? formatTimestamp({ timestamp: lastTechnicalService, format: 'MM/YYYY' })
1017
- : t('vehicleProps:value.na');
1018
- }
1019
- },
1020
-
1021
- generalInspection: {
1022
- title: t('vehicleProps:title.generalInspection'),
1023
- get value() {
1024
- const generalInspection = car.careService.generalInspection;
1025
- if (car.offer.newHuAu) {
1026
- return t('vehicleProps:value.new');
1027
- // tslint:disable-next-line:no-else-after-return
1028
- }else {
1029
- return Number.isFinite(generalInspection)
1030
- ? formatTimestamp({ timestamp: generalInspection, format: 'MM/YYYY' })
1031
- : t('vehicleProps:value.na');
1032
- }
1033
- }
1034
- },
1035
-
1036
- condition: {
1037
- title: t('vehicleProps:title.сondition'),
1038
- get value() {
1039
- return isPropDefined(condition)
1040
- ? t(`cbd:${condition}`)
1041
- : t('vehicleProps:value.na');
1042
- }
1043
- },
1044
-
1045
- numberOfPreviousOwnersSimple: {
1046
- title: t('vehicleProps:title.numberOfPreviousOwners'),
1047
- get value() {
1048
- return Number.isFinite(numberOfPreviousOwners)
1049
- ? numberOfPreviousOwners
1050
- : t('vehicleProps:value.na');
1051
- }
1052
- },
1053
-
1054
- guarantee: {
1055
- title: t('vehicleProps:title.guarantee'),
1056
- get value() {
1057
- const guarantee = car.offer.warranty;
1058
- return isPropDefined(guarantee)
1059
- ? (guarantee ? t('vehicleProps:value.yes') : t('vehicleProps:value.no'))
1060
- : t('vehicleProps:value.na');
1061
- }
1062
- },
1063
-
1064
- maintenanceGuide: {
1065
- title: t('vehicleProps:title.maintenanceGuide'),
1066
- get value() {
1067
- const fullserviceHistory = car.careService.fullServiceHistory;
1068
- return isPropDefined(fullserviceHistory)
1069
- ? (fullserviceHistory ? t('vehicleProps:value.yes') : t('vehicleProps:value.no'))
1070
- : t('vehicleProps:value.na');
1071
- }
1072
- },
1073
-
1074
- nonSmokerVehicle: {
1075
- title: t('vehicleProps:title.nonSmokingVehicle'),
1076
- get value() {
1077
- return isPropDefined(nonSmokerVehicle)
1078
- ? (nonSmokerVehicle ? t('vehicleProps:value.yes') : t('vehicleProps:value.no'))
1079
- : t('vehicleProps:value.na');
1080
- }
1081
- },
1082
-
1083
- manufacturerColorName: {
1084
- title: t('vehicleProps:title.manufacturerColorName'),
1085
- get value() {
1086
- const color = car.exterior.manufacturerColorName;
1087
-
1088
- if (typeof color !== 'string' || color === '') {
1089
- return t('vehicleProps:value.na');
1090
- }
1091
-
1092
- return color[0].toUpperCase() + color.slice(1);
1093
- }
1094
- },
1095
-
1096
- exteriorColor: {
1097
- title: t('vehicleProps:title.colour'),
1098
- get value() {
1099
- const exteriorColor = car.exterior.exteriorColor;
1100
- return isPropDefined(exteriorColor)
1101
- ? t(`cbd:${exteriorColor.replace('exterior_', '')}`)
1102
- : t('vehicleProps:value.na');
1103
- }
1104
- },
1105
-
1106
- appointmentsColor: {
1107
- title: t('vehicleProps:title.appointmentsColor'),
1108
- get value() {
1109
- const interiorColor = car.interior.interiorColor;
1110
- return isPropDefined(interiorColor)
1111
- ? t(`cbd:${interiorColor.replace('interior_', '')}`)
1112
- : t('vehicleProps:value.na');
1113
- }
1114
- },
1115
-
1116
- interiorType: {
1117
- title: t('vehicleProps:title.interiorType'),
1118
- get value() {
1119
- const interiorType = car.interior.interiorType;
1120
- return isPropDefined(interiorType)
1121
- ? t(`cbd:${interiorType}`)
1122
- : t('vehicleProps:value.na');
1123
- }
1124
- },
1125
- signOfUse : {
1126
- title: t('vehicleProps:title.signsOfUse'),
1127
- isVisible: mileage > 100, // tslint:disable-line
1128
- isLongTitle: true,
1129
- get value() {
1130
- return t('vehicleProps:value.yes');
1131
- }
1132
- },
1133
- countryVersion : {
1134
- title: t('vehicleProps:title.countryVersion'),
1135
- get value() {
1136
- const countryName = car.countryActive[language];
1137
- if (!countryVersion) return t('vehicleProps:value.na');
1138
- switch (countryVersion) {
1139
- case 'de':
1140
- return t('vehicleProps:value.countryDEversion');
1141
- break;
1142
- case 'eu':
1143
- return t('vehicleProps:value.countryEUversion');
1144
- break;
1145
- case 'at':
1146
- return t('vehicleProps:value.countryATversion');
1147
- break;
1148
- default:
1149
- return t('vehicleProps:value.countryVersionName', { countryName });
1150
- }
1151
- }
1152
- },
1153
- wltpCo2: {
1154
- title: t('vehicleProps:title.wltpCo2'),
1155
- get value() {
1156
- const c02 = car.environmentEmissions.wltpCo2;
1157
- return Number.isFinite(c02)
1158
- ? t('vehicleProps:value.wltpCo2', { co2: c02.toLocaleString(language) })
1159
- : t('vehicleProps:value.na');
1160
- }
1161
- },
1162
- wltpCo2Plugin: {
1163
- title: t('vehicleProps:title.wltpCo2Plugin'),
1164
- get value() {
1165
- const c02 = car.environmentEmissions.wltpCo2;
1166
- return Number.isFinite(c02)
1167
- ? t('vehicleProps:value.wltpCo2', { co2: c02.toLocaleString(language) })
1168
- : t('vehicleProps:value.na');
1169
- }
1170
- },
1171
- wltpCo2Discharged: {
1172
- title: t('vehicleProps:title.wltpCo2Discharged'),
1173
- get value() {
1174
- const wltpCo2 = car.environmentEmissions.wltpCo2Discharged;
1175
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1176
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1177
- return Number.isFinite(wltpCo2)
1178
- ? t('vehicleProps:value.wltpCo2', { co2: wltpCo2.toLocaleString(language), unit: translatedUnit })
1179
- : t('vehicleProps:value.na');
1180
- }
1181
- },
1182
- wltpEnergyEfficiencyClass: {
1183
- // title: t('vehicleProps:title.wltpEnergyEfficiencyClass'),
1184
- // subTitle: t('vehicleProps:title.subTitle'),
1185
- get value() {
1186
- const level = car.environmentEmissions.wltpEnergyEfficiencyClass;
1187
- const wltpLevel = car.environmentEmissions.wltpDischargedEnergyEfficiencyClass;
1188
- const { hybridPlugin } = car.engineData;
1189
- const subtitle = hybridPlugin ? t('vehicleProps:title.wltpCO2SubTitle') : t('vehicleProps:title.wltpCO2SubTitleComb');
1190
- return isPropDefined(level) ?
1191
- <CO2Efficiency
1192
- title={t('vehicleProps:title.wltpCO2Title')}
1193
- subTitle={subtitle}
1194
- wltpLevel={wltpLevel}
1195
- level={level}
1196
- t={t}
1197
- levelTitle={t('vehicleProps:title.wltpCO2WidgetComb')}
1198
- wltpLevelTitle={t('vehicleProps:title.wltpCO2WidgetDischargedBattery')}
1199
- hybridPlugin={hybridPlugin}
1200
- isWltp
1201
- /> : t('vehicleProps:value.na');
1202
- }
1203
- },
1204
- wltpDischargedEnergyEfficiencyClass: {
1205
- title: t('vehicleProps:title.wltpDischargedEnergyEfficiencyClass'),
1206
- subTitle: t('vehicleProps:title.subTitle'),
1207
- get value() {
1208
- const level = car.environmentEmissions.wltpDischargedEnergyEfficiencyClass;
1209
- return isPropDefined(level) ? <CO2Efficiency level={level} isWltp t={t} /> : t('vehicleProps:value.na');
1210
- }
1211
- },
1212
- wltpRange: {
1213
- title: t('vehicleProps:title.wltpRange'),
1214
- get value() {
1215
- const wltpRange = car.battery && car.battery.wltpRange;
1216
- return Number.isFinite(wltpRange)
1217
- ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpRange.toLocaleString(language) })
1218
- : t('vehicleProps:value.na');
1219
- }
1220
- },
1221
- wltpTotalRange: {
1222
- title: t('vehicleProps:title.wltpTotalRange'),
1223
- get value() {
1224
- const wltpTotalRange = car.battery && car.battery.wltpTotalRange;
1225
- return Number.isFinite(wltpTotalRange)
1226
- ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpTotalRange.toLocaleString(language) })
1227
- : t('vehicleProps:value.na');
1228
- }
1229
- },
1230
-
1231
- wltpRangeCity: {
1232
- title: t('vehicleProps:title.wltpRangeCity'),
1233
- get value() {
1234
- const wltpRangeCity = car.battery && car.battery.wltpRangeCity;
1235
- return Number.isFinite(wltpRangeCity)
1236
- ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpRangeCity.toLocaleString(language) })
1237
- : t('vehicleProps:value.na');
1238
- }
1239
- },
1240
- wltpTotalRangeCity: {
1241
- title: t('vehicleProps:title.wltpTotalRangeCity'),
1242
- get value() {
1243
- const wltpTotalRangeCity = car.battery && car.battery.wltpTotalRangeCity;
1244
- return Number.isFinite(wltpTotalRangeCity)
1245
- ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpTotalRangeCity.toLocaleString(language) })
1246
- : t('vehicleProps:value.na');
1247
- }
1248
- },
1249
- wltpWeightedCombined: {
1250
- title: t('vehicleProps:title.wltpWeightedCombined'),
1251
- get value() {
1252
- const wltpWeightedCombined = car.consumption.wltpWeightedCombined;
1253
- return Number.isFinite(wltpWeightedCombined)
1254
- ? t('vehicleProps:value.consumptionCombined', { consumption: wltpWeightedCombined.toLocaleString(language) })
1255
- : t('vehicleProps:value.na');
1256
- }
1257
- },
1258
- wltpCombined: {
1259
- title: t('vehicleProps:title.wltpCombined'),
1260
- get value() {
1261
- const wltpCombined = car.consumption.wltpCombined;
1262
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1263
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1264
- return Number.isFinite(wltpCombined)
1265
- ? t('vehicleProps:value.consumption', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
1266
- : t('vehicleProps:value.na');
1267
- }
1268
- },
1269
- wltpCombinedGas: {
1270
- title: t('vehicleProps:title.wltpCombined'),
1271
- get value() {
1272
- const wltpCombined = car.consumption.wltpCombined;
1273
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1274
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1275
- return Number.isFinite(wltpCombined)
1276
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
1277
- : t('vehicleProps:value.na');
1278
- }
1279
- },
1280
- wltpCombinedPlugin: {
1281
- title: t('vehicleProps:title.wltpCombinedPlugin'),
1282
- get value() {
1283
- const wltpCombined = car.consumption.wltpCombined;
1284
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1285
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1286
- return Number.isFinite(wltpCombined)
1287
- ? t('vehicleProps:value.consumption', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
1288
- : t('vehicleProps:value.na');
1289
- }
1290
- },
1291
- wltpSlow: {
1292
- title: t('vehicleProps:title.wltpSlow'),
1293
- get value() {
1294
- const wltpSlow = car.consumption.wltpSlow;
1295
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1296
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1297
- return Number.isFinite(wltpSlow)
1298
- ? t('vehicleProps:value.consumption', { consumption: wltpSlow.toLocaleString(language), unit: translatedUnit })
1299
- : t('vehicleProps:value.na');
1300
- }
1301
- },
1302
- wltpSlowGas: {
1303
- title: t('vehicleProps:title.wltpSlow'),
1304
- get value() {
1305
- const wltpSlow = car.consumption.wltpSlow;
1306
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1307
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1308
- return Number.isFinite(wltpSlow)
1309
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpSlow.toLocaleString(language), unit: translatedUnit })
1310
- : t('vehicleProps:value.na');
1311
- }
1312
- },
1313
- wltpSlowPlugin: {
1314
- title: t('vehicleProps:title.wltpSlowPlugin'),
1315
- get value() {
1316
- const wltpSlow = car.consumption.wltpSlow;
1317
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1318
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1319
- return Number.isFinite(wltpSlow)
1320
- ? t('vehicleProps:value.consumption', { consumption: wltpSlow.toLocaleString(language), unit: translatedUnit })
1321
- : t('vehicleProps:value.na');
1322
- }
1323
- },
1324
- wltpMedium: {
1325
- title: t('vehicleProps:title.wltpMedium'),
1326
- get value() {
1327
- const wltpMedium = car.consumption.wltpMedium;
1328
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1329
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1330
- return Number.isFinite(wltpMedium)
1331
- ? t('vehicleProps:value.consumption', { consumption: wltpMedium.toLocaleString(language), unit: translatedUnit })
1332
- : t('vehicleProps:value.na');
1333
- }
1334
- },
1335
- wltpMediumGas: {
1336
- title: t('vehicleProps:title.wltpMedium'),
1337
- get value() {
1338
- const wltpMedium = car.consumption.wltpMedium;
1339
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1340
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1341
- return Number.isFinite(wltpMedium)
1342
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpMedium.toLocaleString(language), unit: translatedUnit })
1343
- : t('vehicleProps:value.na');
1344
- }
1345
- },
1346
- wltpMediumPlugin: {
1347
- title: t('vehicleProps:title.wltpMediumPlugin'),
1348
- get value() {
1349
- const wltpMedium = car.consumption.wltpMedium;
1350
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1351
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1352
- return Number.isFinite(wltpMedium)
1353
- ? t('vehicleProps:value.consumption', { consumption: wltpMedium.toLocaleString(language), unit: translatedUnit })
1354
- : t('vehicleProps:value.na');
1355
- }
1356
- },
1357
- wltpFast: {
1358
- title: t('vehicleProps:title.wltpFast'),
1359
- get value() {
1360
- const wltpFast = car.consumption.wltpFast;
1361
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1362
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1363
- return Number.isFinite(wltpFast)
1364
- ? t('vehicleProps:value.consumption', { consumption: wltpFast.toLocaleString(language), unit: translatedUnit })
1365
- : t('vehicleProps:value.na');
1366
- }
1367
- },
1368
- wltpFastGas: {
1369
- title: t('vehicleProps:title.wltpFast'),
1370
- get value() {
1371
- const wltpFast = car.consumption.wltpFast;
1372
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1373
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1374
- return Number.isFinite(wltpFast)
1375
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpFast.toLocaleString(language), unit: translatedUnit })
1376
- : t('vehicleProps:value.na');
1377
- }
1378
- },
1379
- wltpFastPlugin: {
1380
- title: t('vehicleProps:title.wltpFastPlugin'),
1381
- get value() {
1382
- const wltpFast = car.consumption.wltpFast;
1383
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1384
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1385
- return Number.isFinite(wltpFast)
1386
- ? t('vehicleProps:value.consumption', { consumption: wltpFast.toLocaleString(language), unit: translatedUnit })
1387
- : t('vehicleProps:value.na');
1388
- }
1389
- },
1390
- wltpVeryFast: {
1391
- title: t('vehicleProps:title.wltpVeryFast'),
1392
- get value() {
1393
- const wltpVeryFast = car.consumption.wltpVeryFast;
1394
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1395
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1396
- return Number.isFinite(wltpVeryFast)
1397
- ? t('vehicleProps:value.consumption', { consumption: wltpVeryFast.toLocaleString(language), unit: translatedUnit })
1398
- : t('vehicleProps:value.na');
1399
- }
1400
- },
1401
- wltpVeryFastGas: {
1402
- title: t('vehicleProps:title.wltpVeryFast'),
1403
- get value() {
1404
- const wltpVeryFast = car.consumption.wltpVeryFast;
1405
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1406
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1407
- return Number.isFinite(wltpVeryFast)
1408
- ? t('vehicleProps:value.consumptionGas', { consumption: wltpVeryFast.toLocaleString(language), unit: translatedUnit })
1409
- : t('vehicleProps:value.na');
1410
- }
1411
- },
1412
- wltpVeryFastPlugin: {
1413
- title: t('vehicleProps:title.wltpVeryFastPlugin'),
1414
- get value() {
1415
- const wltpVeryFast = car.consumption.wltpVeryFast;
1416
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1417
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1418
- return Number.isFinite(wltpVeryFast)
1419
- ? t('vehicleProps:value.consumption', { consumption: wltpVeryFast.toLocaleString(language), unit: translatedUnit })
1420
- : t('vehicleProps:value.na');
1421
- }
1422
- },
1423
- wltpWeightedPowerCombined: {
1424
- title: t('vehicleProps:title.wltpWeightedPowerCombined'),
1425
- get value() {
1426
- const wltpWeightedPowerCombined = car.consumption.wltpWeightedPowerCombined;
1427
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1428
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1429
- return Number.isFinite(wltpWeightedPowerCombined)
1430
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpWeightedPowerCombined.toLocaleString(language), unit: translatedUnit })
1431
- : t('vehicleProps:value.na');
1432
- }
1433
- },
1434
- wltpPowerCombined: {
1435
- title: t('vehicleProps:title.wltpPowerCombined'),
1436
- get value() {
1437
- const wltpPowerCombined = car.consumption.wltpPowerCombined;
1438
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1439
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1440
- return Number.isFinite(wltpPowerCombined)
1441
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerCombined.toLocaleString(language), unit: translatedUnit })
1442
- : t('vehicleProps:value.na');
1443
- }
1444
- },
1445
- wltpPowerSlow: {
1446
- title: t('vehicleProps:title.wltpPowerSlow'),
1447
- get value() {
1448
- const wltpPowerSlow = car.consumption.wltpPowerSlow;
1449
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1450
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1451
- return Number.isFinite(wltpPowerSlow)
1452
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerSlow.toLocaleString(language), unit: translatedUnit })
1453
- : t('vehicleProps:value.na');
1454
- }
1455
- },
1456
- wltpPowerMedium: {
1457
- title: t('vehicleProps:title.wltpPowerMedium'),
1458
- get value() {
1459
- const wltpPowerMedium = car.consumption.wltpPowerMedium;
1460
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1461
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1462
- return Number.isFinite(wltpPowerMedium)
1463
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerMedium.toLocaleString(language), unit: translatedUnit })
1464
- : t('vehicleProps:value.na');
1465
- }
1466
- },
1467
- wltpPowerFast: {
1468
- title: t('vehicleProps:title.wltpPowerFast'),
1469
- get value() {
1470
- const wltpPowerFast = car.consumption.wltpPowerFast;
1471
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1472
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1473
- return Number.isFinite(wltpPowerFast)
1474
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerFast.toLocaleString(language), unit: translatedUnit })
1475
- : t('vehicleProps:value.na');
1476
- }
1477
- },
1478
- wltpPowerVeryFast: {
1479
- title: t('vehicleProps:title.wltpPowerVeryFast'),
1480
- get value() {
1481
- const wltpPowerVeryFast = car.consumption.wltpPowerVeryFast;
1482
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1483
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1484
- return Number.isFinite(wltpPowerVeryFast)
1485
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerVeryFast.toLocaleString(language), unit: translatedUnit })
1486
- : t('vehicleProps:value.na');
1487
- }
1488
- },
1489
- wltpPowerCombinedPlugin: {
1490
- title: t('vehicleProps:title.wltpPowerCombined'),
1491
- get value() {
1492
- const wltpPowerCombined = car.consumption.wltpPowerCombined;
1493
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1494
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1495
- return Number.isFinite(wltpPowerCombined)
1496
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerCombined.toLocaleString(language), unit: translatedUnit })
1497
- : t('vehicleProps:value.na');
1498
- }
1499
- },
1500
- wltpPowerSlowPlugin: {
1501
- title: t('vehicleProps:title.wltpPowerSlow'),
1502
- get value() {
1503
- const wltpPowerSlow = car.consumption.wltpPowerSlow;
1504
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1505
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1506
- return Number.isFinite(wltpPowerSlow)
1507
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerSlow.toLocaleString(language), unit: translatedUnit })
1508
- : t('vehicleProps:value.na');
1509
- }
1510
- },
1511
- wltpPowerMediumPlugin: {
1512
- title: t('vehicleProps:title.wltpPowerMedium'),
1513
- get value() {
1514
- const wltpPowerMedium = car.consumption.wltpPowerMedium;
1515
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1516
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1517
- return Number.isFinite(wltpPowerMedium)
1518
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerMedium.toLocaleString(language), unit: translatedUnit })
1519
- : t('vehicleProps:value.na');
1520
- }
1521
- },
1522
- wltpPowerFastPlugin: {
1523
- title: t('vehicleProps:title.wltpPowerFast'),
1524
- get value() {
1525
- const wltpPowerFast = car.consumption.wltpPowerFast;
1526
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1527
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1528
- return Number.isFinite(wltpPowerFast)
1529
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerFast.toLocaleString(language), unit: translatedUnit })
1530
- : t('vehicleProps:value.na');
1531
- }
1532
- },
1533
- wltpPowerVeryFastPlugin: {
1534
- title: t('vehicleProps:title.wltpPowerVeryFast'),
1535
- get value() {
1536
- const wltpPowerVeryFast = car.consumption.wltpPowerVeryFast;
1537
- const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1538
- const translatedUnit = t(`cbd:${consumptionUnit}`);
1539
- return Number.isFinite(wltpPowerVeryFast)
1540
- ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerVeryFast.toLocaleString(language), unit: translatedUnit })
1541
- : t('vehicleProps:value.na');
1542
- }
1543
- },
1544
- wltpEnergyCosts: {
1545
- title: t('vehicleProps:title.wltpEnergyCosts'),
1546
- get value() {
1547
- const { fuel } = car.consumption;
1548
- const { wltpCombined, wltpPowerCombined, wltpWeightedCombined, wltpWeightedPowerCombined } = car.consumption;
1549
- const { powerPrice, fuelPrice } = car.costModel;
1550
- const powerCost = {
1551
- fuelPrice,
1552
- powerPrice
1553
- }
1554
- const { hybridPlugin } = car.engineData;
1555
- const consumption = {
1556
- wltpCombined, wltpPowerCombined, wltpWeightedCombined, wltpWeightedPowerCombined
1557
- }
1558
- const { getFuelPrice } = financingUtils;
1559
- const fuelCost = getFuelPrice(fuel, consumption, hybridPlugin, powerCost);
1560
- return Number.isFinite(fuelCost)
1561
- ? t('vehicleProps:value.pricePerYear', { price: getFormattedPrice(fuelCost, '$,.2f') })
1562
- : t('vehicleProps:value.na');
1563
- }
1564
- },
1565
- wltpCo2CostsLow: {
1566
- get title() {
1567
- const { co2DefaultCostsLow } = financingUtils;
1568
- return t('vehicleProps:title.wltpCo2LowPrice', { price: co2DefaultCostsLow })
1569
- },
1570
- get value() {
1571
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1572
-
1573
- const { getCo2Price } = financingUtils;
1574
- const { co2PriceLow } = getCo2Price(wltpCo2);
1575
- return Number.isFinite(co2PriceLow)
1576
- ? t('vehicleProps:value.wltpCo2Price', { price: getFormattedPrice(co2PriceLow, '$,.2f') })
1577
- : t('vehicleProps:value.na');
1578
- },
1579
- get valueDescription() {
1580
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1581
-
1582
- const { getCo2Price } = financingUtils;
1583
- const { co2PriceLow } = getCo2Price(wltpCo2);
1584
- return Number.isFinite(co2PriceLow) ? t('vehicleProps:value.wltpCo2PriceSpec') : '';
1585
- }
1586
- },
1587
- wltpCo2CostsMiddle: {
1588
- get title() {
1589
- const { co2DefaultCostsMedium } = financingUtils;
1590
- return t('vehicleProps:title.wltpCo2MidPrice', { price: co2DefaultCostsMedium })
1591
- },
1592
- get value() {
1593
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1594
-
1595
- const { getCo2Price } = financingUtils;
1596
- const { co2PriceMedium } = getCo2Price(wltpCo2);
1597
- return Number.isFinite(co2PriceMedium)
1598
- ? t('vehicleProps:value.wltpCo2Price', { price: getFormattedPrice(co2PriceMedium, '$,.2f') })
1599
- : t('vehicleProps:value.na');
1600
- },
1601
- get valueDescription() {
1602
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1603
-
1604
- const { getCo2Price } = financingUtils;
1605
- const { co2PriceMedium } = getCo2Price(wltpCo2);
1606
- return Number.isFinite(co2PriceMedium) ? t('vehicleProps:value.wltpCo2PriceSpec') : '';
1607
- }
1608
- },
1609
- wltpCo2CostsHigh: {
1610
- get title() {
1611
- const { co2DefaultCostsHigh } = financingUtils;
1612
- return t('vehicleProps:title.wltpCo2HighPrice', { price: co2DefaultCostsHigh })
1613
- },
1614
- get value() {
1615
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1616
-
1617
- const { getCo2Price } = financingUtils;
1618
- const { co2PriceHigh } = getCo2Price(wltpCo2);
1619
- return Number.isFinite(co2PriceHigh)
1620
- ? t('vehicleProps:value.wltpCo2Price', { price: getFormattedPrice(co2PriceHigh, '$,.2f') })
1621
- : t('vehicleProps:value.na');
1622
- },
1623
- get valueDescription() {
1624
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1625
-
1626
- const { getCo2Price } = financingUtils;
1627
- const { co2PriceHigh } = getCo2Price(wltpCo2);
1628
- return Number.isFinite(co2PriceHigh) ? t('vehicleProps:value.wltpCo2PriceSpec') : '';
1629
- }
1630
- },
1631
- powerPrice: {
1632
- title: t('vehicleProps:title.powerPrice'),
1633
- get value() {
1634
- const fuel = car.consumption.fuel;
1635
- const { hybridPlugin } = car.engineData;
1636
-
1637
- const { getBaseFuelPrice } = financingUtils;
1638
-
1639
- const basePowerPrice = getBaseFuelPrice(fuel, hybridPlugin).powerPrice;
1640
- const powerPrice = car.costModel.powerPrice ? car.costModel.powerPrice : basePowerPrice;
1641
-
1642
- return Number.isFinite(powerPrice)
1643
- ? t('vehicleProps:value.powerPrice', { price: getFormattedPrice(powerPrice, '$,.2f') })
1644
- : t('vehicleProps:value.na');
1645
- }
1646
- },
1647
- fuelPrice: {
1648
- title: t('vehicleProps:title.fuelPrice'),
1649
- get value() {
1650
- const fuel = car.consumption.fuel;
1651
- const { hybridPlugin } = car.engineData;
1652
-
1653
- const { getBaseFuelPrice } = financingUtils;
1654
-
1655
- const baseFuelPrice = getBaseFuelPrice(fuel, hybridPlugin) ? getBaseFuelPrice(fuel, hybridPlugin).fuelPrice : null;
1656
-
1657
- const fuelPrice = car.costModel.fuelPrice ? car.costModel.fuelPrice : baseFuelPrice;
1658
- return Number.isFinite(fuelPrice)
1659
- ? t('vehicleProps:value.fuelPrice', { price: getFormattedPrice(fuelPrice, '$,.2f') })
1660
- : t('vehicleProps:value.na');
1661
- }
1662
- },
1663
- consumptionPriceYear: {
1664
- title: t('vehicleProps:title.consumptionPriceYear'),
1665
- get value() {
1666
- const { consumptionPriceYear } = car.costModel;
1667
- return Number.isFinite(consumptionPriceYear)
1668
- ? consumptionPriceYear
1669
- : t('vehicleProps:value.na');
1670
- }
1671
- },
1672
- wltpCostModelTax: {
1673
- title: t('vehicleProps:title.wltpVehicleTax'),
1674
- get value() {
1675
- const cubicCapacity = car.engineData.cubicCapacity;
1676
- const fuel = car.consumption.fuel;
1677
- const wltpCo2 = car.environmentEmissions.wltpCo2;
1678
- const { getVehicleTax } = financingUtils;
1679
- const tax = car.costModel.tax ? car.costModel.tax : getVehicleTax(fuel, cubicCapacity, wltpCo2, firstRegistration);
1680
- return Number.isFinite(tax)
1681
- ? t('vehicleProps:value.pricePerYear', { price: getFormattedPrice(tax, '$,.2f') })
1682
- : t('vehicleProps:value.na');
1683
- }
1684
- }
1685
-
1686
- };
1687
- return props;
1688
- };
1689
-
1690
- export default getDecoratedProps;
1
+ import * as React from 'react';
2
+ import moment from 'moment';
3
+
4
+ import Icon from '../../components/_common/IconContainer/IconContainer';
5
+ import CO2Efficiency from '../../components/_common/Co2Widget/CO2Efficiency';
6
+ import { formatTimestamp } from '../utils/DateUtils';
7
+ import { formatMileage } from '../utils/CommonUtils';
8
+ import { EMISSION_STICKERS_ICONS, WP_EMISSION_STICKERS_ICONS } from '../constants/Search';
9
+ import { DELIVERY_PERIODS_EXTRA } from '../constants';
10
+ import { IDecoratedProp, ICar, IFinancingUtils } from '../types/types';
11
+ import { getFormattedPrice } from '../utils/CommonUtils';
12
+
13
+ const formatDeliveryPeriod = (t: (key: string, options?: object) => string, deliveryPeriod: string) => {
14
+ const count: number = +DELIVERY_PERIODS_EXTRA.find((period: any) => period.value === deliveryPeriod).label;
15
+ // months until delivery date unrounded (float)
16
+ const monthsTo: number = moment.utc().diff(moment.utc().subtract(count, 'd'), 'M', true);
17
+ return Math.round(monthsTo) > 1
18
+ ? t('vehicleProps:value.deliveryPeriodMonths', { count: Math.round(monthsTo) })
19
+ : t('vehicleProps:value.deliveryPeriodDays', { count });
20
+ };
21
+
22
+ const isPropDefined = (prop: any) => {
23
+ const type = typeof prop;
24
+ if (type === 'string') {
25
+ return prop.indexOf('other') === -1
26
+ && prop.indexOf('unknown') === -1;
27
+ }
28
+ return !(prop === undefined || prop === null) && type !== 'undefined';
29
+ };
30
+
31
+ const isCheckedBatteryTime = (prop: any, t: (key: string, options?: object) => string) => {
32
+ switch (prop) {
33
+ case 'selector_batteryCharchingDurationMinutes':
34
+ return 'min';
35
+ break;
36
+ case 'selector_batteryCharchingDurationHours':
37
+ return 'h';
38
+ break;
39
+ default:
40
+ return t('vehicleProps:value.na');
41
+ }
42
+ };
43
+
44
+ export const getPowerLabel = (powerKW: number, powerPS: number): string => {
45
+ const powerKWlabel = !!powerKW ? `${powerKW} kW ` : '';
46
+ const powerPSlabel = !!powerPS ? `${!!powerKW ? '(' : ''}${powerPS} PS${!!powerKW ? ')' : ''}` : '';
47
+ const powerKWpowerPS = `${powerKWlabel}${powerPSlabel}`;
48
+
49
+ return powerKWpowerPS;
50
+ };
51
+ const wrapValue = (value:string): React.ReactNode => {
52
+ const regex = /-?\d+(\,\d+)?/; // match any digit
53
+ const matches = value.match(regex); // get an array of all digits found
54
+
55
+ if (matches && matches.length > 0) { // If at least one number is found in the input string
56
+ const index = value.indexOf(matches[0]) + matches[0].length;
57
+ const beforeText = value.slice(0, index);
58
+ const afterText = value.slice(index);
59
+
60
+ return (
61
+ <>
62
+ {beforeText}
63
+ <span className='smallText'>{afterText}</span>
64
+ </>
65
+ ); // Return a JSX element with a span wrapper around the text after the number
66
+ }
67
+ return <>{value}</>; // If no numbers are found in the input string, return the original string without any modification
68
+ };
69
+
70
+ const getDecoratedProps = (
71
+ car: ICar, // @TODO should have a proper interface
72
+ t: (key: string, options?: object) => string,
73
+ language: string = 'en',
74
+ simplifiedLabels: boolean = false, // shortened labels for repsonsive layout (see 'power'),
75
+ financingUtils?: IFinancingUtils
76
+ ): IDecoratedProp => {
77
+ const {
78
+ offer = {},
79
+ // countryName,
80
+ mainData: {
81
+ firstRegistration = '',
82
+ mileage = '',
83
+ numberOfPreviousOwners = '',
84
+ doors = '',
85
+ usageType = '',
86
+ countryVersion = '',
87
+ condition = '',
88
+ damaged = '',
89
+ category = '',
90
+ seats = '',
91
+ nonSmokerVehicle = '',
92
+ make = '',
93
+ model = ''
94
+ } = {}
95
+ } = car;
96
+ const props: any = {
97
+ makeModel: {
98
+ title: t('vehicleProps:title.makeModel'),
99
+ get value() { return `${make} ${model}`; }
100
+ },
101
+ mileage: {
102
+ title: t('vehicleProps:title.mileage'),
103
+ icon: 'speed',
104
+ get value() {
105
+ return Number.isFinite(parseInt(mileage, 10))
106
+ ? t('vehicleProps:value.mileage', { mileage: formatMileage(mileage) })
107
+ : t('vehicleProps:value.na');
108
+ }
109
+ },
110
+
111
+ firstRegistration: {
112
+ title: t('vehicleProps:title.firstRegistration'),
113
+ icon: 'date',
114
+ get value() {
115
+ return Number.isFinite(firstRegistration)
116
+ ? formatTimestamp({ timestamp: firstRegistration, format: 'MM/YYYY' })
117
+ : t('vehicleProps:value.na');
118
+ }
119
+ },
120
+
121
+ numberOfPreviousOwners: {
122
+ title: t('vehicleProps:title.numberOfPreviousOwners'),
123
+ icon: 'owner',
124
+ get value() {
125
+ return Number.isFinite(numberOfPreviousOwners)
126
+ ? t('vehicleProps:value.vehicleOwners', { count: numberOfPreviousOwners })
127
+ : t('vehicleProps:value.na');
128
+ }
129
+ },
130
+
131
+ doorsOnly: {
132
+ icon: 'door',
133
+ get value() {
134
+ if (doors > 0) {
135
+ return t('vehicleProps:value.doorsOnly', { doors });
136
+ }
137
+
138
+ return t('vehicleProps:value.na');
139
+ }
140
+ },
141
+
142
+ usageType: {
143
+ icon: 'new',
144
+ get value() {
145
+ if (condition === 'selector_condition_new') return t('vehicleProps:value.newCar');
146
+ return isPropDefined(usageType) ? t(`cbd:${usageType}`) : t('cbd:selector_condition_used');
147
+ }
148
+ },
149
+
150
+ gearbox: {
151
+ get icon() {
152
+ const gearbox = car.driveSuspension.gearbox;
153
+ return isPropDefined(gearbox) ? car.driveSuspension.gearbox : 'selector_gearbox_manualShift';
154
+ },
155
+ get value() {
156
+ const gearbox = car.driveSuspension.gearbox;
157
+ return isPropDefined(gearbox) ? t(`cbd:${gearbox}`) : t('vehicleProps:value.na');
158
+ }
159
+ },
160
+
161
+ power: {
162
+ title: t('vehicleProps:title.power'),
163
+ icon: 'ps',
164
+ get value() {
165
+ const { powerKW, powerPS } = car.engineData;
166
+
167
+ if (Number.isFinite(powerKW) && Number.isFinite(powerPS)) {
168
+ return simplifiedLabels
169
+ ? t('vehicleProps:value.powerPS', { powerPS })
170
+ : t('vehicleProps:value.power', { powerKW, powerPS });
171
+ }
172
+
173
+ return t('vehicleProps:value.na');
174
+ }
175
+ },
176
+
177
+ powerAlternateView: {
178
+ title: t('vehicleProps:title.power'),
179
+ icon: 'kw',
180
+ get value() {
181
+ const { powerKW, powerPS } = car.engineData;
182
+ return Number.isFinite(powerKW) && Number.isFinite(powerPS)
183
+ ? t('vehicleProps:value.powerAlternateView', { powerKW, powerPS })
184
+ : t('vehicleProps:value.na');
185
+ }
186
+ },
187
+
188
+ fuel: {
189
+ title: t('vehicleProps:title.fuel'),
190
+ get icon() { return car.consumption.fuel; },
191
+ get value() {
192
+ const fuel = car.consumption.fuel;
193
+ return isPropDefined(fuel) ? t(`cbd:${fuel}`) : t('vehicleProps:value.na');
194
+ }
195
+ },
196
+
197
+ accidentDamaged: {
198
+ title: t('cbd:mainData_accidentDamaged'),
199
+ icon: 'wrench',
200
+ get value() {
201
+ return damaged ? t('vehicleProps:value.damaged') : t('vehicleProps:value.accidentFree');
202
+ }
203
+ },
204
+
205
+ co2: {
206
+ icon: 'co2',
207
+ get value() {
208
+ const co2 = car.environmentEmissions.co2;
209
+ return Number.isFinite(co2)
210
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
211
+ : t('vehicleProps:value.na');
212
+ }
213
+ },
214
+
215
+ cylinders: {
216
+ title: t('vehicleProps:title.cylinders'),
217
+ get value() {
218
+ const { engineLocation } = car.engineData;
219
+ const cylinders = parseInt(car.engineData.cylinders, 10);
220
+ return Number.isFinite(cylinders)
221
+ ? (engineLocation ? `${cylinders} / ${t(`cbd:${engineLocation}`)}` : cylinders)
222
+ : t('vehicleProps:value.na');
223
+ }
224
+ },
225
+
226
+ plugIn: {
227
+ title: 'Plug-In',
228
+ get value() {
229
+ const { hybridPlugin } = car.engineData;
230
+ return hybridPlugin ? t(`cbd:selector_hybridPlugin_yes`) : t('cbd:selector_hybridPlugin_no');
231
+ }
232
+ },
233
+
234
+ cubicCapacity: {
235
+ title: t('vehicleProps:title.cubicCapacity'),
236
+ get value() {
237
+ const cubicCapacity = car.engineData.cubicCapacity;
238
+ return Number.isFinite(cubicCapacity)
239
+ ? t('vehicleProps:value.cubicCapacity', { cubicCapacity: cubicCapacity.toLocaleString(language) })
240
+ : t('vehicleProps:value.na');
241
+ }
242
+ },
243
+
244
+ torque: {
245
+ title: t('vehicleProps:title.torque'),
246
+ get value() {
247
+ const torque = car.engineData.torque;
248
+ return torque
249
+ ? t('vehicleProps:value.torque', { torque })
250
+ : t('vehicleProps:value.na');
251
+ }
252
+ },
253
+
254
+ acceleration: {
255
+ title: t('vehicleProps:title.acceleration'),
256
+ get value() {
257
+ const acceleration = car.engineData.acceleration100;
258
+ return isPropDefined(acceleration)
259
+ ? (t('vehicleProps:value.acceleration', { seconds: acceleration }))
260
+ : t('vehicleProps:value.na');
261
+ }
262
+ },
263
+
264
+ topSpeed: {
265
+ title: t('vehicleProps:title.topSpeed'),
266
+ get value() {
267
+ const topSpeed = car.engineData.highSpeed;
268
+ return isPropDefined(topSpeed)
269
+ ? (t('vehicleProps:value.topSpeed', { mileage: topSpeed }))
270
+ : t('vehicleProps:value.na');
271
+ }
272
+ },
273
+
274
+ transmission: {
275
+ title: t('vehicleProps:title.transmission'),
276
+ get value() {
277
+ const gearbox = car.driveSuspension.gearbox;
278
+ return isPropDefined(gearbox) ? t(`cbd:${gearbox}`) : t('vehicleProps:value.na');
279
+ }
280
+ },
281
+
282
+ driveType: {
283
+ title: t('vehicleProps:title.driveType'),
284
+ get icon() {
285
+ const driveType = car.driveSuspension.driveType;
286
+ return isPropDefined(driveType) ? car.driveSuspension.driveType : 'selector_driveType_frontWheelDrive';
287
+ },
288
+ get value() {
289
+ const driveType = car.driveSuspension.driveType;
290
+ return isPropDefined(driveType) ? t(`cbd:${driveType}`) : t('vehicleProps:value.na');
291
+ }
292
+ },
293
+
294
+ fuelCapacity: {
295
+ title: t('vehicleProps:title.fuelCapacity'),
296
+ get value() {
297
+ const fuelCapacity = car.sizeVolumeWeight && car.sizeVolumeWeight.fuelCapacity;
298
+ return Number.isFinite(fuelCapacity)
299
+ ? t('vehicleProps:value.fuelCapacity', { capacity: fuelCapacity.toLocaleString(language) })
300
+ : t('vehicleProps:value.na');
301
+ }
302
+ },
303
+
304
+ batteryCapacity: {
305
+ title: t('vehicleProps:title.batteryCapacityTitle'),
306
+ get value() {
307
+ const batteryCapacity = car.battery && car.battery.batteryCapacity;
308
+ return batteryCapacity && Number.isFinite(batteryCapacity)
309
+ ? t('vehicleProps:value.batteryCapacity', { batteryCapacity: batteryCapacity.toLocaleString(language) })
310
+ : t('vehicleProps:value.na');
311
+ }
312
+ },
313
+
314
+ chargingDuration230V: {
315
+ title: t('vehicleProps:title.chargingDuration230V'),
316
+ get value() {
317
+ const batteryChargingDuration230VSelect = car.battery && car.battery.batteryChargingDuration230VSelect;
318
+ const batteryChargingDuration230VHour = car.battery && car.battery.batteryChargingDuration230VHour;
319
+ const batteryCharchingDuration230VMinutesHours = car.battery && car.battery.batteryCharchingDuration230VMinutesHours;
320
+
321
+ return batteryChargingDuration230VSelect
322
+ ? `${batteryChargingDuration230VHour ? `${batteryChargingDuration230VHour} ${isCheckedBatteryTime(batteryCharchingDuration230VMinutesHours, t)}` : ''} ${batteryChargingDuration230VSelect}`
323
+ : t('vehicleProps:value.na');
324
+ }
325
+ },
326
+ chargingDurationMaxSpeed: {
327
+ title: t('vehicleProps:title.chargingDurationMaxSpeed'),
328
+ get value() {
329
+ const batteryChargingDurationMaxSelect = car.battery && car.battery.batteryChargingDurationMaxSelect;
330
+ const batteryChargingDurationMaxHour = car.battery && car.battery.batteryChargingDurationMaxHour;
331
+ const batteryCharchingDurationMaxSelectMinutesHours = car.battery && car.battery.batteryCharchingDurationMaxSelectMinutesHours;
332
+
333
+ return batteryChargingDurationMaxSelect
334
+ ? `${batteryChargingDurationMaxHour ? `${batteryChargingDurationMaxHour} ${isCheckedBatteryTime(batteryCharchingDurationMaxSelectMinutesHours, t)}` : ''} ${batteryChargingDurationMaxSelect}`
335
+ : t('vehicleProps:value.na');
336
+ }
337
+ },
338
+ batteryChargerType: {
339
+ title: t('vehicleProps:title.batteryChargerType'),
340
+ get value() {
341
+ const batteryChargerType = car.battery && car.battery.batteryChargerType;
342
+
343
+ return isPropDefined(batteryChargerType)
344
+ ? batteryChargerType.map((item: any) => t(`cbd:${item}`)).join('\n')
345
+ : t('vehicleProps:value.na');
346
+ }
347
+ },
348
+ hsn: {
349
+ title: 'HSN',
350
+ get value() {
351
+ const hsn = car.metaData.hsn;
352
+ return isPropDefined(hsn) ? hsn : t('vehicleProps:value.na');
353
+ }
354
+ },
355
+
356
+ tsn: {
357
+ title: 'TSN',
358
+ get value() {
359
+ const tsn = car.metaData.tsn;
360
+ return isPropDefined(tsn) ? tsn : t('vehicleProps:value.na');
361
+ }
362
+ },
363
+
364
+ category: {
365
+ title: t('vehicleProps:title.category'),
366
+ get value() {
367
+ return isPropDefined(category) ? t(`cbd:${category}`) : t('vehicleProps:value.na');
368
+ }
369
+ },
370
+
371
+ length: {
372
+ title: t('vehicleProps:title.length'),
373
+ get value() {
374
+ const length = car.sizeVolumeWeight && car.sizeVolumeWeight.length;
375
+ return Number.isFinite(length)
376
+ ? t('vehicleProps:value.length', { size: length.toLocaleString(language) })
377
+ : t('vehicleProps:value.na');
378
+ }
379
+ },
380
+
381
+ width: {
382
+ title: t('vehicleProps:title.width'),
383
+ get value() {
384
+ const width = car.sizeVolumeWeight && car.sizeVolumeWeight.width;
385
+ return Number.isFinite(width)
386
+ ? t('vehicleProps:value.width', { size: width.toLocaleString(language) })
387
+ : t('vehicleProps:value.na');
388
+ }
389
+ },
390
+
391
+ height: {
392
+ title: t('vehicleProps:title.height'),
393
+ get value() {
394
+ const height = car.sizeVolumeWeight && car.sizeVolumeWeight.height;
395
+ return Number.isFinite(height)
396
+ ? t('vehicleProps:value.height', { size: height.toLocaleString(language) })
397
+ : t('vehicleProps:value.na');
398
+ }
399
+ },
400
+
401
+ base: {
402
+ title: t('vehicleProps:title.base'),
403
+ get value() {
404
+ const wheelBase = car.driveSuspension.wheelBase;
405
+ return Number.isFinite(wheelBase)
406
+ ? t('vehicleProps:value.base', { size: wheelBase.toLocaleString(language) })
407
+ : t('vehicleProps:value.na');
408
+ }
409
+ },
410
+
411
+ capacityLoad: {
412
+ title: t('vehicleProps:title.loadingVolume'),
413
+ get value() {
414
+ const completeCapacity = car.sizeVolumeWeight && car.sizeVolumeWeight.completeCapacity;
415
+ return Number.isFinite(completeCapacity)
416
+ ? t('vehicleProps:value.capacityLoad', { capacity: completeCapacity.toLocaleString(language) })
417
+ : t('vehicleProps:value.na');
418
+ }
419
+ },
420
+
421
+ bootCapacity: {
422
+ title: t('vehicleProps:title.bootCapacity'),
423
+ get value() {
424
+ const cargoCapacity = car.sizeVolumeWeight && car.sizeVolumeWeight.cargoCapacity;
425
+ return Number.isFinite(cargoCapacity)
426
+ ? t('vehicleProps:value.bootCapacity', { capacity: cargoCapacity.toLocaleString(language) })
427
+ : t('vehicleProps:value.na');
428
+ }
429
+ },
430
+
431
+ doors: {
432
+ title: t('vehicleProps:title.doors'),
433
+ get value() { return doors > 0 ? doors : t('vehicleProps:value.na'); }
434
+ },
435
+
436
+ seats: {
437
+ title: t('vehicleProps:title.seats'),
438
+ get value() { return seats > 0 ? seats : t('vehicleProps:value.na'); }
439
+ },
440
+
441
+ tare: {
442
+ title: t('vehicleProps:title.tare'),
443
+ get value() {
444
+ const emptyWeight = car.sizeVolumeWeight && car.sizeVolumeWeight.emptyWeight;
445
+ return Number.isFinite(emptyWeight)
446
+ ? t('vehicleProps:value.tareWeight', { weight: (emptyWeight).toLocaleString(language) })
447
+ : t('vehicleProps:value.na');
448
+ }
449
+ },
450
+
451
+ maximumWeight: {
452
+ title: t('vehicleProps:title.maximumWeight'),
453
+ get value() {
454
+ const maxWeight = car.sizeVolumeWeight && car.sizeVolumeWeight.maxWeight;
455
+ return Number.isFinite(maxWeight)
456
+ ? t('vehicleProps:value.maximumWeightCapacity', { capacity: maxWeight.toLocaleString(language) })
457
+ : t('vehicleProps:value.na');
458
+ }
459
+ },
460
+
461
+ trailerWeightBraked: {
462
+ title: t('vehicleProps:title.trailerLoadBraked'),
463
+ get value() {
464
+ const trailerWeightBraked = car.sizeVolumeWeight && car.sizeVolumeWeight.trailerWeightBraked;
465
+ return Number.isFinite(trailerWeightBraked)
466
+ ? t('vehicleProps:value.weight', { weight: trailerWeightBraked.toLocaleString(language) })
467
+ : t('vehicleProps:value.na');
468
+ }
469
+ },
470
+
471
+ trailerWeightUnbraked: {
472
+ title: t('vehicleProps:title.trailerLoadUnbraked'),
473
+ get value() {
474
+ const trailerWeightUnbraked = car.sizeVolumeWeight && car.sizeVolumeWeight.trailerWeightUnbraked;
475
+ return Number.isFinite(trailerWeightUnbraked)
476
+ ? t('vehicleProps:value.weight', { weight: trailerWeightUnbraked.toLocaleString(language) })
477
+ : t('vehicleProps:value.na');
478
+ }
479
+ },
480
+
481
+ consumptionInner: {
482
+ icon: 'fuelConsumption',
483
+ title: t('vehicleProps:title.consumptionInner'),
484
+ get value() {
485
+ const consumptionInner = car.consumption.consumptionInner;
486
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
487
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
488
+ return Number.isFinite(consumptionInner)
489
+ ? t('vehicleProps:value.consumption', { consumption: consumptionInner.toLocaleString(language), unit: translatedUnit })
490
+ : t('vehicleProps:value.na');
491
+ }
492
+ },
493
+
494
+ consumptionPowerInner: {
495
+ icon: 'fuelConsumption',
496
+ title: t('vehicleProps:title.consumptionPowerInner'),
497
+ get value() {
498
+ const consumptionPowerInner = car.consumption.consumptionInner;
499
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
500
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
501
+ return Number.isFinite(consumptionPowerInner)
502
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerInner.toLocaleString(language), unit: translatedUnit })
503
+ : t('vehicleProps:value.na');
504
+ }
505
+ },
506
+
507
+ consumptionPowerHybridInner: {
508
+ icon: 'fuelConsumption',
509
+ title: t('vehicleProps:title.consumptionPowerInner'),
510
+ get value() {
511
+ const consumptionPowerInner = car.consumption.consumptionPowerInner;
512
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
513
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
514
+ return Number.isFinite(consumptionPowerInner)
515
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerInner.toLocaleString(language), unit: translatedUnit })
516
+ : t('vehicleProps:value.na');
517
+ }
518
+ },
519
+
520
+ consumptionHydrogenInner: {
521
+ icon: 'fuelConsumption',
522
+ title: t('vehicleProps:title.consumptionHydrogenInner'),
523
+ get value() {
524
+ const consumptionHydrogenInner = car.consumption.consumptionInner;
525
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
526
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
527
+ return Number.isFinite(consumptionHydrogenInner)
528
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenInner.toLocaleString(language), unit: translatedUnit })
529
+ : t('vehicleProps:value.na');
530
+ }
531
+ },
532
+ consumptionGasInner: {
533
+ icon: 'fuelConsumption',
534
+ title: t('vehicleProps:title.consumptionGasInner'),
535
+ get value() {
536
+ const consumptionGasInner = car.consumption.consumptionInner;
537
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
538
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
539
+ return Number.isFinite(consumptionGasInner)
540
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasInner.toLocaleString(language), unit: translatedUnit })
541
+ : t('vehicleProps:value.na');
542
+ }
543
+ },
544
+
545
+ consumptionOuter: {
546
+ icon: 'fuelConsumption',
547
+ title: t('vehicleProps:title.consumptionOuter'),
548
+ get value() {
549
+ const consumptionOuter = car.consumption.consumptionOuter;
550
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
551
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
552
+ return Number.isFinite(consumptionOuter)
553
+ ? t('vehicleProps:value.consumption', { consumption: consumptionOuter.toLocaleString(language), unit: translatedUnit })
554
+ : t('vehicleProps:value.na');
555
+ }
556
+ },
557
+
558
+ consumptionPowerOuter: {
559
+ icon: 'fuelConsumption',
560
+ title: t('vehicleProps:title.consumptionPowerOuter'),
561
+ get value() {
562
+ const consumptionPowerOuter = car.consumption.consumptionOuter;
563
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
564
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
565
+ return Number.isFinite(consumptionPowerOuter)
566
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerOuter.toLocaleString(language), unit: translatedUnit })
567
+ : t('vehicleProps:value.na');
568
+ }
569
+ },
570
+
571
+ consumptionPowerHybridOuter: {
572
+ icon: 'fuelConsumption',
573
+ title: t('vehicleProps:title.consumptionPowerOuter'),
574
+ get value() {
575
+ const consumptionPowerOuter = car.consumption.consumptionPowerOuter;
576
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
577
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
578
+ return Number.isFinite(consumptionPowerOuter)
579
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerOuter.toLocaleString(language), unit: translatedUnit })
580
+ : t('vehicleProps:value.na');
581
+ }
582
+ },
583
+
584
+ consumptionHydrogenOuter: {
585
+ icon: 'fuelConsumption',
586
+ title: t('vehicleProps:title.consumptionHydrogenOuter'),
587
+ get value() {
588
+ const consumptionHydrogenOuter = car.consumption.consumptionOuter;
589
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
590
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
591
+ return Number.isFinite(consumptionHydrogenOuter)
592
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenOuter.toLocaleString(language), unit: translatedUnit })
593
+ : t('vehicleProps:value.na');
594
+ }
595
+ },
596
+
597
+ consumptionGasOuter: {
598
+ icon: 'fuelConsumption',
599
+ title: t('vehicleProps:title.consumptionGasOuter'),
600
+ get value() {
601
+ const consumptionGasOuter = car.consumption.consumptionOuter;
602
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
603
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
604
+ return Number.isFinite(consumptionGasOuter)
605
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasOuter.toLocaleString(language), unit: translatedUnit })
606
+ : t('vehicleProps:value.na');
607
+ }
608
+ },
609
+
610
+ consumptionCombined: {
611
+ icon: 'fuelConsumption',
612
+ title: t('vehicleProps:title.сonsumptionCombined'),
613
+ get value() {
614
+ const consumptionCombined = car.consumption.consumptionCombined;
615
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
616
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
617
+ return Number.isFinite(consumptionCombined)
618
+ ? t('vehicleProps:value.consumption', { consumption: consumptionCombined.toLocaleString(language), unit: translatedUnit })
619
+ : t('vehicleProps:value.na');
620
+ }
621
+ },
622
+
623
+ consumptionPowerCombined: {
624
+ icon: 'fuelConsumption',
625
+ title: t('vehicleProps:title.consumptionPowerCombined'),
626
+ get value() {
627
+ const consumptionPowerCombined = car.consumption.consumptionCombined;
628
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
629
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
630
+ return Number.isFinite(consumptionPowerCombined)
631
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
632
+ : t('vehicleProps:value.na');
633
+ }
634
+ },
635
+
636
+ consumptionPowerHybridCombined: {
637
+ icon: 'fuelConsumption',
638
+ title: t('vehicleProps:title.consumptionPowerCombined'),
639
+ get value() {
640
+ const consumptionPowerCombined = car.consumption.consumptionPowerCombined;
641
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
642
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
643
+ return Number.isFinite(consumptionPowerCombined)
644
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
645
+ : t('vehicleProps:value.na');
646
+ }
647
+ },
648
+
649
+ consumptionHydrogenCombined: {
650
+ icon: 'fuelConsumption',
651
+ title: t('vehicleProps:title.consumptionHydrogenCombined'),
652
+ get value() {
653
+ const consumptionHydrogenCombined = car.consumption.consumptionCombined;
654
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
655
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
656
+ return Number.isFinite(consumptionHydrogenCombined)
657
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenCombined.toLocaleString(language), unit: translatedUnit })
658
+ : t('vehicleProps:value.na');
659
+ }
660
+ },
661
+
662
+ consumptionGasCombined: {
663
+ icon: 'fuelConsumption',
664
+ title: t('vehicleProps:title.consumptionGasCombined'),
665
+ get value() {
666
+ const consumptionGasCombined = car.consumption.consumptionCombined;
667
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
668
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
669
+ return Number.isFinite(consumptionGasCombined)
670
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasCombined.toLocaleString(language), unit: translatedUnit })
671
+ : t('vehicleProps:value.na');
672
+ }
673
+ },
674
+
675
+ consumptionCombinedAlternateView: {
676
+ icon: 'fuelConsumption',
677
+ get value() {
678
+ const consumptionCombined = car.consumption.consumptionCombined;
679
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
680
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
681
+ const wltpConsumptionCombined = car.consumption.wltpCombined;
682
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
683
+
684
+ const co2 = car.environmentEmissions.co2;
685
+
686
+ const wltpConsumptionValue = Number.isFinite(wltpConsumptionCombined)
687
+ ? t('vehicleProps:value.consumptionCombined', { consumption: wltpConsumptionCombined.toLocaleString(language), unit: translatedUnit })
688
+ : null;
689
+
690
+ const wltpCo2Value = Number.isFinite(wltpCo2)
691
+ ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
692
+ : null;
693
+
694
+ const consumptionValue = Number.isFinite(consumptionCombined)
695
+ ? t('vehicleProps:value.consumptionCombined', { consumption: consumptionCombined.toLocaleString(language), unit: translatedUnit })
696
+ : t('vehicleProps:value.na');
697
+
698
+ const co2Value = Number.isFinite(co2)
699
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
700
+ : t('vehicleProps:value.na');
701
+
702
+ if (wltpConsumptionValue && wltpCo2Value) {
703
+ return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
704
+ }
705
+
706
+ return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
707
+ }
708
+ },
709
+ consumptionPowerCombinedAlternateView: {
710
+ icon: 'fuelConsumption',
711
+ title: t('vehicleProps:title.consumptionPowerCombined'),
712
+ get value() {
713
+ const consumptionPowerCombined = car.consumption.consumptionCombined;
714
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
715
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
716
+ const co2 = car.environmentEmissions.co2;
717
+ const wltpConsumptionPowerCombined = car.consumption.wltpPowerCombined;
718
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
719
+
720
+ const wltpConsumptionValue = Number.isFinite(wltpConsumptionPowerCombined)
721
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpConsumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
722
+ : null;
723
+
724
+ const wltpCo2Value = Number.isFinite(wltpCo2)
725
+ ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
726
+ : null;
727
+
728
+ const consumptionValue = Number.isFinite(consumptionPowerCombined)
729
+ ? t('vehicleProps:value.consumptionPower', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
730
+ : t('vehicleProps:value.na');
731
+
732
+ const co2Value = Number.isFinite(co2)
733
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
734
+ : t('vehicleProps:value.na');
735
+
736
+ if (wltpConsumptionValue && wltpCo2Value) {
737
+ return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
738
+ }
739
+
740
+ return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
741
+ }
742
+ },
743
+ consumptionHydrogenCombinedAlternateView: {
744
+ icon: 'fuelConsumption',
745
+ title: t('vehicleProps:title.consumptionHydrogenCombined'),
746
+ get value() {
747
+ const consumptionHydrogenCombined = car.consumption.consumptionCombined;
748
+ const wltpConsumptionCombined = car.consumption.wltpCombined;
749
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
750
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
751
+ const co2 = car.environmentEmissions.co2;
752
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
753
+
754
+ const consumptionValue = Number.isFinite(consumptionHydrogenCombined)
755
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionHydrogenCombined.toLocaleString(language), unit: translatedUnit })
756
+ : t('vehicleProps:value.na');
757
+
758
+ const wltpConsumptionValue = Number.isFinite(wltpConsumptionCombined)
759
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpConsumptionCombined.toLocaleString(language), unit: translatedUnit })
760
+ : null;
761
+
762
+ const co2Value = Number.isFinite(co2)
763
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
764
+ : t('vehicleProps:value.na');
765
+
766
+ const wltpCo2Value = Number.isFinite(wltpCo2)
767
+ ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
768
+ : null;
769
+
770
+ if (wltpConsumptionValue && wltpCo2Value) {
771
+ return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
772
+ }
773
+
774
+ return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
775
+ }
776
+ },
777
+ consumptionGasCombinedAlternateView: {
778
+ icon: 'fuelConsumption',
779
+ title: t('vehicleProps:title.consumptionGasCombined'),
780
+ get value() {
781
+ const consumptionGasCombined = car.consumption.consumptionCombined;
782
+ const wltpConsumptionCombined = car.consumption.wltpCombined;
783
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
784
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
785
+
786
+ const co2 = car.environmentEmissions.co2;
787
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
788
+
789
+ const consumptionValue = Number.isFinite(consumptionGasCombined)
790
+ ? t('vehicleProps:value.consumptionGas', { consumption: consumptionGasCombined.toLocaleString(language), unit: translatedUnit })
791
+ : t('vehicleProps:value.na');
792
+
793
+ const co2Value = Number.isFinite(co2)
794
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
795
+ : t('vehicleProps:value.na');
796
+
797
+ const wltpConsumptionValue = Number.isFinite(wltpConsumptionCombined)
798
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpConsumptionCombined.toLocaleString(language), unit: translatedUnit })
799
+ : null;
800
+
801
+ const wltpCo2Value = Number.isFinite(wltpCo2)
802
+ ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
803
+ : null;
804
+
805
+ if (wltpConsumptionValue && wltpCo2Value) {
806
+ return <>{wrapValue(wltpConsumptionValue)}, {wrapValue(wltpCo2Value)}</>;
807
+ }
808
+
809
+ return <>{wrapValue(consumptionValue)} <br /> {wrapValue(co2Value)}</>;
810
+ }
811
+ },
812
+
813
+ consumptionCombinedHybridAlternateView: {
814
+ icon: 'fuelConsumption',
815
+ get value() {
816
+ const consumptionCombined = +car.consumption.consumptionCombined;
817
+ const consumptionPowerCombined = +car.consumption.consumptionPowerCombined;
818
+ // const wltpPowerCombined = car.consumption.wltpPowerCombined || car.consumption.wltpWeightedPowerCombined;
819
+ const wltpCombined = car.consumption.wltpCombined;
820
+ const wltpWeightedCombined = car.consumption.wltpWeightedCombined;
821
+ const wltpWeightedPowerCombined = car.consumption.wltpWeightedPowerCombined;
822
+
823
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
824
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
825
+
826
+ const consumptionPowerCombinedContent = t('vehicleProps:value.consumptionPowerCombined', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit });
827
+ // const wltpConsumptionPowerCombinedContent = wltpPowerCombined
828
+ // ? t('vehicleProps:value.consumptionPowerCombined', { consumption: wltpPowerCombined.toLocaleString(language), unit: translatedUnit })
829
+ // : null;
830
+
831
+ const wltpConsumptionWeightedPowerCombinedContent = wltpWeightedPowerCombined
832
+ ? t('vehicleProps:value.consumptionPowerCombined', { consumption: wltpWeightedPowerCombined.toLocaleString(language), unit: translatedUnit })
833
+ : null;
834
+ const consumptionCombinedContent = t('vehicleProps:value.consumptionCombined', { consumption: consumptionCombined.toLocaleString(language), unit: translatedUnit });
835
+ const wltpConsumptionCombinedContent = wltpCombined ?
836
+ t('vehicleProps:value.consumptionCombined', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
837
+ : null;
838
+ const wltpConsumptionWeightedCombinedContent = wltpWeightedCombined ?
839
+ t('vehicleProps:value.consumptionCombined', { consumption: wltpWeightedCombined.toLocaleString(language), unit: translatedUnit })
840
+ : null;
841
+
842
+ const co2 = car.environmentEmissions.co2;
843
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
844
+ const co2Value = Number.isFinite(co2)
845
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
846
+ : t('vehicleProps:value.na');
847
+ const wltpCo2Value = Number.isFinite(wltpCo2)
848
+ ? t('vehicleProps:value.wltpCo2Combined', { co2: wltpCo2.toLocaleString(language) })
849
+ : null;
850
+ const wltpCo2PluginValue = Number.isFinite(wltpCo2)
851
+ ? t('vehicleProps:value.wltpCo2WtdCombined', { co2: wltpCo2.toLocaleString(language) })
852
+ : null;
853
+ const hybridPlugin = car.engineData.hybridPlugin;
854
+
855
+ if (hybridPlugin && wltpConsumptionWeightedPowerCombinedContent && wltpConsumptionWeightedCombinedContent) {
856
+ return <React.Fragment>
857
+ {wrapValue(wltpConsumptionWeightedPowerCombinedContent)}{', '}
858
+ {wrapValue(wltpConsumptionWeightedCombinedContent)}{', '}
859
+ {wrapValue(wltpCo2PluginValue)}
860
+ </React.Fragment>
861
+ }
862
+
863
+ if (wltpConsumptionCombinedContent && wltpCo2Value) {
864
+ return <React.Fragment>
865
+ {wrapValue(wltpConsumptionCombinedContent)}{', '}
866
+ {wrapValue(wltpCo2Value)}
867
+ </React.Fragment>
868
+ }
869
+
870
+ return Number.isFinite(consumptionCombined) && Number.isFinite(consumptionPowerCombined)
871
+ ? <React.Fragment>
872
+ {consumptionPowerCombined && hybridPlugin ? wrapValue(consumptionPowerCombinedContent) : ''}
873
+ {consumptionPowerCombined && hybridPlugin ? <br /> : ''}
874
+ {wrapValue(consumptionCombinedContent)} <br />
875
+ {wrapValue(co2Value)}
876
+ </React.Fragment>
877
+ : t('vehicleProps:value.na');
878
+ }
879
+ },
880
+
881
+ rangeHydrogen: {
882
+ title: t('vehicleProps:title.rangeHydrogen'),
883
+ get value() {
884
+ const { rangeHydrogen } = car.engineData;
885
+ return Number.isFinite(rangeHydrogen)
886
+ ? t('vehicleProps:value.batteryRangeElectric', { consumption: rangeHydrogen.toLocaleString(language) })
887
+ : t('vehicleProps:value.na');
888
+ }
889
+ },
890
+ batteryRangeElectric: {
891
+ title: t('vehicleProps:title.batteryRangeElectric'),
892
+ get value() {
893
+ const batteryRangeElectric = car.battery && car.battery.batteryRangeElectric;
894
+ return Number.isFinite(batteryRangeElectric)
895
+ ? t('vehicleProps:value.batteryRangeElectric', { consumption: batteryRangeElectric.toLocaleString(language) })
896
+ : t('vehicleProps:value.na');
897
+ }
898
+ },
899
+
900
+ c02: {
901
+ title: t('vehicleProps:title.co2'),
902
+ get value() {
903
+ const c02 = car.environmentEmissions.co2;
904
+ return Number.isFinite(c02)
905
+ ? t('vehicleProps:value.co2', { co2: c02.toLocaleString(language) })
906
+ : t('vehicleProps:value.na');
907
+ }
908
+ },
909
+
910
+ consumptionAndCo2: {
911
+ title: t('vehicleProps:title.consumptionAndCo2'),
912
+ get value() {
913
+ const consumptionPowerCombined = car.consumption.consumptionCombined;
914
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
915
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
916
+ const co2 = car.environmentEmissions.co2;
917
+ const consumptionValue = Number.isFinite(consumptionPowerCombined)
918
+ ? t('vehicleProps:value.consumptionCombined', { consumption: consumptionPowerCombined.toLocaleString(language), unit: translatedUnit })
919
+ : t('vehicleProps:value.na');
920
+ const co2Value = Number.isFinite(co2)
921
+ ? t('vehicleProps:value.co2Combined', { co2: co2.toLocaleString(language) })
922
+ : t('vehicleProps:value.na');
923
+
924
+ return `${consumptionValue} | ${co2Value}`;
925
+ }
926
+ },
927
+ emissionClass: {
928
+ title: t('vehicleProps:title.emissionClass'),
929
+ get value() {
930
+ const emissionClass = car.environmentEmissions.emissionClass;
931
+ return isPropDefined(emissionClass) ? t(`cbd:${emissionClass}`) : t('vehicleProps:value.na');
932
+ }
933
+ },
934
+
935
+ emissionSticker: {
936
+ title: t('vehicleProps:title.emissionsSticker'),
937
+ get value() {
938
+ const emissionSticker = car.environmentEmissions.emissionSticker;
939
+ let icon = null;
940
+ const size = 25;
941
+
942
+ if (emissionSticker !== 'selector_emissionSticker_no') {
943
+ icon = EMISSION_STICKERS_ICONS[emissionSticker];
944
+ }
945
+
946
+ return icon ? <Icon src={icon} width={size} height={size} /> : t('vehicleProps:value.na');
947
+ }
948
+ },
949
+
950
+ wpEmissionSticker: {
951
+ title: t('vehicleProps:title.emissionsSticker'),
952
+ get value() {
953
+ const emissionSticker = car.environmentEmissions.emissionSticker;
954
+ let icon = null;
955
+ const size = 25;
956
+
957
+ if (emissionSticker !== 'selector_emissionSticker_no') {
958
+ icon = WP_EMISSION_STICKERS_ICONS[emissionSticker];
959
+ }
960
+
961
+ return icon ? <Icon src={icon} width={size} height={size} /> : t('vehicleProps:value.na');
962
+ }
963
+ },
964
+
965
+ energyEfficiencyClass: {
966
+ title: t('vehicleProps:title.energyEfficiencyClass'),
967
+ subTitle: t('vehicleProps:title.subTitle'),
968
+ get value() {
969
+ const level = car.environmentEmissions.energyEfficiencyClass;
970
+ return isPropDefined(level) ? <CO2Efficiency level={level} t={t} /> : t('vehicleProps:value.na');
971
+ }
972
+ },
973
+
974
+ offerAvailability: {
975
+ title: t('vehicleProps:title.offerAvailability'),
976
+ icon: 'carAvailability',
977
+ get value() {
978
+ const offerAvailabilityMode = offer.availabilityMode;
979
+ const offerAvailabilityTimestamp = offer.availabilityFrom;
980
+ const humanViewTime = moment.unix(offerAvailabilityTimestamp).format('DD.MM.YYYY');
981
+ let offerAvailability: string;
982
+
983
+ switch (offerAvailabilityMode) {
984
+ case 'selector_availabilityMode_always':
985
+ offerAvailability = t(`cbd:${offerAvailabilityMode}`);
986
+ break;
987
+
988
+ case 'selector_availabilityMode_fromDate':
989
+ if (offer.deliveryPeriod != null && offer.deliveryPeriod !== 'selector_unknown') {
990
+ offerAvailability = formatDeliveryPeriod(t, offer.deliveryPeriod);
991
+ break;
992
+ }
993
+
994
+ if (moment.utc(offerAvailabilityTimestamp, 'X').isBefore()) {
995
+ offerAvailability = t('cbd:selector_availabilityMode_always');
996
+ } else if (!!offerAvailabilityTimestamp) {
997
+ offerAvailability = t('vehicleProps:value.fromDate', { date: humanViewTime });
998
+ } else {
999
+ offerAvailability = t('vehicleProps:value.onRequest'); // case when "availabilityFrom" is undefined
1000
+ }
1001
+ break;
1002
+
1003
+ default:
1004
+ if (!offerAvailabilityMode && !firstRegistration && !mileage) offerAvailability = t('vehicleProps:value.onRequest');
1005
+ else offerAvailability = null;
1006
+ }
1007
+ return isPropDefined(offerAvailability) ? offerAvailability : t('vehicleProps:value.na');
1008
+ }
1009
+ },
1010
+
1011
+ lastTechnicalService: {
1012
+ title: t('vehicleProps:title.lastTechnicalService'),
1013
+ get value() {
1014
+ const lastTechnicalService = car.careService.lastTechnicalService;
1015
+ return Number.isFinite(lastTechnicalService)
1016
+ ? formatTimestamp({ timestamp: lastTechnicalService, format: 'MM/YYYY' })
1017
+ : t('vehicleProps:value.na');
1018
+ }
1019
+ },
1020
+
1021
+ generalInspection: {
1022
+ title: t('vehicleProps:title.generalInspection'),
1023
+ get value() {
1024
+ const generalInspection = car.careService.generalInspection;
1025
+ if (car.offer.newHuAu) {
1026
+ return t('vehicleProps:value.new');
1027
+ // tslint:disable-next-line:no-else-after-return
1028
+ }else {
1029
+ return Number.isFinite(generalInspection)
1030
+ ? formatTimestamp({ timestamp: generalInspection, format: 'MM/YYYY' })
1031
+ : t('vehicleProps:value.na');
1032
+ }
1033
+ }
1034
+ },
1035
+
1036
+ condition: {
1037
+ title: t('vehicleProps:title.сondition'),
1038
+ get value() {
1039
+ return isPropDefined(condition)
1040
+ ? t(`cbd:${condition}`)
1041
+ : t('vehicleProps:value.na');
1042
+ }
1043
+ },
1044
+
1045
+ numberOfPreviousOwnersSimple: {
1046
+ title: t('vehicleProps:title.numberOfPreviousOwners'),
1047
+ get value() {
1048
+ return Number.isFinite(numberOfPreviousOwners)
1049
+ ? numberOfPreviousOwners
1050
+ : t('vehicleProps:value.na');
1051
+ }
1052
+ },
1053
+
1054
+ guarantee: {
1055
+ title: t('vehicleProps:title.guarantee'),
1056
+ get value() {
1057
+ const guarantee = car.offer.warranty;
1058
+ return isPropDefined(guarantee)
1059
+ ? (guarantee ? t('vehicleProps:value.yes') : t('vehicleProps:value.no'))
1060
+ : t('vehicleProps:value.na');
1061
+ }
1062
+ },
1063
+
1064
+ maintenanceGuide: {
1065
+ title: t('vehicleProps:title.maintenanceGuide'),
1066
+ get value() {
1067
+ const fullserviceHistory = car.careService.fullServiceHistory;
1068
+ return isPropDefined(fullserviceHistory)
1069
+ ? (fullserviceHistory ? t('vehicleProps:value.yes') : t('vehicleProps:value.no'))
1070
+ : t('vehicleProps:value.na');
1071
+ }
1072
+ },
1073
+
1074
+ nonSmokerVehicle: {
1075
+ title: t('vehicleProps:title.nonSmokingVehicle'),
1076
+ get value() {
1077
+ return isPropDefined(nonSmokerVehicle)
1078
+ ? (nonSmokerVehicle ? t('vehicleProps:value.yes') : t('vehicleProps:value.no'))
1079
+ : t('vehicleProps:value.na');
1080
+ }
1081
+ },
1082
+
1083
+ manufacturerColorName: {
1084
+ title: t('vehicleProps:title.manufacturerColorName'),
1085
+ get value() {
1086
+ const color = car.exterior.manufacturerColorName;
1087
+
1088
+ if (typeof color !== 'string' || color === '') {
1089
+ return t('vehicleProps:value.na');
1090
+ }
1091
+
1092
+ return color[0].toUpperCase() + color.slice(1);
1093
+ }
1094
+ },
1095
+
1096
+ exteriorColor: {
1097
+ title: t('vehicleProps:title.colour'),
1098
+ get value() {
1099
+ const exteriorColor = car.exterior.exteriorColor;
1100
+ return isPropDefined(exteriorColor)
1101
+ ? t(`cbd:${exteriorColor.replace('exterior_', '')}`)
1102
+ : t('vehicleProps:value.na');
1103
+ }
1104
+ },
1105
+
1106
+ appointmentsColor: {
1107
+ title: t('vehicleProps:title.appointmentsColor'),
1108
+ get value() {
1109
+ const interiorColor = car.interior.interiorColor;
1110
+ return isPropDefined(interiorColor)
1111
+ ? t(`cbd:${interiorColor.replace('interior_', '')}`)
1112
+ : t('vehicleProps:value.na');
1113
+ }
1114
+ },
1115
+
1116
+ interiorType: {
1117
+ title: t('vehicleProps:title.interiorType'),
1118
+ get value() {
1119
+ const interiorType = car.interior.interiorType;
1120
+ return isPropDefined(interiorType)
1121
+ ? t(`cbd:${interiorType}`)
1122
+ : t('vehicleProps:value.na');
1123
+ }
1124
+ },
1125
+ signOfUse : {
1126
+ title: t('vehicleProps:title.signsOfUse'),
1127
+ isVisible: mileage > 100, // tslint:disable-line
1128
+ isLongTitle: true,
1129
+ get value() {
1130
+ return t('vehicleProps:value.yes');
1131
+ }
1132
+ },
1133
+ countryVersion : {
1134
+ title: t('vehicleProps:title.countryVersion'),
1135
+ get value() {
1136
+ const countryName = car.countryActive[language];
1137
+ if (!countryVersion) return t('vehicleProps:value.na');
1138
+ switch (countryVersion) {
1139
+ case 'de':
1140
+ return t('vehicleProps:value.countryDEversion');
1141
+ break;
1142
+ case 'eu':
1143
+ return t('vehicleProps:value.countryEUversion');
1144
+ break;
1145
+ case 'at':
1146
+ return t('vehicleProps:value.countryATversion');
1147
+ break;
1148
+ default:
1149
+ return t('vehicleProps:value.countryVersionName', { countryName });
1150
+ }
1151
+ }
1152
+ },
1153
+ wltpCo2: {
1154
+ title: t('vehicleProps:title.wltpCo2'),
1155
+ get value() {
1156
+ const c02 = car.environmentEmissions.wltpCo2;
1157
+ return Number.isFinite(c02)
1158
+ ? t('vehicleProps:value.wltpCo2', { co2: c02.toLocaleString(language) })
1159
+ : t('vehicleProps:value.na');
1160
+ }
1161
+ },
1162
+ wltpCo2Plugin: {
1163
+ title: t('vehicleProps:title.wltpCo2Plugin'),
1164
+ get value() {
1165
+ const c02 = car.environmentEmissions.wltpCo2;
1166
+ return Number.isFinite(c02)
1167
+ ? t('vehicleProps:value.wltpCo2', { co2: c02.toLocaleString(language) })
1168
+ : t('vehicleProps:value.na');
1169
+ }
1170
+ },
1171
+ wltpCo2Discharged: {
1172
+ title: t('vehicleProps:title.wltpCo2Discharged'),
1173
+ get value() {
1174
+ const wltpCo2 = car.environmentEmissions.wltpCo2Discharged;
1175
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1176
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1177
+ return Number.isFinite(wltpCo2)
1178
+ ? t('vehicleProps:value.wltpCo2', { co2: wltpCo2.toLocaleString(language), unit: translatedUnit })
1179
+ : t('vehicleProps:value.na');
1180
+ }
1181
+ },
1182
+ wltpEnergyEfficiencyClass: {
1183
+ // title: t('vehicleProps:title.wltpEnergyEfficiencyClass'),
1184
+ // subTitle: t('vehicleProps:title.subTitle'),
1185
+ get value() {
1186
+ const level = car.environmentEmissions.wltpEnergyEfficiencyClass;
1187
+ const wltpLevel = car.environmentEmissions.wltpDischargedEnergyEfficiencyClass;
1188
+ const { hybridPlugin } = car.engineData;
1189
+ const subtitle = hybridPlugin ? t('vehicleProps:title.wltpCO2SubTitle') : t('vehicleProps:title.wltpCO2SubTitleComb');
1190
+ return isPropDefined(level) ?
1191
+ <CO2Efficiency
1192
+ title={t('vehicleProps:title.wltpCO2Title')}
1193
+ subTitle={subtitle}
1194
+ wltpLevel={wltpLevel}
1195
+ level={level}
1196
+ t={t}
1197
+ levelTitle={t('vehicleProps:title.wltpCO2WidgetComb')}
1198
+ wltpLevelTitle={t('vehicleProps:title.wltpCO2WidgetDischargedBattery')}
1199
+ hybridPlugin={hybridPlugin}
1200
+ isWltp
1201
+ /> : t('vehicleProps:value.na');
1202
+ }
1203
+ },
1204
+ wltpDischargedEnergyEfficiencyClass: {
1205
+ title: t('vehicleProps:title.wltpDischargedEnergyEfficiencyClass'),
1206
+ subTitle: t('vehicleProps:title.subTitle'),
1207
+ get value() {
1208
+ const level = car.environmentEmissions.wltpDischargedEnergyEfficiencyClass;
1209
+ return isPropDefined(level) ? <CO2Efficiency level={level} isWltp t={t} /> : t('vehicleProps:value.na');
1210
+ }
1211
+ },
1212
+ wltpRange: {
1213
+ title: t('vehicleProps:title.wltpRange'),
1214
+ get value() {
1215
+ const wltpRange = car.battery && car.battery.wltpRange;
1216
+ return Number.isFinite(wltpRange)
1217
+ ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpRange.toLocaleString(language) })
1218
+ : t('vehicleProps:value.na');
1219
+ }
1220
+ },
1221
+ wltpTotalRange: {
1222
+ title: t('vehicleProps:title.wltpTotalRange'),
1223
+ get value() {
1224
+ const wltpTotalRange = car.battery && car.battery.wltpTotalRange;
1225
+ return Number.isFinite(wltpTotalRange)
1226
+ ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpTotalRange.toLocaleString(language) })
1227
+ : t('vehicleProps:value.na');
1228
+ }
1229
+ },
1230
+
1231
+ wltpRangeCity: {
1232
+ title: t('vehicleProps:title.wltpRangeCity'),
1233
+ get value() {
1234
+ const wltpRangeCity = car.battery && car.battery.wltpRangeCity;
1235
+ return Number.isFinite(wltpRangeCity)
1236
+ ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpRangeCity.toLocaleString(language) })
1237
+ : t('vehicleProps:value.na');
1238
+ }
1239
+ },
1240
+ wltpTotalRangeCity: {
1241
+ title: t('vehicleProps:title.wltpTotalRangeCity'),
1242
+ get value() {
1243
+ const wltpTotalRangeCity = car.battery && car.battery.wltpTotalRangeCity;
1244
+ return Number.isFinite(wltpTotalRangeCity)
1245
+ ? t('vehicleProps:value.batteryRangeElectric', { consumption: wltpTotalRangeCity.toLocaleString(language) })
1246
+ : t('vehicleProps:value.na');
1247
+ }
1248
+ },
1249
+ wltpWeightedCombined: {
1250
+ title: t('vehicleProps:title.wltpWeightedCombined'),
1251
+ get value() {
1252
+ const wltpWeightedCombined = car.consumption.wltpWeightedCombined;
1253
+ return Number.isFinite(wltpWeightedCombined)
1254
+ ? t('vehicleProps:value.consumptionCombined', { consumption: wltpWeightedCombined.toLocaleString(language) })
1255
+ : t('vehicleProps:value.na');
1256
+ }
1257
+ },
1258
+ wltpCombined: {
1259
+ title: t('vehicleProps:title.wltpCombined'),
1260
+ get value() {
1261
+ const wltpCombined = car.consumption.wltpCombined;
1262
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1263
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1264
+ return Number.isFinite(wltpCombined)
1265
+ ? t('vehicleProps:value.consumption', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
1266
+ : t('vehicleProps:value.na');
1267
+ }
1268
+ },
1269
+ wltpCombinedGas: {
1270
+ title: t('vehicleProps:title.wltpCombined'),
1271
+ get value() {
1272
+ const wltpCombined = car.consumption.wltpCombined;
1273
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1274
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1275
+ return Number.isFinite(wltpCombined)
1276
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
1277
+ : t('vehicleProps:value.na');
1278
+ }
1279
+ },
1280
+ wltpCombinedPlugin: {
1281
+ title: t('vehicleProps:title.wltpCombinedPlugin'),
1282
+ get value() {
1283
+ const wltpCombined = car.consumption.wltpCombined;
1284
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1285
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1286
+ return Number.isFinite(wltpCombined)
1287
+ ? t('vehicleProps:value.consumption', { consumption: wltpCombined.toLocaleString(language), unit: translatedUnit })
1288
+ : t('vehicleProps:value.na');
1289
+ }
1290
+ },
1291
+ wltpSlow: {
1292
+ title: t('vehicleProps:title.wltpSlow'),
1293
+ get value() {
1294
+ const wltpSlow = car.consumption.wltpSlow;
1295
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1296
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1297
+ return Number.isFinite(wltpSlow)
1298
+ ? t('vehicleProps:value.consumption', { consumption: wltpSlow.toLocaleString(language), unit: translatedUnit })
1299
+ : t('vehicleProps:value.na');
1300
+ }
1301
+ },
1302
+ wltpSlowGas: {
1303
+ title: t('vehicleProps:title.wltpSlow'),
1304
+ get value() {
1305
+ const wltpSlow = car.consumption.wltpSlow;
1306
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1307
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1308
+ return Number.isFinite(wltpSlow)
1309
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpSlow.toLocaleString(language), unit: translatedUnit })
1310
+ : t('vehicleProps:value.na');
1311
+ }
1312
+ },
1313
+ wltpSlowPlugin: {
1314
+ title: t('vehicleProps:title.wltpSlowPlugin'),
1315
+ get value() {
1316
+ const wltpSlow = car.consumption.wltpSlow;
1317
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1318
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1319
+ return Number.isFinite(wltpSlow)
1320
+ ? t('vehicleProps:value.consumption', { consumption: wltpSlow.toLocaleString(language), unit: translatedUnit })
1321
+ : t('vehicleProps:value.na');
1322
+ }
1323
+ },
1324
+ wltpMedium: {
1325
+ title: t('vehicleProps:title.wltpMedium'),
1326
+ get value() {
1327
+ const wltpMedium = car.consumption.wltpMedium;
1328
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1329
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1330
+ return Number.isFinite(wltpMedium)
1331
+ ? t('vehicleProps:value.consumption', { consumption: wltpMedium.toLocaleString(language), unit: translatedUnit })
1332
+ : t('vehicleProps:value.na');
1333
+ }
1334
+ },
1335
+ wltpMediumGas: {
1336
+ title: t('vehicleProps:title.wltpMedium'),
1337
+ get value() {
1338
+ const wltpMedium = car.consumption.wltpMedium;
1339
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1340
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1341
+ return Number.isFinite(wltpMedium)
1342
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpMedium.toLocaleString(language), unit: translatedUnit })
1343
+ : t('vehicleProps:value.na');
1344
+ }
1345
+ },
1346
+ wltpMediumPlugin: {
1347
+ title: t('vehicleProps:title.wltpMediumPlugin'),
1348
+ get value() {
1349
+ const wltpMedium = car.consumption.wltpMedium;
1350
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1351
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1352
+ return Number.isFinite(wltpMedium)
1353
+ ? t('vehicleProps:value.consumption', { consumption: wltpMedium.toLocaleString(language), unit: translatedUnit })
1354
+ : t('vehicleProps:value.na');
1355
+ }
1356
+ },
1357
+ wltpFast: {
1358
+ title: t('vehicleProps:title.wltpFast'),
1359
+ get value() {
1360
+ const wltpFast = car.consumption.wltpFast;
1361
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1362
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1363
+ return Number.isFinite(wltpFast)
1364
+ ? t('vehicleProps:value.consumption', { consumption: wltpFast.toLocaleString(language), unit: translatedUnit })
1365
+ : t('vehicleProps:value.na');
1366
+ }
1367
+ },
1368
+ wltpFastGas: {
1369
+ title: t('vehicleProps:title.wltpFast'),
1370
+ get value() {
1371
+ const wltpFast = car.consumption.wltpFast;
1372
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1373
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1374
+ return Number.isFinite(wltpFast)
1375
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpFast.toLocaleString(language), unit: translatedUnit })
1376
+ : t('vehicleProps:value.na');
1377
+ }
1378
+ },
1379
+ wltpFastPlugin: {
1380
+ title: t('vehicleProps:title.wltpFastPlugin'),
1381
+ get value() {
1382
+ const wltpFast = car.consumption.wltpFast;
1383
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1384
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1385
+ return Number.isFinite(wltpFast)
1386
+ ? t('vehicleProps:value.consumption', { consumption: wltpFast.toLocaleString(language), unit: translatedUnit })
1387
+ : t('vehicleProps:value.na');
1388
+ }
1389
+ },
1390
+ wltpVeryFast: {
1391
+ title: t('vehicleProps:title.wltpVeryFast'),
1392
+ get value() {
1393
+ const wltpVeryFast = car.consumption.wltpVeryFast;
1394
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1395
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1396
+ return Number.isFinite(wltpVeryFast)
1397
+ ? t('vehicleProps:value.consumption', { consumption: wltpVeryFast.toLocaleString(language), unit: translatedUnit })
1398
+ : t('vehicleProps:value.na');
1399
+ }
1400
+ },
1401
+ wltpVeryFastGas: {
1402
+ title: t('vehicleProps:title.wltpVeryFast'),
1403
+ get value() {
1404
+ const wltpVeryFast = car.consumption.wltpVeryFast;
1405
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1406
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1407
+ return Number.isFinite(wltpVeryFast)
1408
+ ? t('vehicleProps:value.consumptionGas', { consumption: wltpVeryFast.toLocaleString(language), unit: translatedUnit })
1409
+ : t('vehicleProps:value.na');
1410
+ }
1411
+ },
1412
+ wltpVeryFastPlugin: {
1413
+ title: t('vehicleProps:title.wltpVeryFastPlugin'),
1414
+ get value() {
1415
+ const wltpVeryFast = car.consumption.wltpVeryFast;
1416
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1417
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1418
+ return Number.isFinite(wltpVeryFast)
1419
+ ? t('vehicleProps:value.consumption', { consumption: wltpVeryFast.toLocaleString(language), unit: translatedUnit })
1420
+ : t('vehicleProps:value.na');
1421
+ }
1422
+ },
1423
+ wltpWeightedPowerCombined: {
1424
+ title: t('vehicleProps:title.wltpWeightedPowerCombined'),
1425
+ get value() {
1426
+ const wltpWeightedPowerCombined = car.consumption.wltpWeightedPowerCombined;
1427
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1428
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1429
+ return Number.isFinite(wltpWeightedPowerCombined)
1430
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpWeightedPowerCombined.toLocaleString(language), unit: translatedUnit })
1431
+ : t('vehicleProps:value.na');
1432
+ }
1433
+ },
1434
+ wltpPowerCombined: {
1435
+ title: t('vehicleProps:title.wltpPowerCombined'),
1436
+ get value() {
1437
+ const wltpPowerCombined = car.consumption.wltpPowerCombined;
1438
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1439
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1440
+ return Number.isFinite(wltpPowerCombined)
1441
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerCombined.toLocaleString(language), unit: translatedUnit })
1442
+ : t('vehicleProps:value.na');
1443
+ }
1444
+ },
1445
+ wltpPowerSlow: {
1446
+ title: t('vehicleProps:title.wltpPowerSlow'),
1447
+ get value() {
1448
+ const wltpPowerSlow = car.consumption.wltpPowerSlow;
1449
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1450
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1451
+ return Number.isFinite(wltpPowerSlow)
1452
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerSlow.toLocaleString(language), unit: translatedUnit })
1453
+ : t('vehicleProps:value.na');
1454
+ }
1455
+ },
1456
+ wltpPowerMedium: {
1457
+ title: t('vehicleProps:title.wltpPowerMedium'),
1458
+ get value() {
1459
+ const wltpPowerMedium = car.consumption.wltpPowerMedium;
1460
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1461
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1462
+ return Number.isFinite(wltpPowerMedium)
1463
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerMedium.toLocaleString(language), unit: translatedUnit })
1464
+ : t('vehicleProps:value.na');
1465
+ }
1466
+ },
1467
+ wltpPowerFast: {
1468
+ title: t('vehicleProps:title.wltpPowerFast'),
1469
+ get value() {
1470
+ const wltpPowerFast = car.consumption.wltpPowerFast;
1471
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1472
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1473
+ return Number.isFinite(wltpPowerFast)
1474
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerFast.toLocaleString(language), unit: translatedUnit })
1475
+ : t('vehicleProps:value.na');
1476
+ }
1477
+ },
1478
+ wltpPowerVeryFast: {
1479
+ title: t('vehicleProps:title.wltpPowerVeryFast'),
1480
+ get value() {
1481
+ const wltpPowerVeryFast = car.consumption.wltpPowerVeryFast;
1482
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1483
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1484
+ return Number.isFinite(wltpPowerVeryFast)
1485
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerVeryFast.toLocaleString(language), unit: translatedUnit })
1486
+ : t('vehicleProps:value.na');
1487
+ }
1488
+ },
1489
+ wltpPowerCombinedPlugin: {
1490
+ title: t('vehicleProps:title.wltpPowerCombined'),
1491
+ get value() {
1492
+ const wltpPowerCombined = car.consumption.wltpPowerCombined;
1493
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1494
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1495
+ return Number.isFinite(wltpPowerCombined)
1496
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerCombined.toLocaleString(language), unit: translatedUnit })
1497
+ : t('vehicleProps:value.na');
1498
+ }
1499
+ },
1500
+ wltpPowerSlowPlugin: {
1501
+ title: t('vehicleProps:title.wltpPowerSlow'),
1502
+ get value() {
1503
+ const wltpPowerSlow = car.consumption.wltpPowerSlow;
1504
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1505
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1506
+ return Number.isFinite(wltpPowerSlow)
1507
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerSlow.toLocaleString(language), unit: translatedUnit })
1508
+ : t('vehicleProps:value.na');
1509
+ }
1510
+ },
1511
+ wltpPowerMediumPlugin: {
1512
+ title: t('vehicleProps:title.wltpPowerMedium'),
1513
+ get value() {
1514
+ const wltpPowerMedium = car.consumption.wltpPowerMedium;
1515
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1516
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1517
+ return Number.isFinite(wltpPowerMedium)
1518
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerMedium.toLocaleString(language), unit: translatedUnit })
1519
+ : t('vehicleProps:value.na');
1520
+ }
1521
+ },
1522
+ wltpPowerFastPlugin: {
1523
+ title: t('vehicleProps:title.wltpPowerFast'),
1524
+ get value() {
1525
+ const wltpPowerFast = car.consumption.wltpPowerFast;
1526
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1527
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1528
+ return Number.isFinite(wltpPowerFast)
1529
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerFast.toLocaleString(language), unit: translatedUnit })
1530
+ : t('vehicleProps:value.na');
1531
+ }
1532
+ },
1533
+ wltpPowerVeryFastPlugin: {
1534
+ title: t('vehicleProps:title.wltpPowerVeryFast'),
1535
+ get value() {
1536
+ const wltpPowerVeryFast = car.consumption.wltpPowerVeryFast;
1537
+ const consumptionUnit = car.consumption.consumptionUnit || 'consumption_consumptionUnit_l';
1538
+ const translatedUnit = t(`cbd:${consumptionUnit}`);
1539
+ return Number.isFinite(wltpPowerVeryFast)
1540
+ ? t('vehicleProps:value.consumptionPower', { consumption: wltpPowerVeryFast.toLocaleString(language), unit: translatedUnit })
1541
+ : t('vehicleProps:value.na');
1542
+ }
1543
+ },
1544
+ wltpEnergyCosts: {
1545
+ title: t('vehicleProps:title.wltpEnergyCosts'),
1546
+ get value() {
1547
+ const { fuel } = car.consumption;
1548
+ const { wltpCombined, wltpPowerCombined, wltpWeightedCombined, wltpWeightedPowerCombined } = car.consumption;
1549
+ const { powerPrice, fuelPrice } = car.costModel;
1550
+ const powerCost = {
1551
+ fuelPrice,
1552
+ powerPrice
1553
+ }
1554
+ const { hybridPlugin } = car.engineData;
1555
+ const consumption = {
1556
+ wltpCombined, wltpPowerCombined, wltpWeightedCombined, wltpWeightedPowerCombined
1557
+ }
1558
+ const { getFuelPrice } = financingUtils;
1559
+ const fuelCost = getFuelPrice(fuel, consumption, hybridPlugin, powerCost);
1560
+ return Number.isFinite(fuelCost)
1561
+ ? t('vehicleProps:value.pricePerYear', { price: getFormattedPrice(fuelCost, '$,.2f') })
1562
+ : t('vehicleProps:value.na');
1563
+ }
1564
+ },
1565
+ wltpCo2CostsLow: {
1566
+ get title() {
1567
+ const { co2DefaultCostsLow } = financingUtils;
1568
+ return t('vehicleProps:title.wltpCo2LowPrice', { price: co2DefaultCostsLow })
1569
+ },
1570
+ get value() {
1571
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1572
+
1573
+ const { getCo2Price } = financingUtils;
1574
+ const { co2PriceLow } = getCo2Price(wltpCo2);
1575
+ return Number.isFinite(co2PriceLow)
1576
+ ? t('vehicleProps:value.wltpCo2Price', { price: getFormattedPrice(co2PriceLow, '$,.2f') })
1577
+ : t('vehicleProps:value.na');
1578
+ },
1579
+ get valueDescription() {
1580
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1581
+
1582
+ const { getCo2Price } = financingUtils;
1583
+ const { co2PriceLow } = getCo2Price(wltpCo2);
1584
+ return Number.isFinite(co2PriceLow) ? t('vehicleProps:value.wltpCo2PriceSpec') : '';
1585
+ }
1586
+ },
1587
+ wltpCo2CostsMiddle: {
1588
+ get title() {
1589
+ const { co2DefaultCostsMedium } = financingUtils;
1590
+ return t('vehicleProps:title.wltpCo2MidPrice', { price: co2DefaultCostsMedium })
1591
+ },
1592
+ get value() {
1593
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1594
+
1595
+ const { getCo2Price } = financingUtils;
1596
+ const { co2PriceMedium } = getCo2Price(wltpCo2);
1597
+ return Number.isFinite(co2PriceMedium)
1598
+ ? t('vehicleProps:value.wltpCo2Price', { price: getFormattedPrice(co2PriceMedium, '$,.2f') })
1599
+ : t('vehicleProps:value.na');
1600
+ },
1601
+ get valueDescription() {
1602
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1603
+
1604
+ const { getCo2Price } = financingUtils;
1605
+ const { co2PriceMedium } = getCo2Price(wltpCo2);
1606
+ return Number.isFinite(co2PriceMedium) ? t('vehicleProps:value.wltpCo2PriceSpec') : '';
1607
+ }
1608
+ },
1609
+ wltpCo2CostsHigh: {
1610
+ get title() {
1611
+ const { co2DefaultCostsHigh } = financingUtils;
1612
+ return t('vehicleProps:title.wltpCo2HighPrice', { price: co2DefaultCostsHigh })
1613
+ },
1614
+ get value() {
1615
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1616
+
1617
+ const { getCo2Price } = financingUtils;
1618
+ const { co2PriceHigh } = getCo2Price(wltpCo2);
1619
+ return Number.isFinite(co2PriceHigh)
1620
+ ? t('vehicleProps:value.wltpCo2Price', { price: getFormattedPrice(co2PriceHigh, '$,.2f') })
1621
+ : t('vehicleProps:value.na');
1622
+ },
1623
+ get valueDescription() {
1624
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1625
+
1626
+ const { getCo2Price } = financingUtils;
1627
+ const { co2PriceHigh } = getCo2Price(wltpCo2);
1628
+ return Number.isFinite(co2PriceHigh) ? t('vehicleProps:value.wltpCo2PriceSpec') : '';
1629
+ }
1630
+ },
1631
+ powerPrice: {
1632
+ title: t('vehicleProps:title.powerPrice'),
1633
+ get value() {
1634
+ const fuel = car.consumption.fuel;
1635
+ const { hybridPlugin } = car.engineData;
1636
+
1637
+ const { getBaseFuelPrice } = financingUtils;
1638
+
1639
+ const basePowerPrice = getBaseFuelPrice(fuel, hybridPlugin).powerPrice;
1640
+ const powerPrice = car.costModel.powerPrice ? car.costModel.powerPrice : basePowerPrice;
1641
+
1642
+ return Number.isFinite(powerPrice)
1643
+ ? t('vehicleProps:value.powerPrice', { price: getFormattedPrice(powerPrice, '$,.2f') })
1644
+ : t('vehicleProps:value.na');
1645
+ }
1646
+ },
1647
+ fuelPrice: {
1648
+ title: t('vehicleProps:title.fuelPrice'),
1649
+ get value() {
1650
+ const fuel = car.consumption.fuel;
1651
+ const { hybridPlugin } = car.engineData;
1652
+
1653
+ const { getBaseFuelPrice } = financingUtils;
1654
+
1655
+ const baseFuelPrice = getBaseFuelPrice(fuel, hybridPlugin) ? getBaseFuelPrice(fuel, hybridPlugin).fuelPrice : null;
1656
+
1657
+ const fuelPrice = car.costModel.fuelPrice ? car.costModel.fuelPrice : baseFuelPrice;
1658
+ return Number.isFinite(fuelPrice)
1659
+ ? t('vehicleProps:value.fuelPrice', { price: getFormattedPrice(fuelPrice, '$,.2f') })
1660
+ : t('vehicleProps:value.na');
1661
+ }
1662
+ },
1663
+ consumptionPriceYear: {
1664
+ title: t('vehicleProps:title.consumptionPriceYear'),
1665
+ get value() {
1666
+ const { consumptionPriceYear } = car.costModel;
1667
+ return Number.isFinite(consumptionPriceYear)
1668
+ ? consumptionPriceYear
1669
+ : t('vehicleProps:value.na');
1670
+ }
1671
+ },
1672
+ wltpCostModelTax: {
1673
+ title: t('vehicleProps:title.wltpVehicleTax'),
1674
+ get value() {
1675
+ const cubicCapacity = car.engineData.cubicCapacity;
1676
+ const fuel = car.consumption.fuel;
1677
+ const wltpCo2 = car.environmentEmissions.wltpCo2;
1678
+ const { getVehicleTax } = financingUtils;
1679
+ const tax = car.costModel.tax ? car.costModel.tax : getVehicleTax(fuel, cubicCapacity, wltpCo2, firstRegistration);
1680
+ return Number.isFinite(tax)
1681
+ ? t('vehicleProps:value.pricePerYear', { price: getFormattedPrice(tax, '$,.2f') })
1682
+ : t('vehicleProps:value.na');
1683
+ }
1684
+ }
1685
+
1686
+ };
1687
+ return props;
1688
+ };
1689
+
1690
+ export default getDecoratedProps;