@bytebrand/fe-ui-core 4.8.108 → 4.8.110

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 (198) hide show
  1. package/media/locales/de/promoSlider.json +0 -1
  2. package/media/locales/en/promoSlider.json +0 -1
  3. package/package.json +5 -3
  4. package/source/components/AccordionWidget/AccordionWidget.styl +1 -13
  5. package/source/components/AccordionWidget/AccordionWidget.tsx +8 -49
  6. package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +2 -2
  7. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +0 -24
  8. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +2 -1
  9. package/source/components/OfferPanel/OfferPanel.tsx +1 -1
  10. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +11 -23
  11. package/source/components/VehicleDetailedSidebar/partials/Properties.styl +0 -5
  12. package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +18 -56
  13. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +6 -2
  14. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +0 -42
  15. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +11 -23
  16. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +5 -60
  17. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +12 -36
  18. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +2 -3
  19. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +7 -18
  20. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +1 -4
  21. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +2 -3
  22. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +1 -1
  23. package/source/components/VehicleSmallCard/VehicleSmallCard.styl +2 -67
  24. package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +3 -49
  25. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.styled.tsx +1 -4
  26. package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +3 -4
  27. package/source/components/_common/withStats/withStats.styl +0 -10
  28. package/source/framework/DataTransformers.ts +0 -2
  29. package/source/framework/constants/common.ts +4 -8
  30. package/source/framework/types/types.ts +0 -1
  31. package/source/framework/vehiclesProps/decoratedLightProps.tsx +18 -109
  32. package/source/framework/vehiclesProps/decoratedProps.tsx +9 -68
  33. package/source/framework/vehiclesProps/vehicleDetails.ts +1 -3
  34. package/source/locales/data.ts +3 -13
  35. package/.husky/pre-push +0 -4
  36. package/.storybook/addons.js +0 -4
  37. package/.storybook/config.js +0 -64
  38. package/.storybook/postcss.config.js +0 -6
  39. package/.storybook/preview-head.html +0 -10
  40. package/.storybook/webpack.config.js +0 -130
  41. package/__tests__/components/Checkout/OrderOverviewItem/OrderOverviewItem.test.tsx +0 -42
  42. package/__tests__/components/Checkout/PaymentTypeCard/PaymentTypeCard.test.tsx +0 -50
  43. package/__tests__/components/Checkout/RadioGroup.test.tsx +0 -95
  44. package/__tests__/components/Checkout/ServiceCardWrapper.test.tsx +0 -53
  45. package/__tests__/components/Checkout/Switcher.test.tsx +0 -43
  46. package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +0 -613
  47. package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +0 -335
  48. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/AdditionalOrderInfo.test.tsx +0 -127
  49. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCar.test.tsx +0 -58
  50. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCard.test.tsx +0 -74
  51. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusSection.test.tsx +0 -62
  52. package/__tests__/components/UserDasboardPage/sections/RequestedCarsSection/RequestedCarsSection.test.tsx +0 -117
  53. package/__tests__/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.test.tsx +0 -58
  54. package/__tests__/components/VehicleSmallCard/VehicleInfo.test.tsx +0 -88
  55. package/__tests__/components/VehicleSmallCard/VehicleTitle.test.tsx +0 -91
  56. package/__tests__/components/_common/Badge/Badge.test.tsx +0 -15
  57. package/__tests__/components/_common/IconSVG/IconSVG.test.tsx +0 -23
  58. package/__tests__/components/_common/Image/Image.test.tsx +0 -82
  59. package/__tests__/components/_common/MaterialAutocomplete/MaterialAutocomplete.test.tsx +0 -49
  60. package/__tests__/components/_common/MaterialDatePicker/MaterialDatePicker.test.tsx +0 -54
  61. package/__tests__/components/_common/MaterialField/MaterialField.test.tsx +0 -58
  62. package/__tests__/components/_common/StarButton/StarButton.test.tsx +0 -46
  63. package/__tests__/mockedData/financingConfig.js +0 -202
  64. package/__tests__/mockedData/mockedPendingRequestedCar.js +0 -69
  65. package/__tests__/utils/CommonUtils/addPrefixToKeys.test.ts +0 -18
  66. package/__tests__/utils/CommonUtils/arrToObj.test.js +0 -32
  67. package/__tests__/utils/CommonUtils/checkRangeValuesOnEqual.test.ts +0 -17
  68. package/__tests__/utils/CommonUtils/fixNumber.test.ts +0 -20
  69. package/__tests__/utils/CommonUtils/formatMileage.test.ts +0 -8
  70. package/__tests__/utils/CommonUtils/getChipFilterValue.test.ts +0 -22
  71. package/__tests__/utils/CommonUtils/getFormattedNumber.test.ts +0 -19
  72. package/__tests__/utils/CommonUtils/getFormattedPrice.test.ts +0 -19
  73. package/__tests__/utils/CommonUtils/getGroupValuesForQuery.test.ts +0 -51
  74. package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +0 -64
  75. package/__tests__/utils/CommonUtils/getPriceRating.test.ts +0 -26
  76. package/__tests__/utils/CommonUtils/getPriceRatingConfig.test.ts +0 -33
  77. package/__tests__/utils/CommonUtils/preloadNearbyImages.test.ts +0 -9
  78. package/__tests__/utils/CommonUtils/sliceLessThan.test.ts +0 -23
  79. package/__tests__/utils/CommonUtils/sliceMoreThan.test.ts +0 -23
  80. package/package.json.bak +0 -118
  81. package/source/components/AdvantageItem/AdvantageItem.story.js +0 -23
  82. package/source/components/Alternative/Dealer.story.js +0 -32
  83. package/source/components/Alternative/Dealer.story.styl +0 -3
  84. package/source/components/Breadcrumbs/Breadcrumbs.story.js +0 -40
  85. package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.story.js +0 -45
  86. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.js +0 -243
  87. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.styl +0 -21
  88. package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.js +0 -105
  89. package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.styl +0 -37
  90. package/source/components/Checkout/Switcher/Switcher.story.js +0 -41
  91. package/source/components/Checkout/Switcher/Switcher.story.styl +0 -2
  92. package/source/components/CompactSearchWidget/CompactSearchWidget.story.js +0 -187
  93. package/source/components/ContactForm/ContactForm.story.js +0 -94
  94. package/source/components/ContactForm/ContactForm.story.styl +0 -0
  95. package/source/components/ContactInfo/ContactInfo.story.js +0 -58
  96. package/source/components/CustomerQuote/CustomerQuote.story.js +0 -41
  97. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.js +0 -73
  98. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.styl +0 -5
  99. package/source/components/FormattedNumber/FormattedNumber.story.js +0 -114
  100. package/source/components/InfoBlocks/InfoBlockWrapper.story.js +0 -101
  101. package/source/components/InfoBlocks/InfoBlockWrapper.story.styl +0 -46
  102. package/source/components/OfferPanel/AboAccordion/AboFaq/AboFaq.story.js +0 -97
  103. package/source/components/OfferPanel/OfferPanel.story.js +0 -139
  104. package/source/components/OfferPanel/RangeGroup/RangeGroup.story.js +0 -35
  105. package/source/components/OfferPanel/RangeGroup/RangeGroup.story.styl +0 -3
  106. package/source/components/PriceRating/PriceRating.story.js +0 -39
  107. package/source/components/PriceRating/PriceRating.story.styl +0 -2
  108. package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.js +0 -78
  109. package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.styl +0 -11
  110. package/source/components/RateSearchValue/RateSearchValue.story.js +0 -78
  111. package/source/components/RateSearchValue/RateSearchValue.story.styl +0 -2
  112. package/source/components/RateSearchWidget/RateSearchWidget.story.js +0 -57
  113. package/source/components/RateSearchWidget/RateSearchWidget.story.styl +0 -12
  114. package/source/components/SearchFilters/FiltersFactory.story.js +0 -273
  115. package/source/components/SearchPage/Filters/MakeModel/MakeModel.story.js +0 -12
  116. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.js +0 -834
  117. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.styl +0 -40
  118. package/source/components/SearchWidget/SearchWidget.story.js +0 -191
  119. package/source/components/SearchWidget/SearchWidget.story.styl +0 -6
  120. package/source/components/Stepper/Stepper.story.js +0 -119
  121. package/source/components/Stepper/Stepper.story.styl +0 -41
  122. package/source/components/Theme.story.js +0 -36
  123. package/source/components/Theme.story.styl +0 -85
  124. package/source/components/TickerText/TickerText.story.js +0 -17
  125. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.story.js +0 -95
  126. package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.story.js +0 -97
  127. package/source/components/Vehicle/VehicleConsumption/VehicleConsumption.story.js +0 -31
  128. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.story.js +0 -247
  129. package/source/components/VehicleCompared/CompareGeneral/CompareGeneral.story.js +0 -30
  130. package/source/components/VehicleCompared/ComparePrice/ComparePrice.story.js +0 -18
  131. package/source/components/VehicleCompared/CompareTitle/CompareTitle.story.js +0 -19
  132. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.story.js +0 -44
  133. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.story.js +0 -120
  134. package/source/components/VehiclePromoSlider/VehiclePromoInfo/VehiclePromoInfo.story.js +0 -42
  135. package/source/components/VehiclePromoSlider/VehiclePromoSlide/VehiclePromoSlide.story.js +0 -62
  136. package/source/components/VehiclePromoSlider/VehiclePromoSlider.story.js +0 -42
  137. package/source/components/VehicleSmallCard/VehicleSmallCard.story.js +0 -412
  138. package/source/components/VehicleSmallCard/VehicleSmallCard.story.styl +0 -56
  139. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.js +0 -199
  140. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.styl +0 -40
  141. package/source/components/_common/Accordion/Accordion.story.js +0 -36
  142. package/source/components/_common/Badge/Badge.story.js +0 -27
  143. package/source/components/_common/Badge/Badge.story.styl +0 -5
  144. package/source/components/_common/Bubble/Bubble.story.js +0 -52
  145. package/source/components/_common/Button/Button.story.js +0 -52
  146. package/source/components/_common/Button/Button.story.styl +0 -5
  147. package/source/components/_common/ButtonOld/Button.story.js +0 -54
  148. package/source/components/_common/ButtonOld/Button.story.styl +0 -5
  149. package/source/components/_common/Checkbox/Checkbox.story.js +0 -85
  150. package/source/components/_common/Checkbox/Checkbox.story.styl +0 -14
  151. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.js +0 -126
  152. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.styl +0 -14
  153. package/source/components/_common/Chip/Chip.story.js +0 -43
  154. package/source/components/_common/ChipList/ChipList.story.js +0 -36
  155. package/source/components/_common/DropDown/DropDown.story.js +0 -35
  156. package/source/components/_common/ExpandablePanel/ExpandablePanel.story.js +0 -41
  157. package/source/components/_common/Histogram/Histogram.story.js +0 -51
  158. package/source/components/_common/IconSVG/IconSVG.story.js +0 -21
  159. package/source/components/_common/IconSVG/IconSVG.story.styl +0 -25
  160. package/source/components/_common/Image/Image.story.js +0 -142
  161. package/source/components/_common/Image/Image.story.styl +0 -18
  162. package/source/components/_common/ImagesSet/ImagesSet.story.js +0 -34
  163. package/source/components/_common/ImagesSet/ImagesSet.story.styl +0 -4
  164. package/source/components/_common/Loader/Loader.story.js +0 -21
  165. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.story.js +0 -49
  166. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.js +0 -45
  167. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.styl +0 -6
  168. package/source/components/_common/MaterialField/MaterialField.story.js +0 -87
  169. package/source/components/_common/MaterialField/MaterialField.story.styl +0 -34
  170. package/source/components/_common/MaterialSelect/MaterialSelect.story.js +0 -52
  171. package/source/components/_common/MaterialSelect/MaterialSelect.story.styl +0 -6
  172. package/source/components/_common/MaterialStepButton/MaterialStepButton.story.js +0 -47
  173. package/source/components/_common/MaterialStepButton/MaterialStepButton.story.styl +0 -6
  174. package/source/components/_common/MaterialSwitch/MaterialSwitch.story.js +0 -17
  175. package/source/components/_common/MaterialTooltip/MaterialTooltip.story.js +0 -10
  176. package/source/components/_common/Modal/Modal.story.js +0 -37
  177. package/source/components/_common/MuiGroupedSelect/MuiGroupedSelect.story.js +0 -21
  178. package/source/components/_common/PropertySelector/PSGroup.story.js +0 -93
  179. package/source/components/_common/PropertySelector/PSGroup.story.styl +0 -25
  180. package/source/components/_common/PropertySelector/ProperySelector.story.js +0 -83
  181. package/source/components/_common/Radio/FormRadioGroup.story.js +0 -28
  182. package/source/components/_common/Radio/FormRadioGroup.story.styl +0 -2
  183. package/source/components/_common/Radio/Radio.story.js +0 -54
  184. package/source/components/_common/Radio/RadioGroup.story.js +0 -90
  185. package/source/components/_common/Radio/RadioGroup.story.styl +0 -39
  186. package/source/components/_common/Range/Range.story.js +0 -46
  187. package/source/components/_common/Range/Range.story.styl +0 -5
  188. package/source/components/_common/SliderArrow/SliderArrow.story.js +0 -18
  189. package/source/components/_common/Tabs/Tabs.story.js +0 -56
  190. package/source/components/_common/TimePicker/TimePicker.story.js +0 -37
  191. package/source/components/_common/Tooltip/Tooltip.story.js +0 -28
  192. package/source/components/_common/UserMenu/MaterialMenu.story.js +0 -73
  193. package/source/components/_common/VehicleSlider/VehicleSlider.story.js +0 -99
  194. package/source/components/_common/VehicleSlider/VehicleSlider.story.styl +0 -0
  195. package/source/components/_common/withLabel/withLabel.story.js +0 -62
  196. package/source/components/_common/withPopover/withPopover.story.js +0 -48
  197. package/source/components/_common/withPopover/withPopover.story.styl +0 -54
  198. package/source/components/_common/withStats/withStats.story.js +0 -75
