@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.
Files changed (130) hide show
  1. package/common.ts +5 -0
  2. package/media/svg/common/arrow_breadcrumps.svg +2 -2
  3. package/media/svg/common/home.svg +6 -8
  4. package/media/svg/common/whyAutodeIconSet-F.svg +8 -12
  5. package/media/svg/common/whyAutodeIconSet-G.svg +6 -8
  6. package/media/svg/common/whyAutodeIconSet-Q.svg +5 -15
  7. package/media/svg/common/whyAutodeIconSet-R.svg +8 -13
  8. package/media/svg/infoBlocks/whyAutodeIconSet-F.svg +8 -8
  9. package/media/svg/infoBlocks/whyAutodeIconSet-G.svg +7 -6
  10. package/media/svg/infoBlocks/whyAutodeIconSet-Q.svg +5 -11
  11. package/media/svg/infoBlocks/whyAutodeIconSet-R.svg +8 -9
  12. package/package.json +1 -1
  13. package/source/components/AccordionWidget/AccordionWidget.styl +0 -3
  14. package/source/components/AccordionWidget/AccordionWidget.tsx +1 -3
  15. package/source/components/Alternative/DealerInfo.styl +7 -1
  16. package/source/components/Alternative/DealerInfo.tsx +64 -38
  17. package/source/components/Breadcrumbs/Breadcrumbs.styl +31 -19
  18. package/source/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
  19. package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.styl +11 -18
  20. package/source/components/PriceRating/PriceRating.styl +1 -0
  21. package/source/components/SearchFilters/common/RangeControlled/RangeControlled.tsx +2 -1
  22. package/source/components/SearchPage/SearchTopBar/SearchTopBar.styl +13 -3
  23. package/source/components/SearchPage/SearchTopBar/SearchTopBar.tsx +3 -3
  24. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.styl +23 -17
  25. package/source/components/VehicleDetailedSidebar/partials/Properties.styl +0 -4
  26. package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +1 -1
  27. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +54 -40
  28. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +38 -16
  29. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +47 -18
  30. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +13 -6
  31. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +48 -28
  32. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +50 -16
  33. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +6 -8
  34. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +31 -12
  35. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +8 -3
  36. package/source/components/VehicleSmallCard/VehicleSmallCard.styl +51 -19
  37. package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +39 -9
  38. package/source/components/_common/Badge/Badge.styl +13 -7
  39. package/source/components/_common/Badge/Badge.tsx +1 -1
  40. package/source/components/_common/Button/Button.styled.tsx +13 -8
  41. package/source/components/_common/Button/Button.tsx +1 -1
  42. package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +14 -4
  43. package/source/components/_common/IconSVG/IconSVG.story.js +1 -1
  44. package/source/components/_common/IconSVG/IconSVGConfig.tsx +90 -1
  45. package/source/components/_common/IconSVG/SVG/CloseIconSelect.tsx +1 -1
  46. package/source/components/_common/IconSVG/SVG/common/AddressDashboard.tsx +29 -0
  47. package/source/components/_common/IconSVG/SVG/common/CallbackDashboard.tsx +30 -0
  48. package/source/components/_common/IconSVG/SVG/common/CloseGrey.tsx +22 -0
  49. package/source/components/_common/IconSVG/SVG/common/DashboardQuestionMark.tsx +20 -0
  50. package/source/components/_common/IconSVG/SVG/common/DeliveryDashboard.tsx +25 -0
  51. package/source/components/_common/IconSVG/SVG/common/EditPriceIcon.tsx +20 -0
  52. package/source/components/_common/IconSVG/SVG/common/HandingOverDashboard.tsx +32 -0
  53. package/source/components/_common/IconSVG/SVG/common/MenuGrey.tsx +22 -0
  54. package/source/components/_common/IconSVG/SVG/common/MyOrderIcon.tsx +20 -0
  55. package/source/components/_common/IconSVG/SVG/common/OrderReceivedDashboard.tsx +27 -0
  56. package/source/components/_common/IconSVG/SVG/common/PickupDashboard.tsx +30 -0
  57. package/source/components/_common/IconSVG/SVG/common/PreparationDashboard.tsx +29 -0
  58. package/source/components/_common/IconSVG/SVG/common/ProfileDashboard.tsx +24 -0
  59. package/source/components/_common/IconSVG/SVG/common/RegistrationDashboard.tsx +31 -0
  60. package/source/components/_common/IconSVG/SVG/common/SliderEye.tsx +2 -3
  61. package/source/components/_common/IconSVG/SVG/common/StarRoundedCorners.tsx +1 -1
  62. package/source/components/_common/IconSVG/SVG/flags/AT.tsx +19 -0
  63. package/source/components/_common/IconSVG/SVG/flags/BE.tsx +20 -0
  64. package/source/components/_common/IconSVG/SVG/flags/BG.tsx +20 -0
  65. package/source/components/_common/IconSVG/SVG/flags/CH.tsx +22 -0
  66. package/source/components/_common/IconSVG/SVG/flags/CZ.tsx +18 -0
  67. package/source/components/_common/IconSVG/SVG/flags/DE.tsx +18 -0
  68. package/source/components/_common/IconSVG/SVG/flags/DK.tsx +18 -0
  69. package/source/components/_common/IconSVG/SVG/flags/ES.tsx +2585 -0
  70. package/source/components/_common/IconSVG/SVG/flags/FI.tsx +18 -0
  71. package/source/components/_common/IconSVG/SVG/flags/FR.tsx +20 -0
  72. package/source/components/_common/IconSVG/SVG/flags/GB.tsx +26 -0
  73. package/source/components/_common/IconSVG/SVG/flags/HR.tsx +135 -0
  74. package/source/components/_common/IconSVG/SVG/flags/HU.tsx +20 -0
  75. package/source/components/_common/IconSVG/SVG/flags/IT.tsx +20 -0
  76. package/source/components/_common/IconSVG/SVG/flags/LI.tsx +106 -0
  77. package/source/components/_common/IconSVG/SVG/flags/LU.tsx +18 -0
  78. package/source/components/_common/IconSVG/SVG/flags/NL.tsx +18 -0
  79. package/source/components/_common/IconSVG/SVG/flags/NO.tsx +20 -0
  80. package/source/components/_common/IconSVG/SVG/flags/PL.tsx +19 -0
  81. package/source/components/_common/IconSVG/SVG/flags/RO.tsx +20 -0
  82. package/source/components/_common/IconSVG/SVG/flags/RU.tsx +20 -0
  83. package/source/components/_common/IconSVG/SVG/flags/SE.tsx +20 -0
  84. package/source/components/_common/IconSVG/SVG/flags/SI.tsx +54 -0
  85. package/source/components/_common/IconSVG/SVG/flags/SK.tsx +35 -0
  86. package/source/components/_common/IconSVG/SVG/flags/UA.tsx +19 -0
  87. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/AllWheelDrive.tsx +2 -2
  88. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/FrontWheelDrive.tsx +2 -2
  89. package/source/components/_common/IconSVG/SVG/searchWidgets/drive/RearWheelDrive.tsx +2 -2
  90. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelDiesel.tsx +4 -14
  91. package/source/components/_common/IconSVG/SVG/searchWidgets/fuel/FuelPetrol.tsx +1 -1
  92. package/source/components/_common/IconSVG/SVG/settings/RemoveEye.tsx +1 -1
  93. package/source/components/_common/IconSVG/SVG/settings/RemoveEyeOff.tsx +1 -1
  94. package/source/components/_common/IconSVG/SVG/slider/360New.tsx +20 -0
  95. package/source/components/_common/IconSVG/SVG/vehicle/CarAvailability.tsx +3 -3
  96. package/source/components/_common/IconSVG/SVG/vehicle/CheckoutChecked.tsx +2 -2
  97. package/source/components/_common/IconSVG/SVG/vehicle/Date.tsx +2 -2
  98. package/source/components/_common/IconSVG/SVG/vehicle/Door.tsx +5 -7
  99. package/source/components/_common/IconSVG/SVG/vehicle/FuelConsumption.tsx +1 -1
  100. package/source/components/_common/IconSVG/SVG/vehicle/NewCar.tsx +7 -9
  101. package/source/components/_common/IconSVG/SVG/vehicle/Ps.tsx +1 -1
  102. package/source/components/_common/IconSVG/SVG/vehicle/SelectorGearboxAutomatic.tsx +2 -2
  103. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.styled.tsx +17 -1
  104. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.tsx +3 -4
  105. package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +6 -3
  106. package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.tsx +28 -3
  107. package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +0 -7
  108. package/source/components/_common/MaterialSelect/MaterialSelect.tsx +16 -9
  109. package/source/components/_common/Modal/CookieModal.tsx +10 -7
  110. package/source/components/_common/Modal/Modal.styled.tsx +2 -1
  111. package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +15 -3
  112. package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +5 -3
  113. package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +11 -1
  114. package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +2 -0
  115. package/source/components/_common/TimePicker/TimePicker.styl +3 -1
  116. package/source/components/_common/TimePicker/TimePicker.tsx +6 -2
  117. package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +2 -1
  118. package/source/components/_common/withStats/withStats.styl +43 -87
  119. package/source/components/_common/withStats/withStats.tsx +17 -8
  120. package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +7 -3
  121. package/source/framework/constants/common.ts +15 -3
  122. package/source/framework/factories/BreadcrumbsFactory.tsx +19 -8
  123. package/source/framework/factories/FactoryTypes.d.ts +1 -0
  124. package/source/framework/types/types.ts +4 -2
  125. package/source/framework/utils/CommonUtils.ts +26 -9
  126. package/source/framework/vehiclesProps/decoratedProps.tsx +19 -23
  127. package/source/framework/vehiclesProps/equipment.ts +4 -3
  128. package/source/locales/data.ts +2 -0
  129. package/source/theme/priceReviewColors.styl +3 -1
  130. 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
