@bytebrand/fe-ui-core 4.8.109 → 4.8.111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bytebrand-fe-ui-core-4.8.110.tgz +0 -0
- package/media/locales/de/promoSlider.json +0 -1
- package/media/locales/en/promoSlider.json +0 -1
- package/package.json +5 -3
- package/source/components/AccordionWidget/AccordionWidget.styl +1 -13
- package/source/components/AccordionWidget/AccordionWidget.tsx +8 -49
- package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +2 -2
- package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +0 -24
- package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +2 -1
- package/source/components/OfferPanel/OfferPanel.tsx +1 -1
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +11 -23
- package/source/components/VehicleDetailedSidebar/partials/Properties.styl +0 -5
- package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +18 -56
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +6 -2
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +0 -42
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +11 -23
- package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +5 -60
- package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +12 -36
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +2 -3
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +7 -18
- package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +1 -4
- package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +2 -3
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +1 -1
- package/source/components/VehicleSmallCard/VehicleSmallCard.styl +2 -67
- package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +8 -50
- package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.styled.tsx +1 -4
- package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +3 -4
- package/source/components/_common/withStats/withStats.styl +0 -10
- package/source/components/_common/withStats/withStats.tsx +9 -4
- package/source/framework/DataTransformers.ts +0 -2
- package/source/framework/constants/common.ts +4 -8
- package/source/framework/types/types.ts +0 -1
- package/source/framework/vehiclesProps/decoratedLightProps.tsx +18 -109
- package/source/framework/vehiclesProps/decoratedProps.tsx +9 -68
- package/source/framework/vehiclesProps/vehicleDetails.ts +1 -3
- package/source/locales/data.ts +3 -13
- package/.husky/pre-push +0 -4
- package/.storybook/addons.js +0 -4
- package/.storybook/config.js +0 -64
- package/.storybook/postcss.config.js +0 -6
- package/.storybook/preview-head.html +0 -10
- package/.storybook/webpack.config.js +0 -130
- package/__tests__/components/Checkout/OrderOverviewItem/OrderOverviewItem.test.tsx +0 -42
- package/__tests__/components/Checkout/PaymentTypeCard/PaymentTypeCard.test.tsx +0 -50
- package/__tests__/components/Checkout/RadioGroup.test.tsx +0 -95
- package/__tests__/components/Checkout/ServiceCardWrapper.test.tsx +0 -53
- package/__tests__/components/Checkout/Switcher.test.tsx +0 -43
- package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +0 -613
- package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +0 -335
- package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/AdditionalOrderInfo.test.tsx +0 -127
- package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCar.test.tsx +0 -58
- package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCard.test.tsx +0 -74
- package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusSection.test.tsx +0 -62
- package/__tests__/components/UserDasboardPage/sections/RequestedCarsSection/RequestedCarsSection.test.tsx +0 -117
- package/__tests__/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.test.tsx +0 -58
- package/__tests__/components/VehicleSmallCard/VehicleInfo.test.tsx +0 -88
- package/__tests__/components/VehicleSmallCard/VehicleTitle.test.tsx +0 -91
- package/__tests__/components/_common/Badge/Badge.test.tsx +0 -15
- package/__tests__/components/_common/IconSVG/IconSVG.test.tsx +0 -23
- package/__tests__/components/_common/Image/Image.test.tsx +0 -82
- package/__tests__/components/_common/MaterialAutocomplete/MaterialAutocomplete.test.tsx +0 -49
- package/__tests__/components/_common/MaterialDatePicker/MaterialDatePicker.test.tsx +0 -54
- package/__tests__/components/_common/MaterialField/MaterialField.test.tsx +0 -58
- package/__tests__/components/_common/StarButton/StarButton.test.tsx +0 -46
- package/__tests__/mockedData/financingConfig.js +0 -202
- package/__tests__/mockedData/mockedPendingRequestedCar.js +0 -69
- package/__tests__/utils/CommonUtils/addPrefixToKeys.test.ts +0 -18
- package/__tests__/utils/CommonUtils/arrToObj.test.js +0 -32
- package/__tests__/utils/CommonUtils/checkRangeValuesOnEqual.test.ts +0 -17
- package/__tests__/utils/CommonUtils/fixNumber.test.ts +0 -20
- package/__tests__/utils/CommonUtils/formatMileage.test.ts +0 -8
- package/__tests__/utils/CommonUtils/getChipFilterValue.test.ts +0 -22
- package/__tests__/utils/CommonUtils/getFormattedNumber.test.ts +0 -19
- package/__tests__/utils/CommonUtils/getFormattedPrice.test.ts +0 -19
- package/__tests__/utils/CommonUtils/getGroupValuesForQuery.test.ts +0 -51
- package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +0 -64
- package/__tests__/utils/CommonUtils/getPriceRating.test.ts +0 -26
- package/__tests__/utils/CommonUtils/getPriceRatingConfig.test.ts +0 -33
- package/__tests__/utils/CommonUtils/preloadNearbyImages.test.ts +0 -9
- package/__tests__/utils/CommonUtils/sliceLessThan.test.ts +0 -23
- package/__tests__/utils/CommonUtils/sliceMoreThan.test.ts +0 -23
- package/package.json.bak +0 -118
- package/source/components/AdvantageItem/AdvantageItem.story.js +0 -23
- package/source/components/Alternative/Dealer.story.js +0 -32
- package/source/components/Alternative/Dealer.story.styl +0 -3
- package/source/components/Breadcrumbs/Breadcrumbs.story.js +0 -40
- package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.story.js +0 -45
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.js +0 -243
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.styl +0 -21
- package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.js +0 -105
- package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.styl +0 -37
- package/source/components/Checkout/Switcher/Switcher.story.js +0 -41
- package/source/components/Checkout/Switcher/Switcher.story.styl +0 -2
- package/source/components/CompactSearchWidget/CompactSearchWidget.story.js +0 -187
- package/source/components/ContactForm/ContactForm.story.js +0 -94
- package/source/components/ContactForm/ContactForm.story.styl +0 -0
- package/source/components/ContactInfo/ContactInfo.story.js +0 -58
- package/source/components/CustomerQuote/CustomerQuote.story.js +0 -41
- package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.js +0 -73
- package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.styl +0 -5
- package/source/components/FormattedNumber/FormattedNumber.story.js +0 -114
- package/source/components/InfoBlocks/InfoBlockWrapper.story.js +0 -101
- package/source/components/InfoBlocks/InfoBlockWrapper.story.styl +0 -46
- package/source/components/OfferPanel/AboAccordion/AboFaq/AboFaq.story.js +0 -97
- package/source/components/OfferPanel/OfferPanel.story.js +0 -139
- package/source/components/OfferPanel/RangeGroup/RangeGroup.story.js +0 -35
- package/source/components/OfferPanel/RangeGroup/RangeGroup.story.styl +0 -3
- package/source/components/PriceRating/PriceRating.story.js +0 -39
- package/source/components/PriceRating/PriceRating.story.styl +0 -2
- package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.js +0 -78
- package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.styl +0 -11
- package/source/components/RateSearchValue/RateSearchValue.story.js +0 -78
- package/source/components/RateSearchValue/RateSearchValue.story.styl +0 -2
- package/source/components/RateSearchWidget/RateSearchWidget.story.js +0 -57
- package/source/components/RateSearchWidget/RateSearchWidget.story.styl +0 -12
- package/source/components/SearchFilters/FiltersFactory.story.js +0 -273
- package/source/components/SearchPage/Filters/MakeModel/MakeModel.story.js +0 -12
- package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.js +0 -834
- package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.styl +0 -40
- package/source/components/SearchWidget/SearchWidget.story.js +0 -191
- package/source/components/SearchWidget/SearchWidget.story.styl +0 -6
- package/source/components/Stepper/Stepper.story.js +0 -119
- package/source/components/Stepper/Stepper.story.styl +0 -41
- package/source/components/Theme.story.js +0 -36
- package/source/components/Theme.story.styl +0 -85
- package/source/components/TickerText/TickerText.story.js +0 -17
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.story.js +0 -95
- package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.story.js +0 -97
- package/source/components/Vehicle/VehicleConsumption/VehicleConsumption.story.js +0 -31
- package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.story.js +0 -247
- package/source/components/VehicleCompared/CompareGeneral/CompareGeneral.story.js +0 -30
- package/source/components/VehicleCompared/ComparePrice/ComparePrice.story.js +0 -18
- package/source/components/VehicleCompared/CompareTitle/CompareTitle.story.js +0 -19
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.story.js +0 -44
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.story.js +0 -120
- package/source/components/VehiclePromoSlider/VehiclePromoInfo/VehiclePromoInfo.story.js +0 -42
- package/source/components/VehiclePromoSlider/VehiclePromoSlide/VehiclePromoSlide.story.js +0 -62
- package/source/components/VehiclePromoSlider/VehiclePromoSlider.story.js +0 -42
- package/source/components/VehicleSmallCard/VehicleSmallCard.story.js +0 -412
- package/source/components/VehicleSmallCard/VehicleSmallCard.story.styl +0 -56
- package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.js +0 -199
- package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.styl +0 -40
- package/source/components/_common/Accordion/Accordion.story.js +0 -36
- package/source/components/_common/Badge/Badge.story.js +0 -27
- package/source/components/_common/Badge/Badge.story.styl +0 -5
- package/source/components/_common/Bubble/Bubble.story.js +0 -52
- package/source/components/_common/Button/Button.story.js +0 -52
- package/source/components/_common/Button/Button.story.styl +0 -5
- package/source/components/_common/ButtonOld/Button.story.js +0 -54
- package/source/components/_common/ButtonOld/Button.story.styl +0 -5
- package/source/components/_common/Checkbox/Checkbox.story.js +0 -85
- package/source/components/_common/Checkbox/Checkbox.story.styl +0 -14
- package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.js +0 -126
- package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.styl +0 -14
- package/source/components/_common/Chip/Chip.story.js +0 -43
- package/source/components/_common/ChipList/ChipList.story.js +0 -36
- package/source/components/_common/DropDown/DropDown.story.js +0 -35
- package/source/components/_common/ExpandablePanel/ExpandablePanel.story.js +0 -41
- package/source/components/_common/Histogram/Histogram.story.js +0 -51
- package/source/components/_common/IconSVG/IconSVG.story.js +0 -21
- package/source/components/_common/IconSVG/IconSVG.story.styl +0 -25
- package/source/components/_common/Image/Image.story.js +0 -142
- package/source/components/_common/Image/Image.story.styl +0 -18
- package/source/components/_common/ImagesSet/ImagesSet.story.js +0 -34
- package/source/components/_common/ImagesSet/ImagesSet.story.styl +0 -4
- package/source/components/_common/Loader/Loader.story.js +0 -21
- package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.story.js +0 -49
- package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.js +0 -45
- package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.styl +0 -6
- package/source/components/_common/MaterialField/MaterialField.story.js +0 -87
- package/source/components/_common/MaterialField/MaterialField.story.styl +0 -34
- package/source/components/_common/MaterialSelect/MaterialSelect.story.js +0 -52
- package/source/components/_common/MaterialSelect/MaterialSelect.story.styl +0 -6
- package/source/components/_common/MaterialStepButton/MaterialStepButton.story.js +0 -47
- package/source/components/_common/MaterialStepButton/MaterialStepButton.story.styl +0 -6
- package/source/components/_common/MaterialSwitch/MaterialSwitch.story.js +0 -17
- package/source/components/_common/MaterialTooltip/MaterialTooltip.story.js +0 -10
- package/source/components/_common/Modal/Modal.story.js +0 -37
- package/source/components/_common/MuiGroupedSelect/MuiGroupedSelect.story.js +0 -21
- package/source/components/_common/PropertySelector/PSGroup.story.js +0 -93
- package/source/components/_common/PropertySelector/PSGroup.story.styl +0 -25
- package/source/components/_common/PropertySelector/ProperySelector.story.js +0 -83
- package/source/components/_common/Radio/FormRadioGroup.story.js +0 -28
- package/source/components/_common/Radio/FormRadioGroup.story.styl +0 -2
- package/source/components/_common/Radio/Radio.story.js +0 -54
- package/source/components/_common/Radio/RadioGroup.story.js +0 -90
- package/source/components/_common/Radio/RadioGroup.story.styl +0 -39
- package/source/components/_common/Range/Range.story.js +0 -46
- package/source/components/_common/Range/Range.story.styl +0 -5
- package/source/components/_common/SliderArrow/SliderArrow.story.js +0 -18
- package/source/components/_common/Tabs/Tabs.story.js +0 -56
- package/source/components/_common/TimePicker/TimePicker.story.js +0 -37
- package/source/components/_common/Tooltip/Tooltip.story.js +0 -28
- package/source/components/_common/UserMenu/MaterialMenu.story.js +0 -73
- package/source/components/_common/VehicleSlider/VehicleSlider.story.js +0 -99
- package/source/components/_common/VehicleSlider/VehicleSlider.story.styl +0 -0
- package/source/components/_common/withLabel/withLabel.story.js +0 -62
- package/source/components/_common/withPopover/withPopover.story.js +0 -48
- package/source/components/_common/withPopover/withPopover.story.styl +0 -54
- 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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
@@ -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
|
-
|
|
163
|
-
prefixOldPrice: false,
|
|
152
|
+
prefixOldPrice: vehicleComponentName === 'search' && !isMobileOnly && t('vehicleProps:value.prefixOldPrice'),
|
|
164
153
|
postfix: '3',
|
|
165
|
-
priceSub:
|
|
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:
|
|
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:
|
|
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
|
-
{
|
|
226
|
+
{vehicleComponentName !== 'favorite' && vehicleComponentName !== 'search' && !isMobileOnly && (
|
|
238
227
|
<span className={vehiclePriceTitleClassName}>{t('vehicleProps:title.monthlyFrom')}</span>
|
|
239
228
|
)}
|
|
240
|
-
{
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
@@ -40,6 +38,7 @@ interface IVehicleSmallCardProps {
|
|
|
40
38
|
isReferenceSearch?: boolean;
|
|
41
39
|
dashboardButtonText?: string;
|
|
42
40
|
showNewLabel?: boolean;
|
|
41
|
+
disableDownPaymentLocalStorage?: boolean;
|
|
43
42
|
CircularProgressbar?: any;
|
|
44
43
|
slider?: IVehicleSliderProps | IVehicleSliderForSRLProps;
|
|
45
44
|
stats?: IStatsWrapperProps;
|
|
@@ -110,6 +109,7 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
110
109
|
price,
|
|
111
110
|
seoText,
|
|
112
111
|
showNewLabel,
|
|
112
|
+
disableDownPaymentLocalStorage,
|
|
113
113
|
linkTag = 'a',
|
|
114
114
|
language,
|
|
115
115
|
className,
|
|
@@ -149,32 +149,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
149
149
|
|
|
150
150
|
const combineRefAlternative = isAlternative || isReferenceSearch;
|
|
151
151
|
|
|
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
152
|
const label = {
|
|
179
153
|
labelVisible: isTop,
|
|
180
154
|
labelWrapperClassName: styles.labelWrapper
|
|
@@ -189,7 +163,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
189
163
|
{ [styles.vehicleWrapMyVeicles]: vehicleComponentName === 'myVehicles' },
|
|
190
164
|
{ [styles.vehicleWrapFavorite]: vehicleComponentName === 'favorite' },
|
|
191
165
|
{ [styles.vehicleWrapRecently]: vehicleComponentName === 'recently' },
|
|
192
|
-
{ [styles.vehicleWrapNewPlugin]: externalizeConsumption },
|
|
193
166
|
{ [styles.topVehicle]: isTop },
|
|
194
167
|
{ [styles.disableBorder]: minimizeData },
|
|
195
168
|
{ [styles.isFirstReferenceCar]: isReferenceSearch && index === 0 },
|
|
@@ -209,7 +182,8 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
209
182
|
isReferenceSearch,
|
|
210
183
|
isAlternative,
|
|
211
184
|
typeAlternative,
|
|
212
|
-
showDownPayment: !!(offer as any)?.showDownPayment
|
|
185
|
+
showDownPayment: !!(offer as any)?.showDownPayment,
|
|
186
|
+
disableDownPaymentLocalStorage,
|
|
213
187
|
};
|
|
214
188
|
|
|
215
189
|
const favoriteProps = {
|
|
@@ -243,7 +217,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
243
217
|
target,
|
|
244
218
|
rel,
|
|
245
219
|
engineData,
|
|
246
|
-
suppressConsumption: externalizeConsumption,
|
|
247
220
|
...price,
|
|
248
221
|
...info
|
|
249
222
|
};
|
|
@@ -270,9 +243,6 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
270
243
|
typeAlternative,
|
|
271
244
|
isAlternative,
|
|
272
245
|
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
246
|
...price,
|
|
277
247
|
...compareProps
|
|
278
248
|
};
|
|
@@ -294,6 +264,7 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
294
264
|
price,
|
|
295
265
|
showNewLabel,
|
|
296
266
|
showDownPayment: !!(offer as any)?.showDownPayment,
|
|
267
|
+
disableDownPaymentLocalStorage,
|
|
297
268
|
...stats
|
|
298
269
|
};
|
|
299
270
|
|
|
@@ -314,12 +285,7 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
314
285
|
target,
|
|
315
286
|
rel,
|
|
316
287
|
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
|
-
),
|
|
288
|
+
onClick: () => localStorage.setItem('activeTabCDP', t('vehicleProps:title.financing')),
|
|
323
289
|
href: url
|
|
324
290
|
})}
|
|
325
291
|
|
|
@@ -372,19 +338,11 @@ const VehicleSmallCard: FunctionComponent<IVehicleSmallCardProps> = (props) => {
|
|
|
372
338
|
target,
|
|
373
339
|
rel,
|
|
374
340
|
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
|
-
),
|
|
341
|
+
onClick: () => localStorage.setItem('activeTabCDP', t('vehicleProps:title.financing')),
|
|
381
342
|
href: url
|
|
382
343
|
})}
|
|
383
344
|
<VehicleInfo {...vehicleInfoProps} />
|
|
384
345
|
<VehiclePrice {...vehiclePriceProps} />
|
|
385
|
-
{externalizeConsumption && pluginConsumptionNode ? (
|
|
386
|
-
<div className={styles.gridAreaConsumption}>{pluginConsumptionNode}</div>
|
|
387
|
-
) : null}
|
|
388
346
|
{seoText ? (
|
|
389
347
|
<a className={`${styles.redirectClassLink} ${styles.gridAreaSeoText}`} href={url}>
|
|
390
348
|
<SeoText seoText={seoText} />
|
|
@@ -412,7 +370,7 @@ VehicleSmallCard.defaultProps = {
|
|
|
412
370
|
baseUrl: '',
|
|
413
371
|
typeAlternative: '',
|
|
414
372
|
offerSource: '',
|
|
415
|
-
src:
|
|
373
|
+
src: 'https://images.auto.de/noimage/small',
|
|
416
374
|
environmentEmissions: null,
|
|
417
375
|
language: 'en',
|
|
418
376
|
consumption: null,
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { styled
|
|
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:
|
|
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
|
|
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
|
|