@@ -12,23 +12,7 @@
12
12
  grid-area: info;
13
13
 
14
14
  & > .consumptionCombined
15
- font-size: 9px
16
-
17
- // ADV-88: new plug-in hybrid consumption line — full-width row at the very bottom of the
18
- // card on every breakpoint. `order` pushes it past the price-rating strip so the long text
19
- // never overlaps it; overrides the per-variant desktop reset to grid-column/grid-row: auto.
20
- & > .pluginFullWidth
21
- grid-column: 1 / -1 !important
22
- grid-row: auto !important
23
- order: 99
24
- height: auto !important
25
- align-items: flex-start
26
- white-space: normal
27
- border-bottom: none
28
- padding-top: 4px
29
- span
30
- font-size: 9px
31
- line-height: 1.35
15
+ font-size: 10px
32
16
 
33
17
  +media-tablet-landscape-down()
34
18
  padding: 0 10px;
@@ -43,7 +27,7 @@
43
27
  background-color rgba(76, 78, 100, 0.12);
44
28
 
45
29
  &.vehiclePropertiesLanding
46
- grid-auto-rows: minmax(44px, auto);
30
+ grid-auto-rows: 44px;
47
31
  grid-template-columns: 1fr 1fr;
48
32
  padding: 0 3px;
49
33
 
