@bytebrand/fe-ui-core 4.2.251 → 4.3.0
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/__tests__/utils/CommonUtils/getOfferSliders.test.ts +2 -4
- package/common.ts +2 -6
- package/package.json +2 -3
- package/source/components/AccordionWidget/AccordionWidget.tsx +3 -1
- package/source/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
- package/source/components/Checkout/CheckoutStepper/CheckoutStepper.styl +190 -2
- package/source/components/Checkout/CheckoutStepper/CheckoutStepper.tsx +16 -15
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.styl +2 -2
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.tsx +3 -3
- package/source/components/FormattedNumber/FormattedNumber.tsx +3 -2
- package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +6 -4
- package/source/components/OfferDetailedSection/partials/PanelConfig.tsx +3 -0
- package/source/components/OfferPanel/MuiOfferPeriod/{MuiOfferPeriod.theme.tsx → MuiOfferPeriod.theme.js} +13 -8
- package/source/components/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +4 -28
- package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +12 -6
- package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +1 -1
- package/source/components/OfferPanel/OfferPanel.tsx +1 -1
- package/source/components/OfferPanel/OfferPeriod/OfferPeriod.tsx +4 -0
- package/source/components/OfferPanel/RangeGroup/RangeGroup.tsx +4 -6
- package/source/components/PriceRatingDetailed/PriceRatingDetailed.tsx +2 -6
- package/source/components/SearchFilters/filters/AlternativeID.tsx +53 -42
- package/source/components/SearchFilters/filters/DriveType.tsx +1 -1
- package/source/components/SearchFilters/filters/EmissionSticker.tsx +1 -1
- package/source/components/SearchFilters/filters/FirstRegistration.tsx +1 -0
- package/source/components/SearchFilters/filters/InteriorColor.tsx +1 -1
- package/source/components/SearchFilters/filters/InteriorMaterial.tsx +1 -2
- package/source/components/SearchFilters/filters/Mileage.tsx +1 -1
- package/source/components/SearchFilters/filters/Power.tsx +17 -36
- package/source/components/SearchFilters/filters/StateOptions.tsx +1 -0
- package/source/components/SearchFilters/filters/Transmission.tsx +1 -1
- package/source/components/SearchPage/SearchChips/SearchChips.tsx +1 -1
- package/source/components/SearchPageMobile/FiltersDetailed/BodyType.tsx +3 -3
- package/source/components/SearchPageMobile/FiltersDetailed/Consumption.tsx +2 -2
- package/source/components/SearchPageMobile/FiltersDetailed/Doors.tsx +1 -1
- package/source/components/SearchPageMobile/FiltersDetailed/MakeModel.tsx +1 -1
- package/source/components/SearchWidget/ColorWidget/BodyColorWidget.tsx +3 -3
- package/source/components/SearchWidget/EnvironmentWidget/EnvironmentWidget.tsx +3 -3
- package/source/components/SearchWidget/HighlightsWidget/HighlightsWidget.tsx +2 -2
- package/source/components/SearchWidget/StateWidget/StateWidget.tsx +2 -1
- package/source/components/SearchWidgetsMobile/BasicDataWidgetMobile/BasicDataWidgetMobile.tsx +4 -4
- package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.tsx +16 -16
- package/source/components/SearchWidgetsMobile/HighlightsWidgetMobile/HighlightsWidgetMobile.tsx +1 -1
- package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidget.tsx +1 -1
- package/source/components/SearchWidgetsMobile/SafetyWidget/SafetyWidget.tsx +6 -6
- package/source/components/Stepper/Stepper.tsx +3 -4
- package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.styl +2 -11
- package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.tsx +5 -5
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCar.tsx +38 -57
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCard.tsx +2 -2
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.tsx +101 -183
- package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.tsx +7 -5
- package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.tsx +7 -33
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +2 -10
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +14 -54
- package/source/components/VehicleDetailedSidebar/partials/Price.styl +1 -5
- package/source/components/VehicleDetailedSidebar/partials/Price.tsx +1 -2
- package/source/components/VehicleDetailedSidebar/partials/PriceContent.styl +5 -16
- package/source/components/VehicleDetailedSidebar/partials/PriceContent.tsx +4 -9
- package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +1 -1
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.styl +0 -45
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +42 -121
- package/source/components/VehicleDetailedSlider/partials/PriceData.styl +1 -4
- package/source/components/VehicleDetailedSlider/partials/PriceData.tsx +1 -8
- package/source/components/VehicleDetailedSlider/partials/Stats.tsx +2 -2
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +7 -9
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +1 -35
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +3 -9
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +2 -11
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +1 -2
- package/source/components/VehicleSmallCard/VehicleSmallCard.styl +1 -3
- package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +7 -3
- package/source/components/_common/Badge/Badge.styl +0 -3
- package/source/components/_common/Badge/Badge.tsx +1 -1
- package/source/components/_common/Button/Button.tsx +4 -5
- package/source/components/_common/Checkbox/FormCheckbox.tsx +4 -4
- package/source/components/_common/CheckboxMaterial/CheckboxMaterial.tsx +1 -1
- package/source/components/_common/Chip/Chip.tsx +3 -1
- package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +3 -3
- package/source/components/_common/IconSVG/IconSVGConfig.tsx +0 -2
- package/source/components/_common/IconSVG/SVG/flags/SK.tsx +1 -0
- package/source/components/_common/IconSVG/SVG/slider/360New.tsx +1 -1
- package/source/components/_common/MaterialAccordion/MaterialAccordion.tsx +30 -22
- package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +8 -8
- package/source/components/_common/MaterialDatePicker/MaterialDatePicker.styled.tsx +1 -0
- package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +15 -12
- package/source/components/_common/MaterialSelect/MaterialSelect.tsx +3 -3
- package/source/components/_common/MaterialSwitch/MaterialSwitch.tsx +1 -3
- package/source/components/_common/MaterialTooltip/MaterialTooltip.styled.tsx +1 -1
- package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +3 -3
- package/source/components/_common/Modal/CookieModal.tsx +3 -1
- package/source/components/_common/Modal/Modal.styled.tsx +1 -2
- package/source/components/_common/Modal/Modal.tsx +5 -1
- package/source/components/_common/Modal/ModalsConfig.tsx +1 -5
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +7 -23
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +36 -84
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +14 -29
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +10 -17
- package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +4 -12
- package/source/components/_common/Range/Range.tsx +14 -27
- package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +1 -0
- package/source/components/_common/UserMenu/MaterialMenu.tsx +3 -3
- package/source/components/_common/UserMenu/MaterialMenuItem.tsx +20 -42
- package/source/components/_common/UserMenu/NestedMenu.tsx +1 -1
- package/source/components/_common/withStats/withStats.styl +0 -3
- package/source/components/_common/withStats/withStats.tsx +16 -19
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +1 -14
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.tsx +42 -78
- package/source/framework/constants/common.ts +60 -89
- package/source/framework/constants/highlights.ts +1 -1
- package/source/framework/constants.ts +1 -1
- package/source/framework/types/types.ts +4 -9
- package/source/framework/utils/CommonUtils.ts +62 -73
- package/source/framework/utils/DateUtils.ts +2 -10
- package/source/framework/vehiclesProps/decoratedLightProps.tsx +2 -1
- package/source/framework/vehiclesProps/decoratedProps.tsx +2 -1
- package/source/locales/data.ts +2 -2
- package/tslint.json +2 -1
- package/utils.ts +0 -2
- package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +0 -613
- package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +0 -335
- package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.styl +0 -38
- package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.tsx +0 -120
- package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.styl +0 -22
- package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.tsx +0 -84
- package/source/components/_common/IconSVG/SVG/slider/YoutubeButton.tsx +0 -26
|
@@ -52,17 +52,4 @@
|
|
|
52
52
|
font-weight: 700
|
|
53
53
|
font-size: 14px
|
|
54
54
|
border-bottom-left-radius: 10px;
|
|
55
|
-
border-bottom-right-radius: 10px;
|
|
56
|
-
|
|
57
|
-
.vehicleId
|
|
58
|
-
padding: 11px
|
|
59
|
-
background-color: #fff
|
|
60
|
-
border-bottom: 1px solid #e8e8e8;
|
|
61
|
-
padding-bottom: 19px;
|
|
62
|
-
|
|
63
|
-
.vehicleIdLabel
|
|
64
|
-
font-size: 14px
|
|
65
|
-
font-weight: 700
|
|
66
|
-
line-height: 16px
|
|
67
|
-
margin-bottom: 12px
|
|
68
|
-
padding: 0 5px
|
|
55
|
+
border-bottom-right-radius: 10px;
|
|
@@ -3,17 +3,16 @@ import _get from 'lodash/get';
|
|
|
3
3
|
import _startsWith from 'lodash/startsWith';
|
|
4
4
|
import _debounce from 'lodash/debounce';
|
|
5
5
|
import qs from 'qs';
|
|
6
|
-
import {
|
|
6
|
+
import { isEqual } from 'lodash';
|
|
7
7
|
import { checkRangeValuesOnEqual, getGroupValuesForQuery } from '../../../../framework/utils/CommonUtils';
|
|
8
8
|
import { FilterBlockFactory } from '../../../SearchFilters/common/FilterBlock/FilterBlockFactory';
|
|
9
9
|
import { FilterGroups, IFilters } from '../../../SearchFilters/FiltersFactory';
|
|
10
|
-
import { MANUFACTURER_KEY, MM_GROUPS_EXCLUDE_KEY, MODEL_KEY, RANGE_FILTERS, SERIES_KEY, SUPER_ADMIN_FILTER_NAME } from '../../../../framework/constants/Search';
|
|
10
|
+
import { MANUFACTURER_KEY, MM_GROUPS_EXCLUDE_KEY, MODEL_KEY, RANGE_FILTERS, SERIES_KEY, SUPER_ADMIN_FILTER_NAME, SUB_MODEL_KEY } from '../../../../framework/constants/Search';
|
|
11
11
|
import { MMS_GROUPS_KEY, OBJECT_FILTERS } from '../../../../framework/constants/SearchWidget';
|
|
12
12
|
import { resolveMmsValue } from '../../../../framework/utils/FiltersUtils';
|
|
13
13
|
import FilterBlock from '../../../SearchFilters/common/FilterBlock/FilterBlock';
|
|
14
14
|
import styles from './FiltersContainer.styl';
|
|
15
15
|
import AlternativeID from '../../../SearchFilters/filters/AlternativeID';
|
|
16
|
-
import MaterialField from '../../../_common/MaterialField/MaterialField';
|
|
17
16
|
|
|
18
17
|
type PathParamsType = {
|
|
19
18
|
location?: any;
|
|
@@ -34,7 +33,7 @@ interface IFiltersContainerProps extends IRouteComponentProps<PathParamsType> {
|
|
|
34
33
|
aggregation: {};
|
|
35
34
|
setActiveSorting: (newActiveSorting: string) => void;
|
|
36
35
|
setLastSearchString: (filters: IFilters, query: string) => void;
|
|
37
|
-
search: (filters: any, page?: number, getStats?: boolean
|
|
36
|
+
search: (filters: any, page?: number, getStats?: boolean) => void;
|
|
38
37
|
resetFiltersToDefault: () => void;
|
|
39
38
|
clearSearchState: (clearSorting?: boolean) => void;
|
|
40
39
|
addMmsGroup: () => void;
|
|
@@ -55,7 +54,6 @@ interface IFiltersContainerProps extends IRouteComponentProps<PathParamsType> {
|
|
|
55
54
|
t?: (phrase: string) => string;
|
|
56
55
|
isDealerPage?: boolean;
|
|
57
56
|
isAlternative?: boolean;
|
|
58
|
-
vehicleID?: string;
|
|
59
57
|
successTransition?: boolean;
|
|
60
58
|
isErrorAlternativeField: boolean;
|
|
61
59
|
Link?: any;
|
|
@@ -68,12 +66,8 @@ class FiltersContainer extends React.Component<IFiltersContainerProps, {}> {
|
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
componentDidUpdate(prevProps: IFiltersContainerProps) {
|
|
71
|
-
const { location, filters, resetFiltersToDefault, clearSearchState, search, activeSorting, setActiveSorting
|
|
72
|
-
|
|
73
|
-
if (
|
|
74
|
-
(prevProps.location.search !== location.search) &&
|
|
75
|
-
!_startsWith(location.search, '?pageNumber'))
|
|
76
|
-
{
|
|
69
|
+
const { location, filters, resetFiltersToDefault, clearSearchState, search, activeSorting, setActiveSorting } = this.props;
|
|
70
|
+
if ((prevProps.location.search !== location.search) && !_startsWith(location.search, '?pageNumber')) {
|
|
77
71
|
const queryFromFilters = this.getQueryFromFilters();
|
|
78
72
|
const prevQueryFromFilters = ['pageNumber', 'activeSort'].reduce((url, param) => url.replace(new RegExp(`(^${param}=\\w*&|&${param}=\\w*)`), ''), prevProps.location.search.slice(1));
|
|
79
73
|
const paramsFromQuery = qs.parse(location.search, { ignoreQueryPrefix: true });
|
|
@@ -89,11 +83,11 @@ class FiltersContainer extends React.Component<IFiltersContainerProps, {}> {
|
|
|
89
83
|
|
|
90
84
|
if (activeSort !== activeSorting) {
|
|
91
85
|
// activeSorting = activeSort; // TODO make a function to change at searchStore
|
|
92
|
-
setActiveSorting(activeSort
|
|
86
|
+
setActiveSorting(activeSort);
|
|
93
87
|
}
|
|
94
88
|
|
|
95
89
|
clearSearchState(!activeSort);
|
|
96
|
-
search(filters,
|
|
90
|
+
search(filters, pageNumber || 1, true);
|
|
97
91
|
}
|
|
98
92
|
|
|
99
93
|
this.updateFinancingSearchConfig();
|
|
@@ -200,46 +194,41 @@ class FiltersContainer extends React.Component<IFiltersContainerProps, {}> {
|
|
|
200
194
|
if (paramsKeys.length) {
|
|
201
195
|
paramsKeys.forEach((filter: string) => {
|
|
202
196
|
const paramValue = paramsFromQuery[filter];
|
|
197
|
+
|
|
203
198
|
if (filter === MMS_GROUPS_KEY) { //tslint:disable-line
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
199
|
+
paramValue.map((group: any, index: number) => {
|
|
200
|
+
if (index >= 1) {
|
|
201
|
+
if (filter === MMS_GROUPS_KEY) addMmsGroup();
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
Object.keys(group).forEach((key: string) => {
|
|
205
|
+
changeFilterValue(key, group[key], index);
|
|
206
|
+
if (key === MANUFACTURER_KEY) {
|
|
207
|
+
getModelsInfoByMaker(group[key], true).then((response: any) => {
|
|
208
|
+
const models = response || [];
|
|
209
|
+
addModelsToFilters(models, index);
|
|
210
|
+
});
|
|
209
211
|
}
|
|
210
|
-
|
|
211
|
-
Object.keys(group).forEach((key: string) => {
|
|
212
|
-
changeFilterValue(key, group[key], index);
|
|
213
|
-
if (key === MANUFACTURER_KEY) {
|
|
214
|
-
getModelsInfoByMaker(group[key], true).then((response: any) => {
|
|
215
|
-
const models = response || [];
|
|
216
|
-
addModelsToFilters(models, index);
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
212
|
});
|
|
221
|
-
}
|
|
213
|
+
});
|
|
222
214
|
} else if (filter === MM_GROUPS_EXCLUDE_KEY) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
addMmExcludeGroup();
|
|
228
|
-
}
|
|
215
|
+
paramValue.map((group: any, index: number) => {
|
|
216
|
+
if (index >= 1) {
|
|
217
|
+
addMmExcludeGroup();
|
|
218
|
+
}
|
|
229
219
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
});
|
|
220
|
+
Object.keys(group).forEach((key: string) => {
|
|
221
|
+
changeFilterValue(key, group[key], index);
|
|
233
222
|
});
|
|
234
|
-
}
|
|
223
|
+
});
|
|
235
224
|
} else {
|
|
236
225
|
// Defines whether filter is range or not.
|
|
237
226
|
const isRange = rangeFiltersStrings.indexOf(filter) !== -1;
|
|
238
227
|
const isObject = objectFiltersStrings.indexOf(filter) !== -1;
|
|
239
228
|
|
|
240
229
|
// Transform url encoded param into range filter object.
|
|
241
|
-
const valueToSend = isRange ? qs.parse(paramValue
|
|
242
|
-
changeFilterValue(filter, valueToSend
|
|
230
|
+
const valueToSend = isRange ? qs.parse(paramValue, { ignoreQueryPrefix: true }) : paramValue;
|
|
231
|
+
changeFilterValue(filter, valueToSend);
|
|
243
232
|
if (isRange || isObject) { changeRangeFilterControls(filter, valueToSend); }
|
|
244
233
|
}
|
|
245
234
|
});
|
|
@@ -314,7 +303,7 @@ class FiltersContainer extends React.Component<IFiltersContainerProps, {}> {
|
|
|
314
303
|
if (isHistogram) {
|
|
315
304
|
const histogramData = histograms[filterField].length ? histograms[filterField] : RANGE_FILTERS[filter].options;
|
|
316
305
|
const actualValues = {
|
|
317
|
-
from:
|
|
306
|
+
from: histogramData[0].from,
|
|
318
307
|
to: histogramData[histogramData.length - 1].to
|
|
319
308
|
};
|
|
320
309
|
|
|
@@ -388,37 +377,24 @@ class FiltersContainer extends React.Component<IFiltersContainerProps, {}> {
|
|
|
388
377
|
});
|
|
389
378
|
};
|
|
390
379
|
|
|
391
|
-
onVehicleIdChange = (value: string) => {
|
|
392
|
-
const { filters, changeFilterValue, search } = this.props;
|
|
393
|
-
const upperCaseValue = value.toLocaleUpperCase().trim();
|
|
394
|
-
if (upperCaseValue.length === 6 || !value) {
|
|
395
|
-
this.onFilterChange('VEHICLE_ID', upperCaseValue);
|
|
396
|
-
changeFilterValue('VEHICLE_ID', upperCaseValue);
|
|
397
|
-
search(filters, 1, true);
|
|
398
|
-
}
|
|
399
|
-
};
|
|
400
|
-
|
|
401
380
|
render() {
|
|
402
|
-
const { t, onAlternativeRedirect, isAlternative, isErrorAlternativeField, Link, locationSearch, successTransition
|
|
381
|
+
const { t, onAlternativeRedirect, isAlternative, isErrorAlternativeField, Link, locationSearch, successTransition } = this.props;
|
|
403
382
|
const paramsFromQuery = qs.parse(location.search, { ignoreQueryPrefix: true });
|
|
404
|
-
|
|
405
|
-
const { VEHICLE_ID } = filters;
|
|
406
|
-
|
|
407
383
|
const alternativeIDProps = {
|
|
408
384
|
t,
|
|
409
385
|
successTransition,
|
|
410
|
-
autoDeId: paramsFromQuery.autoDeId
|
|
386
|
+
autoDeId: paramsFromQuery.autoDeId,
|
|
411
387
|
error: isErrorAlternativeField,
|
|
412
388
|
onChange: onAlternativeRedirect
|
|
413
389
|
};
|
|
414
|
-
|
|
390
|
+
|
|
415
391
|
return (
|
|
416
392
|
<div className={styles.filters}>
|
|
417
393
|
{isAlternative ? (
|
|
418
394
|
<div className={styles.titleAlternative}>
|
|
419
395
|
<div className={styles.titleWrap}>
|
|
420
396
|
<h3 className={styles.titleTextAlternative}>auto.de-ID</h3>
|
|
421
|
-
<Link to={`/alternative/detailed${locationSearch}`} className={styles.titleLink}>
|
|
397
|
+
<Link to={ `/alternative/detailed${locationSearch}` } className={styles.titleLink}>
|
|
422
398
|
{this.props.t('SearchPage:detailedSearch')}
|
|
423
399
|
</Link>
|
|
424
400
|
</div>
|
|
@@ -428,19 +404,8 @@ class FiltersContainer extends React.Component<IFiltersContainerProps, {}> {
|
|
|
428
404
|
<div className={styles.title}>
|
|
429
405
|
<h3 className={styles.titleText}>{this.props.t('SearchPage:filterBy')}</h3>
|
|
430
406
|
</div>
|
|
431
|
-
{!isAlternative ? (
|
|
432
|
-
<div className={styles.vehicleId}>
|
|
433
|
-
<div className={styles.vehicleIdLabel}>auto.de-ID</div>
|
|
434
|
-
<MaterialField
|
|
435
|
-
value={VEHICLE_ID.value}
|
|
436
|
-
onChange={this.onVehicleIdChange}
|
|
437
|
-
size='custom'
|
|
438
|
-
placeholder={t('SearchPage:vehicleIdexample')}
|
|
439
|
-
/>
|
|
440
|
-
</div>
|
|
441
|
-
) : ''}
|
|
442
407
|
{this.renderFilters()}
|
|
443
|
-
<Link className={styles.linkToDetailed} to={`/${isAlternative ? 'alternative' : 'search'}/detailed${locationSearch}`}>{t('SearchPage:detailedSearch')}</Link>
|
|
408
|
+
<Link className={styles.linkToDetailed} to={ `/${isAlternative ? 'alternative' : 'search'}/detailed${locationSearch}` }>{t('SearchPage:detailedSearch')}</Link>
|
|
444
409
|
</div>
|
|
445
410
|
);
|
|
446
411
|
}
|
|
@@ -454,10 +419,9 @@ const removeUnknownOptions = (options: any) => {
|
|
|
454
419
|
// export default React.memo(FiltersContainer);
|
|
455
420
|
|
|
456
421
|
export default React.memo(FiltersContainer, (props, nextProps) => {
|
|
457
|
-
const { t, location, filters, aggregation
|
|
458
|
-
return t
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
});
|
|
422
|
+
const { t, location, filters, aggregation } = props;
|
|
423
|
+
return t === nextProps.t &&
|
|
424
|
+
location.search === nextProps.location.search &&
|
|
425
|
+
isEqual(aggregation, nextProps.aggregation) &&
|
|
426
|
+
isEqual(filters.MMS_GROUPS, nextProps.filters.MMS_GROUPS)
|
|
427
|
+
});
|
|
@@ -8,103 +8,74 @@ 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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
export const GOOGLE_BUNDLE_COOKIES = {
|
|
12
|
+
analytics_storage: { name: 'Google-Analytics' },
|
|
13
|
+
ad_storage: { name: 'Google-Werbeausrichtung' },
|
|
14
|
+
functionality_storage: { name: 'Google-Funktionalität' },
|
|
15
|
+
personalization_storage: { name: 'Google-Personalisierung' },
|
|
16
|
+
security_storage: { name: 'Google-Sicherheit' }
|
|
17
|
+
};
|
|
18
18
|
|
|
19
19
|
/* tslint:disable */
|
|
20
|
-
|
|
21
|
-
export const COOKIE_SCHEMA_LINKS = {
|
|
22
|
-
['auto.de']: 'https://www.auto.de/datenschutz/',
|
|
23
|
-
Cloudflare: 'https://www.cloudflare.com/de-de/gdpr/introduction/',
|
|
24
|
-
Firebase: 'https://firebase.google.com/support/privacy?hl=de',
|
|
25
|
-
Google: 'https://policies.google.com/privacy?hl=de',
|
|
26
|
-
Criteo: 'https://www.criteo.com/de/privacy/',
|
|
27
|
-
Facebook: 'https://www.facebook.com/privacy/policies/cookies/?entry_point=cookie_policy_redirect&entry=0',
|
|
28
|
-
['Google Analytics']: 'https://policies.google.com/privacy?hl=de',
|
|
29
|
-
Hotjar: 'https://www.hotjar.com/legal/policies/privacy/de/',
|
|
30
|
-
Microsoft: 'https://privacy.microsoft.com/de-de/privacystatement',
|
|
31
|
-
Matomo: 'https://matomo.org/privacy-policy/',
|
|
32
|
-
Trustpilot: 'https://de.legal.trustpilot.com/for-reviewers/end-user-privacy-terms',
|
|
33
|
-
Awin: 'https://www.awin.com/de/datenschutzerklarung',
|
|
34
|
-
Youtube:'https://www.youtube.com/howyoutubeworks/our-commitments/protecting-user-data/'
|
|
35
|
-
}
|
|
36
|
-
|
|
37
20
|
export const COOKIE_SCHEMA = {
|
|
38
21
|
necessary: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Matomo: ['MATOMO_SESSID','_pk_ses.1.4d04', '_pk_id.1.4d04'],
|
|
47
|
-
Trustpilot: ['']
|
|
22
|
+
__cfruid: { name: 'Cloudflare' },
|
|
23
|
+
cf_chl_2: { name: 'Cloudflare für Webverkehr zu identifizieren' },
|
|
24
|
+
cf_chl_rc_ni: { name: 'Cloudflare für den internen Gebrauch' },
|
|
25
|
+
['next-i18next']: { name: 'Spracheinstellungen' },
|
|
26
|
+
_cfuvid: { name: 'Cloudflare WAF' },
|
|
27
|
+
cf_chl_prog: { name: 'Cloudflare für JS' },
|
|
28
|
+
__cf_bm: { name: 'Cloudflare bot' }
|
|
48
29
|
},
|
|
49
30
|
analytics: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
'CMPS',
|
|
65
|
-
'CMPRO',
|
|
66
|
-
'uuid2',
|
|
67
|
-
'um',
|
|
68
|
-
'umeh',
|
|
69
|
-
'KRTBCOOKIE_97',
|
|
70
|
-
'IDSYNC',
|
|
71
|
-
'dpm',
|
|
72
|
-
'_kuid_',
|
|
73
|
-
'visitor-id',
|
|
74
|
-
'data-c-ts',
|
|
75
|
-
'data-c',
|
|
76
|
-
'CMTS',
|
|
77
|
-
'mv_tokens',
|
|
78
|
-
'A3',
|
|
79
|
-
'mv_tokens_eu-v1',
|
|
80
|
-
'am_tokens',
|
|
81
|
-
'am_tokens_eu-v1',
|
|
82
|
-
'iteo'
|
|
83
|
-
],
|
|
84
|
-
Facebook: ['_fbp'],
|
|
85
|
-
['Google Analytics']: [
|
|
86
|
-
...GOOGLE_BUNDLE_COOKIES
|
|
87
|
-
],
|
|
88
|
-
Hotjar: ['hotjar'],
|
|
89
|
-
Microsoft: ['_clck', '_clsk', '_uetsid', '_uetvid']
|
|
31
|
+
PugT: {name: 'PubMatic' },
|
|
32
|
+
locale: {name: 'Personio' },
|
|
33
|
+
uid: { name: 'criteo' },
|
|
34
|
+
callback: { name: 'callback' },
|
|
35
|
+
demdex: { name: 'demdex' },
|
|
36
|
+
vuid: { name: 'Vimeo' },
|
|
37
|
+
_fbp: { name: 'Facebook' },
|
|
38
|
+
hotjar: { name: 'Hotjar-Analytics'},
|
|
39
|
+
_clck: { name: 'Clarity' },
|
|
40
|
+
_clsk: { name: 'Clarity' },
|
|
41
|
+
_uetsid: { name: 'Microsoft-Werbeausrichtung' },
|
|
42
|
+
_uetvid: { name: 'Microsoft-Werbeausrichtung' },
|
|
43
|
+
sentry: { name: 'Sentry' },
|
|
44
|
+
...GOOGLE_BUNDLE_COOKIES
|
|
90
45
|
},
|
|
91
46
|
marketing: {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
47
|
+
test_cookie: { name: 'doubleclick.net' },
|
|
48
|
+
tuuid: { name: '360yield.com' },
|
|
49
|
+
tuuid_lu: { name: '360yield.com' },
|
|
50
|
+
c: { name: 'bidswitch.net' },
|
|
51
|
+
CMID: { name: 'casalemedia.com' },
|
|
52
|
+
CMPS: { name: 'casalemedia.com' },
|
|
53
|
+
CMPRO: { name: 'casalemedia.com' },
|
|
54
|
+
uuid2: { name: 'adnxs.com' },
|
|
55
|
+
IDE: { name: 'Google DoubleClick' },
|
|
56
|
+
um: { name: '360yield.com' },
|
|
57
|
+
umeh: { name: '360yield.com' },
|
|
58
|
+
cf: { name: 'id5-sync.com' },
|
|
59
|
+
cip: { name: 'id5-sync.com' },
|
|
60
|
+
cnac: { name: 'id5-sync.com' },
|
|
61
|
+
car: { name: 'id5-sync.com' },
|
|
62
|
+
KRTBCOOKIE_97: { name: 'PubMatic' },
|
|
63
|
+
IDSYNC: { name: 'analytics.yahoo.com' },
|
|
64
|
+
dpm: { name: 'Demdex' },
|
|
65
|
+
_kuid_: { name: 'Krux' },
|
|
66
|
+
cto_bundle: { name: 'Criteo' },
|
|
67
|
+
['visitor-id']: { name: 'media.net' },
|
|
68
|
+
['data-c-ts']: { name: 'media.net' },
|
|
69
|
+
['data-c']: { name: 'media.net' },
|
|
70
|
+
CMTS: { name: 'casalemedia.com' },
|
|
71
|
+
['mv_tokens']: { name: 'mediavine' },
|
|
72
|
+
A3: { name: 'yahoo.com' },
|
|
73
|
+
['mv_tokens_eu-v1']: { name: 'mediavine' },
|
|
74
|
+
am_tokens: { name: 'mediavine' },
|
|
75
|
+
['am_tokens_eu-v1']: { name: 'mediavine' },
|
|
76
|
+
iteo: { name: 'mediavine' },
|
|
77
|
+
MyVerivoxAuth: { name: 'www.verivox.de' },
|
|
78
|
+
VxCheckAuth: { name: 'www.verivox.de' }
|
|
108
79
|
}
|
|
109
80
|
};
|
|
110
81
|
|
|
@@ -4,7 +4,7 @@ import { selectors } from '@bytebrand/car-schema-selectors';
|
|
|
4
4
|
export const climatisation = {
|
|
5
5
|
key: 'heatingCooling_climatisation',
|
|
6
6
|
climatisationKeys: [
|
|
7
|
-
|
|
7
|
+
'selector_climatisation_no_airCondition',
|
|
8
8
|
'selector_climatisation_airCondition',
|
|
9
9
|
'selector_climatisation_automaticAirCondition',
|
|
10
10
|
'selector_climatisation_2_automaticAirCondition',
|
|
@@ -59,7 +59,7 @@ export const offers = [
|
|
|
59
59
|
name: 'financing',
|
|
60
60
|
periods: [12, 24, 36, 48, 60, 72, 84, 96], // tslint:disable-line
|
|
61
61
|
sliders: [
|
|
62
|
-
{ name: 'firstInstallment', min: 0, step: 100, unit: 'euro'
|
|
62
|
+
{ name: 'firstInstallment', min: 0, step: 100, unit: 'euro' }, // tslint:disable-line
|
|
63
63
|
{ name: 'annualMileage', min: 5000, max: 60000, step: 5000, unit: 'km' } // tslint:disable-line
|
|
64
64
|
]
|
|
65
65
|
},
|
|
@@ -32,7 +32,6 @@ export interface IImage {
|
|
|
32
32
|
isSimpleTemp: boolean;
|
|
33
33
|
isInProcessing: boolean;
|
|
34
34
|
isTemp: boolean;
|
|
35
|
-
videoUrl:string; // youtube link that can be used in src in youtube video,
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
export interface IPrice {
|
|
@@ -97,7 +96,7 @@ export interface IVehicleInfo {
|
|
|
97
96
|
linkTag?: string;
|
|
98
97
|
mlCurrentSalesPricePredicted?: number;
|
|
99
98
|
location?: IVehicleLocation;
|
|
100
|
-
common
|
|
99
|
+
common: {
|
|
101
100
|
currentSalesPrice?: number;
|
|
102
101
|
isStrikeShown?: boolean;
|
|
103
102
|
};
|
|
@@ -188,9 +187,7 @@ export interface IVehicleDetailedSidebarPriceProps {
|
|
|
188
187
|
isAlternative?: boolean;
|
|
189
188
|
// currentSalesPrice?: number;
|
|
190
189
|
originalSalesPrice?: number;
|
|
191
|
-
common
|
|
192
|
-
financing?: any;
|
|
193
|
-
currentSalesPrice?: number;
|
|
190
|
+
common: { isStrikeShown?: boolean, currentSalesPrice?: number };
|
|
194
191
|
}
|
|
195
192
|
export interface ITabsProps {
|
|
196
193
|
t?: (key: string, options?: object) => string;
|
|
@@ -251,8 +248,6 @@ export interface IVehicleDetailedSidebarProps {
|
|
|
251
248
|
infoSections: { title: string, value: string, icon?: string }[];
|
|
252
249
|
isAlternative?: boolean;
|
|
253
250
|
onCurrentSalesPriceChange: (price: number) => void;
|
|
254
|
-
className?: string;
|
|
255
|
-
isFetching?: boolean;
|
|
256
251
|
}
|
|
257
252
|
|
|
258
253
|
interface IOfferRequestButtonWrapper {
|
|
@@ -345,7 +340,7 @@ export interface IVehicleCompareProps {
|
|
|
345
340
|
onRemoveClick: () => void;
|
|
346
341
|
}
|
|
347
342
|
|
|
348
|
-
export interface
|
|
343
|
+
export interface TFunction {
|
|
349
344
|
<T = string>(key: string, options?: object): T;
|
|
350
345
|
<T = string>(keys: string[], options?: object): T;
|
|
351
|
-
}
|
|
346
|
+
}
|