@bytebrand/fe-ui-core 4.1.172 → 4.1.174
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/common.ts +5 -0
- package/media/svg/common/arrow_breadcrumps.svg +2 -2
- package/media/svg/common/home.svg +6 -8
- package/media/svg/common/whyAutodeIconSet-F.svg +8 -12
- package/media/svg/common/whyAutodeIconSet-G.svg +6 -8
- package/media/svg/common/whyAutodeIconSet-Q.svg +5 -15
- package/media/svg/common/whyAutodeIconSet-R.svg +8 -13
- package/media/svg/infoBlocks/whyAutodeIconSet-F.svg +8 -8
- package/media/svg/infoBlocks/whyAutodeIconSet-G.svg +7 -6
- package/media/svg/infoBlocks/whyAutodeIconSet-Q.svg +5 -11
- package/media/svg/infoBlocks/whyAutodeIconSet-R.svg +8 -9
- package/package.json +1 -1
- package/source/components/AccordionWidget/AccordionWidget.styl +0 -3
- package/source/components/AccordionWidget/AccordionWidget.tsx +1 -3
- package/source/components/Alternative/DealerInfo.styl +7 -1
- package/source/components/Alternative/DealerInfo.tsx +64 -38
- package/source/components/Breadcrumbs/Breadcrumbs.styl +31 -19
- package/source/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
- package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.styl +11 -18
- package/source/components/PriceRating/PriceRating.styl +1 -0
- package/source/components/SearchFilters/common/RangeControlled/RangeControlled.tsx +2 -1
- package/source/components/SearchPage/SearchTopBar/SearchTopBar.styl +13 -3
- package/source/components/SearchPage/SearchTopBar/SearchTopBar.tsx +3 -3
- package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.styl +23 -17
- package/source/components/VehicleDetailedSidebar/partials/Properties.styl +0 -4
- package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +1 -1
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +54 -40
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +38 -16
- package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +47 -18
- package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +13 -6
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +48 -28
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +50 -16
- package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +6 -8
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +31 -12
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +8 -3
- package/source/components/VehicleSmallCard/VehicleSmallCard.styl +51 -19
- package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +39 -9
- package/source/components/_common/Badge/Badge.styl +13 -7
- package/source/components/_common/Badge/Badge.tsx +1 -1
- package/source/components/_common/Button/Button.styled.tsx +13 -8
- package/source/components/_common/Button/Button.tsx +1 -1
- package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +14 -4
- package/source/components/_common/IconSVG/IconSVG.story.js +1 -1
- package/source/components/_common/IconSVG/IconSVGConfig.tsx +90 -1
- package/source/components/_common/IconSVG/SVG/CloseIconSelect.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/common/AddressDashboard.tsx +29 -0
- package/source/components/_common/IconSVG/SVG/common/CallbackDashboard.tsx +30 -0
- package/source/components/_common/IconSVG/SVG/common/CloseGrey.tsx +22 -0
- package/source/components/_common/IconSVG/SVG/common/DashboardQuestionMark.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/common/DeliveryDashboard.tsx +25 -0
- package/source/components/_common/IconSVG/SVG/common/EditPriceIcon.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/common/HandingOverDashboard.tsx +32 -0
- package/source/components/_common/IconSVG/SVG/common/MenuGrey.tsx +22 -0
- package/source/components/_common/IconSVG/SVG/common/MyOrderIcon.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/common/OrderReceivedDashboard.tsx +27 -0
- package/source/components/_common/IconSVG/SVG/common/PickupDashboard.tsx +30 -0
- package/source/components/_common/IconSVG/SVG/common/PreparationDashboard.tsx +29 -0
- package/source/components/_common/IconSVG/SVG/common/ProfileDashboard.tsx +24 -0
- package/source/components/_common/IconSVG/SVG/common/RegistrationDashboard.tsx +31 -0
- package/source/components/_common/IconSVG/SVG/common/SliderEye.tsx +2 -3
- package/source/components/_common/IconSVG/SVG/common/StarRoundedCorners.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/flags/AT.tsx +19 -0
- package/source/components/_common/IconSVG/SVG/flags/BE.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/BG.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/CH.tsx +22 -0
- package/source/components/_common/IconSVG/SVG/flags/CZ.tsx +18 -0
- package/source/components/_common/IconSVG/SVG/flags/DE.tsx +18 -0
- package/source/components/_common/IconSVG/SVG/flags/DK.tsx +18 -0
- package/source/components/_common/IconSVG/SVG/flags/ES.tsx +2585 -0
- package/source/components/_common/IconSVG/SVG/flags/FI.tsx +18 -0
- package/source/components/_common/IconSVG/SVG/flags/FR.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/GB.tsx +26 -0
- package/source/components/_common/IconSVG/SVG/flags/HR.tsx +135 -0
- package/source/components/_common/IconSVG/SVG/flags/HU.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/IT.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/LI.tsx +106 -0
- package/source/components/_common/IconSVG/SVG/flags/LU.tsx +18 -0
- package/source/components/_common/IconSVG/SVG/flags/NL.tsx +18 -0
- package/source/components/_common/IconSVG/SVG/flags/NO.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/PL.tsx +19 -0
- package/source/components/_common/IconSVG/SVG/flags/RO.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/RU.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/SE.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/flags/SI.tsx +54 -0
- package/source/components/_common/IconSVG/SVG/flags/SK.tsx +35 -0
- package/source/components/_common/IconSVG/SVG/flags/UA.tsx +19 -0
- package/source/components/_common/IconSVG/SVG/searchWidgets/drive/AllWheelDrive.tsx +2 -2
- package/source/components/_common/IconSVG/SVG/searchWidgets/drive/FrontWheelDrive.tsx +2 -2
- package/source/components/_common/IconSVG/SVG/searchWidgets/drive/RearWheelDrive.tsx +2 -2
- package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelDiesel.tsx +4 -14
- package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelPetrol.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/settings/RemoveEye.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/settings/RemoveEyeOff.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/slider/360New.tsx +20 -0
- package/source/components/_common/IconSVG/SVG/vehicle/CarAvailability.tsx +3 -3
- package/source/components/_common/IconSVG/SVG/vehicle/CheckoutChecked.tsx +2 -2
- package/source/components/_common/IconSVG/SVG/vehicle/Date.tsx +2 -2
- package/source/components/_common/IconSVG/SVG/vehicle/Door.tsx +5 -7
- package/source/components/_common/IconSVG/SVG/vehicle/FuelConsumption.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/vehicle/NewCar.tsx +7 -9
- package/source/components/_common/IconSVG/SVG/vehicle/Ps.tsx +1 -1
- package/source/components/_common/IconSVG/SVG/vehicle/SelectorGearboxAutomatic.tsx +2 -2
- package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.styled.tsx +17 -1
- package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.tsx +3 -4
- package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +6 -3
- package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.tsx +28 -3
- package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +0 -7
- package/source/components/_common/MaterialSelect/MaterialSelect.tsx +16 -9
- package/source/components/_common/Modal/CookieModal.tsx +10 -7
- package/source/components/_common/Modal/Modal.styled.tsx +2 -1
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +15 -3
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +5 -3
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +11 -1
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +2 -0
- package/source/components/_common/TimePicker/TimePicker.styl +3 -1
- package/source/components/_common/TimePicker/TimePicker.tsx +6 -2
- package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +2 -1
- package/source/components/_common/withStats/withStats.styl +43 -87
- package/source/components/_common/withStats/withStats.tsx +17 -8
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +7 -3
- package/source/framework/constants/common.ts +15 -3
- package/source/framework/factories/BreadcrumbsFactory.tsx +19 -8
- package/source/framework/factories/FactoryTypes.d.ts +1 -0
- package/source/framework/types/types.ts +4 -2
- package/source/framework/utils/CommonUtils.ts +26 -9
- package/source/framework/vehiclesProps/decoratedProps.tsx +19 -23
- package/source/framework/vehiclesProps/equipment.ts +4 -3
- package/source/locales/data.ts +2 -0
- package/source/theme/priceReviewColors.styl +3 -1
- package/utils.ts +16 -0
|
@@ -34,6 +34,8 @@ export interface IVehicleModalProps {
|
|
|
34
34
|
onChange: (value: any) => void;
|
|
35
35
|
items: IItems[];
|
|
36
36
|
selectClassName?: string;
|
|
37
|
+
amountOfItems?: number;
|
|
38
|
+
customDimensionsIcon?: boolean;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
const ITEM_HEIGHT = isMobileOnly ? 56 : 48;
|
|
@@ -59,7 +61,9 @@ const MaterialSelect: React.FC<IVehicleModalProps> = ({
|
|
|
59
61
|
selectClassName,
|
|
60
62
|
required,
|
|
61
63
|
items,
|
|
62
|
-
icon
|
|
64
|
+
icon,
|
|
65
|
+
customDimensionsIcon,
|
|
66
|
+
amountOfItems = MENU_ITEMS
|
|
63
67
|
}: IVehicleModalProps) => {
|
|
64
68
|
const [newValue, setValue] = useState('');
|
|
65
69
|
const [multipleValue, setMultipleValue] = React.useState([]);
|
|
@@ -116,11 +120,14 @@ const MaterialSelect: React.FC<IVehicleModalProps> = ({
|
|
|
116
120
|
key={`${value}_${index}`}
|
|
117
121
|
value={value}
|
|
118
122
|
disabled={setDisabled}
|
|
119
|
-
sx={setDisabled ? {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
} : null}
|
|
123
|
+
// sx={setDisabled ? {
|
|
124
|
+
// backgroundColor: '#e8e8e8',
|
|
125
|
+
// color: '#333',
|
|
126
|
+
// opacity: '1 !important'
|
|
127
|
+
// } : null}
|
|
128
|
+
sx={{
|
|
129
|
+
height: ITEM_HEIGHT
|
|
130
|
+
}}
|
|
124
131
|
>
|
|
125
132
|
{!!t ? t(`${namespace}${cbd ? ':' : '.'}${label}`) : getLabel(label, setDisabled)}
|
|
126
133
|
</MenuItem>
|
|
@@ -167,7 +174,7 @@ const MaterialSelect: React.FC<IVehicleModalProps> = ({
|
|
|
167
174
|
inputProps={{
|
|
168
175
|
className: selectClassName
|
|
169
176
|
}}
|
|
170
|
-
IconComponent={() => <ArrowSelect className={IconClassNames} name={!!icon ? icon : 'arrowSelect'} />}
|
|
177
|
+
IconComponent={() => <ArrowSelect customDimensions={customDimensionsIcon} className={IconClassNames} name={!!icon ? icon : 'arrowSelect'} />}
|
|
171
178
|
MenuProps={{
|
|
172
179
|
disablePortal: true,
|
|
173
180
|
disableAutoFocus: true,
|
|
@@ -179,8 +186,8 @@ const MaterialSelect: React.FC<IVehicleModalProps> = ({
|
|
|
179
186
|
PaperProps: {
|
|
180
187
|
sx: {
|
|
181
188
|
maxHeight: {
|
|
182
|
-
xs: MOBILE_ITEM_HEIGHT *
|
|
183
|
-
sm: ITEM_HEIGHT *
|
|
189
|
+
xs: MOBILE_ITEM_HEIGHT * amountOfItems + ITEM_PADDING_TOP,
|
|
190
|
+
sm: ITEM_HEIGHT * amountOfItems + ITEM_PADDING_TOP
|
|
184
191
|
}
|
|
185
192
|
}
|
|
186
193
|
},
|
|
@@ -7,13 +7,16 @@ const CookieModal = () => {
|
|
|
7
7
|
const { isVisible, toggleModal } = useModal();
|
|
8
8
|
const [modal, setModal] = useState('');
|
|
9
9
|
|
|
10
|
-
useEffect(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
useEffect(
|
|
11
|
+
() => {
|
|
12
|
+
const cookieConfig = localStorage.getItem('cookieConfig');
|
|
13
|
+
if (!cookieConfig) {
|
|
14
|
+
setModal('PREVIEW_COOKIE_MODAL');
|
|
15
|
+
toggleModal();
|
|
16
|
+
} else setTimeout(() => { updateCookieList(); }, 3000);
|
|
17
|
+
},
|
|
18
|
+
[]
|
|
19
|
+
);
|
|
17
20
|
|
|
18
21
|
const onClearModalState = () => {
|
|
19
22
|
setModal('');
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@import '../../../../../theme/mixins.styl';
|
|
2
|
+
|
|
1
3
|
.modalWrapper
|
|
2
4
|
padding: 16px 10px 25px 25px
|
|
3
5
|
text-align: center
|
|
@@ -14,7 +16,7 @@
|
|
|
14
16
|
|
|
15
17
|
.modalContent
|
|
16
18
|
font-family: sans-serif
|
|
17
|
-
font-size:
|
|
19
|
+
font-size: 14px;
|
|
18
20
|
line-height: 24px;
|
|
19
21
|
text-align: justify;
|
|
20
22
|
letter-spacing: 0.15px;
|
|
@@ -43,14 +45,24 @@
|
|
|
43
45
|
display: flex
|
|
44
46
|
justify-content: center
|
|
45
47
|
column-gap: 20px
|
|
48
|
+
+media-phone-only()
|
|
49
|
+
column-gap: 0
|
|
46
50
|
|
|
47
51
|
.modalBtn
|
|
48
52
|
height: 38px
|
|
49
|
-
text-transform:
|
|
53
|
+
text-transform: capitalize !important
|
|
54
|
+
+media-phone-only()
|
|
55
|
+
font-size: 11px !important
|
|
50
56
|
|
|
51
57
|
.outlinedBtn
|
|
52
58
|
border: none !important
|
|
53
59
|
|
|
54
60
|
.switchBlock
|
|
55
61
|
display: flex
|
|
56
|
-
justify-content: space-between
|
|
62
|
+
justify-content: space-between
|
|
63
|
+
align-items: center
|
|
64
|
+
font-size: 12px
|
|
65
|
+
line-height: 15px
|
|
66
|
+
letter-spacing: 1px
|
|
67
|
+
color: rgba(76, 78, 100, 0.87)
|
|
68
|
+
text-align: left
|
|
@@ -43,7 +43,7 @@ const ManageCookieModal = ({ toggleModal }) => {
|
|
|
43
43
|
value: marketingMasterSwitch,
|
|
44
44
|
onChange: onHandleMarketingSwitchValue
|
|
45
45
|
};
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
const analyticsSwitchProps = {
|
|
48
48
|
value: analytcisMasterSwitch,
|
|
49
49
|
onChange: onHandleAnalyticsSwitchValue
|
|
@@ -55,7 +55,7 @@ const ManageCookieModal = ({ toggleModal }) => {
|
|
|
55
55
|
onChange: () => {}
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
const onAccept = (value?: object) => {
|
|
58
|
+
const onAccept = (value?: object) => {
|
|
59
59
|
const cookieConfig = value || {
|
|
60
60
|
marketing: Object.keys(marketingSwitches).filter(i => !marketingSwitches[i]) || [],
|
|
61
61
|
analytics: Object.keys(analyticsSwitches).filter(i => !analyticsSwitches[i]) || []
|
|
@@ -73,7 +73,7 @@ const ManageCookieModal = ({ toggleModal }) => {
|
|
|
73
73
|
<div className={styles.accordions}>
|
|
74
74
|
<MaterialAccordionGroup
|
|
75
75
|
title='Notwendig'
|
|
76
|
-
tooltipText='
|
|
76
|
+
tooltipText='Notwendig'
|
|
77
77
|
withSwitch
|
|
78
78
|
switchProps={necessarySwitchProps}
|
|
79
79
|
>
|
|
@@ -94,6 +94,7 @@ const ManageCookieModal = ({ toggleModal }) => {
|
|
|
94
94
|
<MaterialAccordionGroup
|
|
95
95
|
title='Analytisch'
|
|
96
96
|
withSwitch
|
|
97
|
+
tooltipText='Analytisch'
|
|
97
98
|
switchProps={analyticsSwitchProps}
|
|
98
99
|
>
|
|
99
100
|
<span>
|
|
@@ -115,6 +116,7 @@ const ManageCookieModal = ({ toggleModal }) => {
|
|
|
115
116
|
<MaterialAccordionGroup
|
|
116
117
|
title='Marketing'
|
|
117
118
|
withSwitch
|
|
119
|
+
tooltipText='Marketing'
|
|
118
120
|
switchProps={marketingSwitchProps}
|
|
119
121
|
>
|
|
120
122
|
<span>
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
@import '../../../../../theme/mixins.styl';
|
|
2
|
+
|
|
1
3
|
.modalWrapper
|
|
2
4
|
padding: 26px 60px 56px
|
|
3
5
|
text-align: center
|
|
4
6
|
box-sizing: border-box
|
|
5
7
|
max-width: 600px
|
|
8
|
+
+media-phone-only()
|
|
9
|
+
padding: 13px 15px 28px
|
|
6
10
|
|
|
7
11
|
.modalTitle
|
|
8
12
|
font-family: sans-serif
|
|
@@ -20,16 +24,22 @@
|
|
|
20
24
|
letter-spacing: 0.15px;
|
|
21
25
|
color: rgba(76, 78, 100, 0.87);
|
|
22
26
|
margin-top: 20px
|
|
27
|
+
+media-phone-only()
|
|
28
|
+
column-gap: 0
|
|
23
29
|
|
|
24
30
|
.buttonsContainer
|
|
25
31
|
margin-top: 20px
|
|
26
32
|
display: flex
|
|
27
33
|
justify-content: center
|
|
28
34
|
column-gap: 20px
|
|
35
|
+
+media-phone-only()
|
|
36
|
+
column-gap: 0
|
|
29
37
|
|
|
30
38
|
.modalBtn
|
|
31
39
|
height: 38px
|
|
32
|
-
text-transform:
|
|
40
|
+
text-transform: capitalize !important
|
|
41
|
+
+media-phone-only()
|
|
42
|
+
font-size: 11px !important
|
|
33
43
|
|
|
34
44
|
.outlinedBtn
|
|
35
45
|
border: none !important
|
|
@@ -3,6 +3,7 @@ import IconSVG from '../../../IconSVG/IconSVG';
|
|
|
3
3
|
import Button from '../../../Button/Button';
|
|
4
4
|
import styles from './PreviewCookieModal.styl';
|
|
5
5
|
import classNames from 'classnames';
|
|
6
|
+
import { updateCookieList } from '../../../../../framework/utils/CommonUtils';
|
|
6
7
|
|
|
7
8
|
interface IPreviewCookieModal {
|
|
8
9
|
toggleModal: () => void;
|
|
@@ -12,6 +13,7 @@ interface IPreviewCookieModal {
|
|
|
12
13
|
const PreviewCookieModal = ({ toggleModal, setModal }: IPreviewCookieModal) => {
|
|
13
14
|
const onAcceptAll = () => {
|
|
14
15
|
localStorage.setItem('cookieConfig', JSON.stringify([]));
|
|
16
|
+
updateCookieList();
|
|
15
17
|
toggleModal();
|
|
16
18
|
};
|
|
17
19
|
|
|
@@ -46,8 +46,8 @@ const TimePicker = ({
|
|
|
46
46
|
const nextWeekDays = [...Array(7).keys()].map((days, index) => (
|
|
47
47
|
{
|
|
48
48
|
value: index,
|
|
49
|
-
label: new Date(Date.now() + setNewDay + 86400000 * days).toLocaleString(lang, {
|
|
50
|
-
day: new Date(Date.now() + setNewDay + 86400000 * days).toLocaleString(lang, {
|
|
49
|
+
label: new Date(Date.now() + setNewDay + 86400000 * days).toLocaleString(lang, { day: '2-digit', month: '2-digit', year: 'numeric' }),
|
|
50
|
+
day: new Date(Date.now() + setNewDay + 86400000 * days).toLocaleString(lang, { day: '2-digit', month: '2-digit', year: 'numeric' })
|
|
51
51
|
}
|
|
52
52
|
));
|
|
53
53
|
const nextWeekDaysFull = [...Array(7).keys()].map(days => new Date(Date.now() + setNewDay + 86400000 * days));
|
|
@@ -123,6 +123,8 @@ const TimePicker = ({
|
|
|
123
123
|
className={styles.dayForm}
|
|
124
124
|
classNameIcon={styles.selectIcon}
|
|
125
125
|
items={nextWeekDays}
|
|
126
|
+
amountOfItems={6}
|
|
127
|
+
customDimensionsIcon
|
|
126
128
|
/>
|
|
127
129
|
<MaterialSelect
|
|
128
130
|
onChange={(value: any) => timeChange(value)}
|
|
@@ -134,6 +136,8 @@ const TimePicker = ({
|
|
|
134
136
|
selectClassName={styles.select}
|
|
135
137
|
classNameIcon={styles.selectIcon}
|
|
136
138
|
items={getTimeRanges()}
|
|
139
|
+
amountOfItems={6}
|
|
140
|
+
customDimensionsIcon
|
|
137
141
|
/>
|
|
138
142
|
</div>
|
|
139
143
|
);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
@import '../../../theme/theme.styl'
|
|
2
1
|
@import '../../../theme/mixins.styl'
|
|
3
2
|
|
|
4
|
-
$xs-height =
|
|
3
|
+
$xs-height = 24px
|
|
5
4
|
$sm-height = 30px
|
|
6
5
|
$md-height = 34px
|
|
7
6
|
$indent = 10px
|
|
@@ -12,31 +11,39 @@ $indent = 10px
|
|
|
12
11
|
.controls
|
|
13
12
|
position: absolute
|
|
14
13
|
right: 0
|
|
15
|
-
bottom:
|
|
14
|
+
bottom: $indent;
|
|
16
15
|
width: 100%
|
|
17
16
|
display: flex
|
|
18
17
|
flex-wrap: wrap
|
|
19
18
|
justify-content: flex-start
|
|
20
|
-
align-items: center
|
|
21
|
-
font-family: $font-style-arial
|
|
22
19
|
font-size: $font-size-default
|
|
23
|
-
padding: 0
|
|
24
|
-
box-sizing: border-box
|
|
25
|
-
|
|
20
|
+
padding: 0 16px
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
gap: 0.6em;
|
|
23
|
+
user-select: none;
|
|
24
|
+
|
|
25
|
+
+media-tablet-landscape-up()
|
|
26
|
+
padding: 0 6px
|
|
27
|
+
|
|
28
|
+
&::after
|
|
29
|
+
position: absolute;
|
|
30
|
+
width: calc(100% - 20px);
|
|
31
|
+
height: 1px;
|
|
32
|
+
left: 10px;
|
|
33
|
+
bottom: -10px;
|
|
34
|
+
background-color: rgba(76,78,100,0.12);
|
|
26
35
|
|
|
27
36
|
.section
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
border-radius: 3px
|
|
37
|
+
background-color: rgba(255, 255, 255, 0.75);
|
|
38
|
+
border-radius: 2px
|
|
31
39
|
display: flex
|
|
40
|
+
line-height: 1;
|
|
32
41
|
align-items: center
|
|
33
|
-
justify-content: space-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
&:last-child
|
|
42
|
+
justify-content: space-around;
|
|
43
|
+
height: inherit;
|
|
44
|
+
|
|
45
|
+
&:last-of-type
|
|
38
46
|
margin-left: auto
|
|
39
|
-
margin-right: 0
|
|
40
47
|
|
|
41
48
|
.starButton
|
|
42
49
|
cursor: pointer
|
|
@@ -64,40 +71,38 @@ $indent = 10px
|
|
|
64
71
|
cursor: pointer
|
|
65
72
|
|
|
66
73
|
.statsEyeIcon
|
|
67
|
-
margin-right:
|
|
74
|
+
margin-right: 5px
|
|
68
75
|
width: 1.5em
|
|
69
76
|
height: 1.5em
|
|
70
77
|
|
|
71
78
|
.statsStarIcon
|
|
72
|
-
margin-right:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
margin-right: 5px
|
|
80
|
+
margin-bottom: 3px
|
|
81
|
+
width: 20px
|
|
82
|
+
height: 20px
|
|
83
|
+
fill: rgb(100, 100, 100)
|
|
84
|
+
transform:scale(0.8)
|
|
76
85
|
|
|
77
86
|
.accented
|
|
78
87
|
color: $primary
|
|
79
88
|
fill: $primary
|
|
80
|
-
stroke: $primary;
|
|
81
89
|
|
|
82
90
|
.xs
|
|
83
|
-
|
|
84
|
-
|
|
91
|
+
height: $xs-height
|
|
85
92
|
.section
|
|
86
93
|
padding: 0 5px
|
|
87
94
|
font-size: 12px
|
|
88
|
-
|
|
89
|
-
color: $grey-3;
|
|
95
|
+
color: rgba(51, 51, 51, 0.8);
|
|
90
96
|
|
|
91
97
|
.starButton
|
|
92
98
|
width: 1.5em
|
|
93
99
|
height: 1.5em
|
|
94
100
|
|
|
95
101
|
.sm
|
|
96
|
-
|
|
102
|
+
height: $sm-height
|
|
97
103
|
.section
|
|
98
104
|
padding: 0 6px
|
|
99
105
|
font-size: 16px
|
|
100
|
-
line-height: $sm-height
|
|
101
106
|
|
|
102
107
|
.cameraIcon
|
|
103
108
|
width: 24px
|
|
@@ -109,12 +114,11 @@ $indent = 10px
|
|
|
109
114
|
height: 2.3em
|
|
110
115
|
|
|
111
116
|
.md
|
|
112
|
-
|
|
117
|
+
height: $md-height
|
|
113
118
|
|
|
114
119
|
.section
|
|
115
120
|
padding: 0 6px
|
|
116
121
|
font-size: 16px
|
|
117
|
-
line-height: $md-height
|
|
118
122
|
|
|
119
123
|
.cameraIcon
|
|
120
124
|
width: 24px
|
|
@@ -124,71 +128,23 @@ $indent = 10px
|
|
|
124
128
|
.starButton
|
|
125
129
|
width: 2.4em
|
|
126
130
|
height: 2.3em
|
|
127
|
-
|
|
128
131
|
|
|
129
132
|
.topWrapper
|
|
130
133
|
position: absolute
|
|
131
|
-
left:
|
|
132
|
-
right:
|
|
134
|
+
left: 16px
|
|
135
|
+
right: 16px
|
|
133
136
|
top: 5px
|
|
134
137
|
user-select: none
|
|
135
138
|
z-index: 1
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
+media-tablet-down()
|
|
140
|
-
font-size: 16px
|
|
139
|
+
display: flex;
|
|
140
|
+
gap: 10px;
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
font-size: 12px
|
|
146
|
-
padding-top: 1px;
|
|
147
|
-
font-weight: bold
|
|
148
|
-
|
|
149
|
-
+media-tablet-down()
|
|
150
|
-
font-size: 16px
|
|
151
|
-
padding: 0 10px
|
|
152
|
-
line-height: 24px
|
|
153
|
-
height: 24px
|
|
142
|
+
+media-tablet-landscape-up()
|
|
143
|
+
left: 6px
|
|
144
|
+
right: 6px
|
|
154
145
|
|
|
155
146
|
.priceDifferencePerCent
|
|
156
|
-
|
|
157
|
-
float: right
|
|
158
|
-
position relative;
|
|
159
|
-
z-index: 1;
|
|
160
|
-
padding: 5px 7px 0 0
|
|
161
|
-
box-sizing: border-box;
|
|
162
|
-
text-align: center
|
|
163
|
-
white-space: nowrap;
|
|
164
|
-
line-height: 1;
|
|
165
|
-
font-size: 16px;
|
|
166
|
-
|
|
167
|
-
+media-tablet-up()
|
|
168
|
-
padding: 4px 4px 0 0px
|
|
169
|
-
font-size: 12px;
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
.perCentIcon
|
|
173
|
-
position: absolute
|
|
174
|
-
top: 0
|
|
175
|
-
right: 0
|
|
176
|
-
z-index: -1
|
|
177
|
-
|
|
178
|
-
+media-tablet-up()
|
|
179
|
-
transform: scale(.71);
|
|
180
|
-
right: -9px;
|
|
181
|
-
top: -3px;
|
|
147
|
+
margin-left: auto;
|
|
182
148
|
|
|
183
149
|
.new
|
|
184
|
-
margin-right: 10px
|
|
185
|
-
float: left
|
|
186
|
-
font-size: 12px
|
|
187
|
-
font-weight: bold
|
|
188
150
|
text-transform: uppercase
|
|
189
|
-
|
|
190
|
-
+media-tablet-down()
|
|
191
|
-
font-size: 16px
|
|
192
|
-
padding: 0 10px
|
|
193
|
-
line-height: 24px
|
|
194
|
-
height: 24px
|
|
@@ -82,6 +82,19 @@ export default function withStats(WrappedComponent: any) {
|
|
|
82
82
|
);
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
+
renderRotateSvg = (): JSX.Element => {
|
|
86
|
+
const { hasInteriorExteriorPhoto, images } = this.props;
|
|
87
|
+
const hasExteriorPhotos = hasInteriorExteriorPhoto && Array.isArray(images) && images.length > 0;
|
|
88
|
+
if (!hasExteriorPhotos) return null;
|
|
89
|
+
return (
|
|
90
|
+
<div className={styles.section}>
|
|
91
|
+
{hasExteriorPhotos ? (
|
|
92
|
+
<IconSVG name='rotate360New' customDimensions className={styles.statsEyeIcon} />
|
|
93
|
+
) : null}
|
|
94
|
+
</div>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
85
98
|
renderStarButton = () => {
|
|
86
99
|
const { isFavoured, onFavoriteClick } = this.props;
|
|
87
100
|
if (!onFavoriteClick) return null;
|
|
@@ -99,9 +112,7 @@ export default function withStats(WrappedComponent: any) {
|
|
|
99
112
|
renderStatsData = (): JSX.Element => {
|
|
100
113
|
const { statsData, isFavoured, onFavoriteClick } = this.props;
|
|
101
114
|
if (!statsData) return null;
|
|
102
|
-
|
|
103
115
|
const { totalCarImpCount, totalFavCount } = statsData;
|
|
104
|
-
|
|
105
116
|
const favoritesClassName = classnames(
|
|
106
117
|
styles.statsFavoritesCount,
|
|
107
118
|
{
|
|
@@ -119,7 +130,7 @@ export default function withStats(WrappedComponent: any) {
|
|
|
119
130
|
</span>
|
|
120
131
|
</div> : null}
|
|
121
132
|
{!!totalFavCount ? <div className={favoritesClassName} onClick={onFavoriteClick}>
|
|
122
|
-
<IconSVG name='
|
|
133
|
+
<IconSVG name='star' customDimensions className={favoritesIconClassName} />
|
|
123
134
|
<span>
|
|
124
135
|
{totalFavCount}
|
|
125
136
|
</span>
|
|
@@ -138,17 +149,14 @@ export default function withStats(WrappedComponent: any) {
|
|
|
138
149
|
<div className={classnames(styles.topWrapper, classWrapPrice)}>
|
|
139
150
|
{showNewLabel && <Badge type='blue' className={styles.new}>{newText}</Badge>}
|
|
140
151
|
{!!historyPriceDifference && historyPriceDifference >= MIN_PRICE_DIFFERENCE && (
|
|
141
|
-
<Badge type='green'
|
|
152
|
+
<Badge type='green'>
|
|
142
153
|
{`-`}
|
|
143
154
|
<FormattedNumber value={historyPriceDifference} numbersAfterDot={0} />
|
|
144
155
|
{` ${EUR}`}
|
|
145
156
|
</Badge>
|
|
146
157
|
)}
|
|
147
158
|
{!!historyPriceDifferencePerCent && historyPriceDifferencePerCent >= MIN_PERCENT && (
|
|
148
|
-
<
|
|
149
|
-
<IconSVG name='discountRibbonNew' className={styles.perCentIcon} customDimensions />
|
|
150
|
-
-{historyPriceDifferencePerCent}%
|
|
151
|
-
</div>
|
|
159
|
+
<Badge type='red' className={styles.priceDifferencePerCent}>-{historyPriceDifferencePerCent}%</Badge>
|
|
152
160
|
)}
|
|
153
161
|
</div>
|
|
154
162
|
);
|
|
@@ -166,6 +174,7 @@ export default function withStats(WrappedComponent: any) {
|
|
|
166
174
|
<WrappedComponent {...wrappedComponentProps} onSlideChange={this.onSlideChange} isReferenceSearch={isReferenceSearch} />
|
|
167
175
|
<div className={classnames(styles.controls, styles[statsSize])}>
|
|
168
176
|
{this.renderImagesData()}
|
|
177
|
+
{this.renderRotateSvg()}
|
|
169
178
|
{this.renderStarButton()}
|
|
170
179
|
{this.renderStatsData()}
|
|
171
180
|
</div>
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
width: 100%;
|
|
7
7
|
// background-color: #fff;
|
|
8
8
|
align-self: flex-start;
|
|
9
|
-
border: 1px solid
|
|
10
|
-
border-radius:
|
|
9
|
+
border: 1px solid rgba(76, 78, 100, 0.12);
|
|
10
|
+
border-radius: 10px;
|
|
11
11
|
box-sizing: border-box;
|
|
12
12
|
|
|
13
13
|
|
|
@@ -40,6 +40,8 @@
|
|
|
40
40
|
line-height: 40px
|
|
41
41
|
padding: 0 10px
|
|
42
42
|
background-color: #fff;
|
|
43
|
+
border-top-left-radius: 10px;
|
|
44
|
+
border-top-right-radius: 10px;
|
|
43
45
|
|
|
44
46
|
.linkToDetailed
|
|
45
47
|
display: block
|
|
@@ -48,4 +50,6 @@
|
|
|
48
50
|
background-color: #fff
|
|
49
51
|
color: $skyBlue
|
|
50
52
|
font-weight: 700
|
|
51
|
-
font-size: 14px
|
|
53
|
+
font-size: 14px
|
|
54
|
+
border-bottom-left-radius: 10px;
|
|
55
|
+
border-bottom-right-radius: 10px;
|
|
@@ -8,12 +8,24 @@ export const QUOTES_SLIDES_TO_SHOW_DEFAULT = 3;
|
|
|
8
8
|
|
|
9
9
|
export const HUNDRED = 100;
|
|
10
10
|
|
|
11
|
+
export const GOOGLE_BUNDLE_COOKIES = {
|
|
12
|
+
analytics_storage: { name: 'Google-Analytics' }, ad_storage: { name: 'Google-Werbeausrichtung' }, functionality_storage: { name: 'Google-Funktionalität' }, personalization_storage: { name: 'Google-Personalisierung' }, security_storage: { name: 'Google-Sicherheit' }
|
|
13
|
+
};
|
|
14
|
+
|
|
11
15
|
/* tslint:disable */
|
|
12
16
|
export const COOKIE_SCHEMA = {
|
|
13
17
|
necessary: { gdpr: { name: 'DSGVO' }, __cfruid: { name: 'Cloudflare ' }, cf_chl_2: { name: 'Cloudflare für Webverkehr zu identifizieren' }, cf_chl_rc_ni: { name: 'Cloudflare für den internen Gebrauch' }, ['next-i18next']: { name: 'Spracheinstellungen' }, _cfuvid: { name: 'Cloudflare WAF' }, cf_chl_prog: { name: 'Cloudflare für JS' }, __cf_bm: { name: 'Cloudflare bot' } },
|
|
14
|
-
analytics: { PugT: { name: 'PubMatic' }, locale: { name: 'Facebook' },
|
|
15
|
-
|
|
18
|
+
analytics: { PugT: { name: 'PubMatic' }, locale: { name: 'Facebook' },
|
|
19
|
+
uid: { name: 'criteo' }, callback: { name: 'callback' }, demdex: { name: 'demdex' }, vuid: { name: 'Vimeo' },
|
|
20
|
+
_fbp: { name: 'Facebook' },
|
|
21
|
+
hotjar: { name: 'Hotjar-Analytics'},
|
|
22
|
+
// _hjFirstSeen: { name: 'Hotjar' }, _hjIncludedInSessionSample: { name: 'Hotjar' }, _hjIncludedInPageviewSample: { name: 'Hotjar' }, _hjAbsoluteSessionInProgress: { name: 'Hotjar' }, _hjSession_2590373: { name: 'Hotjar' }, _hjSessionUser_2590373: { name: 'Hotjar' }, // Hotjar Analytics
|
|
23
|
+
// _gcl_au: { name: 'Google Tag Manager' }, _ga: { name: 'Google Analytics' }, _gid: { name: 'Google Analytics' }, ['_gat_UA-31842-13']: { name: 'Google Analytics' },
|
|
24
|
+
...GOOGLE_BUNDLE_COOKIES },
|
|
25
|
+
marketing: { test_cookie: { name: 'PubMatic' }, tuuid: { name: 'PubMatic' }, tuuid_lu: { name: 'PubMatic' }, c: { name: 'PubMatic' }, CMID: { name: 'PubMatic' }, CMPS: { name: 'PubMatic' }, CMPRO: { name: 'PubMatic' }, uuid2: { name: 'PubMatic' }, IDE: { name: 'PubMatic' }, um: { name: 'PubMatic' }, umeh: { name: 'PubMatic' }, cf: { name: 'PubMatic' }, cip: { name: 'PubMatic' }, cnac: { name: 'PubMatic' }, car: { name: 'PubMatic' },
|
|
16
26
|
KRTBCOOKIE_97: { name: 'PubMatic' }, IDSYNC: { name: 'PubMatic' }, dpm: { name: 'PubMatic' }, _kuid_: { name: 'PubMatic' }, fr: { name: 'PubMatic' }, cto_bundle: { name: 'PubMatic' }, ['visitor-id']: { name: 'PubMatic' }, ['data-c-ts']: { name: 'PubMatic' }, ['data-c']: { name: 'PubMatic' }, CMTS: { name: 'PubMatic' }, ['mv_tokens']: { name: 'PubMatic' }, A3: { name: 'PubMatic' }, ['mv_tokens_eu-v1']: { name: 'PubMatic' }, am_tokens: { name: 'PubMatic' },
|
|
17
|
-
['am_tokens_eu-v1']: { name: 'PubMatic' },
|
|
27
|
+
['am_tokens_eu-v1']: { name: 'PubMatic' }, iteo: { name: 'PubMatic' }, MyVerivoxAuth: { name: 'PubMatic' }, VxCheckAuth: { name: 'PubMatic' }}
|
|
18
28
|
};
|
|
29
|
+
|
|
30
|
+
|
|
19
31
|
/* tslint:enable */
|