@@ -57,7 +41,7 @@
57
41
 
58
42
  +media-tablet-landscape-up()
59
43
  padding-top: 2px;
60
- grid-auto-rows: minmax(38px, auto);
44
+ grid-auto-rows: 38px;
61
45
  grid-template-columns: 100%;
62
46
 
63
47
  span
@@ -79,7 +63,7 @@
79
63
  margin-bottom: 2px;
80
64
 
81
65
  &.vehiclePropertiesMain
82
- grid-auto-rows: minmax(44px, auto);
66
+ grid-auto-rows: 44px;
83
67
  grid-template-columns: 100%;
84
68
  padding: 0 6px;
85
69
 
@@ -87,14 +71,8 @@
87
71
  white-space: pre-line;
88
72
  grid-row: 4;
89
73
 
90
- // mobile (home top-offer / CDP comparable): vertically centre the "good price" block.
91
- +media-tablet-landscape-down()
92
- & > .priceRating
93
- align-self: center
94
- margin: auto 0
95
-
96
74
  +media-tablet-landscape-up()
97
- grid-auto-rows: minmax(38px, auto);
75
+ grid-auto-rows: 38px;
98
76
 
99
77
  span
100
78
  font-size: 11px;
@@ -152,16 +130,6 @@
152
130
  grid-template-columns: 1fr 1fr;
153
131
  grid-auto-rows: 44px;
154
132
 
155
- // ADV-70: underline the price-rating ("GUTER PREIS") cell like the spec rows above it —
156
- // stretch it to fill the grid cell so the border sits at the same baseline.
157
- & > .priceRating
158
- margin: 0
159
- align-self: stretch
160
- display: flex
161
- flex-direction: column
162
- justify-content: center
163
- border-bottom: 1px solid rgba(76, 78, 100, 0.12)
164
-
165
133
  & > .consumptionCombined
166
134
  white-space: pre-line;
167
135
  grid-column: 1 / span 2;
@@ -248,26 +216,3 @@
248
216
  .priceRating
249
217
  margin: auto;
250
218
  box-sizing: border-box;