- backgroundColor: '#e8e8e8',
121
- color: '#333',
122
- opacity: '1 !important'
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 * MENU_ITEMS + ITEM_PADDING_TOP,
183
- sm: ITEM_HEIGHT * MENU_ITEMS + ITEM_PADDING_TOP
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
- const cookieConfig = localStorage.getItem('cookieConfig');
12
- if (!cookieConfig) {
13
- setModal('PREVIEW_COOKIE_MODAL');
14
- toggleModal();
15
- } else setTimeout(() => { updateCookieList(); }, 3000);
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('');
@@ -8,5 +8,6 @@ export const BaseModalWrapper = styled('div')({
8
8
  width: 'fit-content',
9
9
  backgroundColor: '#fff',
10
10
  boxShadow: '0px 0px 20px rgba(76, 78, 100, 0.4)',
11
- borderRadius: '10px'
11
+ borderRadius: '10px',
12
+ maxWidth: '93%'
12
13
  });
@@ -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: 16px;
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: uppercase !important
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='tooltip text'
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: uppercase !important
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
 
@@ -17,5 +17,7 @@
17
17
  padding-right: 0 !important
18
18
 
19
19
  .selectIcon
20
- width: 30px
20
+ width: 21px
21
+ height: auto
22
+ max-width: none !important
21
23
  padding-right: 10px
