@wayke-se/components-react 3.3.0 → 3.3.2
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/dist-node/index.js
CHANGED
|
@@ -467,6 +467,7 @@ const Wrapper$3 = styled__default.div.attrs(() => ({
|
|
|
467
467
|
`}
|
|
468
468
|
`;
|
|
469
469
|
|
|
470
|
+
// Adds element only visible to screen readers
|
|
470
471
|
const SrOnly = styled__default.div`
|
|
471
472
|
position: absolute;
|
|
472
473
|
width: 1px;
|
|
@@ -554,15 +555,14 @@ const COLOR_BEIGE = {
|
|
|
554
555
|
export const DEFAULT_PLACEHOLDER_IMAGE =
|
|
555
556
|
'https://cdn.wayke.se/wui/images/placeholders/placeholder_product_card.jpg';
|
|
556
557
|
*/
|
|
557
|
-
|
|
558
558
|
const DEFAULT_PLACEHOLDER_IMAGE = 'data:image/jpeg;base64,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';
|
|
559
559
|
|
|
560
|
+
// Filter function to remove any null/undefined values.
|
|
560
561
|
const notEmpty = value => value !== null && value !== undefined;
|
|
561
562
|
const numberSeparator = (value, n = 0, x = 3, s = ' ', c = '.') => {
|
|
562
563
|
if (value === null || value === undefined) {
|
|
563
564
|
return null;
|
|
564
565
|
}
|
|
565
|
-
|
|
566
566
|
const re = `\\d(?=(\\d{${x || 3}})+${n > 0 ? '\\D' : '$'})`;
|
|
567
567
|
const num = value.toFixed(Math.max(0, ~~n));
|
|
568
568
|
return (c ? num.replace('.', c) : num).replace(new RegExp(re, 'g'), `$&${s || ','}`);
|
|
@@ -571,43 +571,30 @@ const FacetIdToTitle = f => {
|
|
|
571
571
|
switch (f) {
|
|
572
572
|
case MANUFACTURER:
|
|
573
573
|
return 'Tillverkare';
|
|
574
|
-
|
|
575
574
|
case MODEL_SERIES:
|
|
576
575
|
return 'Modell';
|
|
577
|
-
|
|
578
576
|
case FUEL_TYPE:
|
|
579
577
|
return 'Drivmedel';
|
|
580
|
-
|
|
581
578
|
case GEARBOX_TYPE:
|
|
582
579
|
return 'Växellåda';
|
|
583
|
-
|
|
584
580
|
case SEGMENT:
|
|
585
581
|
return 'Segment';
|
|
586
|
-
|
|
587
582
|
case DRIVING_WHEEL:
|
|
588
583
|
return 'Drivhjul';
|
|
589
|
-
|
|
590
584
|
case ENVIRONMENT_CLASS:
|
|
591
585
|
return 'Miljöklass';
|
|
592
|
-
|
|
593
586
|
case COLOR:
|
|
594
587
|
return 'Färg';
|
|
595
|
-
|
|
596
588
|
case PRICE:
|
|
597
589
|
return 'Pris';
|
|
598
|
-
|
|
599
590
|
case BRANCH:
|
|
600
591
|
return 'Anläggning';
|
|
601
|
-
|
|
602
592
|
case MILEAGE:
|
|
603
593
|
return 'Miltal';
|
|
604
|
-
|
|
605
594
|
case MODEL_YEAR:
|
|
606
595
|
return 'Modellår';
|
|
607
|
-
|
|
608
596
|
case LEASING_PRICE:
|
|
609
597
|
return 'Privatleasing';
|
|
610
|
-
|
|
611
598
|
default:
|
|
612
599
|
return f;
|
|
613
600
|
}
|
|
@@ -617,18 +604,15 @@ const dateTimeFormat = {
|
|
|
617
604
|
DayMonth: 2,
|
|
618
605
|
format: (value, format) => {
|
|
619
606
|
const date = new Date(value);
|
|
620
|
-
|
|
621
607
|
switch (format) {
|
|
622
608
|
case dateTimeFormat.YearMonth:
|
|
623
609
|
return dateFns.format(date, 'MMMM yyyy', {
|
|
624
610
|
locale: locale.sv
|
|
625
611
|
});
|
|
626
|
-
|
|
627
612
|
case dateTimeFormat.DayMonth:
|
|
628
613
|
return dateFns.format(date, 'd MMMM yyyy', {
|
|
629
614
|
locale: locale.sv
|
|
630
615
|
});
|
|
631
|
-
|
|
632
616
|
default:
|
|
633
617
|
return dateFns.format(date, 'yyyy-MM-dd HH:mm', {
|
|
634
618
|
locale: locale.sv
|
|
@@ -825,22 +809,16 @@ const getTranslatedSortOptionDisplayName = str => {
|
|
|
825
809
|
switch (str) {
|
|
826
810
|
case SortOptionDisplayName.PublishedAsc:
|
|
827
811
|
return 'Publicerad äldst';
|
|
828
|
-
|
|
829
812
|
case SortOptionDisplayName.PublishedDesc:
|
|
830
813
|
return 'Publicerad senast';
|
|
831
|
-
|
|
832
814
|
case SortOptionDisplayName.PriceAsc:
|
|
833
815
|
return 'Pris lägst';
|
|
834
|
-
|
|
835
816
|
case SortOptionDisplayName.Pricedesc:
|
|
836
817
|
return 'Pris högst';
|
|
837
|
-
|
|
838
818
|
case SortOptionDisplayName.ModelAsc:
|
|
839
819
|
return 'Årsmodell äldst';
|
|
840
|
-
|
|
841
820
|
case SortOptionDisplayName.Modeldesc:
|
|
842
821
|
return 'Årsmodell nyast';
|
|
843
|
-
|
|
844
822
|
default:
|
|
845
823
|
return str;
|
|
846
824
|
}
|
|
@@ -850,7 +828,6 @@ const Result = ({
|
|
|
850
828
|
children
|
|
851
829
|
}) => {
|
|
852
830
|
var _response$documentLis;
|
|
853
|
-
|
|
854
831
|
const {
|
|
855
832
|
loading,
|
|
856
833
|
response,
|
|
@@ -868,11 +845,9 @@ const Result = ({
|
|
|
868
845
|
value: so.query,
|
|
869
846
|
displayName: getTranslatedSortOptionDisplayName(so.displayName)
|
|
870
847
|
}));
|
|
871
|
-
|
|
872
848
|
if (loading && !useSkeletons) {
|
|
873
849
|
return React__default.createElement(Loader, null);
|
|
874
850
|
}
|
|
875
|
-
|
|
876
851
|
return React__default.createElement(Wrapper$1, null, React__default.createElement(Header, null, React__default.createElement(HeaderCount, null, React__default.createElement(ResultCount, null, `${numberSeparator(numberOfHits)} ${numberOfHits === 1 ? 'bil' : 'bilar'}`)), sortOptions && selectedSortOption && React__default.createElement(HeaderSort, null, React__default.createElement(SortSelect, {
|
|
877
852
|
value: selectedSortOption,
|
|
878
853
|
options: sortOptions,
|
|
@@ -891,17 +866,14 @@ const Result = ({
|
|
|
891
866
|
|
|
892
867
|
function ownKeys(object, enumerableOnly) {
|
|
893
868
|
var keys = Object.keys(object);
|
|
894
|
-
|
|
895
869
|
if (Object.getOwnPropertySymbols) {
|
|
896
870
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
897
871
|
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
898
872
|
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
899
873
|
})), keys.push.apply(keys, symbols);
|
|
900
874
|
}
|
|
901
|
-
|
|
902
875
|
return keys;
|
|
903
876
|
}
|
|
904
|
-
|
|
905
877
|
function _objectSpread2(target) {
|
|
906
878
|
for (var i = 1; i < arguments.length; i++) {
|
|
907
879
|
var source = null != arguments[i] ? arguments[i] : {};
|
|
@@ -911,10 +883,8 @@ function _objectSpread2(target) {
|
|
|
911
883
|
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
912
884
|
});
|
|
913
885
|
}
|
|
914
|
-
|
|
915
886
|
return target;
|
|
916
887
|
}
|
|
917
|
-
|
|
918
888
|
function _defineProperty(obj, key, value) {
|
|
919
889
|
if (key in obj) {
|
|
920
890
|
Object.defineProperty(obj, key, {
|
|
@@ -926,7 +896,6 @@ function _defineProperty(obj, key, value) {
|
|
|
926
896
|
} else {
|
|
927
897
|
obj[key] = value;
|
|
928
898
|
}
|
|
929
|
-
|
|
930
899
|
return obj;
|
|
931
900
|
}
|
|
932
901
|
|
|
@@ -1031,7 +1000,6 @@ export const H3 = styled(HeadingBase).attrs<{ as: string }>((props) => ({
|
|
|
1031
1000
|
font-size: 1.125rem;
|
|
1032
1001
|
`;
|
|
1033
1002
|
*/
|
|
1034
|
-
|
|
1035
1003
|
const H4 = styled__default(HeadingBase).attrs(props => ({
|
|
1036
1004
|
as: props.as || 'h4'
|
|
1037
1005
|
}))`
|
|
@@ -1049,7 +1017,6 @@ export const H6 = styled(HeadingBase).attrs<{ as: string }>((props) => ({
|
|
|
1049
1017
|
font-size: 0.67rem;
|
|
1050
1018
|
`;
|
|
1051
1019
|
*/
|
|
1052
|
-
|
|
1053
1020
|
const VisualHeading = styled__default.div.attrs(() => ({
|
|
1054
1021
|
className: 'wayke__theme wayke__font--bold'
|
|
1055
1022
|
}))`
|
|
@@ -1208,11 +1175,9 @@ const Portal = ({
|
|
|
1208
1175
|
children
|
|
1209
1176
|
}) => {
|
|
1210
1177
|
const el = React__default.useRef(document.getElementById(id) || document.createElement('div'));
|
|
1211
|
-
|
|
1212
1178
|
if (!el.current) {
|
|
1213
1179
|
return null;
|
|
1214
1180
|
}
|
|
1215
|
-
|
|
1216
1181
|
const {
|
|
1217
1182
|
current
|
|
1218
1183
|
} = el;
|
|
@@ -1220,12 +1185,10 @@ const Portal = ({
|
|
|
1220
1185
|
React__default.useEffect(() => {
|
|
1221
1186
|
if (dynamic) {
|
|
1222
1187
|
current.id = id;
|
|
1223
|
-
|
|
1224
1188
|
if (document.body) {
|
|
1225
1189
|
document.body.appendChild(current);
|
|
1226
1190
|
}
|
|
1227
1191
|
}
|
|
1228
|
-
|
|
1229
1192
|
return () => {
|
|
1230
1193
|
if (dynamic && current.parentElement) {
|
|
1231
1194
|
current.parentElement.removeChild(current);
|
|
@@ -1234,7 +1197,6 @@ const Portal = ({
|
|
|
1234
1197
|
}, [id]);
|
|
1235
1198
|
return ReactDOM.createPortal(children, current);
|
|
1236
1199
|
};
|
|
1237
|
-
|
|
1238
1200
|
var Portal$1 = React__default.memo(Portal);
|
|
1239
1201
|
|
|
1240
1202
|
const Panel = ({
|
|
@@ -1370,7 +1332,6 @@ const AccordionItem = ({
|
|
|
1370
1332
|
block: true
|
|
1371
1333
|
}))), React__default.createElement(Body$2, null, children));
|
|
1372
1334
|
};
|
|
1373
|
-
|
|
1374
1335
|
const Accordion = ({
|
|
1375
1336
|
children
|
|
1376
1337
|
}) => React__default.createElement(List$1, null, children);
|
|
@@ -1462,7 +1423,6 @@ const ChecklistItem = ({
|
|
|
1462
1423
|
})), React__default.createElement(ActionLabel, {
|
|
1463
1424
|
className: active ? 'wayke__theme wayke__font--bold wayke__color--primary-text' : ''
|
|
1464
1425
|
}, label)));
|
|
1465
|
-
|
|
1466
1426
|
const Checklist = ({
|
|
1467
1427
|
items,
|
|
1468
1428
|
radio
|
|
@@ -1470,7 +1430,6 @@ const Checklist = ({
|
|
|
1470
1430
|
if (!(items !== null && items !== void 0 && items.length)) {
|
|
1471
1431
|
return null;
|
|
1472
1432
|
}
|
|
1473
|
-
|
|
1474
1433
|
return React__default.createElement(List$2, null, items.map(item => React__default.createElement(ChecklistItem, {
|
|
1475
1434
|
key: item.label,
|
|
1476
1435
|
label: item.label,
|
|
@@ -1613,14 +1572,12 @@ const ColorSelectItem = ({
|
|
|
1613
1572
|
className: active ? 'wayke__theme wayke__color--primary-text wayke__font--bold' : ''
|
|
1614
1573
|
}, label)));
|
|
1615
1574
|
};
|
|
1616
|
-
|
|
1617
1575
|
const ColorSelect = ({
|
|
1618
1576
|
items
|
|
1619
1577
|
}) => {
|
|
1620
1578
|
if (!items) {
|
|
1621
1579
|
return null;
|
|
1622
1580
|
}
|
|
1623
|
-
|
|
1624
1581
|
return React__default.createElement(List$3, null, items.map(item => React__default.createElement(ColorSelectItem, {
|
|
1625
1582
|
key: item.label,
|
|
1626
1583
|
label: item.label,
|
|
@@ -1636,40 +1593,28 @@ const getHexColorFromDisplayName = displayName => {
|
|
|
1636
1593
|
switch (displayName) {
|
|
1637
1594
|
case COLOR_WHITE.displayName:
|
|
1638
1595
|
return COLOR_WHITE.hex;
|
|
1639
|
-
|
|
1640
1596
|
case COLOR_BLACK.displayName:
|
|
1641
1597
|
return COLOR_BLACK.hex;
|
|
1642
|
-
|
|
1643
1598
|
case COLOR_GRAY.displayName:
|
|
1644
1599
|
return COLOR_GRAY.hex;
|
|
1645
|
-
|
|
1646
1600
|
case COLOR_SILVER.displayName:
|
|
1647
1601
|
return COLOR_SILVER.hex;
|
|
1648
|
-
|
|
1649
1602
|
case COLOR_BLUE.displayName:
|
|
1650
1603
|
return COLOR_BLUE.hex;
|
|
1651
|
-
|
|
1652
1604
|
case COLOR_RED.displayName:
|
|
1653
1605
|
return COLOR_RED.hex;
|
|
1654
|
-
|
|
1655
1606
|
case COLOR_BROWN.displayName:
|
|
1656
1607
|
return COLOR_BROWN.hex;
|
|
1657
|
-
|
|
1658
1608
|
case COLOR_GREEN.displayName:
|
|
1659
1609
|
return COLOR_GREEN.hex;
|
|
1660
|
-
|
|
1661
1610
|
case COLOR_ORANGE.displayName:
|
|
1662
1611
|
return COLOR_ORANGE.hex;
|
|
1663
|
-
|
|
1664
1612
|
case COLOR_YELLOW.displayName:
|
|
1665
1613
|
return COLOR_YELLOW.hex;
|
|
1666
|
-
|
|
1667
1614
|
case COLOR_PURPLE.displayName:
|
|
1668
1615
|
return COLOR_PURPLE.hex;
|
|
1669
|
-
|
|
1670
1616
|
case COLOR_BEIGE.displayName:
|
|
1671
1617
|
return COLOR_BEIGE.hex;
|
|
1672
|
-
|
|
1673
1618
|
default:
|
|
1674
1619
|
return '#fff';
|
|
1675
1620
|
}
|
|
@@ -1824,7 +1769,6 @@ const getSteps = steps => {
|
|
|
1824
1769
|
steps.forEach((step, index) => {
|
|
1825
1770
|
if (index !== 0) {
|
|
1826
1771
|
const c = step - steps[index - 1];
|
|
1827
|
-
|
|
1828
1772
|
if (c < current) {
|
|
1829
1773
|
current = c;
|
|
1830
1774
|
}
|
|
@@ -1832,7 +1776,6 @@ const getSteps = steps => {
|
|
|
1832
1776
|
});
|
|
1833
1777
|
return current;
|
|
1834
1778
|
};
|
|
1835
|
-
|
|
1836
1779
|
const RangeSlider = ({
|
|
1837
1780
|
loading,
|
|
1838
1781
|
values,
|
|
@@ -1853,9 +1796,7 @@ const RangeSlider = ({
|
|
|
1853
1796
|
const currentMin = formatValues ? numberSeparator(current[0]) : current[0];
|
|
1854
1797
|
const currentMax = formatValues ? numberSeparator(current[1]) : current[1];
|
|
1855
1798
|
const equal = domain[0] === domain[1];
|
|
1856
|
-
|
|
1857
1799
|
const _maxPrefix = maxPrefix && domain[1] === current[1] ? maxPrefix : undefined;
|
|
1858
|
-
|
|
1859
1800
|
React.useEffect(() => {
|
|
1860
1801
|
if (values[0] !== current[0] || values[1] !== current[1]) {
|
|
1861
1802
|
setCurrent(values);
|
|
@@ -1923,25 +1864,19 @@ const RangeSlider = ({
|
|
|
1923
1864
|
|
|
1924
1865
|
const getInitialValues = (domain, facet, searchParams) => {
|
|
1925
1866
|
const facetMin = domain[0]; //parseInt(facet.filters[0].displayName, 10);
|
|
1926
|
-
|
|
1927
1867
|
const _queryMin = (searchParams === null || searchParams === void 0 ? void 0 : searchParams.get(`${facet.id}.min`)) || null;
|
|
1928
|
-
|
|
1929
1868
|
const facetMax = domain[domain.length - 1]; //parseInt(facet.filters[facet.filters.length - 1].displayName, 10);
|
|
1930
|
-
|
|
1931
1869
|
const _queryMax = (searchParams === null || searchParams === void 0 ? void 0 : searchParams.get(`${facet.id}.max`)) || null;
|
|
1932
|
-
|
|
1933
1870
|
const queryMin = parseInt(_queryMin === null ? `${facetMin}` : _queryMin, 10);
|
|
1934
1871
|
const min = facetMin > queryMin ? facetMin : queryMin;
|
|
1935
1872
|
const queryMax = parseInt(_queryMax === null ? `${facetMax}` : _queryMax, 10);
|
|
1936
1873
|
const max = queryMax > facetMax ? facetMin : queryMax;
|
|
1937
1874
|
return min || max ? [min ? min : domain[0], max ? max : domain[1]] : domain;
|
|
1938
1875
|
};
|
|
1939
|
-
|
|
1940
1876
|
const averageDelta = ([x, ...xs]) => {
|
|
1941
1877
|
if (x === undefined) return NaN;
|
|
1942
1878
|
return xs.reduce(([acc, last], x) => [acc + (x - last), x], [0, x])[0] / xs.length;
|
|
1943
1879
|
};
|
|
1944
|
-
|
|
1945
1880
|
const getSteps$1 = initialAllValues => {
|
|
1946
1881
|
const delta = averageDelta(initialAllValues);
|
|
1947
1882
|
const max = Math.floor(initialAllValues[initialAllValues.length - 1] * 1000) / 1000;
|
|
@@ -1949,14 +1884,12 @@ const getSteps$1 = initialAllValues => {
|
|
|
1949
1884
|
if (delta <= 1000 && delta >= 500) return new Array(max / 500 + 1).fill('').map((x, i) => i * 500);
|
|
1950
1885
|
return initialAllValues;
|
|
1951
1886
|
};
|
|
1952
|
-
|
|
1953
1887
|
const RangeFacet = ({
|
|
1954
1888
|
facet,
|
|
1955
1889
|
unit,
|
|
1956
1890
|
formatValues
|
|
1957
1891
|
}) => {
|
|
1958
1892
|
var _initialFacet$filters, _initialFacet$filters2, _queryFilter$searchPa3;
|
|
1959
|
-
|
|
1960
1893
|
const {
|
|
1961
1894
|
loading,
|
|
1962
1895
|
queryFilter,
|
|
@@ -1968,9 +1901,7 @@ const RangeFacet = ({
|
|
|
1968
1901
|
const [state, setValues] = React.useState(undefined);
|
|
1969
1902
|
React.useEffect(() => {
|
|
1970
1903
|
const _initialAllValues = (initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters.map(f => parseInt(f.displayName.replace(/[\<\>+-]+/g, ''), 10))) || [1, 2];
|
|
1971
|
-
|
|
1972
1904
|
const _steps = getSteps$1(_initialAllValues);
|
|
1973
|
-
|
|
1974
1905
|
const domain = [_steps[0], _steps[_steps.length - 1]];
|
|
1975
1906
|
setValues({
|
|
1976
1907
|
id: initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.id,
|
|
@@ -1982,13 +1913,11 @@ const RangeFacet = ({
|
|
|
1982
1913
|
React.useEffect(() => {
|
|
1983
1914
|
if (state !== null && state !== void 0 && state.id) {
|
|
1984
1915
|
var _queryFilter$searchPa, _queryFilter$searchPa2;
|
|
1985
|
-
|
|
1986
1916
|
const init = initialFacet !== null && initialFacet !== void 0 && initialFacet.filters.length ? getInitialValues(state.domain, initialFacet, queryFilter.searchParams) : [0, 0];
|
|
1987
1917
|
const minStr = (_queryFilter$searchPa = queryFilter.searchParams) === null || _queryFilter$searchPa === void 0 ? void 0 : _queryFilter$searchPa.get(`${facet.id}.min`);
|
|
1988
1918
|
const maxStr = (_queryFilter$searchPa2 = queryFilter.searchParams) === null || _queryFilter$searchPa2 === void 0 ? void 0 : _queryFilter$searchPa2.get(`${facet.id}.max`);
|
|
1989
1919
|
const min = minStr ? parseFloat(minStr) : init[0];
|
|
1990
1920
|
const max = maxStr ? parseFloat(maxStr) : init[1];
|
|
1991
|
-
|
|
1992
1921
|
if (min !== state.values[0] || max !== state.values[1]) {
|
|
1993
1922
|
onChange([min, max]);
|
|
1994
1923
|
}
|
|
@@ -2004,15 +1933,12 @@ const RangeFacet = ({
|
|
|
2004
1933
|
query.set('hits', '30');
|
|
2005
1934
|
query.delete(`${facet.id}.min`);
|
|
2006
1935
|
query.delete(`${facet.id}.max`);
|
|
2007
|
-
|
|
2008
1936
|
if (nextValues[0] !== state.domain[0]) {
|
|
2009
1937
|
query.set(`${facet.id}.min`, `${nextValues[0]}`);
|
|
2010
1938
|
}
|
|
2011
|
-
|
|
2012
1939
|
if (nextValues[1] !== state.domain[1]) {
|
|
2013
1940
|
query.set(`${facet.id}.max`, `${nextValues[1]}`);
|
|
2014
1941
|
}
|
|
2015
|
-
|
|
2016
1942
|
query.sort();
|
|
2017
1943
|
onFilterUpdate(query.toString());
|
|
2018
1944
|
}
|
|
@@ -2045,39 +1971,33 @@ const FacetSelector = ({
|
|
|
2045
1971
|
return React__default.createElement(ChecklistFacet, {
|
|
2046
1972
|
facet: facet
|
|
2047
1973
|
});
|
|
2048
|
-
|
|
2049
1974
|
case COLOR:
|
|
2050
1975
|
return React__default.createElement(ColorSelectFacet, {
|
|
2051
1976
|
facet: facet
|
|
2052
1977
|
});
|
|
2053
|
-
|
|
2054
1978
|
case PRICE:
|
|
2055
1979
|
return React__default.createElement(RangeFacet, {
|
|
2056
1980
|
facet: facet,
|
|
2057
1981
|
unit: "kr",
|
|
2058
1982
|
formatValues: true
|
|
2059
1983
|
});
|
|
2060
|
-
|
|
2061
1984
|
case LEASING_PRICE:
|
|
2062
1985
|
return React__default.createElement(RangeFacet, {
|
|
2063
1986
|
facet: facet,
|
|
2064
1987
|
unit: "kr/m\u00E5n",
|
|
2065
1988
|
formatValues: true
|
|
2066
1989
|
});
|
|
2067
|
-
|
|
2068
1990
|
case MILEAGE:
|
|
2069
1991
|
return React__default.createElement(RangeFacet, {
|
|
2070
1992
|
facet: facet,
|
|
2071
1993
|
unit: "mil",
|
|
2072
1994
|
formatValues: true
|
|
2073
1995
|
});
|
|
2074
|
-
|
|
2075
1996
|
case MODEL_YEAR:
|
|
2076
1997
|
return React__default.createElement(RangeFacet, {
|
|
2077
1998
|
facet: facet,
|
|
2078
1999
|
unit: "\u00E5r"
|
|
2079
2000
|
});
|
|
2080
|
-
|
|
2081
2001
|
default:
|
|
2082
2002
|
return null;
|
|
2083
2003
|
}
|
|
@@ -2119,17 +2039,14 @@ const isSelected = (f, searchParams) => {
|
|
|
2119
2039
|
case MILEAGE:
|
|
2120
2040
|
case MODEL_YEAR:
|
|
2121
2041
|
return searchParams.has(`${f.id}.min`) || searchParams.has(`${f.id}.max`) ? 1 : 0;
|
|
2122
|
-
|
|
2123
2042
|
default:
|
|
2124
2043
|
return f.filters.filter(filter => filter.selected).length;
|
|
2125
2044
|
}
|
|
2126
2045
|
};
|
|
2127
|
-
|
|
2128
2046
|
const Filter = ({
|
|
2129
2047
|
filterList
|
|
2130
2048
|
}) => {
|
|
2131
2049
|
var _facets$filter;
|
|
2132
|
-
|
|
2133
2050
|
const {
|
|
2134
2051
|
queryFilter,
|
|
2135
2052
|
initialFacets,
|
|
@@ -2141,21 +2058,17 @@ const Filter = ({
|
|
|
2141
2058
|
const [facet, setFacet] = React.useState();
|
|
2142
2059
|
const onSelectFacet = React.useCallback(nextFacet => setFacet(nextFacet), []);
|
|
2143
2060
|
const onClose = React.useCallback(() => setFacet(undefined), []);
|
|
2144
|
-
|
|
2145
2061
|
if (!facets) {
|
|
2146
2062
|
return null;
|
|
2147
2063
|
}
|
|
2148
|
-
|
|
2149
2064
|
const filterNames = filterList ? filterList.map(x => x.filterName) : undefined;
|
|
2150
2065
|
const filteredFacets = facets === null || facets === void 0 ? void 0 : (_facets$filter = facets.filter(x => x.id !== 'segment')) === null || _facets$filter === void 0 ? void 0 : _facets$filter.filter(f => filterNames ? filterNames.includes(f.id) : true).sort((a, b) => filterNames ? filterNames.indexOf(a.id) - filterNames.indexOf(b.id) : 0).map(x => {
|
|
2151
2066
|
const match = filterList === null || filterList === void 0 ? void 0 : filterList.find(y => y.filterName === x.id);
|
|
2152
|
-
|
|
2153
2067
|
if (match !== null && match !== void 0 && match.displayName) {
|
|
2154
2068
|
return _objectSpread2(_objectSpread2({}, x), {}, {
|
|
2155
2069
|
displayName: match.displayName
|
|
2156
2070
|
});
|
|
2157
2071
|
}
|
|
2158
|
-
|
|
2159
2072
|
return _objectSpread2(_objectSpread2({}, x), {}, {
|
|
2160
2073
|
displayName: FacetIdToTitle(x.id)
|
|
2161
2074
|
});
|
|
@@ -2428,7 +2341,6 @@ const UspItem = ({
|
|
|
2428
2341
|
block: true
|
|
2429
2342
|
})))));
|
|
2430
2343
|
};
|
|
2431
|
-
|
|
2432
2344
|
const UspList = ({
|
|
2433
2345
|
items,
|
|
2434
2346
|
small
|
|
@@ -2436,7 +2348,6 @@ const UspList = ({
|
|
|
2436
2348
|
if (!items) {
|
|
2437
2349
|
return null;
|
|
2438
2350
|
}
|
|
2439
|
-
|
|
2440
2351
|
return React__default.createElement(List$5, {
|
|
2441
2352
|
isSmall: small
|
|
2442
2353
|
}, items.map((item, index) => React__default.createElement(UspItem, {
|
|
@@ -2450,11 +2361,9 @@ const PathContext = React.createContext(undefined);
|
|
|
2450
2361
|
|
|
2451
2362
|
const usePath = () => {
|
|
2452
2363
|
const context = React.useContext(PathContext);
|
|
2453
|
-
|
|
2454
2364
|
if (!context) {
|
|
2455
2365
|
throw new Error('usePath must be used within a PathProvider');
|
|
2456
2366
|
}
|
|
2457
|
-
|
|
2458
2367
|
return context;
|
|
2459
2368
|
};
|
|
2460
2369
|
|
|
@@ -2475,13 +2384,10 @@ const ProductCard = ({
|
|
|
2475
2384
|
const {
|
|
2476
2385
|
pushState
|
|
2477
2386
|
} = usePath();
|
|
2478
|
-
|
|
2479
2387
|
const _onClick = React.useMemo(() => onClick ? () => onClick(id) : undefined, [id]);
|
|
2480
|
-
|
|
2481
2388
|
const onHrefClick = React.useCallback(e => {
|
|
2482
2389
|
if (pathRoute && href) {
|
|
2483
2390
|
const reg = new RegExp('^((http|https)://)|//');
|
|
2484
|
-
|
|
2485
2391
|
if (!pathRoute.match(reg) && !pathRoute.startsWith(location.origin)) {
|
|
2486
2392
|
e.preventDefault();
|
|
2487
2393
|
pushState(href);
|
|
@@ -2514,16 +2420,12 @@ const ProductCard = ({
|
|
|
2514
2420
|
|
|
2515
2421
|
const resolveImage = document => {
|
|
2516
2422
|
var _document$featuredIma, _document$featuredIma2, _document$featuredIma3;
|
|
2517
|
-
|
|
2518
2423
|
const img = (_document$featuredIma = document.featuredImage) === null || _document$featuredIma === void 0 ? void 0 : (_document$featuredIma2 = _document$featuredIma.files) === null || _document$featuredIma2 === void 0 ? void 0 : (_document$featuredIma3 = _document$featuredIma2[0]) === null || _document$featuredIma3 === void 0 ? void 0 : _document$featuredIma3.url;
|
|
2519
|
-
|
|
2520
2424
|
if (img) {
|
|
2521
2425
|
return `${img}?w=567&q=72`;
|
|
2522
2426
|
}
|
|
2523
|
-
|
|
2524
2427
|
return undefined;
|
|
2525
2428
|
};
|
|
2526
|
-
|
|
2527
2429
|
const Grid = ({
|
|
2528
2430
|
documents,
|
|
2529
2431
|
placeholderImage,
|
|
@@ -2534,7 +2436,6 @@ const Grid = ({
|
|
|
2534
2436
|
if (!documents) {
|
|
2535
2437
|
return null;
|
|
2536
2438
|
}
|
|
2537
|
-
|
|
2538
2439
|
return React__default.createElement(Wrapper$7, null, React__default.createElement(List$4, null, documents.map(document => {
|
|
2539
2440
|
/*
|
|
2540
2441
|
const _path = pathRoute?.replace(/^\/|\/$/g, '');
|
|
@@ -2544,7 +2445,6 @@ const Grid = ({
|
|
|
2544
2445
|
? `${prefix}${document._id}`
|
|
2545
2446
|
: `${window.location.pathname}${prefix}${document._id}`;
|
|
2546
2447
|
*/
|
|
2547
|
-
|
|
2548
2448
|
/*
|
|
2549
2449
|
const _pathRoute = pathRoute
|
|
2550
2450
|
? pathRoute.startsWith('/')
|
|
@@ -2554,7 +2454,6 @@ const Grid = ({
|
|
|
2554
2454
|
console.log(_pathRoute);
|
|
2555
2455
|
*/
|
|
2556
2456
|
const _pathRoute = pathRoute ? `${pathRoute}/${document._id}` : undefined;
|
|
2557
|
-
|
|
2558
2457
|
return React__default.createElement(Item$4, {
|
|
2559
2458
|
key: document._id
|
|
2560
2459
|
}, React__default.createElement(ProductCard, {
|
|
@@ -2780,7 +2679,6 @@ const useOutsideClick = (ref, callback) => {
|
|
|
2780
2679
|
callback();
|
|
2781
2680
|
}
|
|
2782
2681
|
};
|
|
2783
|
-
|
|
2784
2682
|
React.useEffect(() => {
|
|
2785
2683
|
document.addEventListener('click', handleClick);
|
|
2786
2684
|
return () => {
|
|
@@ -2797,11 +2695,9 @@ const SearchBar = ({
|
|
|
2797
2695
|
const ref = React.useRef(null);
|
|
2798
2696
|
const onChange = React.useCallback(e => setValue(e.currentTarget.value), []);
|
|
2799
2697
|
useOutsideClick(ref, () => setValue(''));
|
|
2800
|
-
|
|
2801
2698
|
const _onSearch = React.useCallback(() => {
|
|
2802
2699
|
onSearch(value);
|
|
2803
2700
|
}, [value]);
|
|
2804
|
-
|
|
2805
2701
|
const onKeyDown = React.useCallback(e => {
|
|
2806
2702
|
if (e.keyCode === 13) {
|
|
2807
2703
|
_onSearch();
|
|
@@ -2827,17 +2723,14 @@ const SearchFilter = () => {
|
|
|
2827
2723
|
} = useSearch();
|
|
2828
2724
|
const onSearch = React.useCallback(value => {
|
|
2829
2725
|
const nextQuery = new URLSearchParams(queryFilter.searchParams);
|
|
2830
|
-
|
|
2831
2726
|
if (value === nextQuery.get('query')) {
|
|
2832
2727
|
return;
|
|
2833
2728
|
}
|
|
2834
|
-
|
|
2835
2729
|
if (value) {
|
|
2836
2730
|
nextQuery.set('query', value);
|
|
2837
2731
|
} else {
|
|
2838
2732
|
nextQuery.delete('qquery');
|
|
2839
2733
|
}
|
|
2840
|
-
|
|
2841
2734
|
onFilterUpdate(nextQuery.toString());
|
|
2842
2735
|
setValue('');
|
|
2843
2736
|
}, [queryFilter]);
|
|
@@ -2850,7 +2743,6 @@ const SearchFilter = () => {
|
|
|
2850
2743
|
|
|
2851
2744
|
const getSnackbarBg = severity => {
|
|
2852
2745
|
let bg = theme.color.accent;
|
|
2853
|
-
|
|
2854
2746
|
if (severity === 'error') {
|
|
2855
2747
|
bg = theme.color.ui.negativeLight;
|
|
2856
2748
|
} else if (severity === 'warning') {
|
|
@@ -2860,10 +2752,8 @@ const getSnackbarBg = severity => {
|
|
|
2860
2752
|
} else if (severity === 'success') {
|
|
2861
2753
|
bg = theme.color.ui.positiveLight;
|
|
2862
2754
|
}
|
|
2863
|
-
|
|
2864
2755
|
return bg;
|
|
2865
2756
|
};
|
|
2866
|
-
|
|
2867
2757
|
const Wrapper$b = styled__default.div.attrs(() => ({
|
|
2868
2758
|
role: 'alert'
|
|
2869
2759
|
}))`
|
|
@@ -2911,7 +2801,6 @@ const Snackbar = ({
|
|
|
2911
2801
|
let iconSelector = React__default.createElement(IconInfo, {
|
|
2912
2802
|
block: true
|
|
2913
2803
|
});
|
|
2914
|
-
|
|
2915
2804
|
if (severity === 'error') {
|
|
2916
2805
|
iconSelector = React__default.createElement(IconExclamationCircle, {
|
|
2917
2806
|
block: true
|
|
@@ -2925,14 +2814,12 @@ const Snackbar = ({
|
|
|
2925
2814
|
block: true
|
|
2926
2815
|
});
|
|
2927
2816
|
}
|
|
2928
|
-
|
|
2929
2817
|
return React__default.createElement(Wrapper$b, {
|
|
2930
2818
|
severity: severity
|
|
2931
2819
|
}, icon && React__default.createElement(Icon$3, null, iconSelector), React__default.createElement(Content$1, null, heading && React__default.createElement(Heading$3, null, heading), React__default.createElement(Message, null, children)));
|
|
2932
2820
|
};
|
|
2933
2821
|
|
|
2934
2822
|
class PubSub {}
|
|
2935
|
-
|
|
2936
2823
|
PubSub.events = {
|
|
2937
2824
|
HashRouteChange: [],
|
|
2938
2825
|
ItemClicked: [],
|
|
@@ -2952,9 +2839,7 @@ PubSub.actions = {
|
|
|
2952
2839
|
onFilterUpdate: [],
|
|
2953
2840
|
All: []
|
|
2954
2841
|
};
|
|
2955
|
-
|
|
2956
2842
|
PubSub.subscribeAction = event => PubSub.actions[event.actionName].push(event);
|
|
2957
|
-
|
|
2958
2843
|
PubSub.unsubscribeAction = event => {
|
|
2959
2844
|
if (PubSub.actions[event.actionName]) {
|
|
2960
2845
|
for (let i = 0; i < PubSub.actions[event.actionName].length; i++) {
|
|
@@ -2965,12 +2850,10 @@ PubSub.unsubscribeAction = event => {
|
|
|
2965
2850
|
}
|
|
2966
2851
|
}
|
|
2967
2852
|
};
|
|
2968
|
-
|
|
2969
2853
|
PubSub.publishAction = (eventName, ...args) => {
|
|
2970
2854
|
if (PubSub.actions.All) {
|
|
2971
2855
|
PubSub.events.All.forEach(event => event.callback(eventName, args));
|
|
2972
2856
|
}
|
|
2973
|
-
|
|
2974
2857
|
if (PubSub.actions[eventName]) {
|
|
2975
2858
|
PubSub.actions[eventName].forEach(event => {
|
|
2976
2859
|
switch (eventName) {
|
|
@@ -2981,9 +2864,7 @@ PubSub.publishAction = (eventName, ...args) => {
|
|
|
2981
2864
|
});
|
|
2982
2865
|
}
|
|
2983
2866
|
};
|
|
2984
|
-
|
|
2985
2867
|
PubSub.subscribe = event => PubSub.events[event.eventName].push(event);
|
|
2986
|
-
|
|
2987
2868
|
PubSub.unsubscribe = event => {
|
|
2988
2869
|
if (PubSub.events[event.eventName]) {
|
|
2989
2870
|
for (let i = 0; i < PubSub.events[event.eventName].length; i++) {
|
|
@@ -2994,27 +2875,22 @@ PubSub.unsubscribe = event => {
|
|
|
2994
2875
|
}
|
|
2995
2876
|
}
|
|
2996
2877
|
};
|
|
2997
|
-
|
|
2998
2878
|
PubSub.publish = (eventName, ...args) => {
|
|
2999
2879
|
if (PubSub.events.All) {
|
|
3000
2880
|
PubSub.events.All.forEach(event => event.callback(eventName, args));
|
|
3001
2881
|
}
|
|
3002
|
-
|
|
3003
2882
|
if (PubSub.events[eventName]) {
|
|
3004
2883
|
PubSub.events[eventName].forEach(event => {
|
|
3005
2884
|
switch (eventName) {
|
|
3006
2885
|
case 'HashRouteChange':
|
|
3007
2886
|
event.callback(args[0]);
|
|
3008
2887
|
break;
|
|
3009
|
-
|
|
3010
2888
|
case 'ItemClicked':
|
|
3011
2889
|
event.callback(args[0]);
|
|
3012
2890
|
break;
|
|
3013
|
-
|
|
3014
2891
|
case 'EcomOnUserEvent':
|
|
3015
2892
|
event.callback(args[0], args[1]);
|
|
3016
2893
|
break;
|
|
3017
|
-
|
|
3018
2894
|
case 'EcomOnInit':
|
|
3019
2895
|
case 'EcomOnExit':
|
|
3020
2896
|
case 'ImagesClick':
|
|
@@ -3053,12 +2929,10 @@ const WaykeSearch = ({
|
|
|
3053
2929
|
if (modifyDocumentTitleSearch) {
|
|
3054
2930
|
document.title = modifyDocumentTitleSearch;
|
|
3055
2931
|
}
|
|
3056
|
-
|
|
3057
2932
|
onInitialize(typeof initialQueryParams === 'string' ? new URLSearchParams(initialQueryParams) : initialQueryParams);
|
|
3058
2933
|
}, []);
|
|
3059
2934
|
const onItemClicked = React.useCallback(id => {
|
|
3060
2935
|
PubSub.publish('ItemClicked', id);
|
|
3061
|
-
|
|
3062
2936
|
if (onClickSearchItem) {
|
|
3063
2937
|
onClickSearchItem(id);
|
|
3064
2938
|
}
|
|
@@ -3151,11 +3025,9 @@ const LogoBox = ({
|
|
|
3151
3025
|
wide
|
|
3152
3026
|
}) => {
|
|
3153
3027
|
let logoRetina = logo;
|
|
3154
|
-
|
|
3155
3028
|
if (logo2x) {
|
|
3156
3029
|
logoRetina = `${logo2x} 2x`;
|
|
3157
3030
|
}
|
|
3158
|
-
|
|
3159
3031
|
return React.createElement(Logo, {
|
|
3160
3032
|
src: logo,
|
|
3161
3033
|
srcSet: logoRetina,
|
|
@@ -3339,20 +3211,16 @@ const ExtendContent = ({
|
|
|
3339
3211
|
const [extend, setExtend] = React.useState(false);
|
|
3340
3212
|
const onExtend = React.useCallback(() => {
|
|
3341
3213
|
setExtend(true);
|
|
3342
|
-
|
|
3343
3214
|
if (onClick) {
|
|
3344
3215
|
onClick();
|
|
3345
3216
|
}
|
|
3346
3217
|
}, []);
|
|
3347
|
-
|
|
3348
3218
|
const onRef = ref => {
|
|
3349
3219
|
const refHeight = (ref === null || ref === void 0 ? void 0 : ref.clientHeight) || 0;
|
|
3350
|
-
|
|
3351
3220
|
if (refHeight < 207) {
|
|
3352
3221
|
setExtend(true);
|
|
3353
3222
|
}
|
|
3354
3223
|
};
|
|
3355
|
-
|
|
3356
3224
|
return React__default.createElement(Wrapper$f, {
|
|
3357
3225
|
ref: onRef
|
|
3358
3226
|
}, React__default.createElement(Extend, {
|
|
@@ -3364,7 +3232,6 @@ const ExtendContent = ({
|
|
|
3364
3232
|
};
|
|
3365
3233
|
|
|
3366
3234
|
const quickNavWidth = 83; // 75px + 8px
|
|
3367
|
-
|
|
3368
3235
|
const Wrapper$g = styled__default.div`
|
|
3369
3236
|
${props => props.theme.breakpoint.LtMd} {
|
|
3370
3237
|
${Wrapper} & {
|
|
@@ -3509,8 +3376,8 @@ const ImageFull = styled__default.img`
|
|
|
3509
3376
|
width: 100%;
|
|
3510
3377
|
height: 100%;
|
|
3511
3378
|
object-fit: cover;
|
|
3512
|
-
`;
|
|
3513
|
-
|
|
3379
|
+
`;
|
|
3380
|
+
// Arrow Nav
|
|
3514
3381
|
const Arrow = styled__default(ButtonReset)`
|
|
3515
3382
|
position: absolute;
|
|
3516
3383
|
top: 50%;
|
|
@@ -3562,8 +3429,8 @@ const ArrowLeft = styled__default(Arrow)`
|
|
|
3562
3429
|
`;
|
|
3563
3430
|
const ArrowRight = styled__default(Arrow)`
|
|
3564
3431
|
right: ${size(2)};
|
|
3565
|
-
`;
|
|
3566
|
-
|
|
3432
|
+
`;
|
|
3433
|
+
// Quick Nav
|
|
3567
3434
|
const QuickNav = styled__default.ul`
|
|
3568
3435
|
position: relative;
|
|
3569
3436
|
max-height: 100%;
|
|
@@ -3637,16 +3504,16 @@ const QuickNavImg = styled__default.img`
|
|
|
3637
3504
|
width: 100%;
|
|
3638
3505
|
height: 100%;
|
|
3639
3506
|
object-fit: cover;
|
|
3640
|
-
`;
|
|
3641
|
-
|
|
3507
|
+
`;
|
|
3508
|
+
// Media Button
|
|
3642
3509
|
const MediaButtonWrapper = styled__default.div`
|
|
3643
3510
|
position: absolute;
|
|
3644
3511
|
bottom: ${size(2)};
|
|
3645
3512
|
left: 50%;
|
|
3646
3513
|
transform: translateX(-50%);
|
|
3647
3514
|
z-index: 1;
|
|
3648
|
-
`;
|
|
3649
|
-
|
|
3515
|
+
`;
|
|
3516
|
+
// Sphere Close Button
|
|
3650
3517
|
const EnableNavigationButton = styled__default.div`
|
|
3651
3518
|
position: absolute;
|
|
3652
3519
|
bottom: ${size(2)};
|
|
@@ -3757,11 +3624,9 @@ const getYouTubeId = url => {
|
|
|
3757
3624
|
const youtubeBase = 'https://img.youtube.com/vi/';
|
|
3758
3625
|
const getYoutubeThumbnail = url => {
|
|
3759
3626
|
const id = getYouTubeId(url);
|
|
3760
|
-
|
|
3761
3627
|
if (!id) {
|
|
3762
3628
|
return undefined;
|
|
3763
3629
|
}
|
|
3764
|
-
|
|
3765
3630
|
return {
|
|
3766
3631
|
maxresdefault: `${youtubeBase}${id}/maxresdefault.jpg`,
|
|
3767
3632
|
hqdefault: `${youtubeBase}${id}/hqdefault.jpg`,
|
|
@@ -3843,13 +3708,9 @@ const CustomPlayer = ({
|
|
|
3843
3708
|
};
|
|
3844
3709
|
|
|
3845
3710
|
const ytNames = ['youtube.com', 'youtu.be'];
|
|
3846
|
-
|
|
3847
3711
|
const isYouTubeVideo = url => ytNames.some(host => url.indexOf(host) >= 0);
|
|
3848
|
-
|
|
3849
3712
|
const vNames = ['vimeo.com'];
|
|
3850
|
-
|
|
3851
3713
|
const isVimeoVideo = url => vNames.some(host => url.indexOf(host) >= 0);
|
|
3852
|
-
|
|
3853
3714
|
const VideoPlayer = ({
|
|
3854
3715
|
url,
|
|
3855
3716
|
autoplay = false,
|
|
@@ -4150,7 +4011,6 @@ const style = {
|
|
|
4150
4011
|
paddingBottom: '66.666%',
|
|
4151
4012
|
touchAction: 'manipulation'
|
|
4152
4013
|
};
|
|
4153
|
-
|
|
4154
4014
|
const SphereViewer = ({
|
|
4155
4015
|
id,
|
|
4156
4016
|
src,
|
|
@@ -4167,12 +4027,10 @@ const SphereViewer = ({
|
|
|
4167
4027
|
}
|
|
4168
4028
|
}, 100);
|
|
4169
4029
|
}, []);
|
|
4170
|
-
|
|
4171
4030
|
const c = _objectSpread2(_objectSpread2({}, config), {}, {
|
|
4172
4031
|
preview,
|
|
4173
4032
|
autoLoad
|
|
4174
4033
|
});
|
|
4175
|
-
|
|
4176
4034
|
return React__default.createElement(Wrapper$j, null, React__default.createElement(React__default.Suspense, {
|
|
4177
4035
|
fallback: React__default.createElement(Loader, null)
|
|
4178
4036
|
}, React__default.createElement(ReactPannellum, {
|
|
@@ -4202,14 +4060,11 @@ const MediaButton = ({
|
|
|
4202
4060
|
|
|
4203
4061
|
const calculateCurrentFrame = (startFrame, delta, length) => {
|
|
4204
4062
|
const frame = (startFrame + delta) % length;
|
|
4205
|
-
|
|
4206
4063
|
if (frame < 0) {
|
|
4207
4064
|
return frame + length;
|
|
4208
4065
|
}
|
|
4209
|
-
|
|
4210
4066
|
return frame;
|
|
4211
4067
|
};
|
|
4212
|
-
|
|
4213
4068
|
const Rotation = ({
|
|
4214
4069
|
children
|
|
4215
4070
|
}) => {
|
|
@@ -4228,15 +4083,12 @@ const Rotation = ({
|
|
|
4228
4083
|
window.document.body.removeEventListener('mouseup', mouseUp);
|
|
4229
4084
|
};
|
|
4230
4085
|
}, []);
|
|
4231
|
-
|
|
4232
4086
|
const touchMove = event => {
|
|
4233
4087
|
const notTouched = typeof pointerPosition.current !== 'number';
|
|
4234
4088
|
event.preventDefault();
|
|
4235
|
-
|
|
4236
4089
|
if (notTouched) {
|
|
4237
4090
|
return;
|
|
4238
4091
|
}
|
|
4239
|
-
|
|
4240
4092
|
const childCount = React.Children.count(children);
|
|
4241
4093
|
const {
|
|
4242
4094
|
offsetWidth
|
|
@@ -4247,7 +4099,6 @@ const Rotation = ({
|
|
|
4247
4099
|
const delta = Math.floor(offset / max * childCount);
|
|
4248
4100
|
setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));
|
|
4249
4101
|
};
|
|
4250
|
-
|
|
4251
4102
|
const mouseMove = event => {
|
|
4252
4103
|
const notTouched = typeof pointerPosition.current !== 'number';
|
|
4253
4104
|
event.preventDefault();
|
|
@@ -4258,14 +4109,12 @@ const Rotation = ({
|
|
|
4258
4109
|
const delta = Math.floor(offset / max.current * childCount);
|
|
4259
4110
|
setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));
|
|
4260
4111
|
};
|
|
4261
|
-
|
|
4262
4112
|
const mouseUp = () => {
|
|
4263
4113
|
window.document.body.removeEventListener('mousemove', mouseMove);
|
|
4264
4114
|
window.document.body.removeEventListener('mouseup', mouseUp);
|
|
4265
4115
|
pointerPosition.current = undefined;
|
|
4266
4116
|
startFrame.current = 0;
|
|
4267
4117
|
};
|
|
4268
|
-
|
|
4269
4118
|
const touchStart = event => {
|
|
4270
4119
|
event.preventDefault();
|
|
4271
4120
|
pointerPosition.current = calculatePointerPosition(event);
|
|
@@ -4277,25 +4126,21 @@ const Rotation = ({
|
|
|
4277
4126
|
window.document.body.addEventListener('mousemove', mouseMove);
|
|
4278
4127
|
window.document.body.addEventListener('mouseup', mouseUp);
|
|
4279
4128
|
};
|
|
4280
|
-
|
|
4281
4129
|
const touchEnd = event => {
|
|
4282
4130
|
event.preventDefault();
|
|
4283
4131
|
pointerPosition.current = undefined;
|
|
4284
4132
|
startFrame.current = 0;
|
|
4285
4133
|
};
|
|
4286
|
-
|
|
4287
4134
|
const onMouseEnter = () => {
|
|
4288
4135
|
if (state.outsideMouseMove) setState(_objectSpread2(_objectSpread2({}, state), {}, {
|
|
4289
4136
|
outsideMouseMove: false
|
|
4290
4137
|
}));
|
|
4291
4138
|
};
|
|
4292
|
-
|
|
4293
4139
|
const onMouseLeave = () => {
|
|
4294
4140
|
if (!state.outsideMouseMove) setState(_objectSpread2(_objectSpread2({}, state), {}, {
|
|
4295
4141
|
outsideMouseMove: true
|
|
4296
4142
|
}));
|
|
4297
4143
|
};
|
|
4298
|
-
|
|
4299
4144
|
const setCurrentFrame = current => {
|
|
4300
4145
|
if (current !== state.current) {
|
|
4301
4146
|
setState(_objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -4303,7 +4148,6 @@ const Rotation = ({
|
|
|
4303
4148
|
}));
|
|
4304
4149
|
}
|
|
4305
4150
|
};
|
|
4306
|
-
|
|
4307
4151
|
const calculatePointerPosition = event => {
|
|
4308
4152
|
const {
|
|
4309
4153
|
clientX
|
|
@@ -4313,7 +4157,6 @@ const Rotation = ({
|
|
|
4313
4157
|
} = event.currentTarget;
|
|
4314
4158
|
return clientX - offsetLeft;
|
|
4315
4159
|
};
|
|
4316
|
-
|
|
4317
4160
|
return React__default.createElement("div", {
|
|
4318
4161
|
onTouchStart: touchStart,
|
|
4319
4162
|
onTouchMove: touchMove,
|
|
@@ -4335,7 +4178,6 @@ const ThreeSixtyLightbox = ({
|
|
|
4335
4178
|
}) => {
|
|
4336
4179
|
const [started, setStarted] = React.useState(false);
|
|
4337
4180
|
const onStart = React.useCallback(() => setStarted(true), []);
|
|
4338
|
-
|
|
4339
4181
|
if (!started) {
|
|
4340
4182
|
return React__default.createElement(Item$8, null, React__default.createElement(Img$1, {
|
|
4341
4183
|
src: urls[0],
|
|
@@ -4345,7 +4187,6 @@ const ThreeSixtyLightbox = ({
|
|
|
4345
4187
|
onClick: onStart
|
|
4346
4188
|
}));
|
|
4347
4189
|
}
|
|
4348
|
-
|
|
4349
4190
|
return React__default.createElement(Rotation, null, urls.map((image, i) => React__default.createElement(Img$1, {
|
|
4350
4191
|
key: image,
|
|
4351
4192
|
src: image,
|
|
@@ -4365,13 +4206,11 @@ const Lightbox = ({
|
|
|
4365
4206
|
}, 300);
|
|
4366
4207
|
}
|
|
4367
4208
|
};
|
|
4368
|
-
|
|
4369
4209
|
const onKeyDown = e => {
|
|
4370
4210
|
if (e.keyCode === 27) {
|
|
4371
4211
|
onClose();
|
|
4372
4212
|
}
|
|
4373
4213
|
};
|
|
4374
|
-
|
|
4375
4214
|
return React__default.createElement(Wrapper$h, {
|
|
4376
4215
|
ref: ref => ref === null || ref === void 0 ? void 0 : ref.focus(),
|
|
4377
4216
|
onKeyDown: onKeyDown,
|
|
@@ -4401,9 +4240,7 @@ const Lightbox = ({
|
|
|
4401
4240
|
};
|
|
4402
4241
|
|
|
4403
4242
|
const cache = {};
|
|
4404
|
-
|
|
4405
4243
|
const getCachedResult = key => (cache === null || cache === void 0 ? void 0 : cache[key]) || undefined;
|
|
4406
|
-
|
|
4407
4244
|
const setCachedResult = (key, value) => {
|
|
4408
4245
|
cache[key] = value;
|
|
4409
4246
|
};
|
|
@@ -4412,22 +4249,16 @@ const setCachedResult = (key, value) => {
|
|
|
4412
4249
|
* Usefull if multiple request is fetching from same endpoint, while
|
|
4413
4250
|
* the first request has not been finished (so no cache exist yet).
|
|
4414
4251
|
*/
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
4252
|
let pendingPromise = {};
|
|
4418
|
-
|
|
4419
4253
|
const isPendingPromise = url => !!pendingPromise[url];
|
|
4420
|
-
|
|
4421
4254
|
const setPendingPromise = (url, promise) => {
|
|
4422
4255
|
pendingPromise = _objectSpread2(_objectSpread2({}, pendingPromise), {}, {
|
|
4423
4256
|
[url]: promise
|
|
4424
4257
|
});
|
|
4425
4258
|
};
|
|
4426
|
-
|
|
4427
4259
|
const clearPendingPromise = url => {
|
|
4428
4260
|
delete pendingPromise[url];
|
|
4429
4261
|
};
|
|
4430
|
-
|
|
4431
4262
|
const useFetch = (path, options, skip, promiseCache) => {
|
|
4432
4263
|
const [data, setData] = React.useState();
|
|
4433
4264
|
const [loading, setLoading] = React.useState(false);
|
|
@@ -4436,24 +4267,18 @@ const useFetch = (path, options, skip, promiseCache) => {
|
|
|
4436
4267
|
const key = path.toString();
|
|
4437
4268
|
const cached = getCachedResult(key);
|
|
4438
4269
|
setError(false);
|
|
4439
|
-
|
|
4440
4270
|
if (cached) {
|
|
4441
4271
|
setData(cached);
|
|
4442
4272
|
return;
|
|
4443
4273
|
}
|
|
4444
|
-
|
|
4445
4274
|
setLoading(true);
|
|
4446
|
-
|
|
4447
4275
|
try {
|
|
4448
4276
|
const reusePromise = promiseCache && isPendingPromise(key);
|
|
4449
4277
|
const request = reusePromise ? pendingPromise[key] : fetch(path, options);
|
|
4450
|
-
|
|
4451
4278
|
if (promiseCache) {
|
|
4452
4279
|
setPendingPromise(key, request);
|
|
4453
4280
|
}
|
|
4454
|
-
|
|
4455
4281
|
const result = await request;
|
|
4456
|
-
|
|
4457
4282
|
if (result.ok) {
|
|
4458
4283
|
const json = await result.clone().json();
|
|
4459
4284
|
setCachedResult(key, json);
|
|
@@ -4465,7 +4290,6 @@ const useFetch = (path, options, skip, promiseCache) => {
|
|
|
4465
4290
|
setLoading(false);
|
|
4466
4291
|
clearPendingPromise(key);
|
|
4467
4292
|
}
|
|
4468
|
-
|
|
4469
4293
|
return;
|
|
4470
4294
|
}, [path, options]);
|
|
4471
4295
|
React.useEffect(() => {
|
|
@@ -4505,7 +4329,6 @@ const useThumbnail = (url, small) => {
|
|
|
4505
4329
|
React.useEffect(() => {
|
|
4506
4330
|
if (url) {
|
|
4507
4331
|
const youtubeThumbnail = getYoutubeThumbnail(url);
|
|
4508
|
-
|
|
4509
4332
|
if (youtubeThumbnail) {
|
|
4510
4333
|
if (small) {
|
|
4511
4334
|
setThumbnail([youtubeThumbnail.mqdefault]);
|
|
@@ -4656,21 +4479,17 @@ const GalleryEmbed = ({
|
|
|
4656
4479
|
}) => {
|
|
4657
4480
|
const [modal, setModal] = React.useState();
|
|
4658
4481
|
const thumbnail = useThumbnail(src);
|
|
4659
|
-
|
|
4660
4482
|
const onClick = e => {
|
|
4661
4483
|
e.stopPropagation();
|
|
4662
4484
|
setModal(src);
|
|
4663
4485
|
};
|
|
4664
|
-
|
|
4665
4486
|
const onCloseModal = e => {
|
|
4666
4487
|
e.stopPropagation();
|
|
4667
4488
|
setModal(undefined);
|
|
4668
4489
|
};
|
|
4669
|
-
|
|
4670
4490
|
const onError = React.useCallback(e => onImageError(e, thumbnail), [thumbnail]);
|
|
4671
4491
|
const onLoad = React.useCallback(e => onImageLoad(e, thumbnail), [thumbnail]);
|
|
4672
4492
|
const customVideo = src.toLowerCase().endsWith('.mp4');
|
|
4673
|
-
|
|
4674
4493
|
if (thumbnail !== null && thumbnail !== void 0 && thumbnail.length && !customVideo) {
|
|
4675
4494
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(ImageFull, {
|
|
4676
4495
|
onLoad: onLoad,
|
|
@@ -4687,7 +4506,6 @@ const GalleryEmbed = ({
|
|
|
4687
4506
|
url: modal
|
|
4688
4507
|
})));
|
|
4689
4508
|
}
|
|
4690
|
-
|
|
4691
4509
|
if (customVideo) return React__default.createElement(React__default.Fragment, null, React__default.createElement(CustomPlayer, {
|
|
4692
4510
|
ratio: "66.66%",
|
|
4693
4511
|
isPreview: true,
|
|
@@ -4732,7 +4550,6 @@ const onMediaClick = (e, func) => {
|
|
|
4732
4550
|
e.preventDefault();
|
|
4733
4551
|
func();
|
|
4734
4552
|
};
|
|
4735
|
-
|
|
4736
4553
|
const Sphere = ({
|
|
4737
4554
|
url,
|
|
4738
4555
|
preview,
|
|
@@ -4749,7 +4566,6 @@ const Sphere = ({
|
|
|
4749
4566
|
onClick: e => onMediaClick(e, onDisableNavigation)
|
|
4750
4567
|
}));
|
|
4751
4568
|
}
|
|
4752
|
-
|
|
4753
4569
|
if (navigationDisabled && visible) {
|
|
4754
4570
|
return React__default.createElement(SphereViewer, {
|
|
4755
4571
|
id: url,
|
|
@@ -4759,7 +4575,6 @@ const Sphere = ({
|
|
|
4759
4575
|
onStart: onDisableNavigation
|
|
4760
4576
|
});
|
|
4761
4577
|
}
|
|
4762
|
-
|
|
4763
4578
|
return null;
|
|
4764
4579
|
};
|
|
4765
4580
|
|
|
@@ -4768,7 +4583,6 @@ const onMediaClick$1 = (e, func) => {
|
|
|
4768
4583
|
e.preventDefault();
|
|
4769
4584
|
func();
|
|
4770
4585
|
};
|
|
4771
|
-
|
|
4772
4586
|
const ThreeSixty = ({
|
|
4773
4587
|
urls,
|
|
4774
4588
|
visible,
|
|
@@ -4784,7 +4598,6 @@ const ThreeSixty = ({
|
|
|
4784
4598
|
onClick: e => onMediaClick$1(e, onDisableNavigation)
|
|
4785
4599
|
}));
|
|
4786
4600
|
}
|
|
4787
|
-
|
|
4788
4601
|
if (navigationDisabled && visible) {
|
|
4789
4602
|
return React__default.createElement("div", {
|
|
4790
4603
|
onClick: e => {
|
|
@@ -4797,7 +4610,6 @@ const ThreeSixty = ({
|
|
|
4797
4610
|
alt: `Bild ${i + 1}`
|
|
4798
4611
|
}))));
|
|
4799
4612
|
}
|
|
4800
|
-
|
|
4801
4613
|
return null;
|
|
4802
4614
|
};
|
|
4803
4615
|
|
|
@@ -4809,7 +4621,6 @@ const sliderSettings = {
|
|
|
4809
4621
|
slidesToShow: 1,
|
|
4810
4622
|
slidesToScroll: 1
|
|
4811
4623
|
};
|
|
4812
|
-
|
|
4813
4624
|
const Gallery = ({
|
|
4814
4625
|
media,
|
|
4815
4626
|
placeholderImage
|
|
@@ -4822,9 +4633,7 @@ const Gallery = ({
|
|
|
4822
4633
|
const [navigationDisabled, setNavigationDisabled] = React.useState(false);
|
|
4823
4634
|
const beforeChange = React.useCallback((_, newIndex) => {
|
|
4824
4635
|
var _quickNavRef$current, _quickNavRef$current$;
|
|
4825
|
-
|
|
4826
4636
|
const element = (_quickNavRef$current = quickNavRef.current) === null || _quickNavRef$current === void 0 ? void 0 : (_quickNavRef$current$ = _quickNavRef$current.querySelectorAll('li')) === null || _quickNavRef$current$ === void 0 ? void 0 : _quickNavRef$current$[newIndex];
|
|
4827
|
-
|
|
4828
4637
|
if (element) {
|
|
4829
4638
|
scrollIntoView(element, {
|
|
4830
4639
|
scrollMode: 'if-needed',
|
|
@@ -4832,7 +4641,6 @@ const Gallery = ({
|
|
|
4832
4641
|
inline: 'nearest'
|
|
4833
4642
|
});
|
|
4834
4643
|
}
|
|
4835
|
-
|
|
4836
4644
|
setIndex(newIndex);
|
|
4837
4645
|
}, []);
|
|
4838
4646
|
const onMouseDown = React.useCallback(() => {
|
|
@@ -4847,7 +4655,6 @@ const Gallery = ({
|
|
|
4847
4655
|
}, []);
|
|
4848
4656
|
const onClick = React.useCallback(() => {
|
|
4849
4657
|
PubSub.publish('ImagesClick');
|
|
4850
|
-
|
|
4851
4658
|
if (!isDragging.current && !lightbox && !!(media !== null && media !== void 0 && media.length)) {
|
|
4852
4659
|
setLightbox(true);
|
|
4853
4660
|
}
|
|
@@ -4856,38 +4663,31 @@ const Gallery = ({
|
|
|
4856
4663
|
if (!slider || !slider.current) {
|
|
4857
4664
|
return;
|
|
4858
4665
|
}
|
|
4859
|
-
|
|
4860
4666
|
slider.current.slickNext();
|
|
4861
4667
|
}, [slider]);
|
|
4862
4668
|
const prevImage = React.useCallback(() => {
|
|
4863
4669
|
if (!slider || !slider.current) {
|
|
4864
4670
|
return;
|
|
4865
4671
|
}
|
|
4866
|
-
|
|
4867
4672
|
slider.current.slickPrev();
|
|
4868
4673
|
}, [slider]);
|
|
4869
|
-
|
|
4870
4674
|
const goTo = target => {
|
|
4871
4675
|
if (!slider || !slider.current) {
|
|
4872
4676
|
return;
|
|
4873
4677
|
}
|
|
4874
|
-
|
|
4875
4678
|
if (slider.current) {
|
|
4876
4679
|
setIndex(target);
|
|
4877
4680
|
slider.current.slickGoTo(target);
|
|
4878
4681
|
}
|
|
4879
4682
|
};
|
|
4880
|
-
|
|
4881
4683
|
const onDisableNavigation = () => {
|
|
4882
4684
|
if (!isDragging.current) setNavigationDisabled(true);
|
|
4883
4685
|
};
|
|
4884
|
-
|
|
4885
4686
|
const onEnableNavigation = e => {
|
|
4886
4687
|
e.stopPropagation();
|
|
4887
4688
|
isDragging.current = false;
|
|
4888
4689
|
setNavigationDisabled(false);
|
|
4889
4690
|
};
|
|
4890
|
-
|
|
4891
4691
|
const onToggleLightbox = React.useCallback(() => setLightbox(!lightbox), [lightbox]);
|
|
4892
4692
|
const mediaLength = (media === null || media === void 0 ? void 0 : media.length) || 0;
|
|
4893
4693
|
const placeholder = React.useMemo(() => placeholderImage || DEFAULT_PLACEHOLDER_IMAGE, [placeholderImage]);
|
|
@@ -4903,7 +4703,6 @@ const Gallery = ({
|
|
|
4903
4703
|
beforeChange: beforeChange
|
|
4904
4704
|
}), !!(media !== null && media !== void 0 && media.length) ? media.map((m, i) => {
|
|
4905
4705
|
var _m$files$0$formats$fi;
|
|
4906
|
-
|
|
4907
4706
|
return React__default.createElement(Item$7, {
|
|
4908
4707
|
key: m.files[0].url || i
|
|
4909
4708
|
}, m.type === 'image' && React__default.createElement(Image$1, {
|
|
@@ -4946,7 +4745,6 @@ const Gallery = ({
|
|
|
4946
4745
|
ref: quickNavRef
|
|
4947
4746
|
}, !!(media !== null && media !== void 0 && media.length) ? media.map((m, i) => {
|
|
4948
4747
|
var _m$files$0$formats$fi2;
|
|
4949
|
-
|
|
4950
4748
|
const src = ((_m$files$0$formats$fi2 = m.files[0].formats.filter(notEmpty).find(x => x.format === '225x150')) === null || _m$files$0$formats$fi2 === void 0 ? void 0 : _m$files$0$formats$fi2.url) || m.files[0].url;
|
|
4951
4749
|
return React__default.createElement(QuickNavItem, {
|
|
4952
4750
|
key: src || i,
|
|
@@ -5550,11 +5348,9 @@ const RangeSliderSimple = ({
|
|
|
5550
5348
|
const step = second - first;
|
|
5551
5349
|
const currentMin = formatValues ? numberSeparator(domain[0]) : domain[0];
|
|
5552
5350
|
const currentMax = formatValues ? numberSeparator(domain[1]) : domain[1];
|
|
5553
|
-
|
|
5554
5351
|
if (steps.length < 2) {
|
|
5555
5352
|
return null;
|
|
5556
5353
|
}
|
|
5557
|
-
|
|
5558
5354
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(Slider, null, React__default.createElement(reactCompoundSlider.Slider, {
|
|
5559
5355
|
disabled: loading,
|
|
5560
5356
|
mode: 1,
|
|
@@ -5631,30 +5427,25 @@ const SliderWithLabel = ({
|
|
|
5631
5427
|
|
|
5632
5428
|
const stepGenerator = (step, max, steps = [], current) => {
|
|
5633
5429
|
if (step === 0 && current === undefined) return steps;
|
|
5634
|
-
|
|
5635
5430
|
if (current !== undefined && current >= max && step !== 0) {
|
|
5636
5431
|
return steps;
|
|
5637
5432
|
}
|
|
5638
|
-
|
|
5639
5433
|
const nextCurrent = current ? step + current : step;
|
|
5640
5434
|
steps.push(nextCurrent);
|
|
5641
5435
|
return stepGenerator(step, max, steps, nextCurrent);
|
|
5642
5436
|
};
|
|
5643
|
-
|
|
5644
5437
|
const LoanModal = ({
|
|
5645
5438
|
id,
|
|
5646
5439
|
financialOption,
|
|
5647
5440
|
onClose
|
|
5648
5441
|
}) => {
|
|
5649
5442
|
var _financialOption$dura, _financialOption$down, _financialOption$resi, _loan$downPayment, _loan$downPayment2, _loan$downPayment3, _loan$downPayment4, _loan$duration, _loan$duration2, _loan$duration3, _loan$duration4, _loan$residual, _loan$residual2, _loan$residual3, _loan$residual4;
|
|
5650
|
-
|
|
5651
5443
|
const [tmp, setTmp] = React.useState();
|
|
5652
5444
|
const [extend, setExtend] = React__default.useState(false);
|
|
5653
5445
|
const onToggleExtend = React__default.useCallback(() => {
|
|
5654
5446
|
if (!extend) {
|
|
5655
5447
|
PubSub.publish('FinanceInterest');
|
|
5656
5448
|
}
|
|
5657
|
-
|
|
5658
5449
|
setExtend(!extend);
|
|
5659
5450
|
}, [extend]);
|
|
5660
5451
|
const [variables, setVariables] = React.useState({
|
|
@@ -5674,7 +5465,6 @@ const LoanModal = ({
|
|
|
5674
5465
|
React.useEffect(() => {
|
|
5675
5466
|
if (data) {
|
|
5676
5467
|
var _data$loan, _data$loan$duration, _data$loan2, _data$loan2$downPayme, _data$loan3, _data$loan3$residual;
|
|
5677
|
-
|
|
5678
5468
|
setTmp(data);
|
|
5679
5469
|
setVariables({
|
|
5680
5470
|
duration: (data === null || data === void 0 ? void 0 : (_data$loan = data.loan) === null || _data$loan === void 0 ? void 0 : (_data$loan$duration = _data$loan.duration) === null || _data$loan$duration === void 0 ? void 0 : _data$loan$duration.current) || 0,
|
|
@@ -5781,7 +5571,6 @@ const Loan = ({
|
|
|
5781
5571
|
financialOption
|
|
5782
5572
|
}) => {
|
|
5783
5573
|
var _financialOption$dura, _financialOption$down, _financialOption$resi, _data$loan, _data$loan2, _data$loan2$duration, _data$loan3;
|
|
5784
|
-
|
|
5785
5574
|
const [modal, setModal] = React.useState(false);
|
|
5786
5575
|
const toggleModal = React.useCallback(() => setModal(!modal), [modal]);
|
|
5787
5576
|
const {
|
|
@@ -5790,15 +5579,14 @@ const Loan = ({
|
|
|
5790
5579
|
const interest = data === null || data === void 0 ? void 0 : (_data$loan = data.loan) === null || _data$loan === void 0 ? void 0 : _data$loan.interest;
|
|
5791
5580
|
const duration = data === null || data === void 0 ? void 0 : (_data$loan2 = data.loan) === null || _data$loan2 === void 0 ? void 0 : (_data$loan2$duration = _data$loan2.duration) === null || _data$loan2$duration === void 0 ? void 0 : _data$loan2$duration.current;
|
|
5792
5581
|
const monthlyCost = data === null || data === void 0 ? void 0 : (_data$loan3 = data.loan) === null || _data$loan3 === void 0 ? void 0 : _data$loan3.monthlyCost;
|
|
5793
|
-
const logo = (financialOption === null || financialOption === void 0 ? void 0 : financialOption.logotype) || 'https://placehold.it/67x10';
|
|
5794
|
-
|
|
5582
|
+
const logo = (financialOption === null || financialOption === void 0 ? void 0 : financialOption.logotype) || 'https://placehold.it/67x10';
|
|
5583
|
+
// Skeleton?
|
|
5795
5584
|
if (financialOption.loanAmount === undefined || financialOption.loanAmount === null || interest === undefined || duration === undefined || monthlyCost === undefined || interest === null || duration === null || monthlyCost === null) {
|
|
5796
5585
|
return React__default.createElement(OptionBox, {
|
|
5797
5586
|
logo: logo,
|
|
5798
5587
|
logoAlt: "Logotyp"
|
|
5799
5588
|
}, React__default.createElement(OptionBoxHeading, null, "Laddar..."), React__default.createElement(OptionBoxContent, null, React__default.createElement("p", null, "Laddar...")));
|
|
5800
5589
|
}
|
|
5801
|
-
|
|
5802
5590
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(LoanModal, {
|
|
5803
5591
|
id: id,
|
|
5804
5592
|
financialOption: financialOption,
|
|
@@ -6257,7 +6045,6 @@ const useInsuranceCalculation = (id, branchId, personalNumber, drivingDistance)
|
|
|
6257
6045
|
const ssnIsValid = s => s ? /^\d{2,4}\d{2}\d{2}\-?\d{4}$/.test(s) : false;
|
|
6258
6046
|
|
|
6259
6047
|
var DrivingDistance;
|
|
6260
|
-
|
|
6261
6048
|
(function (DrivingDistance) {
|
|
6262
6049
|
DrivingDistance["Between0And1000"] = "BETWEEN0AND1000";
|
|
6263
6050
|
DrivingDistance["Between1000And1500"] = "BETWEEN1000AND1500";
|
|
@@ -6265,9 +6052,7 @@ var DrivingDistance;
|
|
|
6265
6052
|
DrivingDistance["Between2000And2500"] = "BETWEEN2000AND2500";
|
|
6266
6053
|
DrivingDistance["Over2500"] = "OVER2500";
|
|
6267
6054
|
})(DrivingDistance || (DrivingDistance = {}));
|
|
6268
|
-
|
|
6269
6055
|
var FinancialOptionInclusion;
|
|
6270
|
-
|
|
6271
6056
|
(function (FinancialOptionInclusion) {
|
|
6272
6057
|
FinancialOptionInclusion["IncludesInsurance"] = "INCLUDES_INSURANCE";
|
|
6273
6058
|
FinancialOptionInclusion["IncludesService"] = "INCLUDES_SERVICE";
|
|
@@ -6383,11 +6168,9 @@ const Insurance = ({
|
|
|
6383
6168
|
}) => {
|
|
6384
6169
|
const [modal, setModal] = React.useState(false);
|
|
6385
6170
|
const toggleModal = React.useCallback(() => setModal(!modal), [modal]);
|
|
6386
|
-
|
|
6387
6171
|
if (!insuranceOptions.length) {
|
|
6388
6172
|
return null;
|
|
6389
6173
|
}
|
|
6390
|
-
|
|
6391
6174
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(InsuranceModal, {
|
|
6392
6175
|
id: id,
|
|
6393
6176
|
branch: branch,
|
|
@@ -6407,7 +6190,6 @@ const InsuranceFreeModal = ({
|
|
|
6407
6190
|
insuranceOptions
|
|
6408
6191
|
}) => {
|
|
6409
6192
|
var _insuranceOptions$ins;
|
|
6410
|
-
|
|
6411
6193
|
return React__default.createElement(Modal, {
|
|
6412
6194
|
title: (_insuranceOptions$ins = insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.insuranceHeader) !== null && _insuranceOptions$ins !== void 0 ? _insuranceOptions$ins : 'Försäkring',
|
|
6413
6195
|
onClose: onClose
|
|
@@ -6431,14 +6213,11 @@ const Insurance$1 = ({
|
|
|
6431
6213
|
insuranceOptions
|
|
6432
6214
|
}) => {
|
|
6433
6215
|
var _insuranceOptions$0$i, _insuranceOptions$;
|
|
6434
|
-
|
|
6435
6216
|
const [modal, setModal] = React.useState(false);
|
|
6436
6217
|
const toggleModal = React.useCallback(() => setModal(!modal), [modal]);
|
|
6437
|
-
|
|
6438
6218
|
if (!insuranceOptions.length) {
|
|
6439
6219
|
return null;
|
|
6440
6220
|
}
|
|
6441
|
-
|
|
6442
6221
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(InsuranceFreeModal, {
|
|
6443
6222
|
onClose: toggleModal,
|
|
6444
6223
|
insuranceOptions: insuranceOptions[0]
|
|
@@ -6463,7 +6242,6 @@ const InsuranceOptions = ({
|
|
|
6463
6242
|
if (!insuranceOptions.length) {
|
|
6464
6243
|
return null;
|
|
6465
6244
|
}
|
|
6466
|
-
|
|
6467
6245
|
if (insuranceOptions.length > 0) {
|
|
6468
6246
|
if (insuranceOptions[0].requiresDistance && insuranceOptions[0].requiresPersonalNumber) return React__default.createElement(Insurance, {
|
|
6469
6247
|
id: id,
|
|
@@ -6474,7 +6252,6 @@ const InsuranceOptions = ({
|
|
|
6474
6252
|
insuranceOptions: insuranceOptions
|
|
6475
6253
|
});
|
|
6476
6254
|
}
|
|
6477
|
-
|
|
6478
6255
|
return null;
|
|
6479
6256
|
};
|
|
6480
6257
|
|
|
@@ -6482,11 +6259,9 @@ const ManufacturerPackageOption = ({
|
|
|
6482
6259
|
packageOption
|
|
6483
6260
|
}) => {
|
|
6484
6261
|
var _packageOption$link;
|
|
6485
|
-
|
|
6486
6262
|
if (!packageOption) {
|
|
6487
6263
|
return null;
|
|
6488
6264
|
}
|
|
6489
|
-
|
|
6490
6265
|
return React__default.createElement(ProductPageMainSection, null, React__default.createElement(Repeat, null, React__default.createElement(H2, {
|
|
6491
6266
|
noMargin: true
|
|
6492
6267
|
}, packageOption.title)), packageOption.description && React__default.createElement(Repeat, null, React__default.createElement(Content$2, {
|
|
@@ -6506,9 +6281,7 @@ const ManufacturerPackageOption = ({
|
|
|
6506
6281
|
};
|
|
6507
6282
|
|
|
6508
6283
|
const initialValue = {};
|
|
6509
|
-
|
|
6510
6284
|
const getInitialValue = title => title && !!initialValue[title];
|
|
6511
|
-
|
|
6512
6285
|
const ToggleItem = ({
|
|
6513
6286
|
title,
|
|
6514
6287
|
value,
|
|
@@ -6517,18 +6290,15 @@ const ToggleItem = ({
|
|
|
6517
6290
|
onClickValue
|
|
6518
6291
|
}) => {
|
|
6519
6292
|
const [visible, setVisible] = React.useState(() => getInitialValue(type));
|
|
6520
|
-
|
|
6521
6293
|
const _onClickValue = React.useCallback(() => {
|
|
6522
6294
|
if (onClickValue) {
|
|
6523
6295
|
onClickValue();
|
|
6524
6296
|
}
|
|
6525
6297
|
}, []);
|
|
6526
|
-
|
|
6527
6298
|
const onClick = React.useCallback(() => {
|
|
6528
6299
|
if (!visible) {
|
|
6529
6300
|
initialValue[type] = true;
|
|
6530
6301
|
setVisible(true);
|
|
6531
|
-
|
|
6532
6302
|
if (onClickVisible) {
|
|
6533
6303
|
onClickVisible();
|
|
6534
6304
|
}
|
|
@@ -6574,17 +6344,14 @@ const ActionList = ({
|
|
|
6574
6344
|
branch
|
|
6575
6345
|
}) => {
|
|
6576
6346
|
var _branch$contact, _branch$contact2;
|
|
6577
|
-
|
|
6578
6347
|
const email = (contact === null || contact === void 0 ? void 0 : contact.email) || (branch === null || branch === void 0 ? void 0 : (_branch$contact = branch.contact) === null || _branch$contact === void 0 ? void 0 : _branch$contact.email);
|
|
6579
6348
|
const phonenumber = (contact === null || contact === void 0 ? void 0 : contact.phonenumber) || (branch === null || branch === void 0 ? void 0 : (_branch$contact2 = branch.contact) === null || _branch$contact2 === void 0 ? void 0 : _branch$contact2.phonenumber);
|
|
6580
6349
|
const onClickMailVisible = React.useCallback(() => PubSub.publish('MailVisible'), []);
|
|
6581
6350
|
const onClickPhoneVisible = React.useCallback(() => PubSub.publish('PhonenumberVisible'), []);
|
|
6582
6351
|
const onClickPhoneValue = React.useCallback(() => PubSub.publish('PhonenumberCall'), []);
|
|
6583
|
-
|
|
6584
6352
|
if (!email && !phonenumber) {
|
|
6585
6353
|
return null;
|
|
6586
6354
|
}
|
|
6587
|
-
|
|
6588
6355
|
return React__default.createElement(React__default.Fragment, null, email && React__default.createElement(ToggleItem, {
|
|
6589
6356
|
onClickVisible: onClickMailVisible,
|
|
6590
6357
|
title: "Visa mailadress",
|
|
@@ -6725,7 +6492,6 @@ const CheckMarkListItem = ({
|
|
|
6725
6492
|
}) => React__default.createElement(Item$a, null, React__default.createElement(Icon$5, null, React__default.createElement(IconCheck, {
|
|
6726
6493
|
block: true
|
|
6727
6494
|
})), React__default.createElement(Label$9, null, children));
|
|
6728
|
-
|
|
6729
6495
|
const CheckMarkList = ({
|
|
6730
6496
|
children
|
|
6731
6497
|
}) => React__default.createElement(List$8, null, children);
|
|
@@ -6842,11 +6608,9 @@ const BranchModal = ({
|
|
|
6842
6608
|
}
|
|
6843
6609
|
}, []);
|
|
6844
6610
|
const onChange = React.useCallback(e => setLocalValue(e.currentTarget.value), []);
|
|
6845
|
-
|
|
6846
6611
|
if (!localValue) {
|
|
6847
6612
|
return null;
|
|
6848
6613
|
}
|
|
6849
|
-
|
|
6850
6614
|
return React__default.createElement(Modal, {
|
|
6851
6615
|
title: "Byt anl\u00E4ggning",
|
|
6852
6616
|
onClose: onClose
|
|
@@ -6870,7 +6634,6 @@ const PackageOptionModal = ({
|
|
|
6870
6634
|
onClose
|
|
6871
6635
|
}) => {
|
|
6872
6636
|
var _packageOption$link;
|
|
6873
|
-
|
|
6874
6637
|
return React__default.createElement(Modal, {
|
|
6875
6638
|
title: packageOption.title || '',
|
|
6876
6639
|
onClose: onClose
|
|
@@ -7060,11 +6823,9 @@ const useRelatedSearch = id => {
|
|
|
7060
6823
|
React.useEffect(() => {
|
|
7061
6824
|
const searchParams = new URLSearchParams();
|
|
7062
6825
|
searchParams.set('hits', '3');
|
|
7063
|
-
|
|
7064
6826
|
if (data.moreLikeThisUrl && id) {
|
|
7065
6827
|
searchParams.set('id', id);
|
|
7066
6828
|
}
|
|
7067
|
-
|
|
7068
6829
|
data.fetchRelated(searchParams);
|
|
7069
6830
|
}, [id]);
|
|
7070
6831
|
return data;
|
|
@@ -7076,7 +6837,6 @@ const regexPathGuid = path => {
|
|
|
7076
6837
|
if (!path || path) {
|
|
7077
6838
|
return regexEndGuid;
|
|
7078
6839
|
}
|
|
7079
|
-
|
|
7080
6840
|
const r = new RegExp(`${escapeRegExpString(path)}${regexEndGuid.source}`, 'gi');
|
|
7081
6841
|
return r;
|
|
7082
6842
|
};
|
|
@@ -7094,20 +6854,16 @@ const Related = ({
|
|
|
7094
6854
|
} = useRelatedSearch(id);
|
|
7095
6855
|
const onItemClicked = React.useCallback(id => {
|
|
7096
6856
|
PubSub.publish('ItemClicked', id);
|
|
7097
|
-
|
|
7098
6857
|
if (onClickSearchItem) {
|
|
7099
6858
|
onClickSearchItem(id);
|
|
7100
6859
|
}
|
|
7101
6860
|
}, []);
|
|
7102
|
-
|
|
7103
6861
|
if (!(response !== null && response !== void 0 && response.documentList.documents.length) || (response === null || response === void 0 ? void 0 : response.documentList.documents.length) === 0) {
|
|
7104
6862
|
return null;
|
|
7105
6863
|
}
|
|
7106
|
-
|
|
7107
6864
|
if (loading) {
|
|
7108
6865
|
return React__default.createElement(Loader, null);
|
|
7109
6866
|
}
|
|
7110
|
-
|
|
7111
6867
|
return React__default.createElement(PageSection, {
|
|
7112
6868
|
accent: true,
|
|
7113
6869
|
large: true,
|
|
@@ -7123,7 +6879,6 @@ const Related = ({
|
|
|
7123
6879
|
noMargin: true
|
|
7124
6880
|
}, "Senast inkomna"))), React__default.createElement(Repeat, null, React__default.createElement(OverflowGrid, null, React__default.createElement(OverflowGridList, null, response === null || response === void 0 ? void 0 : response.documentList.documents.map(document => {
|
|
7125
6881
|
var _document$featuredIma, _document$featuredIma2, _document$featuredIma3;
|
|
7126
|
-
|
|
7127
6882
|
const prefix = pathRoute ? `/${pathRoute}` : '/';
|
|
7128
6883
|
const r = regexPathGuid();
|
|
7129
6884
|
const pathRouteUrl = window.location.pathname === '/' ? `${prefix}${document._id}` : r.test(`${pathRoute}${id}`) ? window.location.pathname.replace(r, document._id) : `${window.location.pathname}${prefix}${document._id}`;
|
|
@@ -7158,10 +6913,8 @@ const PackageOptions = ({
|
|
|
7158
6913
|
if (!packageOptions) {
|
|
7159
6914
|
return null;
|
|
7160
6915
|
}
|
|
7161
|
-
|
|
7162
6916
|
return React__default.createElement(React__default.Fragment, null, packageOptions.map((packageOption, index) => {
|
|
7163
6917
|
var _packageOption$link;
|
|
7164
|
-
|
|
7165
6918
|
return React__default.createElement(ProductPageMainSection, {
|
|
7166
6919
|
key: packageOption.title || index
|
|
7167
6920
|
}, React__default.createElement(Repeat, null, React__default.createElement(H2, {
|
|
@@ -7198,16 +6951,13 @@ const TableColumnCell = styled__default.div`
|
|
|
7198
6951
|
|
|
7199
6952
|
const getBg = severity => {
|
|
7200
6953
|
let bg = theme.color.textDark;
|
|
7201
|
-
|
|
7202
6954
|
if (severity === 'positive') {
|
|
7203
6955
|
bg = theme.color.ui.positive;
|
|
7204
6956
|
} else if (severity === 'negative') {
|
|
7205
6957
|
bg = theme.color.ui.negative;
|
|
7206
6958
|
}
|
|
7207
|
-
|
|
7208
6959
|
return bg;
|
|
7209
6960
|
};
|
|
7210
|
-
|
|
7211
6961
|
const Wrapper$v = styled__default.div.attrs(() => ({
|
|
7212
6962
|
className: 'wayke__theme wayke__font--bold'
|
|
7213
6963
|
}))`
|
|
@@ -7228,39 +6978,29 @@ const Badge = ({
|
|
|
7228
6978
|
}, label);
|
|
7229
6979
|
|
|
7230
6980
|
const KeyOrder = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
|
|
7231
|
-
|
|
7232
6981
|
const TranslateWeekDays = d => {
|
|
7233
6982
|
switch (d) {
|
|
7234
6983
|
case 'monday':
|
|
7235
6984
|
return 'Mån';
|
|
7236
|
-
|
|
7237
6985
|
case 'tuesday':
|
|
7238
6986
|
return 'Tis';
|
|
7239
|
-
|
|
7240
6987
|
case 'wednesday':
|
|
7241
6988
|
return 'Ons';
|
|
7242
|
-
|
|
7243
6989
|
case 'thursday':
|
|
7244
6990
|
return 'Tor';
|
|
7245
|
-
|
|
7246
6991
|
case 'friday':
|
|
7247
6992
|
return 'Fre';
|
|
7248
|
-
|
|
7249
6993
|
case 'saturday':
|
|
7250
6994
|
return 'Lör';
|
|
7251
|
-
|
|
7252
6995
|
case 'sunday':
|
|
7253
6996
|
return 'Sön';
|
|
7254
6997
|
}
|
|
7255
6998
|
};
|
|
7256
|
-
|
|
7257
6999
|
const arr = [];
|
|
7258
|
-
|
|
7259
7000
|
const GetOpeningHours = o => KeyOrder.reduce((prev, current) => {
|
|
7260
7001
|
const title = TranslateWeekDays(current);
|
|
7261
7002
|
const item = o[current];
|
|
7262
7003
|
const previous = prev === null || prev === void 0 ? void 0 : prev[prev.length - 1];
|
|
7263
|
-
|
|
7264
7004
|
if (previous && previous.from == (item === null || item === void 0 ? void 0 : item.from) && previous.until === (item === null || item === void 0 ? void 0 : item.until)) {
|
|
7265
7005
|
prev[prev.length - 1].titleTo = title;
|
|
7266
7006
|
} else {
|
|
@@ -7270,10 +7010,8 @@ const GetOpeningHours = o => KeyOrder.reduce((prev, current) => {
|
|
|
7270
7010
|
until: item === null || item === void 0 ? void 0 : item.until
|
|
7271
7011
|
});
|
|
7272
7012
|
}
|
|
7273
|
-
|
|
7274
7013
|
return prev;
|
|
7275
7014
|
}, arr.slice());
|
|
7276
|
-
|
|
7277
7015
|
const GetOpeningHoursToday = o => {
|
|
7278
7016
|
const dayNumber = new Date().getDay();
|
|
7279
7017
|
const day = KeyOrder[dayNumber === 0 ? 6 : dayNumber - 1];
|
|
@@ -7284,12 +7022,10 @@ const GetOpeningHoursToday = o => {
|
|
|
7284
7022
|
until: current === null || current === void 0 ? void 0 : current.until
|
|
7285
7023
|
};
|
|
7286
7024
|
};
|
|
7287
|
-
|
|
7288
7025
|
const valuOfDateString = s => {
|
|
7289
7026
|
const splitted = s.split(':').map(x => parseInt(x, 10));
|
|
7290
7027
|
return new Date().setHours(splitted[0], splitted[1]).valueOf();
|
|
7291
7028
|
};
|
|
7292
|
-
|
|
7293
7029
|
const OpeningHours = ({
|
|
7294
7030
|
openingHours
|
|
7295
7031
|
}) => {
|
|
@@ -7307,11 +7043,9 @@ const OpeningHours = ({
|
|
|
7307
7043
|
}
|
|
7308
7044
|
}, [today]);
|
|
7309
7045
|
const oh = React.useMemo(() => openingHours ? GetOpeningHours(openingHours) : null, [openingHours]);
|
|
7310
|
-
|
|
7311
7046
|
if (!oh) {
|
|
7312
7047
|
return null;
|
|
7313
7048
|
}
|
|
7314
|
-
|
|
7315
7049
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(RepeatSmall, null, React__default.createElement(Badge, {
|
|
7316
7050
|
label: currentlyOpen ? 'Öppet' : 'Stängt',
|
|
7317
7051
|
severity: currentlyOpen ? 'positive' : 'negative'
|
|
@@ -7378,16 +7112,13 @@ const StaticMap = ({
|
|
|
7378
7112
|
setVisible(true);
|
|
7379
7113
|
}
|
|
7380
7114
|
}, []);
|
|
7381
|
-
|
|
7382
7115
|
if (!position) {
|
|
7383
7116
|
return null;
|
|
7384
7117
|
}
|
|
7385
|
-
|
|
7386
7118
|
const {
|
|
7387
7119
|
latitude,
|
|
7388
7120
|
longitude
|
|
7389
7121
|
} = position;
|
|
7390
|
-
|
|
7391
7122
|
if (visible && googleMapsApiKey) {
|
|
7392
7123
|
return React__default.createElement(Wrapper$w, {
|
|
7393
7124
|
href: `http://maps.google.com/maps?q=${latitude},${longitude}`,
|
|
@@ -7399,7 +7130,6 @@ const StaticMap = ({
|
|
|
7399
7130
|
alt: "Karta"
|
|
7400
7131
|
}));
|
|
7401
7132
|
}
|
|
7402
|
-
|
|
7403
7133
|
return React__default.createElement(Placeholder, {
|
|
7404
7134
|
href: `http://maps.google.com/maps?q=${latitude},${longitude}`,
|
|
7405
7135
|
target: "_blank",
|
|
@@ -7415,7 +7145,6 @@ const Branch = ({
|
|
|
7415
7145
|
loading
|
|
7416
7146
|
}) => {
|
|
7417
7147
|
var _branch$location, _branch$location2, _branch$location3, _branch$connections, _branch$location4, _branch$location5, _branch$location6, _branch$location7, _branch$contact;
|
|
7418
|
-
|
|
7419
7148
|
const [modal, setModal] = React.useState(false);
|
|
7420
7149
|
const openModal = React.useCallback(() => setModal(true), []);
|
|
7421
7150
|
const closeModal = React.useCallback(() => setModal(false), []);
|
|
@@ -7424,11 +7153,9 @@ const Branch = ({
|
|
|
7424
7153
|
setModal(false);
|
|
7425
7154
|
}
|
|
7426
7155
|
}, [branch]);
|
|
7427
|
-
|
|
7428
7156
|
if (!branch) {
|
|
7429
7157
|
return null;
|
|
7430
7158
|
}
|
|
7431
|
-
|
|
7432
7159
|
return React__default.createElement(React__default.Fragment, null, modal && React__default.createElement(BranchModal, {
|
|
7433
7160
|
loading: loading,
|
|
7434
7161
|
connections: branch === null || branch === void 0 ? void 0 : branch.connections,
|
|
@@ -7575,7 +7302,6 @@ const useSearchItemBranch = (id, branch) => client.useQuery(SEARCH_ITEM_BRANCH_Q
|
|
|
7575
7302
|
|
|
7576
7303
|
const useCentralStorage = vehicle => {
|
|
7577
7304
|
var _vehicle$branch, _connections$find;
|
|
7578
|
-
|
|
7579
7305
|
const {
|
|
7580
7306
|
centralStorageId,
|
|
7581
7307
|
setCentralStorageId
|
|
@@ -7589,10 +7315,8 @@ const useCentralStorage = vehicle => {
|
|
|
7589
7315
|
React.useEffect(() => {
|
|
7590
7316
|
if (((connections === null || connections === void 0 ? void 0 : connections.length) || 0) > 0) {
|
|
7591
7317
|
const match = centralStorageId ? connections === null || connections === void 0 ? void 0 : connections.find(x => x.id === centralStorageId) : undefined;
|
|
7592
|
-
|
|
7593
7318
|
if (!match) {
|
|
7594
7319
|
const first = connections === null || connections === void 0 ? void 0 : connections[0];
|
|
7595
|
-
|
|
7596
7320
|
if (first) {
|
|
7597
7321
|
setCentralStorageId(first.id);
|
|
7598
7322
|
}
|
|
@@ -7619,43 +7343,29 @@ class PropertyTreeCreator {
|
|
|
7619
7343
|
constructor(properties) {
|
|
7620
7344
|
this.propertiesWithCategory = propertyKey => {
|
|
7621
7345
|
var _this$properties$prop;
|
|
7622
|
-
|
|
7623
7346
|
return !!((_this$properties$prop = this.properties[propertyKey].category) !== null && _this$properties$prop !== void 0 && _this$properties$prop.id);
|
|
7624
7347
|
};
|
|
7625
|
-
|
|
7626
7348
|
this.propertiesWithoutCategory = propertyKey => !this.propertiesWithCategory(propertyKey);
|
|
7627
|
-
|
|
7628
7349
|
this.isList = property => property.type === PropertyTreeCreator.TEXT_LIST_TYPE;
|
|
7629
|
-
|
|
7630
7350
|
this.isNonList = property => !this.isList(property);
|
|
7631
|
-
|
|
7632
7351
|
this.hasCategoryWithId = (propertyKey, categoryId) => {
|
|
7633
7352
|
var _this$properties$prop2;
|
|
7634
|
-
|
|
7635
7353
|
return ((_this$properties$prop2 = this.properties[propertyKey].category) === null || _this$properties$prop2 === void 0 ? void 0 : _this$properties$prop2.id) === categoryId;
|
|
7636
7354
|
};
|
|
7637
|
-
|
|
7638
7355
|
this.propertiesWithSubCategory = propertyKey => {
|
|
7639
7356
|
var _this$properties$prop3, _this$properties$prop4;
|
|
7640
|
-
|
|
7641
7357
|
return !!((_this$properties$prop3 = this.properties[propertyKey].category) !== null && _this$properties$prop3 !== void 0 && (_this$properties$prop4 = _this$properties$prop3.subCategory) !== null && _this$properties$prop4 !== void 0 && _this$properties$prop4.id);
|
|
7642
7358
|
};
|
|
7643
|
-
|
|
7644
7359
|
this.propertiesWithoutSubCategory = propertyKey => !this.propertiesWithSubCategory(propertyKey);
|
|
7645
|
-
|
|
7646
7360
|
this.hasSubCategoryWithId = (propertyKey, categoryId) => {
|
|
7647
7361
|
var _this$properties$prop5, _this$properties$prop6;
|
|
7648
|
-
|
|
7649
7362
|
return ((_this$properties$prop5 = this.properties[propertyKey].category) === null || _this$properties$prop5 === void 0 ? void 0 : (_this$properties$prop6 = _this$properties$prop5.subCategory) === null || _this$properties$prop6 === void 0 ? void 0 : _this$properties$prop6.id) === categoryId;
|
|
7650
7363
|
};
|
|
7651
|
-
|
|
7652
7364
|
this.properties = properties;
|
|
7653
7365
|
}
|
|
7654
|
-
|
|
7655
7366
|
create() {
|
|
7656
7367
|
const categories = this.createTreeCategories();
|
|
7657
7368
|
const rootProperties = this.getRootProperties();
|
|
7658
|
-
|
|
7659
7369
|
if (rootProperties.length) {
|
|
7660
7370
|
categories.push({
|
|
7661
7371
|
name: PropertyTreeCreator.DEFAULT_CATEGORY_NAME,
|
|
@@ -7664,29 +7374,24 @@ class PropertyTreeCreator {
|
|
|
7664
7374
|
properties: rootProperties
|
|
7665
7375
|
});
|
|
7666
7376
|
}
|
|
7667
|
-
|
|
7668
7377
|
const tree = {
|
|
7669
7378
|
categories
|
|
7670
7379
|
};
|
|
7671
7380
|
return tree;
|
|
7672
7381
|
}
|
|
7673
|
-
|
|
7674
7382
|
getRootProperties() {
|
|
7675
7383
|
const rootProperties = Object.keys(this.properties).filter(this.propertiesWithoutCategory).map(key => this.properties[key]).filter(this.isNonList);
|
|
7676
7384
|
return rootProperties;
|
|
7677
7385
|
}
|
|
7678
|
-
|
|
7679
7386
|
createTreeCategories() {
|
|
7680
7387
|
const categories = this.getCategories();
|
|
7681
7388
|
const treeCategories = this.convertToTreeCategories(categories);
|
|
7682
7389
|
return treeCategories;
|
|
7683
7390
|
}
|
|
7684
|
-
|
|
7685
7391
|
getCategories() {
|
|
7686
7392
|
const categories = Object.keys(this.properties).filter(this.propertiesWithCategory).map(key => this.properties[key].category).filter(PropertyTreeCreator.distinctCategories);
|
|
7687
7393
|
return categories;
|
|
7688
7394
|
}
|
|
7689
|
-
|
|
7690
7395
|
convertToTreeCategories(categories) {
|
|
7691
7396
|
return categories.map(category => {
|
|
7692
7397
|
const properties = Object.keys(this.properties).filter(key => this.hasCategoryWithId(key, category.id)).filter(this.propertiesWithoutSubCategory).map(key => this.properties[key]).filter(this.isNonList);
|
|
@@ -7699,7 +7404,6 @@ class PropertyTreeCreator {
|
|
|
7699
7404
|
};
|
|
7700
7405
|
});
|
|
7701
7406
|
}
|
|
7702
|
-
|
|
7703
7407
|
createTreeSubCategories(categoryId) {
|
|
7704
7408
|
const subCategories = this.getSubCategoriesOfCategory(categoryId);
|
|
7705
7409
|
const convertedSubCategories = subCategories.map(subCategory => this.convertSubCategory(subCategory)).filter(category => category.properties.length > 0);
|
|
@@ -7707,16 +7411,13 @@ class PropertyTreeCreator {
|
|
|
7707
7411
|
const treeCategories = convertedSubCategories.concat(createdSubCategories);
|
|
7708
7412
|
return treeCategories;
|
|
7709
7413
|
}
|
|
7710
|
-
|
|
7711
7414
|
getSubCategoriesOfCategory(id) {
|
|
7712
7415
|
const categories = Object.keys(this.properties).filter(key => this.hasCategoryWithId(key, id)).filter(this.propertiesWithSubCategory).map(key => {
|
|
7713
7416
|
var _this$properties$key$;
|
|
7714
|
-
|
|
7715
7417
|
return (_this$properties$key$ = this.properties[key].category) === null || _this$properties$key$ === void 0 ? void 0 : _this$properties$key$.subCategory;
|
|
7716
7418
|
}).filter(PropertyTreeCreator.distinctCategories);
|
|
7717
7419
|
return categories;
|
|
7718
7420
|
}
|
|
7719
|
-
|
|
7720
7421
|
convertSubCategory(subCategory) {
|
|
7721
7422
|
const properties = Object.keys(this.properties).filter(key => this.hasSubCategoryWithId(key, subCategory.id)).map(key => this.properties[key]).filter(this.isNonList);
|
|
7722
7423
|
return {
|
|
@@ -7726,7 +7427,6 @@ class PropertyTreeCreator {
|
|
|
7726
7427
|
subCategories: []
|
|
7727
7428
|
};
|
|
7728
7429
|
}
|
|
7729
|
-
|
|
7730
7430
|
createListSubCategories(categoryId) {
|
|
7731
7431
|
const listProperties = Object.keys(this.properties).filter(key => this.hasCategoryWithId(key, categoryId)).map(key => this.properties[key]).filter(this.isList).filter(prop => prop.value.length > 0);
|
|
7732
7432
|
const createdSubCategories = listProperties.map((property, index) => ({
|
|
@@ -7737,7 +7437,6 @@ class PropertyTreeCreator {
|
|
|
7737
7437
|
}));
|
|
7738
7438
|
return createdSubCategories;
|
|
7739
7439
|
}
|
|
7740
|
-
|
|
7741
7440
|
asBoolProperties(listProperty) {
|
|
7742
7441
|
const values = listProperty.value;
|
|
7743
7442
|
const boolProperties = values.map(prop => ({
|
|
@@ -7749,14 +7448,11 @@ class PropertyTreeCreator {
|
|
|
7749
7448
|
}));
|
|
7750
7449
|
return boolProperties;
|
|
7751
7450
|
}
|
|
7752
|
-
|
|
7753
7451
|
}
|
|
7754
|
-
|
|
7755
7452
|
PropertyTreeCreator.distinctCategories = (category, index, self) => {
|
|
7756
7453
|
const firstOccuranceOfId = self.find(value => value.id === category.id);
|
|
7757
7454
|
return !!firstOccuranceOfId && self.indexOf(firstOccuranceOfId) === index;
|
|
7758
7455
|
};
|
|
7759
|
-
|
|
7760
7456
|
PropertyTreeCreator.DEFAULT_CATEGORY_NAME = 'Okategoriserat';
|
|
7761
7457
|
PropertyTreeCreator.DEFAULT_CATEGORY_ID = 0;
|
|
7762
7458
|
PropertyTreeCreator.TEXT_LIST_TYPE = 'text-list';
|
|
@@ -7771,27 +7467,21 @@ const ID_ORDER = Object.freeze({
|
|
|
7771
7467
|
'6': 6,
|
|
7772
7468
|
'119': 7
|
|
7773
7469
|
});
|
|
7774
|
-
|
|
7775
7470
|
const compareById = (firstId, secondId) => {
|
|
7776
7471
|
const firstOrder = ID_ORDER[firstId] || Number.MAX_SAFE_INTEGER;
|
|
7777
7472
|
const secondOrder = ID_ORDER[secondId] || Number.MAX_SAFE_INTEGER;
|
|
7778
|
-
|
|
7779
7473
|
if (firstOrder < secondOrder) {
|
|
7780
7474
|
return -1;
|
|
7781
7475
|
} else if (secondOrder < firstOrder) {
|
|
7782
7476
|
return 1;
|
|
7783
7477
|
}
|
|
7784
|
-
|
|
7785
7478
|
return 0;
|
|
7786
7479
|
};
|
|
7787
|
-
|
|
7788
7480
|
var compareCategories = ((first, second) => {
|
|
7789
7481
|
const result = compareById(`${first.id}`, `${second.id}`);
|
|
7790
|
-
|
|
7791
7482
|
if (result !== 0) {
|
|
7792
7483
|
return result;
|
|
7793
7484
|
}
|
|
7794
|
-
|
|
7795
7485
|
return first.name.localeCompare(second.name);
|
|
7796
7486
|
});
|
|
7797
7487
|
|
|
@@ -7816,27 +7506,21 @@ const ORDER = Object.freeze({
|
|
|
7816
7506
|
Malus: 14,
|
|
7817
7507
|
Bonus: 15
|
|
7818
7508
|
});
|
|
7819
|
-
|
|
7820
7509
|
const compareByPredefinedOrder = (firstId, secondId) => {
|
|
7821
7510
|
const firstOrder = ORDER[firstId] || Number.MAX_SAFE_INTEGER;
|
|
7822
7511
|
const secondOrder = ORDER[secondId] || Number.MAX_SAFE_INTEGER;
|
|
7823
|
-
|
|
7824
7512
|
if (firstOrder < secondOrder) {
|
|
7825
7513
|
return -1;
|
|
7826
7514
|
} else if (secondOrder < firstOrder) {
|
|
7827
7515
|
return 1;
|
|
7828
7516
|
}
|
|
7829
|
-
|
|
7830
7517
|
return 0;
|
|
7831
7518
|
};
|
|
7832
|
-
|
|
7833
7519
|
var compareBasicProperties = ((first, second) => {
|
|
7834
7520
|
const result = compareByPredefinedOrder(`${first.name}`, `${second.name}`);
|
|
7835
|
-
|
|
7836
7521
|
if (result !== 0) {
|
|
7837
7522
|
return result;
|
|
7838
7523
|
}
|
|
7839
|
-
|
|
7840
7524
|
return compareProperties(first, second);
|
|
7841
7525
|
});
|
|
7842
7526
|
|
|
@@ -8030,7 +7714,6 @@ const HINTS = Object.freeze({
|
|
|
8030
7714
|
windowLifts: '',
|
|
8031
7715
|
wirelessPhoneCharger: 'Bilen är utrustad med induktionsladdare, så att telefoner som stödjer trådlös laddning kan laddas i bilen utan laddningssladd.'
|
|
8032
7716
|
});
|
|
8033
|
-
|
|
8034
7717
|
const enrichWithHint = properties => {
|
|
8035
7718
|
const clone = deepCopy(properties);
|
|
8036
7719
|
const keys = Object.keys(clone);
|
|
@@ -8058,7 +7741,6 @@ const ENGINE_SUBCATEGORY = Object.freeze({
|
|
|
8058
7741
|
subCategory: null
|
|
8059
7742
|
}
|
|
8060
7743
|
});
|
|
8061
|
-
|
|
8062
7744
|
class PropertyBuilder {
|
|
8063
7745
|
constructor() {
|
|
8064
7746
|
this.name = '';
|
|
@@ -8068,32 +7750,26 @@ class PropertyBuilder {
|
|
|
8068
7750
|
this.hint = null;
|
|
8069
7751
|
this.category = null;
|
|
8070
7752
|
}
|
|
8071
|
-
|
|
8072
7753
|
withName(name) {
|
|
8073
7754
|
this.name = name;
|
|
8074
7755
|
return this;
|
|
8075
7756
|
}
|
|
8076
|
-
|
|
8077
7757
|
withValue(value) {
|
|
8078
7758
|
this.value = value;
|
|
8079
7759
|
return this;
|
|
8080
7760
|
}
|
|
8081
|
-
|
|
8082
7761
|
withType(type) {
|
|
8083
7762
|
this.type = type;
|
|
8084
7763
|
return this;
|
|
8085
7764
|
}
|
|
8086
|
-
|
|
8087
7765
|
withCategory(category) {
|
|
8088
7766
|
this.category = category;
|
|
8089
7767
|
return this;
|
|
8090
7768
|
}
|
|
8091
|
-
|
|
8092
7769
|
withUnit(unit) {
|
|
8093
7770
|
this.unit = unit;
|
|
8094
7771
|
return this;
|
|
8095
7772
|
}
|
|
8096
|
-
|
|
8097
7773
|
build() {
|
|
8098
7774
|
return {
|
|
8099
7775
|
name: this.name,
|
|
@@ -8104,68 +7780,50 @@ class PropertyBuilder {
|
|
|
8104
7780
|
category: this.category
|
|
8105
7781
|
};
|
|
8106
7782
|
}
|
|
8107
|
-
|
|
8108
7783
|
}
|
|
8109
|
-
|
|
8110
7784
|
var addCustomProperties = ((item, properties) => {
|
|
8111
7785
|
const newProperties = deepCopy(properties);
|
|
8112
|
-
|
|
8113
7786
|
if (!!item.manufacturer) {
|
|
8114
7787
|
newProperties.manufacturer = new PropertyBuilder().withName('Varumärke').withValue(item.manufacturer).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8115
7788
|
}
|
|
8116
|
-
|
|
8117
7789
|
if (!!item.modelSeries) {
|
|
8118
7790
|
newProperties.modelSeries = new PropertyBuilder().withName('Modell').withValue(item.modelSeries).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8119
7791
|
}
|
|
8120
|
-
|
|
8121
7792
|
if (!!item.modelName) {
|
|
8122
7793
|
newProperties.modelName = new PropertyBuilder().withName('Version').withValue(item.modelName).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8123
7794
|
}
|
|
8124
|
-
|
|
8125
7795
|
if (!!item.modelYear) {
|
|
8126
7796
|
newProperties.modelYear = new PropertyBuilder().withName('Modellår').withValue(item.modelYear).withType(NUMBER_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8127
7797
|
}
|
|
8128
|
-
|
|
8129
7798
|
if (!!item.manufactureYear) {
|
|
8130
7799
|
newProperties.manufactureYear = new PropertyBuilder().withName('Tillverkningsår').withValue(item.manufactureYear).withType(NUMBER_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8131
7800
|
}
|
|
8132
|
-
|
|
8133
7801
|
if (!!item.mileage) {
|
|
8134
7802
|
newProperties.mileage = new PropertyBuilder().withName('Mätarställning').withValue(item.mileage).withType(NUMBER_TYPE).withCategory(BASIC_CATEGORY).withUnit('mil').build();
|
|
8135
7803
|
}
|
|
8136
|
-
|
|
8137
7804
|
if (!!item.gearboxType) {
|
|
8138
7805
|
newProperties.gearboxType = new PropertyBuilder().withName('Växellåda').withValue(item.gearboxType).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8139
7806
|
}
|
|
8140
|
-
|
|
8141
7807
|
if (!!item.registrationNumber) {
|
|
8142
7808
|
newProperties.registrationNumber = new PropertyBuilder().withName('Registreringsnummer').withValue(item.registrationNumber).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8143
7809
|
}
|
|
8144
|
-
|
|
8145
7810
|
if (!!item.fuelType) {
|
|
8146
7811
|
newProperties.fuelType = new PropertyBuilder().withName('Bränslegrupp').withValue(item.fuelType).withType(TEXT_TYPE).withCategory(BASIC_CATEGORY).build();
|
|
8147
7812
|
}
|
|
8148
|
-
|
|
8149
7813
|
if (item.enginePower) {
|
|
8150
7814
|
newProperties.enginePower = new PropertyBuilder().withName('Effekt').withValue(item.enginePower).withUnit('hk').withType(NUMBER_TYPE).withCategory(ENGINE_SUBCATEGORY).build();
|
|
8151
7815
|
}
|
|
8152
|
-
|
|
8153
7816
|
return newProperties;
|
|
8154
7817
|
});
|
|
8155
7818
|
|
|
8156
7819
|
const PROPERTY_BLACK_LIST = Object.freeze(['towHitchFoldable']);
|
|
8157
|
-
|
|
8158
7820
|
const isForbiddenProperty = key => PROPERTY_BLACK_LIST.includes(key);
|
|
8159
|
-
|
|
8160
7821
|
const CATEGORY_WHITE_LIST = Object.freeze([1, 2, 6, 8, 71, 119, 1000]);
|
|
8161
|
-
|
|
8162
7822
|
const hasForbiddenCategory = property => !property.category || !property.category.id || !CATEGORY_WHITE_LIST.includes(property.category.id);
|
|
8163
|
-
|
|
8164
7823
|
var removeProperties = (properties => {
|
|
8165
7824
|
const newProperties = deepCopy(properties);
|
|
8166
7825
|
Object.keys(properties).forEach(key => {
|
|
8167
7826
|
const property = properties[key];
|
|
8168
|
-
|
|
8169
7827
|
if (hasForbiddenCategory(property)) {
|
|
8170
7828
|
delete newProperties[key];
|
|
8171
7829
|
} else if (isForbiddenProperty(key)) {
|
|
@@ -8218,18 +7876,14 @@ const formatValue = (value, unit) => {
|
|
|
8218
7876
|
block: true
|
|
8219
7877
|
}));
|
|
8220
7878
|
}
|
|
8221
|
-
|
|
8222
7879
|
if (Array.isArray(value)) {
|
|
8223
7880
|
return value.join(', ');
|
|
8224
7881
|
}
|
|
8225
|
-
|
|
8226
7882
|
if (!!value && !!unit) {
|
|
8227
7883
|
return `${value} ${unit}`;
|
|
8228
7884
|
}
|
|
8229
|
-
|
|
8230
7885
|
return value;
|
|
8231
7886
|
};
|
|
8232
|
-
|
|
8233
7887
|
const MetadataItem = ({
|
|
8234
7888
|
name,
|
|
8235
7889
|
hint,
|
|
@@ -8341,7 +7995,6 @@ const MetadataSubCategory = ({
|
|
|
8341
7995
|
unit: property.unit,
|
|
8342
7996
|
key: `${property.name}-${index}`
|
|
8343
7997
|
}))));
|
|
8344
|
-
|
|
8345
7998
|
const MetadataCategory = ({
|
|
8346
7999
|
properties,
|
|
8347
8000
|
subCategories
|
|
@@ -8358,19 +8011,16 @@ const MetadataCategory = ({
|
|
|
8358
8011
|
properties: subCategory.properties,
|
|
8359
8012
|
key: `${subCategory.name}-${index}`
|
|
8360
8013
|
})));
|
|
8361
|
-
|
|
8362
8014
|
const PropertySet = ({
|
|
8363
8015
|
propertySet,
|
|
8364
8016
|
vehicleData
|
|
8365
8017
|
}) => {
|
|
8366
8018
|
var _mappedProperties$cat2, _mappedProperties$cat3;
|
|
8367
|
-
|
|
8368
8019
|
const [activeCategoryId, setActiveCategoryId] = React.useState(-1);
|
|
8369
8020
|
const mappedProperties = React.useMemo(() => {
|
|
8370
8021
|
if (!propertySet) {
|
|
8371
8022
|
return undefined;
|
|
8372
8023
|
}
|
|
8373
|
-
|
|
8374
8024
|
let newProperties = removeProperties(propertySet);
|
|
8375
8025
|
newProperties = addCustomProperties(vehicleData, newProperties);
|
|
8376
8026
|
const enrichedProperties = enrichWithHint(newProperties);
|
|
@@ -8380,9 +8030,7 @@ const PropertySet = ({
|
|
|
8380
8030
|
}, [propertySet]);
|
|
8381
8031
|
React.useEffect(() => {
|
|
8382
8032
|
var _mappedProperties$cat;
|
|
8383
|
-
|
|
8384
8033
|
const categories = (mappedProperties === null || mappedProperties === void 0 ? void 0 : (_mappedProperties$cat = mappedProperties.categories) === null || _mappedProperties$cat === void 0 ? void 0 : _mappedProperties$cat.length) !== undefined ? mappedProperties === null || mappedProperties === void 0 ? void 0 : mappedProperties.categories : undefined;
|
|
8385
|
-
|
|
8386
8034
|
if (activeCategoryId < 0 && categories !== undefined && categories.length > 0) {
|
|
8387
8035
|
setActiveCategoryId(categories[0].id);
|
|
8388
8036
|
}
|
|
@@ -8489,7 +8137,6 @@ const WaykeSearchItem = ({
|
|
|
8489
8137
|
onClickSearchItem
|
|
8490
8138
|
}) => {
|
|
8491
8139
|
var _result$vehicle3, _result$vehicle3$data, _result$vehicle4;
|
|
8492
|
-
|
|
8493
8140
|
const {
|
|
8494
8141
|
ecomSettings
|
|
8495
8142
|
} = useSettings();
|
|
@@ -8516,14 +8163,11 @@ const WaykeSearchItem = ({
|
|
|
8516
8163
|
},
|
|
8517
8164
|
logo: ecomSettings.serviceLogotypeUrl,
|
|
8518
8165
|
logoX2: ecomSettings.serviceLogotypeUrl,
|
|
8519
|
-
|
|
8520
8166
|
onEvent(view, event, currentStep, data) {
|
|
8521
8167
|
PubSub.publish('EcomOnUserEvent', view, event, currentStep, data);
|
|
8522
8168
|
}
|
|
8523
|
-
|
|
8524
8169
|
});
|
|
8525
8170
|
}
|
|
8526
|
-
|
|
8527
8171
|
return () => {
|
|
8528
8172
|
if (ecomContext.current) {
|
|
8529
8173
|
ecomContext.current.destroy();
|
|
@@ -8537,7 +8181,6 @@ const WaykeSearchItem = ({
|
|
|
8537
8181
|
}, []);
|
|
8538
8182
|
React.useEffect(() => {
|
|
8539
8183
|
var _result$vehicle;
|
|
8540
|
-
|
|
8541
8184
|
if (result !== null && result !== void 0 && (_result$vehicle = result.vehicle) !== null && _result$vehicle !== void 0 && _result$vehicle.data && modifyDocumentTitleItem) {
|
|
8542
8185
|
const {
|
|
8543
8186
|
vehicle
|
|
@@ -8550,21 +8193,17 @@ const WaykeSearchItem = ({
|
|
|
8550
8193
|
}, [result]);
|
|
8551
8194
|
const options = React.useMemo(() => {
|
|
8552
8195
|
var _result$vehicle2, _result$vehicle2$data, _result$vehicle2$data2;
|
|
8553
|
-
|
|
8554
8196
|
return result === null || result === void 0 ? void 0 : (_result$vehicle2 = result.vehicle) === null || _result$vehicle2 === void 0 ? void 0 : (_result$vehicle2$data = _result$vehicle2.data) === null || _result$vehicle2$data === void 0 ? void 0 : (_result$vehicle2$data2 = _result$vehicle2$data.options) === null || _result$vehicle2$data2 === void 0 ? void 0 : _result$vehicle2$data2.filter(notEmpty).map(opt => ({
|
|
8555
8197
|
title: opt
|
|
8556
8198
|
}));
|
|
8557
8199
|
}, [result === null || result === void 0 ? void 0 : (_result$vehicle3 = result.vehicle) === null || _result$vehicle3 === void 0 ? void 0 : (_result$vehicle3$data = _result$vehicle3.data) === null || _result$vehicle3$data === void 0 ? void 0 : _result$vehicle3$data.options]);
|
|
8558
8200
|
const onShowMoreOptionsClick = React.useCallback(() => PubSub.publish('OptionsClick'), []);
|
|
8559
|
-
|
|
8560
8201
|
if (loading) {
|
|
8561
8202
|
return React__default.createElement(PageLoading, null);
|
|
8562
8203
|
}
|
|
8563
|
-
|
|
8564
8204
|
if (!(result !== null && result !== void 0 && (_result$vehicle4 = result.vehicle) !== null && _result$vehicle4 !== void 0 && _result$vehicle4.data)) {
|
|
8565
8205
|
return React__default.createElement(Page404, null);
|
|
8566
8206
|
}
|
|
8567
|
-
|
|
8568
8207
|
const {
|
|
8569
8208
|
vehicle
|
|
8570
8209
|
} = result;
|
|
@@ -8597,30 +8236,25 @@ const WaykeSearchItem = ({
|
|
|
8597
8236
|
const uspList = [{
|
|
8598
8237
|
title: modelYear
|
|
8599
8238
|
}];
|
|
8600
|
-
|
|
8601
8239
|
if (flags !== null && flags !== void 0 && flags.demoVersion) {
|
|
8602
8240
|
uspList.push({
|
|
8603
8241
|
title: 'Demobil',
|
|
8604
8242
|
onClick: onToggleDemoCarModal
|
|
8605
8243
|
});
|
|
8606
8244
|
}
|
|
8607
|
-
|
|
8608
8245
|
uspList.push({
|
|
8609
8246
|
title: `${numberSeparator(mileage)} mil`
|
|
8610
8247
|
});
|
|
8611
|
-
|
|
8612
8248
|
if (gearbox) {
|
|
8613
8249
|
uspList.push({
|
|
8614
8250
|
title: gearbox
|
|
8615
8251
|
});
|
|
8616
8252
|
}
|
|
8617
|
-
|
|
8618
8253
|
if (fuelType) {
|
|
8619
8254
|
uspList.push({
|
|
8620
8255
|
title: fuelType
|
|
8621
8256
|
});
|
|
8622
8257
|
}
|
|
8623
|
-
|
|
8624
8258
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(Page, null, React__default.createElement(PageSection, {
|
|
8625
8259
|
large: true
|
|
8626
8260
|
}, React__default.createElement(Container, null, React__default.createElement(ProductPage, null, React__default.createElement(ProductPageAside, null, React__default.createElement(ProductPageAsideSection, {
|
|
@@ -8665,7 +8299,6 @@ const WaykeSearchItem = ({
|
|
|
8665
8299
|
availableFrom: availableFrom,
|
|
8666
8300
|
toggleEcomModal: () => {
|
|
8667
8301
|
var _ecomContext$current;
|
|
8668
|
-
|
|
8669
8302
|
return (_ecomContext$current = ecomContext.current) === null || _ecomContext$current === void 0 ? void 0 : _ecomContext$current.start();
|
|
8670
8303
|
}
|
|
8671
8304
|
}))), React__default.createElement(ProductPageMain, null, React__default.createElement(ProductPageAsideSection, {
|
|
@@ -8701,7 +8334,6 @@ const WaykeSearchItem = ({
|
|
|
8701
8334
|
title: "K\u00F6p bilen online",
|
|
8702
8335
|
onClick: () => {
|
|
8703
8336
|
var _ecomContext$current2;
|
|
8704
|
-
|
|
8705
8337
|
return (_ecomContext$current2 = ecomContext.current) === null || _ecomContext$current2 === void 0 ? void 0 : _ecomContext$current2.start();
|
|
8706
8338
|
}
|
|
8707
8339
|
}, "K\u00F6p bilen online"))), React__default.createElement(PackageOptions, {
|
|
@@ -8744,7 +8376,6 @@ const getUrlSearchParamsFromUrl = () => new URLSearchParams(window.location.sear
|
|
|
8744
8376
|
const initialSearchParams = new URLSearchParams();
|
|
8745
8377
|
initialSearchParams.set('hits', '30');
|
|
8746
8378
|
initialSearchParams.set('sort', 'published-desc');
|
|
8747
|
-
|
|
8748
8379
|
const SearchProvider = ({
|
|
8749
8380
|
url,
|
|
8750
8381
|
apiKey,
|
|
@@ -8779,30 +8410,24 @@ const SearchProvider = ({
|
|
|
8779
8410
|
'x-api-key': apiKey
|
|
8780
8411
|
} : {}
|
|
8781
8412
|
}, !initialize || !!(queryFilter !== null && queryFilter !== void 0 && queryFilter.block));
|
|
8782
|
-
|
|
8783
8413
|
const popStateEvent = event => {
|
|
8784
8414
|
const {
|
|
8785
8415
|
currentTarget
|
|
8786
8416
|
} = event;
|
|
8787
|
-
|
|
8788
8417
|
if (currentTarget) {
|
|
8789
8418
|
const nextSearchParams = new URLSearchParams(currentTarget.location.search);
|
|
8790
|
-
|
|
8791
8419
|
if (!nextSearchParams.has('sort')) {
|
|
8792
8420
|
nextSearchParams.set('sort', 'published-desc');
|
|
8793
8421
|
}
|
|
8794
|
-
|
|
8795
8422
|
setQueryFilter({
|
|
8796
8423
|
searchParams: nextSearchParams
|
|
8797
8424
|
});
|
|
8798
8425
|
}
|
|
8799
8426
|
};
|
|
8800
|
-
|
|
8801
8427
|
React.useEffect(() => {
|
|
8802
8428
|
if (useQueryParamsFromUrl) {
|
|
8803
8429
|
window.addEventListener('popstate', popStateEvent);
|
|
8804
8430
|
}
|
|
8805
|
-
|
|
8806
8431
|
const onFilterUpdateEvent = {
|
|
8807
8432
|
actionName: 'onFilterUpdate',
|
|
8808
8433
|
callback: onFilterUpdate
|
|
@@ -8823,25 +8448,19 @@ const SearchProvider = ({
|
|
|
8823
8448
|
const nextSearchParams = new URLSearchParams(queryFilter.searchParams);
|
|
8824
8449
|
nextSearchParams.delete('hits');
|
|
8825
8450
|
nextSearchParams.delete('offset');
|
|
8826
|
-
|
|
8827
8451
|
if (nextSearchParams.get('sort') === 'published-desc') {
|
|
8828
8452
|
nextSearchParams.delete('sort');
|
|
8829
8453
|
}
|
|
8830
|
-
|
|
8831
8454
|
const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
|
|
8832
|
-
|
|
8833
8455
|
if (initialize) {
|
|
8834
8456
|
if (window.location.search.localeCompare(nextSearch) !== 0) {
|
|
8835
8457
|
const _path = pathRoute === null || pathRoute === void 0 ? void 0 : pathRoute.replace(/^\/|\/$/g, '');
|
|
8836
|
-
|
|
8837
8458
|
const prefix = _path ? `/${_path}/` : '/';
|
|
8838
8459
|
const index = _path ? window.location.pathname.indexOf(prefix) : -1;
|
|
8839
8460
|
let pathname = window.location.pathname;
|
|
8840
|
-
|
|
8841
8461
|
if (index > -1) {
|
|
8842
8462
|
pathname = pathname.substr(0, index);
|
|
8843
8463
|
}
|
|
8844
|
-
|
|
8845
8464
|
pushState(`${pathname}${nextSearch}`);
|
|
8846
8465
|
}
|
|
8847
8466
|
}
|
|
@@ -8850,17 +8469,14 @@ const SearchProvider = ({
|
|
|
8850
8469
|
React.useEffect(() => {
|
|
8851
8470
|
if (response) {
|
|
8852
8471
|
var _response$query;
|
|
8853
|
-
|
|
8854
8472
|
if (!initialFacets && !useQueryParamsFromUrl) {
|
|
8855
8473
|
setInitialFacets(response.facets);
|
|
8856
8474
|
}
|
|
8857
|
-
|
|
8858
8475
|
if (useQueryParamsFromUrl && (_response$query = response.query) !== null && _response$query !== void 0 && _response$query.parameters) {
|
|
8859
8476
|
const nextSearchParams = new URLSearchParams(response.query.parameters);
|
|
8860
8477
|
nextSearchParams.delete('hits');
|
|
8861
8478
|
nextSearchParams.delete('offset');
|
|
8862
8479
|
const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
|
|
8863
|
-
|
|
8864
8480
|
if (window.location.search.localeCompare(nextSearch) !== 0) {
|
|
8865
8481
|
replaceState(`${window.location.pathname}${nextSearch}`);
|
|
8866
8482
|
setQueryFilter({
|
|
@@ -8869,7 +8485,6 @@ const SearchProvider = ({
|
|
|
8869
8485
|
});
|
|
8870
8486
|
}
|
|
8871
8487
|
}
|
|
8872
|
-
|
|
8873
8488
|
if (queryFilter !== null && queryFilter !== void 0 && queryFilter.concatResult) {
|
|
8874
8489
|
setDocuments([...(documents || []), ...(response.documentList.documents || [])]);
|
|
8875
8490
|
} else {
|
|
@@ -8882,7 +8497,6 @@ const SearchProvider = ({
|
|
|
8882
8497
|
if (!initialize) {
|
|
8883
8498
|
setInitialize(true);
|
|
8884
8499
|
}
|
|
8885
|
-
|
|
8886
8500
|
setQueryFilter({
|
|
8887
8501
|
searchParams: new URLSearchParams(nextQuery)
|
|
8888
8502
|
});
|
|
@@ -8891,7 +8505,6 @@ const SearchProvider = ({
|
|
|
8891
8505
|
const onLoadMore = React.useCallback(() => {
|
|
8892
8506
|
if (response) {
|
|
8893
8507
|
var _response$documentLis;
|
|
8894
|
-
|
|
8895
8508
|
setQueryFilter({
|
|
8896
8509
|
searchParams: new URLSearchParams(response === null || response === void 0 ? void 0 : (_response$documentLis = response.documentList.pagination.nextPage) === null || _response$documentLis === void 0 ? void 0 : _response$documentLis.query),
|
|
8897
8510
|
concatResult: true
|
|
@@ -8902,37 +8515,32 @@ const SearchProvider = ({
|
|
|
8902
8515
|
if (!initialize) {
|
|
8903
8516
|
const searchParamsFromUrl = getUrlSearchParamsFromUrl();
|
|
8904
8517
|
const initialQueryParams = useQueryParamsFromUrl ? searchParamsFromUrl : _initialQueryParams;
|
|
8905
|
-
|
|
8906
8518
|
if (useQueryParamsFromUrl && _initialQueryParams) {
|
|
8907
8519
|
_initialQueryParams.forEach((value, key) => {
|
|
8908
8520
|
var _initialQueryParams$g;
|
|
8909
|
-
|
|
8910
8521
|
if (!(initialQueryParams !== null && initialQueryParams !== void 0 && (_initialQueryParams$g = initialQueryParams.getAll(key)) !== null && _initialQueryParams$g !== void 0 && _initialQueryParams$g.some(v => v === value))) {
|
|
8911
8522
|
initialQueryParams === null || initialQueryParams === void 0 ? void 0 : initialQueryParams.append(key, value);
|
|
8912
8523
|
}
|
|
8913
8524
|
});
|
|
8914
8525
|
}
|
|
8915
|
-
|
|
8916
8526
|
if (initialQueryParams) {
|
|
8917
8527
|
const nextSearchParams = new URLSearchParams(initialQueryParams);
|
|
8918
8528
|
nextSearchParams.delete('hits');
|
|
8919
8529
|
nextSearchParams.delete('offset');
|
|
8920
|
-
|
|
8921
8530
|
if (!initialQueryParams.has('hits')) {
|
|
8922
8531
|
initialQueryParams.set('hits', '30');
|
|
8923
8532
|
}
|
|
8924
|
-
|
|
8925
8533
|
if (!initialQueryParams.has('sort')) {
|
|
8926
8534
|
initialQueryParams.set('sort', 'published-desc');
|
|
8927
8535
|
}
|
|
8928
|
-
|
|
8929
8536
|
const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
|
|
8930
8537
|
setQueryFilter({
|
|
8931
8538
|
searchParams: initialQueryParams
|
|
8932
8539
|
});
|
|
8933
|
-
|
|
8540
|
+
if (useQueryParamsFromUrl) {
|
|
8541
|
+
replaceState(`${window.location.pathname}${nextSearch}`);
|
|
8542
|
+
}
|
|
8934
8543
|
}
|
|
8935
|
-
|
|
8936
8544
|
setInitialize(true);
|
|
8937
8545
|
}
|
|
8938
8546
|
}, [initialize]);
|
|
@@ -9070,15 +8678,12 @@ const SET_PATH = 'SET_PATH';
|
|
|
9070
8678
|
const initialState = {
|
|
9071
8679
|
path: window.location.pathname
|
|
9072
8680
|
};
|
|
9073
|
-
|
|
9074
8681
|
const pathReducer = (state, action) => {
|
|
9075
8682
|
const next = _objectSpread2({}, state);
|
|
9076
|
-
|
|
9077
8683
|
switch (action.type) {
|
|
9078
8684
|
case SET_PATH:
|
|
9079
8685
|
next.path = action.path;
|
|
9080
8686
|
return next;
|
|
9081
|
-
|
|
9082
8687
|
default:
|
|
9083
8688
|
throw new Error(`Unsupported action type`);
|
|
9084
8689
|
}
|
|
@@ -9086,7 +8691,6 @@ const pathReducer = (state, action) => {
|
|
|
9086
8691
|
|
|
9087
8692
|
const regexGuidAnyWhere = /(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}/g;
|
|
9088
8693
|
const POP_STATE = 'popstate';
|
|
9089
|
-
|
|
9090
8694
|
const PathProvider = ({
|
|
9091
8695
|
children
|
|
9092
8696
|
}) => {
|
|
@@ -9099,7 +8703,6 @@ const PathProvider = ({
|
|
|
9099
8703
|
path: window.location.pathname
|
|
9100
8704
|
});
|
|
9101
8705
|
};
|
|
9102
|
-
|
|
9103
8706
|
window.addEventListener(POP_STATE, onPopState);
|
|
9104
8707
|
return () => {
|
|
9105
8708
|
window.removeEventListener(POP_STATE, onPopState);
|
|
@@ -9109,11 +8712,9 @@ const PathProvider = ({
|
|
|
9109
8712
|
const h1 = window.location.hash;
|
|
9110
8713
|
history.pushState(null, '', `${path}`);
|
|
9111
8714
|
const h2 = window.location.hash;
|
|
9112
|
-
|
|
9113
8715
|
if (h1.localeCompare(h2) !== 0) {
|
|
9114
8716
|
window.dispatchEvent(new HashChangeEvent('hashchange'));
|
|
9115
8717
|
}
|
|
9116
|
-
|
|
9117
8718
|
dispatch({
|
|
9118
8719
|
type: SET_PATH,
|
|
9119
8720
|
path
|
|
@@ -9123,11 +8724,9 @@ const PathProvider = ({
|
|
|
9123
8724
|
const h1 = window.location.hash;
|
|
9124
8725
|
history.replaceState(null, '', path);
|
|
9125
8726
|
const h2 = window.location.hash;
|
|
9126
|
-
|
|
9127
8727
|
if (h1.localeCompare(h2) !== 0) {
|
|
9128
8728
|
window.dispatchEvent(new HashChangeEvent('hashchange'));
|
|
9129
8729
|
}
|
|
9130
|
-
|
|
9131
8730
|
dispatch({
|
|
9132
8731
|
type: SET_PATH,
|
|
9133
8732
|
path
|
|
@@ -9135,7 +8734,6 @@ const PathProvider = ({
|
|
|
9135
8734
|
}, []);
|
|
9136
8735
|
const id = React.useMemo(() => {
|
|
9137
8736
|
var _state$path$match;
|
|
9138
|
-
|
|
9139
8737
|
return (_state$path$match = state.path.match(regexGuidAnyWhere)) === null || _state$path$match === void 0 ? void 0 : _state$path$match.pop();
|
|
9140
8738
|
}, [state.path]);
|
|
9141
8739
|
const value = React.useMemo(() => _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -9179,25 +8777,20 @@ const WaykeProvider = ({
|
|
|
9179
8777
|
|
|
9180
8778
|
const regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
9181
8779
|
const HASH_CHANGE = 'hashchange';
|
|
9182
|
-
|
|
9183
8780
|
const getGuid = () => {
|
|
9184
8781
|
const guid = window.location.hash.substr(1, window.location.hash.length);
|
|
9185
8782
|
return regexGuid.test(guid) || !guid ? guid : undefined;
|
|
9186
8783
|
};
|
|
9187
|
-
|
|
9188
8784
|
const useHashGuid = () => {
|
|
9189
8785
|
const [id, setId] = React.useState(() => getGuid());
|
|
9190
|
-
|
|
9191
8786
|
const onHashChange = () => {
|
|
9192
8787
|
const guid = window.location.hash.substr(1, window.location.hash.length);
|
|
9193
|
-
|
|
9194
8788
|
if (regexGuid.test(guid) || !guid) {
|
|
9195
8789
|
setId(window.location.hash.substr(1, window.location.hash.length));
|
|
9196
8790
|
} else {
|
|
9197
8791
|
throw 'Invalid Guid';
|
|
9198
8792
|
}
|
|
9199
8793
|
};
|
|
9200
|
-
|
|
9201
8794
|
React.useEffect(() => {
|
|
9202
8795
|
onHashChange();
|
|
9203
8796
|
window.addEventListener(HASH_CHANGE, onHashChange);
|