251
-
252
- // ADV-88: SRL DESKTOP — hide the availability ("Sofort"/"from {date}") cell ONLY for NEW plug-in
253
- // hybrids (engineData.hybridPlugin + mainData.condition selector_condition_new) so the price-rating
254
- // flows up into its place. All other cards keep availability; mobile keeps it for everyone.
255
- .vehiclePropertiesSearch.searchPluginInfo
256
- +media-tablet-landscape-up()
257
- & > .offerAvailability
258
- display: none
259
-
260
- // SRL MOBILE — centre the "good price" cell (horizontally + vertically) on ALL search cards.
261
- .vehicleInfo.vehiclePropertiesSearch
262
- +media-tablet-landscape-down()
263
- & > .priceRating
264
- align-items: center
265
- justify-content: center
266
-
267
- // SRL MOBILE — drop the "good price" underline ONLY for NEW plug-in hybrids (engineData.hybridPlugin
268
- // + mainData.condition selector_condition_new). The extra .searchPluginInfo makes this (0,4,0) so it
269
- // beats the base (0,3,0) border-bottom; non-plug-in cards keep the underline.
270
- .vehicleInfo.vehiclePropertiesSearch.searchPluginInfo
271
- +media-tablet-landscape-down()
272
- & > .priceRating
273
- border-bottom: none
@@ -1,7 +1,6 @@
1
1
  /* tslint:disable */
2
2
  import * as React from 'react';
3
3
  import classnames from 'classnames';
4
- import _get from 'lodash/get';
5
4
  import styles from './VehicleInfo.styl';
6
5
  import PriceRating from '../../../PriceRating/PriceRating';
7
6
  import { Visible, Hidden } from 'react-grid-system';
@@ -44,10 +43,8 @@ const VehicleInfo: React.FC<IVehicleInfoProps> = (props) => {
44
43
  consumption,
45
44
  location,
46
45
  offer,
47
- engineData,
48
- leasing,
49
- suppressConsumption
50
- } = props as (typeof props & { suppressConsumption?: boolean });
46
+ engineData
47
+ } = props;
51
48
  const firstRegistrationDate = regDate && regDate !== 0 ? regDate : 'N/A';
52
49
 