@@ -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, { weekday: 'short', day: 'numeric', month: '2-digit' }),
50
- day: new Date(Date.now() + setNewDay + 86400000 * days).toLocaleString(lang, { weekday: 'short', day: 'numeric', month: '2-digit' })
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
  );
@@ -58,7 +58,8 @@ export const AmountBlock = styled('span')({
58
58
  padding: '0 6px',
59
59
  lineHeight: '20px',
60
60
  fontSize: '12px',
61
- fontWeight: 'bold'
61
+ fontWeight: 'bold',
62
+ marginLeft: '10px'
62
63
  });
63
64
 
64
65
  export const HeaderComponent = styled('div')({
@@ -1,7 +1,6 @@
1
- @import '../../../theme/theme.styl'
2
1
  @import '../../../theme/mixins.styl'
3
2
 
4
- $xs-height = 20px
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: 0
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 $indent
24
- box-sizing: border-box
25
- user-select: none
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
- height: 100%
29
- background-color: rgba(#fff, .6);
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-arround
34
- flex-shrink: 0
35
- margin-bottom: $indent
36
- margin-right: 0.6em
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: 0.1em
74
+ margin-right: 5px
68
75
  width: 1.5em
69
76
  height: 1.5em
70
77
 
71
78
  .statsStarIcon
72
- margin-right: 0.1em
73
- width: 1.1em
74
- height: 1.1em
75
- stroke: #333;
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
- min-height: $xs-height
84
-
91
+ height: $xs-height
85
92
  .section
86
93
  padding: 0 5px
87
94
  font-size: 12px
88
- line-height: $xs-height
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
- min-height: $sm-height
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
- min-height: $md-height
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: 5px
132
- right: 5px
134
+ left: 16px
135
+ right: 16px
133
136
  top: 5px
134
137
  user-select: none
135
138
  z-index: 1
136
- font-size: 14px
137
- font-weight: bold
138
-
139
- +media-tablet-down()
140
- font-size: 16px
139
+ display: flex;
140
+ gap: 10px;
141
141
 
142
- .priceDifference
143
- background: $lightGreen
144
- float: left
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
- color: white
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='common_StarRoundedCorners' customDimensions className={favoritesIconClassName} />
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' className={styles.priceDifference}>
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
- <div className={styles.priceDifferencePerCent}>
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 $grey-e
10
- border-radius: 3px
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' }, _gcl_au: { name: 'Google Tag Manager' }, _ga: { name: 'Google Analytics' }, _gid: { name: 'Google Analytics' }, ['_gat_UA-31842-13']: { name: 'Google Analytics' }, uid: { name: 'criteo' }, callback: { name: 'callback' }, demdex: { name: 'demdex' }, _hjFirstSeen: { name: 'Hotjar' }, _hjIncludedInSessionSample: { name: 'Hotjar' }, _hjIncludedInPageviewSample: { name: 'Hotjar' }, _hjAbsoluteSessionInProgress: { name: 'Hotjar' }, vuid: { name: 'Vimeo' } },
15
- marketing: { _fbp: { name: 'PubMatic' }, 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' },
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' }, _hjSessionUser_2590373: { name: 'PubMatic' }, iteo: { name: 'PubMatic' }, _hjSession_2590373: { name: 'PubMatic' }, MyVerivoxAuth: { name: 'PubMatic' }, VxCheckAuth: { 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 */