53
50
  const dataDecoratedProps = {
@@ -68,8 +65,7 @@ const VehicleInfo: React.FC<IVehicleInfoProps> = (props) => {
68
65
  },
69
66
  environmentEmissions: {
70
67
  co2: environmentEmissions.co2,
71
- wltpCo2: environmentEmissions.wltpCo2,
72
- wltpEnergyEfficiencyClass: environmentEmissions.wltpEnergyEfficiencyClass
68
+ wltpCo2: environmentEmissions.wltpCo2
73
69
  },
74
70
  consumption: {
75
71
  fuel: consumption.fuel,
@@ -82,29 +78,16 @@ const VehicleInfo: React.FC<IVehicleInfoProps> = (props) => {
82
78
  },
83
79
  };
84
80
 
85
- // ADV-88: ANY plug-in hybrid (new or used) carries the long weighted+discharged consumption/CO2
86
- // line — render it full-width. Gated on hybridPlugin only, no condition check.
87
- // ADV-88: "is a hybrid car" is determined by fuel type (hybrid electric + diesel/petrol), not hybridPlugin.
88
- const isPluginHybrid = consumption.fuel === 'selector_fuel_hybridElectricalDiesel'
89
- || consumption.fuel === 'selector_fuel_hybridElectricalPetrol';
90
81
  const decoratedProps = getDecoratedProps(dataDecoratedProps, t, language);
91
82
  const renderProperty = (renderProperties: any, vehicleComponentName?: any) => {
92
- const mainPropertiesList = renderProperties(dataDecoratedProps.consumption.fuel, combineRefAlternative)
93
- // ADV-88: on landing/main the plug-in consumption line is rendered full-width by VehicleSmallCard.
94
- .filter((prop: string) => !(suppressConsumption && decoratedProps[prop] && decoratedProps[prop].name === 'consumptionCombined'))
95
- .map((prop: string) => {
96
- const isConsumption = decoratedProps[prop].name === 'consumptionCombined';
97
- // On non-SRL cards (and for the full-width plug-in line) drop the fuel-pump icon to free up space.
98
- const hideConsumptionIcon = isConsumption && (vehicleComponentName !== 'search' || isPluginHybrid);
99
- return {
100
- icon: hideConsumptionIcon ? '' : decoratedProps[prop].icon,
101
- description: decoratedProps[prop].value,
102
- className: classnames(styles[decoratedProps[prop].name], { [styles.pluginFullWidth]: isConsumption && isPluginHybrid }),
103
- classNameIcon: (vehicleComponentName === 'search' || 'myVehicles' || 'favorite' || 'recently') && styles.carIconSearch,
104
- smalltext: isConsumption && (vehicleComponentName !== 'search'),
105
- hybridPlugin: isPluginHybrid && isConsumption && vehicleComponentName !== 'search'
106
- };
107
- });
83
+ const mainPropertiesList = renderProperties(dataDecoratedProps.consumption.fuel, combineRefAlternative).map((prop: string) => ({
84
+ icon: decoratedProps[prop].icon,
85
+ description: decoratedProps[prop].value,
86
+ className: styles[decoratedProps[prop].name],
87
+ classNameIcon: (vehicleComponentName === 'search' || 'myVehicles' || 'favorite' || 'recently') && styles.carIconSearch,
88
+ smalltext: (decoratedProps[prop].name === 'consumptionCombined') && (vehicleComponentName !== 'search'),
89
+ hybridPlugin: engineData.hybridPlugin && decoratedProps[prop].name === 'consumptionCombined' && vehicleComponentName !== 'search'
90
+ }));
108
91
 
109
92
  return mainPropertiesList.map((property: any, index: number) => (
110
93
  <VehicleProperty {...property} key={index} />
@@ -117,8 +100,6 @@ const VehicleInfo: React.FC<IVehicleInfoProps> = (props) => {
117
100
  { [styles.vehiclePropertiesLanding]: vehicleComponentName === 'landing' },
118
101
  { [styles.vehiclePropertiesMain]: vehicleComponentName === 'main' },
119
102
  { [styles.vehiclePropertiesSearch]: vehicleComponentName === 'search' },
120
- // ADV-88: mark a plug-in SRL card so its "good price" underline can be dropped on mobile.
121
- { [styles.searchPluginInfo]: isPluginHybrid && vehicleComponentName === 'search' },
122
103
  { [styles.vehiclePropertiesFavorite]: vehicleComponentName === 'favorite' },
123
104
  { [styles.vehiclePropertiesMyVehicles]: vehicleComponentName === 'myVehicles' },
124
105
  { [styles.vehiclePropertiesRecently]: vehicleComponentName === 'recently' },
@@ -168,12 +149,7 @@ const VehicleInfo: React.FC<IVehicleInfoProps> = (props) => {
168
149
  ),
169
150
  ...routeObj,
170
151
  className: wrapClasses,
171
- onClick: () => localStorage.setItem(
172
- 'activeTabCDP',
173
- _get(leasing, 'isActive', false)
174
- ? t('vehicleProps:title.leasing')
175
- : t('vehicleProps:title.financing')
176
- ),
152
+ onClick: () => localStorage.setItem('activeTabCDP', t('vehicleProps:title.financing')),
177
153
  href: url,
178
154
  target,
179
155
  rel
@@ -62,9 +62,8 @@
62
62
  font-size: 12px;
63
63
  height: 42px;
64
64
 
65
- &.vehiclePriceTitleLanding,
66
- &.vehiclePriceTitleMain
67
- font-size: 10px;
65
+ &.vehiclePriceTitleLanding
66
+ font-size: 11px;
68
67
  height: 38px;
69
68
 
70
69
  .addOfferButton
@@ -47,10 +47,6 @@ export interface IVehiclePriceSectionProps {
47
47
  onAddOfferToMainSlideClick?: (id: string, mainImageId: string, price: number, financingConfig: any) => void;
48
48
  combineRefAlternative?: boolean;
49
49
  typeAlternative?: string;
50
- // ADV-88: hide the "monatlich z.B."/"monthly e.g." column header for the task's cars
51
- // (new plug-in hybrids that get the externalised consumption row) so the price column
52
- // moves up. Passed true from VehicleSmallCard only when the consumption row is shown.
53
- suppressMonthlyFrom?: boolean;
54
50
  }
55
51
 
56
52
  // interface IPriceData {
@@ -99,6 +95,7 @@ const VehiclePrice: React.FC<IVehiclePriceSectionProps> = (props: IVehiclePriceS
99
95
  routeObj,
100
96
  toggleCarToCompare,
101
97
  toCompare,
98
+ priceSubMtl,
102
99
  classButton,
103
100
  onRemoveClick,
104
101
  showCompareCheckboxes,
@@ -117,7 +114,6 @@ const VehiclePrice: React.FC<IVehiclePriceSectionProps> = (props: IVehiclePriceS
117
114
  } = {},
118
115
  common: { isStrikeShown },
119
116
  typeAlternative,
120
- suppressMonthlyFrom,
121
117
  margin
122
118
  } = props;
123
119
 
@@ -148,31 +144,24 @@ const VehiclePrice: React.FC<IVehiclePriceSectionProps> = (props: IVehiclePriceS
148
144
  vehicleComponentName === 'landing' ||
149
145
  vehicleComponentName === 'main' ? 'outlined' : 'contained';
150
146
 
151
- // ADV-70 (design): the monthly label ("mtl."/"mth.") is shown BEFORE every monthly rate on
152
- // all card surfaces (SRL desktop+mobile, comparable, home, landing) — derive it from the
153
- // localized priceSub key instead of the consumer-passed priceSubMtl (which is null on mobile),
154
- // so it renders consistently everywhere. VehiclePriceItem strips the leading "/".
155
- const monthlyPrefix = (t && t('vehicleProps:value.priceSub')) || '';
156
-
157
147
  const priceItemsGlobal = [
158
148
  {
159
149
  perMonthOld: oldMonthlyInstallment,
160
150
  perMonthCurrent: monthlyInstallment,
161
151
  title: t('vehicleProps:title.financing'),
162
- // ADV-88 (design): drop the "z.B."/"e.g." prefix on the SRL card — the monthly label carries the meaning.
163
- prefixOldPrice: false,
152
+ prefixOldPrice: vehicleComponentName === 'search' && !isMobileOnly && t('vehicleProps:value.prefixOldPrice'),
164
153
  postfix: '3',
165
- priceSub: monthlyPrefix,
154
+ priceSub: priceSubMtl,
166
155
  tooltipDescription: !combineRefAlternative && t('vehicleProps:title.financingDescription')
167
156
  },
168
157
  {
169
158
  perMonthOld: lOldMonthlyInstallment,
170
159
  perMonthCurrent: lMonthlyInstallment,
171
- prefixOldPrice: false,
160
+ prefixOldPrice: vehicleComponentName === 'search' && !isMobileOnly && t('vehicleProps:value.prefixOldPrice'),
172
161
  postfix: '1,3',
173
162
  isPriceDisable: !isLeasingActive,
174
163
  title: t('vehicleProps:title.leasing'),
175
- priceSub: monthlyPrefix,
164
+ priceSub: priceSubMtl,
176
165
  tooltipDescription: !combineRefAlternative && t('vehicleProps:title.leasingDescription')
177
166
  }
178
167
  ];
@@ -234,10 +223,10 @@ const VehiclePrice: React.FC<IVehiclePriceSectionProps> = (props: IVehiclePriceS
234
223
  formControlClassName={styles.wrapCheckbox}
235
224
  />
236
225
  )}
237
- {!suppressMonthlyFrom && vehicleComponentName !== 'favorite' && vehicleComponentName !== 'search' && !isMobileOnly && (
226
+ {vehicleComponentName !== 'favorite' && vehicleComponentName !== 'search' && !isMobileOnly && (
238
227
  <span className={vehiclePriceTitleClassName}>{t('vehicleProps:title.monthlyFrom')}</span>
239
228
  )}
240
- {!suppressMonthlyFrom && isMobileOnly && !showCompareCheckboxes && (
229
+ {isMobileOnly && !showCompareCheckboxes && (
241
230
  <span className={vehiclePriceTitleClassName}>{t('vehicleProps:title.monthlyFrom')}</span>
242
231
  )}
243
232
  {priceData.map((props: any) => (
@@ -11,7 +11,7 @@
11
11
 
12
12
  .smallProp
13
13
  span
14
- font-size: 9px !important
14
+ font-size: 10px !important
15
15
 
16
16
  .pluginVal
17
17
  span
@@ -26,8 +26,5 @@
26
26
  +media-tablet-landscape-up()
27
27
  margin-right: 10px
28
28
 
29
- .noIcon
30
- padding-left: 5px
31
-
32
29
  [class*='smallText']
33
30
  font-size:10px;
@@ -19,13 +19,12 @@ class VehicleProperty extends React.Component<IVehicleProperty, {}> {
19
19
 
20
20
  render(): React.ReactNode {
21
21
  const { className, classNameIcon, icon, description, smalltext, hybridPlugin } = this.props;
22
- const noIcon: boolean = !icon;
23
- const propertyClass: string = `${styles.carProp} ${className ? className : ''} ${smalltext ? styles.smallProp : ''} ${hybridPlugin ? styles.pluginVal : ''} ${noIcon ? styles.noIcon : ''}`;
22
+ const propertyClass: string = `${styles.carProp} ${className ? className : ''} ${smalltext ? styles.smallProp : ''} ${hybridPlugin ? styles.pluginVal : ''}`;
24
23
  const propertyClassIcon: string = `${styles.carIcon} ${classNameIcon ? classNameIcon : ''}`;
25
24
 
26
25
  return (
27
26
  <div className={propertyClass}>
28
- {!noIcon && <IconSVG className={propertyClassIcon} name={icon} customDimensions />}
27
+ <IconSVG className={propertyClassIcon} name={icon} customDimensions />
29
28
  <span>{description}</span>
30
29
  </div>
31
30
  );
@@ -48,7 +48,7 @@ const VehicleTitle: React.FC<IVehicleTitleProps> = ({
48
48
  event.preventDefault();
49
49
  event.stopPropagation();
50
50
  event.nativeEvent.stopImmediatePropagation();
51
- if (onFavoriteClick) onFavoriteClick(event, id);
51
+ onFavoriteClick(event, id);
52
52
  };
53
53
 
54
54
  const renderFavoriteIcon = (): React.ReactNode => {
@@ -131,8 +131,7 @@
131
131
 
132
132
  &.vehicleWrapMain
133
133
  box-sizing: border-box;
134
- // mobile home/comparable: equal info|price columns (was 55/45).
135
- grid-template-columns: 50% 50%;
134
+ grid-template-columns: 55% 45%;
136
135
  border: 1px solid #DFDFDF;
137
136
  margin-bottom: 5px;
138
137
  border-radius: 10px;
@@ -146,11 +145,7 @@
146
145
  padding: 0 16px;
147
146
 
148
147
  +media-tablet-landscape-up()
149
- // narrow 4-up home card (~256px): the price section (rates + "Zum Angebot" button) needs
150
- // ~150px or it overflows the frame, so give the price column the larger share and the info
151
- // (left) column the smaller one; minmax(0,…) keeps both tracks inside the card so nothing
152
- // is clipped and the info spec text wraps instead of spilling out.
153
- grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
148
+ grid-template-columns: 120px 1fr;
154
149
  border: 1px solid rgba(76, 78, 100, 0.12);
155
150
  border-radius: 10px;
156
151
  margin-bottom: 0;
@@ -221,66 +216,6 @@
221
216
  .gridAreaImage
222
217
  grid-area: image;
223
218
 
224
- // ADV-70: plug-in consumption/CO2 line — dedicated full-width row BELOW the specs table /
225
- // price block ("Zum Angebot") and ABOVE the equipment text, in small grey text. The
226
- // .vehicleWrapNewPlugin grid inserts a full-width 'consumption' row for every externalised
227
- // card type (search / landing / main / comparable).
228
- .vehicle.vehicleWrapNewPlugin
229
- grid-template-areas:
230
- 'title title'\
231
- 'image image'\
232
- 'info price'\
233
- 'consumption consumption'\
234
- 'seoText seoText'
235
-
236
- // SRL/search 3-column desktop: the consumption line sits in the INFO column only
237
- // (starts AND ends under the spec block, not under the image and not into the price
238
- // column). image + price span rows 2-3 so the "Zum Angebot" button bottom-aligns
239
- // with the consumption line.
240
- &.vehicleWrapSearch
241
- +media-tablet-landscape-up()
242
- grid-template-areas:
243
- 'title title price'\
244
- 'image info price'\
245
- 'image consumption price'
246
- // No divider on the DESKTOP search card — the consumption sits inside the info
247
- // column (button-aligned) where a top line is unwanted; keep it on mobile only.
248
- & > .gridAreaConsumption
249
- border-top: 0;
250
- margin-top: 0;
251
-
252
- // Favorites desktop: consumption sits in the info column between the image and the
253
- // price/buttons column, button-aligned — same as the SRL card.
254
- &.vehicleWrapFavorite
255
- +media-tablet-landscape-up()
256
- grid-template-areas:
257
- 'title title price'\
258
- 'image info price'\
259
- 'image consumption price'
260
-
261
- .gridAreaConsumption
262
- grid-area: consumption;
263
- width: 100%;
264
- box-sizing: border-box;
265
- // ADV-88: a divider above the externalised consumption/CO2 line on EVERY card surface
266
- // it appears on (landing / main = home+CDP-comparable / search / favorite). The element
267
- // only renders for new plug-in hybrids, so the line shows exactly for the task's cars;
268
- // it spans the full row width where the row is full-width (mobile + main/landing), and
269
- // the info-column width on the desktop search/favorite layout. Sets the line apart from
270
- // the spec/price/"Zum Angebot" block above it.
271
- border-top: 1px solid rgba(76, 78, 100, 0.12);
272
- // a few px of space ABOVE the divider so the line doesn't hug the price/"Zum Angebot" block.
273
- margin-top: 6px;
274
- padding: 6px 10px 2px 10px;
275
- font-size: 9px;
276
- line-height: 1.4;
277
- color: rgba(76, 78, 100, 0.87);
278
- word-break: break-word;
279
-
280
- span
281
- font-size: 9px !important;
282
- line-height: 1.4 !important;
283
-
284
219
  .wrapAlternativeData
285
220
  display flex
286
221
  font-size: 12px;
@@ -1,7 +1,6 @@
1
1
  import React, { memo, FunctionComponent, ReactNode, MouseEvent, createElement } from 'react';
2
2
  import classnames from 'classnames';
3
3
  import _get from 'lodash/get';
4
- import getCardDecoratedProps from '../../framework/vehiclesProps/decoratedLightProps';
5
4
  import LazyLoad from 'react-lazyload';
6
5
  import withLabel from '../_common/withLabel/withLabel';
7
6
  import withStats, { IStatsWrapperProps } from '../_common/withStats/withStats';
@@ -13,7 +12,6 @@ import VehicleTitle from './VehicleData/VehicleTitle/VehicleTitle';
13
12
  import SeoText from './SeoText/SeoText';
14
13
  import VehicleInfo from './VehicleData/VehicleInfo/VehicleInfo';
15
14
  import VehiclePrice from './VehicleData/VehiclePrice/VehiclePrice';
16
- import { PLACEHOLDER_IMAGE_SMALL_URL } from '../../framework/constants/common';
17
15
  import {
18
16
  IVehicleInfo,
19
17
  IPrice,
@@ -149,32 +147,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
149
147
 
150
148
  const combineRefAlternative = isAlternative || isReferenceSearch;
151
149
 
152
- // ADV-88: on the narrow landing/main recommendation cards the long plug-in consumption line
153
- // doesn't fit the slim `info` column — render it as its own full-width row below the price
154
- // block (under "Zum Angebot") instead, and suppress it inside VehicleInfo to avoid duplication.
155
- // ADV-88: ANY plug-in hybrid (new or used) carries the long weighted+discharged consumption/CO2
156
- // line — externalise it to a full-width row so it doesn't overflow the narrow info column. Gated
157
- // on hybridPlugin only, no condition check.
158
- // ADV-88: "is a hybrid car" is determined by fuel type (hybrid electric + diesel/petrol), not hybridPlugin.
159
- const cardFuel = consumption ? (consumption as any).fuel : undefined;
160
- const isPlugin = cardFuel === 'selector_fuel_hybridElectricalDiesel'
161
- || cardFuel === 'selector_fuel_hybridElectricalPetrol';
162
- const externalizeConsumption = isPlugin
163
- && (vehicleComponentName === 'landing' || vehicleComponentName === 'main'
164
- || vehicleComponentName === 'search' || vehicleComponentName === 'comparable'
165
- || vehicleComponentName === 'favorite');
166
- let pluginConsumptionNode: ReactNode = null;
167
- if (externalizeConsumption) {
168
- const decoCar = {
169
- consumption,
170
- environmentEmissions,
171
- engineData,
172
- mainData: { condition: _get(info, 'condition') }
173
- };
174
- const deco = getCardDecoratedProps(decoCar, t, language) as any;
175
- pluginConsumptionNode = _get(deco, 'consumptionCombinedAlternateView.value', null);
176
- }
177
-
178
150
  const label = {
179
151
  labelVisible: isTop,
180
152
  labelWrapperClassName: styles.labelWrapper
@@ -189,7 +161,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
189
161
  { [styles.vehicleWrapMyVeicles]: vehicleComponentName === 'myVehicles' },
190
162
  { [styles.vehicleWrapFavorite]: vehicleComponentName === 'favorite' },
191
163
  { [styles.vehicleWrapRecently]: vehicleComponentName === 'recently' },
192
- { [styles.vehicleWrapNewPlugin]: externalizeConsumption },
193
164
  { [styles.topVehicle]: isTop },
194
165
  { [styles.disableBorder]: minimizeData },
195
166
  { [styles.isFirstReferenceCar]: isReferenceSearch && index === 0 },
@@ -243,7 +214,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
243
214
  target,
244
215
  rel,
245
216
  engineData,
246
- suppressConsumption: externalizeConsumption,
247
217
  ...price,
248
218
  ...info
249
219
  };
@@ -270,9 +240,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
270
240
  typeAlternative,
271
241
  isAlternative,
272
242
  showCompareCheckboxes,
273
- // ADV-88: hide the "monatlich z.B." price-column header on exactly the cards that show
274
- // the externalised consumption row (new plug-in hybrids) so the price column rises.
275
- suppressMonthlyFrom: externalizeConsumption && !!pluginConsumptionNode,
276
243
  ...price,
277
244
  ...compareProps
278
245
  };
@@ -314,12 +281,7 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
314
281
  target,
315
282
  rel,
316
283
  className: `${styles.redirectClassLink} ${styles.gridAreaTitle}`,
317
- onClick: () => localStorage.setItem(
318
- 'activeTabCDP',
319
- _get(price, 'leasing.isActive', false)
320
- ? t('vehicleProps:title.leasing')
321
- : t('vehicleProps:title.financing')
322
- ),
284
+ onClick: () => localStorage.setItem('activeTabCDP', t('vehicleProps:title.financing')),
323
285
  href: url
324
286
  })}
325
287
 
@@ -372,19 +334,11 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
372
334
  target,
373
335
  rel,
374
336
  className: `${styles.redirectClassLink} ${styles.gridAreaImage}`,
375
- onClick: () => localStorage.setItem(
376
- 'activeTabCDP',
377
- _get(price, 'leasing.isActive', false)
378
- ? t('vehicleProps:title.leasing')
379
- : t('vehicleProps:title.financing')
380
- ),
337
+ onClick: () => localStorage.setItem('activeTabCDP', t('vehicleProps:title.financing')),
381
338
  href: url
382
339
  })}
383
340
  <VehicleInfo {...vehicleInfoProps} />
384
341
  <VehiclePrice {...vehiclePriceProps} />
385
- {externalizeConsumption && pluginConsumptionNode ? (
386
- <div className={styles.gridAreaConsumption}>{pluginConsumptionNode}</div>
387
- ) : null}
388
342
  {seoText ? (
389
343
  <a className={`${styles.redirectClassLink} ${styles.gridAreaSeoText}`} href={url}>
390
344
  <SeoText seoText={seoText} />
@@ -412,7 +366,7 @@ VehicleSmallCard.defaultProps = {
412
366
  baseUrl: '',
413
367
  typeAlternative: '',
414
368
  offerSource: '',
415
- src: PLACEHOLDER_IMAGE_SMALL_URL,
369
+ src: 'https://images.auto.de/noimage/small',
416
370
  environmentEmissions: null,
417
371
  language: 'en',
418
372
  consumption: null,
@@ -1,7 +1,4 @@
1
- import { styled as muiStyled, createTheme } from '@mui/material/styles';
2
-
3
- // Cast to any to bypass MUI 5.9 styled() overload mismatch with strict TS in consumers (fe-landing).
4
- const styled: any = muiStyled;
1
+ import { styled, createTheme } from '@mui/material/styles';
5
2
 
6
3
  export const AccordionSummaryContent = styled('div')({
7
4
  display: 'flex',
@@ -7,13 +7,12 @@ import ClickAwayListener from '@mui/material/ClickAwayListener';
7
7
  import { debounce } from 'lodash';
8
8
 
9
9
  interface IMaterialTooltip {
10
- text: React.ReactNode;
10
+ text: string;
11
11
  icon?: string;
12
12
  className?: string;
13
13
  placement?: 'bottom-end' | 'bottom-start' | 'bottom' | 'left-end' | 'left-start' | 'left' | 'right-end' | 'right-start' | 'right' | 'top-end' | 'top-start' | 'top';
14
14
  disabled?: Boolean;
15
15
  zindex?: number;
16
- disablePortal?: boolean;
17
16
  }
18
17
 
19
18
  const LightTooltip = styled(({ className, ...props }: TooltipProps) => (
@@ -33,7 +32,7 @@ const LightTooltip = styled(({ className, ...props }: TooltipProps) => (
33
32
  }
34
33
  }));
35
34
 
36
- const MaterialTooltip = ({ text, placement, className, disabled, zindex, disablePortal = true }: IMaterialTooltip) => {
35
+ const MaterialTooltip = ({ text, placement, className, disabled, zindex }: IMaterialTooltip) => {
37
36
  const [isOpen, setIsOpen] = useState(false);
38
37
 
39
38
  const onHandleMenuOpen = (event: any) => {
@@ -72,7 +71,7 @@ const MaterialTooltip = ({ text, placement, className, disabled, zindex, disable
72
71
  className={className}
73
72
  zindex={zindex}
74
73
  PopperProps={{
75
- disablePortal
74
+ disablePortal: true
76
75
  }}
77
76
  >
78
77
  <IconButton>
@@ -150,20 +150,10 @@ $indent = 10px
150
150
  height: 18px
151
151
  font-size: 10px
152
152
  min-width: 30px
153
- .badgeFull
154
- display: none
155
- .badgeShort
156
- display: inline
157
153
 
158
154
  .badgeItem
159
155
  // hook class for compact-mode overrides
160
156
 
161
- .badgeFull
162
- display: inline
163
-
164
- .badgeShort
165
- display: none
166
-
167
157
  .priceDifferencePerCent
168
158
  margin-left: auto;
169
159
 
@@ -69,8 +69,6 @@ export const transformDataForDecoratedCar = (car: any) => {
69
69
  bootCapacity: _get(car, 'sizeVolumeWeight.cargoCapacity', null),
70
70
  capacityLoad: _get(car, 'sizeVolumeWeight.completeCapacity', null),
71
71
  wltpCo2: _get(car, 'environmentEmissions.wltpCo2', null),
72
- wltpEnergyEfficiencyClass: _get(car, 'environmentEmissions.wltpEnergyEfficiencyClass', null),
73
- wltpDischargedEnergyEfficiencyClass: _get(car, 'environmentEmissions.wltpDischargedEnergyEfficiencyClass', null),
74
72
  pluginHybrid: _get(car, 'engineData.pluginHybrid', null),
75
73
  wltpCombined: _get(car, 'consumption.wltpCombined', null),
76
74
  wltpPowerCombined: _get(car, 'consumption.wltpPowerCombined', null),
@@ -1,12 +1,8 @@
1
- const _rawHost = typeof window !== 'undefined' ? window.location.host.replace('www.', '') : 'auto.de';
2
- const _isIP = /^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(_rawHost);
3
- const _imgBase = _isIP ? 'https://images.auto.de' : 'https://images.' + _rawHost;
1
+ export const SITE_DOMAIN: string = 'https://www.auto.de';
4
2
 
5
- export const SITE_DOMAIN: string = typeof window !== 'undefined' ? 'https://' + window.location.host : 'https://www.auto.de';
6
-
7
- export const PLACEHOLDER_IMAGE: string = _imgBase + '/noimage/';
8
- export const PLACEHOLDER_IMAGE_SMALL_URL: string = _imgBase + '/noimage/small';
9
- export const PLACEHOLDER_IMAGE_LARGE_URL: string = _imgBase + '/noimage/large';
3
+ export const PLACEHOLDER_IMAGE: string = 'https://images.auto.de/noimage/';
4
+ export const PLACEHOLDER_IMAGE_SMALL_URL: string = `https://images.auto.de/noimage/noimage/small`;
5
+ export const PLACEHOLDER_IMAGE_LARGE_URL: string = `https://images.auto.de/noimage/noimage/large`;
10
6
 
11
7
  export const QUOTES_SLIDES_TO_SHOW_DEFAULT = 3;
12
8
 
@@ -115,7 +115,6 @@ export interface IVehicleInfo {
115
115
  url?: string;
116
116
  target?: string;
117
117
  rel?: string;
118
- leasing?: ILeasing;
119
118
  }
120
119
 
121
120
  export interface IVehicleTitleProps {