@qite/tide-booking-component 1.4.69 → 1.4.70
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/build/build-cjs/index.js +585 -445
- package/build/build-cjs/src/qsm/store/qsm-slice.d.ts +4 -4
- package/build/build-cjs/src/qsm/types.d.ts +2 -14
- package/build/build-cjs/src/search-results/components/filters/filters.d.ts +1 -1
- package/build/build-cjs/src/search-results/components/filters/utility.d.ts +2 -2
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-results.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -2
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +3 -6
- package/build/build-cjs/src/search-results/types.d.ts +7 -2
- package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +3 -0
- package/build/build-cjs/src/shared/components/flyin.d.ts +1 -1
- package/build/build-cjs/src/shared/types.d.ts +12 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +4 -0
- package/build/build-esm/index.js +585 -444
- package/build/build-esm/src/qsm/store/qsm-slice.d.ts +4 -4
- package/build/build-esm/src/qsm/types.d.ts +2 -14
- package/build/build-esm/src/search-results/components/filters/filters.d.ts +1 -1
- package/build/build-esm/src/search-results/components/filters/utility.d.ts +2 -2
- package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +8 -0
- package/build/build-esm/src/search-results/components/group-tour/group-tour-results.d.ts +6 -0
- package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -2
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +3 -6
- package/build/build-esm/src/search-results/types.d.ts +7 -2
- package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +3 -0
- package/build/build-esm/src/shared/components/flyin.d.ts +1 -1
- package/build/build-esm/src/shared/types.d.ts +12 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +4 -0
- package/package.json +1 -1
- package/src/qsm/components/QSMContainer/qsm-container.tsx +3 -2
- package/src/qsm/store/qsm-slice.ts +4 -4
- package/src/qsm/types.ts +2 -15
- package/src/search-results/components/filters/filters.tsx +136 -293
- package/src/search-results/components/filters/utility.tsx +61 -2
- package/src/search-results/components/group-tour/group-tour-card.tsx +86 -0
- package/src/search-results/components/group-tour/group-tour-results.tsx +40 -0
- package/src/search-results/components/hotel/hotel-accommodation-results.tsx +13 -16
- package/src/search-results/components/icon.tsx +18 -0
- package/src/search-results/components/search-results-container/search-results-container.tsx +31 -19
- package/src/search-results/store/search-results-slice.ts +8 -2
- package/src/search-results/types.ts +9 -2
- package/src/search-results/utils/search-results-utils.ts +42 -0
- package/src/shared/components/flyin.tsx +2 -1
- package/src/shared/translations/ar-SA.json +2 -1
- package/src/shared/translations/da-DK.json +2 -1
- package/src/shared/translations/de-DE.json +2 -1
- package/src/shared/translations/en-GB.json +2 -1
- package/src/shared/translations/es-ES.json +2 -1
- package/src/shared/translations/fr-BE.json +2 -1
- package/src/shared/translations/fr-FR.json +2 -1
- package/src/shared/translations/is-IS.json +2 -1
- package/src/shared/translations/it-IT.json +2 -1
- package/src/shared/translations/ja-JP.json +2 -1
- package/src/shared/translations/nl-BE.json +2 -1
- package/src/shared/translations/nl-NL.json +2 -1
- package/src/shared/translations/no-NO.json +2 -1
- package/src/shared/translations/pl-PL.json +2 -1
- package/src/shared/translations/pt-PT.json +2 -1
- package/src/shared/translations/sv-SE.json +2 -1
- package/src/shared/types.ts +13 -0
- package/src/shared/utils/localization-util.ts +16 -0
package/build/build-esm/index.js
CHANGED
|
@@ -651,7 +651,8 @@ var SRP$f = {
|
|
|
651
651
|
DEPARTURE_TIME_ASC: 'وقت المغادرة تصاعدياً',
|
|
652
652
|
DEPARTURE_TIME_DESC: 'وقت المغادرة تنازلياً',
|
|
653
653
|
DURATION_ASC: 'المدة تصاعدياً',
|
|
654
|
-
DURATION_DESC: 'المدة تنازلياً'
|
|
654
|
+
DURATION_DESC: 'المدة تنازلياً',
|
|
655
|
+
TRAVEL_GROUP: 'مجموعة المسافرين'
|
|
655
656
|
};
|
|
656
657
|
var arJson = {
|
|
657
658
|
STEPS: STEPS$f,
|
|
@@ -1050,7 +1051,8 @@ var SRP$e = {
|
|
|
1050
1051
|
DEPARTURE_TIME_ASC: 'Afgangstid stigende',
|
|
1051
1052
|
DEPARTURE_TIME_DESC: 'Afgangstid faldende',
|
|
1052
1053
|
DURATION_ASC: 'Varighed stigende',
|
|
1053
|
-
DURATION_DESC: 'Varighed faldende'
|
|
1054
|
+
DURATION_DESC: 'Varighed faldende',
|
|
1055
|
+
TRAVEL_GROUP: 'Rejseselskab'
|
|
1054
1056
|
};
|
|
1055
1057
|
var daJson = {
|
|
1056
1058
|
STEPS: STEPS$e,
|
|
@@ -1450,7 +1452,8 @@ var SRP$d = {
|
|
|
1450
1452
|
DEPARTURE_RANGE: 'Abflugzeitraum',
|
|
1451
1453
|
DEPARTURE_AIRPORTS: 'Abflughäfen',
|
|
1452
1454
|
ARRIVAL_AIRPORTS: 'Ankunftsflughäfen',
|
|
1453
|
-
PRICE: 'Preis'
|
|
1455
|
+
PRICE: 'Preis',
|
|
1456
|
+
TRAVEL_GROUP: 'Reisegruppe'
|
|
1454
1457
|
};
|
|
1455
1458
|
var deJson = {
|
|
1456
1459
|
STEPS: STEPS$d,
|
|
@@ -1853,7 +1856,8 @@ var SRP$c = {
|
|
|
1853
1856
|
NIGHT_RANGE: 'Night',
|
|
1854
1857
|
DEPARTURE_RANGE: 'Departure range',
|
|
1855
1858
|
DEPARTURE_AIRPORTS: 'Departure airports',
|
|
1856
|
-
ARRIVAL_AIRPORTS: 'Arrival airports'
|
|
1859
|
+
ARRIVAL_AIRPORTS: 'Arrival airports',
|
|
1860
|
+
TRAVEL_GROUP: 'Travel group'
|
|
1857
1861
|
};
|
|
1858
1862
|
var enJson = {
|
|
1859
1863
|
STEPS: STEPS$c,
|
|
@@ -2253,7 +2257,8 @@ var SRP$b = {
|
|
|
2253
2257
|
DEPARTURE_RANGE: 'Franja de salida',
|
|
2254
2258
|
DEPARTURE_AIRPORTS: 'Aeropuertos de salida',
|
|
2255
2259
|
ARRIVAL_AIRPORTS: 'Aeropuertos de llegada',
|
|
2256
|
-
PRICE: 'Precio'
|
|
2260
|
+
PRICE: 'Precio',
|
|
2261
|
+
TRAVEL_GROUP: 'Grupo de viaje'
|
|
2257
2262
|
};
|
|
2258
2263
|
var esJson = {
|
|
2259
2264
|
STEPS: STEPS$b,
|
|
@@ -2657,7 +2662,8 @@ var SRP$a = {
|
|
|
2657
2662
|
DEPARTURE_RANGE: 'Plage de départ',
|
|
2658
2663
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
2659
2664
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
2660
|
-
PRICE: 'Prix'
|
|
2665
|
+
PRICE: 'Prix',
|
|
2666
|
+
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
2661
2667
|
};
|
|
2662
2668
|
var frBeJson = {
|
|
2663
2669
|
STEPS: STEPS$a,
|
|
@@ -3056,7 +3062,8 @@ var SRP$9 = {
|
|
|
3056
3062
|
DEPARTURE_RANGE: 'Plage de départ',
|
|
3057
3063
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
3058
3064
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
3059
|
-
PRICE: 'Prix'
|
|
3065
|
+
PRICE: 'Prix',
|
|
3066
|
+
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
3060
3067
|
};
|
|
3061
3068
|
var frFrJson = {
|
|
3062
3069
|
STEPS: STEPS$9,
|
|
@@ -3455,7 +3462,8 @@ var SRP$8 = {
|
|
|
3455
3462
|
DEPARTURE_RANGE: 'Brottfarartímabil',
|
|
3456
3463
|
DEPARTURE_AIRPORTS: 'Brottfararflugvellir',
|
|
3457
3464
|
ARRIVAL_AIRPORTS: 'Komuflugvellir',
|
|
3458
|
-
PRICE: 'Verð'
|
|
3465
|
+
PRICE: 'Verð',
|
|
3466
|
+
TRAVEL_GROUP: 'Ferðahópur'
|
|
3459
3467
|
};
|
|
3460
3468
|
var isJson = {
|
|
3461
3469
|
STEPS: STEPS$8,
|
|
@@ -3855,7 +3863,8 @@ var SRP$7 = {
|
|
|
3855
3863
|
DEPARTURE_RANGE: 'Fascia di partenza',
|
|
3856
3864
|
DEPARTURE_AIRPORTS: 'Aeroporti di partenza',
|
|
3857
3865
|
ARRIVAL_AIRPORTS: 'Aeroporti di arrivo',
|
|
3858
|
-
PRICE: 'Prezzo'
|
|
3866
|
+
PRICE: 'Prezzo',
|
|
3867
|
+
TRAVEL_GROUP: 'Gruppo di viaggio'
|
|
3859
3868
|
};
|
|
3860
3869
|
var itJson = {
|
|
3861
3870
|
STEPS: STEPS$7,
|
|
@@ -4259,7 +4268,8 @@ var SRP$6 = {
|
|
|
4259
4268
|
DEPARTURE_RANGE: 'Vertrektijdstip',
|
|
4260
4269
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4261
4270
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4262
|
-
PRICE: 'Prijs'
|
|
4271
|
+
PRICE: 'Prijs',
|
|
4272
|
+
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4263
4273
|
};
|
|
4264
4274
|
var nlBeJson = {
|
|
4265
4275
|
STEPS: STEPS$6,
|
|
@@ -4659,7 +4669,8 @@ var SRP$5 = {
|
|
|
4659
4669
|
DEPARTURE_RANGE: 'Vertrektijdstip',
|
|
4660
4670
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4661
4671
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4662
|
-
PRICE: 'Prijs'
|
|
4672
|
+
PRICE: 'Prijs',
|
|
4673
|
+
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4663
4674
|
};
|
|
4664
4675
|
var nlNlJson = {
|
|
4665
4676
|
STEPS: STEPS$5,
|
|
@@ -5059,7 +5070,8 @@ var SRP$4 = {
|
|
|
5059
5070
|
DEPARTURE_RANGE: 'Avgangsperiode',
|
|
5060
5071
|
DEPARTURE_AIRPORTS: 'Avgangsflyplasser',
|
|
5061
5072
|
ARRIVAL_AIRPORTS: 'Ankomstflyplasser',
|
|
5062
|
-
PRICE: 'Pris'
|
|
5073
|
+
PRICE: 'Pris',
|
|
5074
|
+
TRAVEL_GROUP: 'Reisefølge'
|
|
5063
5075
|
};
|
|
5064
5076
|
var noJson = {
|
|
5065
5077
|
STEPS: STEPS$4,
|
|
@@ -5459,7 +5471,8 @@ var SRP$3 = {
|
|
|
5459
5471
|
DEPARTURE_RANGE: 'Zakres wylotu',
|
|
5460
5472
|
DEPARTURE_AIRPORTS: 'Lotniska wylotu',
|
|
5461
5473
|
ARRIVAL_AIRPORTS: 'Lotniska przylotu',
|
|
5462
|
-
PRICE: 'Cena'
|
|
5474
|
+
PRICE: 'Cena',
|
|
5475
|
+
TRAVEL_GROUP: 'Grupa podróżnych'
|
|
5463
5476
|
};
|
|
5464
5477
|
var plJson = {
|
|
5465
5478
|
STEPS: STEPS$3,
|
|
@@ -5859,7 +5872,8 @@ var SRP$2 = {
|
|
|
5859
5872
|
DEPARTURE_RANGE: 'Intervalo de partida',
|
|
5860
5873
|
DEPARTURE_AIRPORTS: 'Aeroportos de partida',
|
|
5861
5874
|
ARRIVAL_AIRPORTS: 'Aeroportos de chegada',
|
|
5862
|
-
PRICE: 'Preço'
|
|
5875
|
+
PRICE: 'Preço',
|
|
5876
|
+
TRAVEL_GROUP: 'Grupo de viajantes'
|
|
5863
5877
|
};
|
|
5864
5878
|
var ptJson = {
|
|
5865
5879
|
STEPS: STEPS$2,
|
|
@@ -6259,7 +6273,8 @@ var SRP$1 = {
|
|
|
6259
6273
|
DEPARTURE_RANGE: 'Avgångsintervall',
|
|
6260
6274
|
DEPARTURE_AIRPORTS: 'Avgångsflygplatser',
|
|
6261
6275
|
ARRIVAL_AIRPORTS: 'Ankomstflygplatser',
|
|
6262
|
-
PRICE: 'Pris'
|
|
6276
|
+
PRICE: 'Pris',
|
|
6277
|
+
TRAVEL_GROUP: 'Resesällskap'
|
|
6263
6278
|
};
|
|
6264
6279
|
var svJson = {
|
|
6265
6280
|
STEPS: STEPS$1,
|
|
@@ -6657,7 +6672,8 @@ var SRP = {
|
|
|
6657
6672
|
DEPARTURE_RANGE: '出発時間帯',
|
|
6658
6673
|
DEPARTURE_AIRPORTS: '出発空港',
|
|
6659
6674
|
ARRIVAL_AIRPORTS: '到着空港',
|
|
6660
|
-
PRICE: '価格'
|
|
6675
|
+
PRICE: '価格',
|
|
6676
|
+
TRAVEL_GROUP: '旅行グループ'
|
|
6661
6677
|
};
|
|
6662
6678
|
var jaJson = {
|
|
6663
6679
|
STEPS: STEPS,
|
|
@@ -6864,6 +6880,18 @@ var rangeFromDateTimeInMinutes = function (dateTime) {
|
|
|
6864
6880
|
return DepartureRange.Night;
|
|
6865
6881
|
}
|
|
6866
6882
|
};
|
|
6883
|
+
var calculateNights = function (fromDate, toDate) {
|
|
6884
|
+
var from = new Date(fromDate);
|
|
6885
|
+
var to = new Date(toDate);
|
|
6886
|
+
// Normalize to midnight to avoid time issues
|
|
6887
|
+
from.setHours(0, 0, 0, 0);
|
|
6888
|
+
to.setHours(0, 0, 0, 0);
|
|
6889
|
+
var diffTime = to.getTime() - from.getTime();
|
|
6890
|
+
return diffTime / (1000 * 60 * 60 * 24);
|
|
6891
|
+
};
|
|
6892
|
+
var calculateDays = function (fromDate, toDate) {
|
|
6893
|
+
return calculateNights(fromDate, toDate) + 1;
|
|
6894
|
+
};
|
|
6867
6895
|
|
|
6868
6896
|
var getDateFromParams = function (params, name) {
|
|
6869
6897
|
var dateString = params.get(name);
|
|
@@ -33251,6 +33279,7 @@ var SearchResultsConfigurationContext = React__default.createContext(undefined);
|
|
|
33251
33279
|
var _a;
|
|
33252
33280
|
var initialState$1 = {
|
|
33253
33281
|
results: [],
|
|
33282
|
+
filteredResults: [],
|
|
33254
33283
|
selectedHotelId: null,
|
|
33255
33284
|
selectedFlight: null,
|
|
33256
33285
|
selectedFlightDetails: null,
|
|
@@ -33268,7 +33297,10 @@ var searchResultsSlice = createSlice({
|
|
|
33268
33297
|
initialState: initialState$1,
|
|
33269
33298
|
reducers: {
|
|
33270
33299
|
setResults: function (state, action) {
|
|
33271
|
-
state.results = action.payload
|
|
33300
|
+
state.results = action.payload;
|
|
33301
|
+
},
|
|
33302
|
+
setFilteredResults: function (state, action) {
|
|
33303
|
+
state.filteredResults = action.payload;
|
|
33272
33304
|
},
|
|
33273
33305
|
setSelectedHotel: function (state, action) {
|
|
33274
33306
|
state.selectedHotelId = action.payload;
|
|
@@ -33337,6 +33369,7 @@ var searchResultsSlice = createSlice({
|
|
|
33337
33369
|
}
|
|
33338
33370
|
});
|
|
33339
33371
|
var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
33372
|
+
setFilteredResults = _a.setFilteredResults,
|
|
33340
33373
|
setSelectedHotel = _a.setSelectedHotel,
|
|
33341
33374
|
setSelectedFlight = _a.setSelectedFlight,
|
|
33342
33375
|
setSelectedFlightDetails = _a.setSelectedFlightDetails,
|
|
@@ -34351,6 +34384,27 @@ var Icon$1 = function (_a) {
|
|
|
34351
34384
|
fill: 'currentColor'
|
|
34352
34385
|
})
|
|
34353
34386
|
);
|
|
34387
|
+
case 'ui-other':
|
|
34388
|
+
return React__default.createElement(
|
|
34389
|
+
'svg',
|
|
34390
|
+
{
|
|
34391
|
+
className: ['icon', 'icon--'.concat(name), className]
|
|
34392
|
+
.filter(function (className) {
|
|
34393
|
+
return !isEmpty(className);
|
|
34394
|
+
})
|
|
34395
|
+
.join(' '),
|
|
34396
|
+
width: width,
|
|
34397
|
+
height: height,
|
|
34398
|
+
viewBox: '0 0 640 512',
|
|
34399
|
+
fill: fill !== null && fill !== void 0 ? fill : 'currentColor'
|
|
34400
|
+
},
|
|
34401
|
+
React__default.createElement(HTMLComment, { text: '!Font Awesome Free 6.7.2 - mars-and-venus' }),
|
|
34402
|
+
title && React__default.createElement('title', null, title),
|
|
34403
|
+
React__default.createElement('path', {
|
|
34404
|
+
d: 'M320 32c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-64.2 64.2c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304s78.8-176 176-176c37.1 0 71.4 11.5 99.8 31l64.2-64.2L320 96c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z',
|
|
34405
|
+
fill: 'currentColor'
|
|
34406
|
+
})
|
|
34407
|
+
);
|
|
34354
34408
|
default:
|
|
34355
34409
|
return null;
|
|
34356
34410
|
}
|
|
@@ -37824,7 +37878,9 @@ var mapSearchResult = function (searchResult, cmsItem, languageCode, translation
|
|
|
37824
37878
|
: ((_h = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.parentItem) === null || _h === void 0 ? void 0 : _h.name) || '',
|
|
37825
37879
|
price: formatPrice(searchResult.price, searchResult.currencyCode, languageCode),
|
|
37826
37880
|
ctaText: translations === null || translations === void 0 ? void 0 : translations.SRP.VIEW_DETAILS,
|
|
37827
|
-
days:
|
|
37881
|
+
days: ''
|
|
37882
|
+
.concat(calculateNights(searchResult.stayFromDate, searchResult.stayToDate), ' ')
|
|
37883
|
+
.concat(translations === null || translations === void 0 ? void 0 : translations.SRP.NIGHTS),
|
|
37828
37884
|
accommodation: searchResult.accommodationName,
|
|
37829
37885
|
regime: searchResult.regimeName,
|
|
37830
37886
|
stars:
|
|
@@ -37833,17 +37889,13 @@ var mapSearchResult = function (searchResult, cmsItem, languageCode, translation
|
|
|
37833
37889
|
: _k.stars) || searchResult.hotelStars
|
|
37834
37890
|
};
|
|
37835
37891
|
};
|
|
37836
|
-
var calculateNights = function (fromDate, toDate, translations) {
|
|
37837
|
-
var from = new Date(fromDate).getTime(); // returns a number
|
|
37838
|
-
var to = new Date(toDate).getTime(); // returns a number
|
|
37839
|
-
var diffTime = Math.abs(to - from);
|
|
37840
|
-
var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
37841
|
-
return ''.concat(diffDays, ' ').concat(translations === null || translations === void 0 ? void 0 : translations.SRP.NIGHTS);
|
|
37842
|
-
};
|
|
37843
37892
|
var HotelAccommodationResults = function (_a) {
|
|
37844
37893
|
var _b, _c;
|
|
37845
|
-
var isLoading = _a.isLoading
|
|
37846
|
-
|
|
37894
|
+
var isLoading = _a.isLoading;
|
|
37895
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
37896
|
+
if (!context) {
|
|
37897
|
+
return;
|
|
37898
|
+
}
|
|
37847
37899
|
if (context.showMockup) {
|
|
37848
37900
|
return showMocukups(context);
|
|
37849
37901
|
}
|
|
@@ -37860,9 +37912,9 @@ var HotelAccommodationResults = function (_a) {
|
|
|
37860
37912
|
var _d = useSelector(function (state) {
|
|
37861
37913
|
return state.searchResults;
|
|
37862
37914
|
}),
|
|
37863
|
-
|
|
37915
|
+
filteredResults = _d.filteredResults,
|
|
37864
37916
|
activeTab = _d.activeTab;
|
|
37865
|
-
if (!
|
|
37917
|
+
if (!filteredResults.length) {
|
|
37866
37918
|
return React__default.createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS);
|
|
37867
37919
|
}
|
|
37868
37920
|
var cmsMap = React__default.useMemo(
|
|
@@ -37886,7 +37938,7 @@ var HotelAccommodationResults = function (_a) {
|
|
|
37886
37938
|
},
|
|
37887
37939
|
[context.cmsHotelData]
|
|
37888
37940
|
);
|
|
37889
|
-
var firstResult =
|
|
37941
|
+
var firstResult = filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults[0];
|
|
37890
37942
|
var firstResultDay = (firstResult === null || firstResult === void 0 ? void 0 : firstResult.fromDate) ? format$1(parseISO(firstResult.fromDate), 'd') : null;
|
|
37891
37943
|
var firstResultMonth = (firstResult === null || firstResult === void 0 ? void 0 : firstResult.fromDate)
|
|
37892
37944
|
? format$1(parseISO(firstResult.fromDate), 'MMM')
|
|
@@ -37909,7 +37961,7 @@ var HotelAccommodationResults = function (_a) {
|
|
|
37909
37961
|
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.ACCOMMODATION))
|
|
37910
37962
|
)
|
|
37911
37963
|
),
|
|
37912
|
-
renderResults(
|
|
37964
|
+
renderResults(filteredResults, context, cmsMap, activeTab, translations)
|
|
37913
37965
|
);
|
|
37914
37966
|
};
|
|
37915
37967
|
var showMocukups = function (context) {
|
|
@@ -38240,12 +38292,11 @@ var RoundTripResults = function () {
|
|
|
38240
38292
|
);
|
|
38241
38293
|
};
|
|
38242
38294
|
|
|
38243
|
-
var enrichFiltersWithResults = function (results, filters) {
|
|
38295
|
+
var enrichFiltersWithResults = function (results, filters, tags) {
|
|
38244
38296
|
if (!results || results.length === 0 || !filters) {
|
|
38245
38297
|
return filters !== null && filters !== void 0 ? filters : [];
|
|
38246
38298
|
}
|
|
38247
|
-
|
|
38248
|
-
var filter = filters_1[_i];
|
|
38299
|
+
var _loop_1 = function (filter) {
|
|
38249
38300
|
if (filter.property === 'price' && (filter.min == null || filter.max == null)) {
|
|
38250
38301
|
var prices = results
|
|
38251
38302
|
.map(function (r) {
|
|
@@ -38260,6 +38311,72 @@ var enrichFiltersWithResults = function (results, filters) {
|
|
|
38260
38311
|
filter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
38261
38312
|
}
|
|
38262
38313
|
}
|
|
38314
|
+
if (filter.property === 'accommodation') {
|
|
38315
|
+
var map_1 = new Map();
|
|
38316
|
+
results.forEach(function (r) {
|
|
38317
|
+
if (r.accommodationCode) {
|
|
38318
|
+
map_1.set(r.accommodationCode, {
|
|
38319
|
+
name: r.accommodationName,
|
|
38320
|
+
code: r.accommodationCode
|
|
38321
|
+
});
|
|
38322
|
+
}
|
|
38323
|
+
});
|
|
38324
|
+
console.log('map', map_1);
|
|
38325
|
+
filter.options = Array.from(map_1.values()).map(function (accommodation) {
|
|
38326
|
+
var _a;
|
|
38327
|
+
return {
|
|
38328
|
+
label: (_a = accommodation.name) !== null && _a !== void 0 ? _a : accommodation.code,
|
|
38329
|
+
value: accommodation.code,
|
|
38330
|
+
isChecked: false
|
|
38331
|
+
};
|
|
38332
|
+
});
|
|
38333
|
+
}
|
|
38334
|
+
if (filter.property === 'regime') {
|
|
38335
|
+
var map_2 = new Map();
|
|
38336
|
+
results.forEach(function (r) {
|
|
38337
|
+
if (r.regimeCode) {
|
|
38338
|
+
map_2.set(r.regimeCode, {
|
|
38339
|
+
name: r.regimeName,
|
|
38340
|
+
code: r.regimeCode
|
|
38341
|
+
});
|
|
38342
|
+
}
|
|
38343
|
+
});
|
|
38344
|
+
filter.options = Array.from(map_2.values()).map(function (regime) {
|
|
38345
|
+
var _a;
|
|
38346
|
+
return {
|
|
38347
|
+
label: (_a = regime.name) !== null && _a !== void 0 ? _a : regime.code,
|
|
38348
|
+
value: regime.code,
|
|
38349
|
+
isChecked: false
|
|
38350
|
+
};
|
|
38351
|
+
});
|
|
38352
|
+
}
|
|
38353
|
+
if (filter.property === 'theme') {
|
|
38354
|
+
var map_3 = new Map();
|
|
38355
|
+
results.forEach(function (r) {
|
|
38356
|
+
var _a;
|
|
38357
|
+
(_a = r.tagIds) === null || _a === void 0
|
|
38358
|
+
? void 0
|
|
38359
|
+
: _a.forEach(function (tagId) {
|
|
38360
|
+
var tag = tags.find(function (t) {
|
|
38361
|
+
return t.id === tagId;
|
|
38362
|
+
});
|
|
38363
|
+
if (tag && tag.id != null && tag.name != null) {
|
|
38364
|
+
map_3.set(tag.id, { name: tag.name, id: tag.id });
|
|
38365
|
+
}
|
|
38366
|
+
});
|
|
38367
|
+
});
|
|
38368
|
+
filter.options = Array.from(map_3.values()).map(function (theme) {
|
|
38369
|
+
return {
|
|
38370
|
+
label: theme.name,
|
|
38371
|
+
value: theme.id,
|
|
38372
|
+
isChecked: false
|
|
38373
|
+
};
|
|
38374
|
+
});
|
|
38375
|
+
}
|
|
38376
|
+
};
|
|
38377
|
+
for (var _i = 0, filters_1 = filters; _i < filters_1.length; _i++) {
|
|
38378
|
+
var filter = filters_1[_i];
|
|
38379
|
+
_loop_1(filter);
|
|
38263
38380
|
}
|
|
38264
38381
|
return filters;
|
|
38265
38382
|
};
|
|
@@ -40578,101 +40695,21 @@ var FlightResultsContainer = function (_a) {
|
|
|
40578
40695
|
);
|
|
40579
40696
|
};
|
|
40580
40697
|
|
|
40581
|
-
var initialFilters = [
|
|
40582
|
-
{
|
|
40583
|
-
property: 'regime',
|
|
40584
|
-
label: 'Regime',
|
|
40585
|
-
type: 'checkbox',
|
|
40586
|
-
options: [
|
|
40587
|
-
{
|
|
40588
|
-
label: 'Room only',
|
|
40589
|
-
value: ['RO', 'LO', 'OB'],
|
|
40590
|
-
isChecked: false
|
|
40591
|
-
},
|
|
40592
|
-
{
|
|
40593
|
-
label: 'Bed & Beakfast',
|
|
40594
|
-
value: ['BB', 'KO'],
|
|
40595
|
-
isChecked: false
|
|
40596
|
-
},
|
|
40597
|
-
{
|
|
40598
|
-
label: 'Half board',
|
|
40599
|
-
value: ['HB'],
|
|
40600
|
-
isChecked: false
|
|
40601
|
-
},
|
|
40602
|
-
{
|
|
40603
|
-
label: 'Full board',
|
|
40604
|
-
value: ['FB'],
|
|
40605
|
-
isChecked: false
|
|
40606
|
-
}
|
|
40607
|
-
],
|
|
40608
|
-
isFrontendFilter: false
|
|
40609
|
-
},
|
|
40610
|
-
{
|
|
40611
|
-
property: 'price',
|
|
40612
|
-
label: 'Prijs',
|
|
40613
|
-
type: 'slider',
|
|
40614
|
-
isFrontendFilter: false,
|
|
40615
|
-
min: 2244,
|
|
40616
|
-
max: 6785
|
|
40617
|
-
},
|
|
40618
|
-
{
|
|
40619
|
-
property: 'rating',
|
|
40620
|
-
label: 'Rating',
|
|
40621
|
-
type: 'star-rating',
|
|
40622
|
-
isFrontendFilter: true
|
|
40623
|
-
},
|
|
40624
|
-
{
|
|
40625
|
-
property: 'theme',
|
|
40626
|
-
label: "Thema's",
|
|
40627
|
-
type: 'toggle',
|
|
40628
|
-
options: [
|
|
40629
|
-
{
|
|
40630
|
-
label: 'Adults',
|
|
40631
|
-
value: 1,
|
|
40632
|
-
isChecked: false
|
|
40633
|
-
},
|
|
40634
|
-
{
|
|
40635
|
-
label: 'Luxury',
|
|
40636
|
-
value: 2,
|
|
40637
|
-
isChecked: false
|
|
40638
|
-
},
|
|
40639
|
-
{
|
|
40640
|
-
label: 'Welness & Spa',
|
|
40641
|
-
value: 3,
|
|
40642
|
-
isChecked: false
|
|
40643
|
-
},
|
|
40644
|
-
{
|
|
40645
|
-
label: 'familie',
|
|
40646
|
-
value: 4,
|
|
40647
|
-
isChecked: false
|
|
40648
|
-
}
|
|
40649
|
-
],
|
|
40650
|
-
isFrontendFilter: false
|
|
40651
|
-
}
|
|
40652
|
-
];
|
|
40653
40698
|
var Filters = function (_a) {
|
|
40654
40699
|
var _b;
|
|
40655
|
-
var
|
|
40700
|
+
var initialFilters = _a.initialFilters,
|
|
40701
|
+
filters = _a.filters,
|
|
40656
40702
|
isOpen = _a.isOpen,
|
|
40657
40703
|
handleSetIsOpen = _a.handleSetIsOpen,
|
|
40658
|
-
handleApplyFilters = _a.handleApplyFilters,
|
|
40659
40704
|
isLoading = _a.isLoading;
|
|
40660
40705
|
var context = useContext(SearchResultsConfigurationContext);
|
|
40706
|
+
if (!context || !context.showFilters) {
|
|
40707
|
+
return null;
|
|
40708
|
+
}
|
|
40661
40709
|
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
40662
40710
|
var _c = useState({}),
|
|
40663
40711
|
visibleFilters = _c[0],
|
|
40664
40712
|
setVisibleFilters = _c[1];
|
|
40665
|
-
var _d = useState([]),
|
|
40666
|
-
pendingFilters = _d[0],
|
|
40667
|
-
setPendingFilters = _d[1];
|
|
40668
|
-
useEffect(
|
|
40669
|
-
function () {
|
|
40670
|
-
if (initialFilters.length > 0) {
|
|
40671
|
-
setPendingFilters(initialFilters);
|
|
40672
|
-
}
|
|
40673
|
-
},
|
|
40674
|
-
[initialFilters]
|
|
40675
|
-
);
|
|
40676
40713
|
var dispatch = useDispatch();
|
|
40677
40714
|
var toggleFilterVisibility = function (filterId) {
|
|
40678
40715
|
setVisibleFilters(function (prev) {
|
|
@@ -40680,331 +40717,429 @@ var Filters = function (_a) {
|
|
|
40680
40717
|
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
40681
40718
|
});
|
|
40682
40719
|
};
|
|
40683
|
-
var updatePendingFilter = function (updatedFilter) {
|
|
40684
|
-
setPendingFilters(function (prevFilters) {
|
|
40685
|
-
var index = prevFilters.findIndex(function (f) {
|
|
40686
|
-
return f.property === updatedFilter.property;
|
|
40687
|
-
});
|
|
40688
|
-
if (index !== -1) {
|
|
40689
|
-
var newFilters = __spreadArray([], prevFilters, true);
|
|
40690
|
-
newFilters[index] = updatedFilter;
|
|
40691
|
-
return newFilters;
|
|
40692
|
-
} else {
|
|
40693
|
-
return __spreadArray(__spreadArray([], prevFilters, true), [updatedFilter], false);
|
|
40694
|
-
}
|
|
40695
|
-
});
|
|
40696
|
-
};
|
|
40697
40720
|
var handleCheckBoxFilter = function (filter, option) {
|
|
40698
|
-
|
|
40721
|
+
var updated = filters.map(function (f) {
|
|
40699
40722
|
var _a;
|
|
40700
|
-
|
|
40701
|
-
|
|
40702
|
-
|
|
40703
|
-
|
|
40704
|
-
|
|
40705
|
-
|
|
40706
|
-
|
|
40707
|
-
|
|
40708
|
-
? void 0
|
|
40709
|
-
: _a.map(function (opt) {
|
|
40710
|
-
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
40711
|
-
})
|
|
40712
|
-
});
|
|
40723
|
+
if (f.property !== filter.property) return f;
|
|
40724
|
+
return __assign(__assign({}, f), {
|
|
40725
|
+
options:
|
|
40726
|
+
(_a = f.options) === null || _a === void 0
|
|
40727
|
+
? void 0
|
|
40728
|
+
: _a.map(function (opt) {
|
|
40729
|
+
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
40730
|
+
})
|
|
40713
40731
|
});
|
|
40714
|
-
if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
|
|
40715
|
-
dispatch(setFilters(updated));
|
|
40716
|
-
(_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, updated);
|
|
40717
|
-
}
|
|
40718
|
-
return updated;
|
|
40719
40732
|
});
|
|
40733
|
+
dispatch(setFilters(updated));
|
|
40720
40734
|
};
|
|
40721
|
-
var
|
|
40722
|
-
var
|
|
40723
|
-
|
|
40724
|
-
|
|
40725
|
-
|
|
40726
|
-
|
|
40727
|
-
applyFilters();
|
|
40728
|
-
}
|
|
40729
|
-
}
|
|
40730
|
-
};
|
|
40731
|
-
var handleSliderMaxChange = function (filter, value) {
|
|
40732
|
-
var _a, _b;
|
|
40733
|
-
if (value > ((_b = (_a = filter.selectedMin) !== null && _a !== void 0 ? _a : filter.min) !== null && _b !== void 0 ? _b : 0)) {
|
|
40734
|
-
var updatedFilter = __assign(__assign({}, filter), { selectedMax: value });
|
|
40735
|
-
updatePendingFilter(updatedFilter);
|
|
40736
|
-
if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
|
|
40737
|
-
applyFilters();
|
|
40738
|
-
}
|
|
40739
|
-
}
|
|
40740
|
-
};
|
|
40741
|
-
var applyFilters = function () {
|
|
40742
|
-
var _a;
|
|
40743
|
-
dispatch(setFilters(pendingFilters));
|
|
40744
|
-
(_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, pendingFilters);
|
|
40745
|
-
handleApplyFilters();
|
|
40746
|
-
if (isOpen) {
|
|
40747
|
-
handleSetIsOpen();
|
|
40748
|
-
}
|
|
40735
|
+
var handleSliderChange = function (filter, newMin, newMax) {
|
|
40736
|
+
var updated = filters.map(function (f) {
|
|
40737
|
+
if (f.property !== filter.property) return f;
|
|
40738
|
+
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
40739
|
+
});
|
|
40740
|
+
dispatch(setFilters(updated));
|
|
40749
40741
|
};
|
|
40750
40742
|
var handleFullReset = function () {
|
|
40751
40743
|
if (!isLoading) {
|
|
40752
|
-
setPendingFilters(initialFilters);
|
|
40753
40744
|
dispatch(resetFilters(initialFilters));
|
|
40754
40745
|
}
|
|
40755
40746
|
};
|
|
40756
|
-
var handleResetPendingChanges = function () {
|
|
40757
|
-
setPendingFilters(filters); // ← back to last applied
|
|
40758
|
-
};
|
|
40759
|
-
var hasPendingChanges = function () {
|
|
40760
|
-
return JSON.stringify(pendingFilters) !== JSON.stringify(filters);
|
|
40761
|
-
};
|
|
40762
|
-
if (!context || !context.showFilters) {
|
|
40763
|
-
return null;
|
|
40764
|
-
}
|
|
40765
40747
|
return React__default.createElement(
|
|
40766
|
-
|
|
40767
|
-
|
|
40748
|
+
'div',
|
|
40749
|
+
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
40750
|
+
React__default.createElement('div', {
|
|
40751
|
+
className: 'search__filters--background',
|
|
40752
|
+
onClick: function () {
|
|
40753
|
+
return handleSetIsOpen();
|
|
40754
|
+
}
|
|
40755
|
+
}),
|
|
40768
40756
|
React__default.createElement(
|
|
40769
|
-
'
|
|
40770
|
-
{
|
|
40771
|
-
|
|
40772
|
-
className: 'search__filters--background',
|
|
40757
|
+
'button',
|
|
40758
|
+
{
|
|
40759
|
+
className: 'search__filters--close',
|
|
40773
40760
|
onClick: function () {
|
|
40774
40761
|
return handleSetIsOpen();
|
|
40775
40762
|
}
|
|
40776
|
-
}
|
|
40777
|
-
React__default.createElement(
|
|
40778
|
-
|
|
40779
|
-
|
|
40780
|
-
|
|
40781
|
-
|
|
40782
|
-
return handleSetIsOpen();
|
|
40783
|
-
}
|
|
40784
|
-
},
|
|
40785
|
-
React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
40786
|
-
),
|
|
40763
|
+
},
|
|
40764
|
+
React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
40765
|
+
),
|
|
40766
|
+
React__default.createElement(
|
|
40767
|
+
'div',
|
|
40768
|
+
{ className: 'search__filters' },
|
|
40787
40769
|
React__default.createElement(
|
|
40788
40770
|
'div',
|
|
40789
|
-
{ className: '
|
|
40771
|
+
{ className: 'search__filter-row search__filter__header' },
|
|
40790
40772
|
React__default.createElement(
|
|
40791
40773
|
'div',
|
|
40792
|
-
{ className: 'search__filter-row
|
|
40774
|
+
{ className: 'search__filter-row-flex-title' },
|
|
40775
|
+
React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
40776
|
+
),
|
|
40777
|
+
!isLoading &&
|
|
40793
40778
|
React__default.createElement(
|
|
40794
|
-
'
|
|
40795
|
-
{
|
|
40796
|
-
|
|
40797
|
-
|
|
40798
|
-
|
|
40779
|
+
'a',
|
|
40780
|
+
{
|
|
40781
|
+
className: 'search__filter-reset',
|
|
40782
|
+
onClick: function () {
|
|
40783
|
+
return handleFullReset();
|
|
40784
|
+
}
|
|
40785
|
+
},
|
|
40786
|
+
translations.SRP.RESET
|
|
40787
|
+
)
|
|
40788
|
+
),
|
|
40789
|
+
isLoading
|
|
40790
|
+
? React__default.createElement(Spinner, null)
|
|
40791
|
+
: React__default.createElement(
|
|
40792
|
+
React__default.Fragment,
|
|
40793
|
+
null,
|
|
40799
40794
|
React__default.createElement(
|
|
40800
|
-
'
|
|
40801
|
-
{
|
|
40802
|
-
|
|
40803
|
-
|
|
40804
|
-
|
|
40805
|
-
|
|
40806
|
-
|
|
40807
|
-
|
|
40808
|
-
|
|
40809
|
-
),
|
|
40810
|
-
isLoading
|
|
40811
|
-
? React__default.createElement(Spinner, null)
|
|
40812
|
-
: React__default.createElement(
|
|
40813
|
-
React__default.Fragment,
|
|
40814
|
-
null,
|
|
40815
|
-
React__default.createElement(
|
|
40816
|
-
'div',
|
|
40817
|
-
{ className: 'search__filters__group-container' },
|
|
40818
|
-
pendingFilters.map(function (filter, index) {
|
|
40819
|
-
var _a, _b;
|
|
40820
|
-
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
40821
|
-
return React__default.createElement(
|
|
40795
|
+
'div',
|
|
40796
|
+
{ className: 'search__filters__group-container' },
|
|
40797
|
+
filters.map(function (filter, index) {
|
|
40798
|
+
var _a, _b;
|
|
40799
|
+
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
40800
|
+
return React__default.createElement(
|
|
40801
|
+
'div',
|
|
40802
|
+
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
40803
|
+
React__default.createElement(
|
|
40822
40804
|
'div',
|
|
40823
|
-
{
|
|
40805
|
+
{
|
|
40806
|
+
className: 'search__filter-row search__filter-row--underline',
|
|
40807
|
+
onClick: function () {
|
|
40808
|
+
return toggleFilterVisibility(filter.property);
|
|
40809
|
+
},
|
|
40810
|
+
role: 'button',
|
|
40811
|
+
tabIndex: 0
|
|
40812
|
+
},
|
|
40813
|
+
React__default.createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
40824
40814
|
React__default.createElement(
|
|
40825
|
-
'
|
|
40815
|
+
'svg',
|
|
40826
40816
|
{
|
|
40827
|
-
|
|
40828
|
-
|
|
40829
|
-
|
|
40830
|
-
|
|
40831
|
-
|
|
40832
|
-
tabIndex: 0
|
|
40817
|
+
id: 'search-chevron-up-icon',
|
|
40818
|
+
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
40819
|
+
viewBox: '0 0 10 6.063',
|
|
40820
|
+
width: 10,
|
|
40821
|
+
height: 6.063
|
|
40833
40822
|
},
|
|
40834
|
-
React__default.createElement('
|
|
40835
|
-
|
|
40836
|
-
'
|
|
40837
|
-
|
|
40838
|
-
|
|
40839
|
-
|
|
40840
|
-
|
|
40841
|
-
|
|
40842
|
-
|
|
40843
|
-
|
|
40844
|
-
|
|
40845
|
-
|
|
40846
|
-
|
|
40847
|
-
|
|
40848
|
-
|
|
40849
|
-
|
|
40823
|
+
React__default.createElement('path', {
|
|
40824
|
+
id: 'Path_62',
|
|
40825
|
+
'data-name': 'Path 62',
|
|
40826
|
+
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
40827
|
+
transform: 'translate(-240 624)',
|
|
40828
|
+
fill: '#707070'
|
|
40829
|
+
})
|
|
40830
|
+
)
|
|
40831
|
+
),
|
|
40832
|
+
isVisible &&
|
|
40833
|
+
filter.type === 'checkbox' &&
|
|
40834
|
+
React__default.createElement(
|
|
40835
|
+
'div',
|
|
40836
|
+
{ className: 'search__filter-rows' },
|
|
40837
|
+
filter.options &&
|
|
40838
|
+
filter.options.map(function (option, optionIndex) {
|
|
40839
|
+
return React__default.createElement(
|
|
40840
|
+
'div',
|
|
40841
|
+
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
40842
|
+
React__default.createElement(
|
|
40843
|
+
'div',
|
|
40844
|
+
{ className: 'checkbox' },
|
|
40845
|
+
React__default.createElement(
|
|
40846
|
+
'label',
|
|
40847
|
+
{ className: 'checkbox__label' },
|
|
40848
|
+
React__default.createElement('input', {
|
|
40849
|
+
type: 'checkbox',
|
|
40850
|
+
className: 'checkbox__input checkbox__input--parent',
|
|
40851
|
+
checked: option.isChecked,
|
|
40852
|
+
onChange: function (e) {
|
|
40853
|
+
return handleCheckBoxFilter(filter, option);
|
|
40854
|
+
}
|
|
40855
|
+
}),
|
|
40856
|
+
React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
40857
|
+
)
|
|
40858
|
+
)
|
|
40859
|
+
);
|
|
40850
40860
|
})
|
|
40851
|
-
)
|
|
40852
40861
|
),
|
|
40853
|
-
|
|
40854
|
-
|
|
40855
|
-
|
|
40856
|
-
|
|
40857
|
-
|
|
40858
|
-
|
|
40859
|
-
|
|
40862
|
+
isVisible &&
|
|
40863
|
+
filter.type === 'toggle' &&
|
|
40864
|
+
React__default.createElement(
|
|
40865
|
+
'div',
|
|
40866
|
+
{ className: 'search__filter-rows' },
|
|
40867
|
+
(_b = filter.options) === null || _b === void 0
|
|
40868
|
+
? void 0
|
|
40869
|
+
: _b.map(function (option, optionIndex) {
|
|
40860
40870
|
return React__default.createElement(
|
|
40861
40871
|
'div',
|
|
40862
|
-
{ className: 'search__filter-row
|
|
40872
|
+
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
40873
|
+
React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
40874
|
+
React__default.createElement('div', { className: 'checkbox' }),
|
|
40863
40875
|
React__default.createElement(
|
|
40864
|
-
'
|
|
40865
|
-
{ className: '
|
|
40866
|
-
React__default.createElement(
|
|
40867
|
-
'
|
|
40868
|
-
|
|
40869
|
-
|
|
40870
|
-
|
|
40871
|
-
|
|
40872
|
-
|
|
40873
|
-
|
|
40874
|
-
return handleCheckBoxFilter(filter, option);
|
|
40875
|
-
}
|
|
40876
|
-
}),
|
|
40877
|
-
React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
40878
|
-
)
|
|
40876
|
+
'label',
|
|
40877
|
+
{ className: 'checkbox__label' },
|
|
40878
|
+
React__default.createElement('input', {
|
|
40879
|
+
type: 'checkbox',
|
|
40880
|
+
className: 'checkbox__input',
|
|
40881
|
+
checked: option.isChecked,
|
|
40882
|
+
onChange: function () {
|
|
40883
|
+
return handleCheckBoxFilter(filter, option);
|
|
40884
|
+
}
|
|
40885
|
+
})
|
|
40879
40886
|
)
|
|
40880
40887
|
);
|
|
40881
40888
|
})
|
|
40882
|
-
),
|
|
40883
|
-
isVisible &&
|
|
40884
|
-
filter.type === 'toggle' &&
|
|
40885
|
-
React__default.createElement(
|
|
40886
|
-
'div',
|
|
40887
|
-
{ className: 'search__filter-rows' },
|
|
40888
|
-
(_b = filter.options) === null || _b === void 0
|
|
40889
|
-
? void 0
|
|
40890
|
-
: _b.map(function (option, optionIndex) {
|
|
40891
|
-
return React__default.createElement(
|
|
40892
|
-
'div',
|
|
40893
|
-
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
40894
|
-
React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
40895
|
-
React__default.createElement('div', { className: 'checkbox' }),
|
|
40896
|
-
React__default.createElement(
|
|
40897
|
-
'label',
|
|
40898
|
-
{ className: 'checkbox__label' },
|
|
40899
|
-
React__default.createElement('input', {
|
|
40900
|
-
type: 'checkbox',
|
|
40901
|
-
className: 'checkbox__input',
|
|
40902
|
-
checked: option.isChecked,
|
|
40903
|
-
onChange: function () {
|
|
40904
|
-
return handleCheckBoxFilter(filter, option);
|
|
40905
|
-
}
|
|
40906
|
-
})
|
|
40907
|
-
)
|
|
40908
|
-
);
|
|
40909
|
-
})
|
|
40910
|
-
),
|
|
40911
|
-
isVisible &&
|
|
40912
|
-
filter &&
|
|
40913
|
-
filter.type === 'slider' &&
|
|
40914
|
-
(function () {
|
|
40915
|
-
var _a, _b, _c, _d;
|
|
40916
|
-
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
40917
|
-
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
40918
|
-
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
40919
|
-
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
40920
|
-
return React__default.createElement(MultiRangeFilter, {
|
|
40921
|
-
min: min,
|
|
40922
|
-
max: max,
|
|
40923
|
-
selectedMin: selectedMin,
|
|
40924
|
-
selectedMax: selectedMax,
|
|
40925
|
-
valueFormatter: function (value) {
|
|
40926
|
-
return ''.concat(value);
|
|
40927
|
-
},
|
|
40928
|
-
onChange: function (newMin, newMax) {
|
|
40929
|
-
handleSliderMinChange(filter, newMin);
|
|
40930
|
-
handleSliderMaxChange(filter, newMax);
|
|
40931
|
-
}
|
|
40932
|
-
});
|
|
40933
|
-
})(),
|
|
40934
|
-
isVisible &&
|
|
40935
|
-
filter.property === 'rating' &&
|
|
40936
|
-
filter.type === 'star-rating' &&
|
|
40937
|
-
(function () {
|
|
40938
|
-
var _a;
|
|
40939
|
-
var selectedRating = (_a = filter.selectedRating) !== null && _a !== void 0 ? _a : 0;
|
|
40940
|
-
var handleRatingChange = function (rating) {
|
|
40941
|
-
var updatedFilter = __assign(__assign({}, filter), { selectedRating: rating });
|
|
40942
|
-
updatePendingFilter(updatedFilter);
|
|
40943
|
-
if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
|
|
40944
|
-
applyFilters();
|
|
40945
|
-
}
|
|
40946
|
-
};
|
|
40947
|
-
return React__default.createElement(
|
|
40948
|
-
'div',
|
|
40949
|
-
{ className: 'search__filter-row star-rating-filter' },
|
|
40950
|
-
[5, 4, 3, 2, 1].map(function (star) {
|
|
40951
|
-
return React__default.createElement(
|
|
40952
|
-
'span',
|
|
40953
|
-
{
|
|
40954
|
-
key: star,
|
|
40955
|
-
className: 'star '.concat(star <= selectedRating ? 'filled' : ''),
|
|
40956
|
-
onClick: function () {
|
|
40957
|
-
return handleRatingChange(star);
|
|
40958
|
-
},
|
|
40959
|
-
role: 'button',
|
|
40960
|
-
tabIndex: 0,
|
|
40961
|
-
onKeyDown: function (e) {
|
|
40962
|
-
if (e.key === 'Enter' || e.key === ' ') handleRatingChange(star);
|
|
40963
|
-
}
|
|
40964
|
-
},
|
|
40965
|
-
'\u2605'
|
|
40966
|
-
);
|
|
40967
|
-
})
|
|
40968
|
-
);
|
|
40969
|
-
})()
|
|
40970
|
-
);
|
|
40971
|
-
}),
|
|
40972
|
-
context.useGlobalApplyFilterButton &&
|
|
40973
|
-
hasPendingChanges() &&
|
|
40974
|
-
React__default.createElement(
|
|
40975
|
-
'div',
|
|
40976
|
-
{ className: 'search__filters__actions' },
|
|
40977
|
-
React__default.createElement(
|
|
40978
|
-
'button',
|
|
40979
|
-
{
|
|
40980
|
-
className: 'cta--secondary ',
|
|
40981
|
-
onClick: function () {
|
|
40982
|
-
handleResetPendingChanges();
|
|
40983
|
-
handleSetIsOpen();
|
|
40984
|
-
},
|
|
40985
|
-
disabled: isLoading
|
|
40986
|
-
},
|
|
40987
|
-
translations.SRP.CANCEL
|
|
40988
40889
|
),
|
|
40989
|
-
|
|
40990
|
-
|
|
40991
|
-
|
|
40992
|
-
|
|
40993
|
-
|
|
40994
|
-
|
|
40890
|
+
isVisible &&
|
|
40891
|
+
filter &&
|
|
40892
|
+
filter.type === 'slider' &&
|
|
40893
|
+
(function () {
|
|
40894
|
+
var _a, _b, _c, _d;
|
|
40895
|
+
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
40896
|
+
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
40897
|
+
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
40898
|
+
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
40899
|
+
return React__default.createElement(MultiRangeFilter, {
|
|
40900
|
+
min: min,
|
|
40901
|
+
max: max,
|
|
40902
|
+
selectedMin: selectedMin,
|
|
40903
|
+
selectedMax: selectedMax,
|
|
40904
|
+
valueFormatter: function (value) {
|
|
40905
|
+
return ''.concat(value);
|
|
40995
40906
|
},
|
|
40996
|
-
|
|
40997
|
-
|
|
40998
|
-
|
|
40999
|
-
|
|
41000
|
-
|
|
40907
|
+
onChange: function (newMin, newMax) {
|
|
40908
|
+
handleSliderChange(filter, newMin, newMax);
|
|
40909
|
+
}
|
|
40910
|
+
});
|
|
40911
|
+
})()
|
|
40912
|
+
);
|
|
40913
|
+
})
|
|
40914
|
+
)
|
|
40915
|
+
)
|
|
40916
|
+
)
|
|
40917
|
+
);
|
|
40918
|
+
};
|
|
40919
|
+
|
|
40920
|
+
var GroupTourCard = function (_a) {
|
|
40921
|
+
var _b;
|
|
40922
|
+
var result = _a.result,
|
|
40923
|
+
languageCode = _a.languageCode;
|
|
40924
|
+
var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
|
|
40925
|
+
var genders = ((_b = result.allotment) === null || _b === void 0 ? void 0 : _b.travellerGenders) || [];
|
|
40926
|
+
var maleCount = genders.filter(function (g) {
|
|
40927
|
+
return g === 0;
|
|
40928
|
+
}).length;
|
|
40929
|
+
var femaleCount = genders.filter(function (g) {
|
|
40930
|
+
return g === 1;
|
|
40931
|
+
}).length;
|
|
40932
|
+
var otherCount = genders.filter(function (g) {
|
|
40933
|
+
return g === 2;
|
|
40934
|
+
}).length;
|
|
40935
|
+
return React__default.createElement(
|
|
40936
|
+
'div',
|
|
40937
|
+
{ className: 'search__result-card' },
|
|
40938
|
+
React__default.createElement(
|
|
40939
|
+
'div',
|
|
40940
|
+
{ className: 'search__result-card__allotment' },
|
|
40941
|
+
React__default.createElement(
|
|
40942
|
+
'div',
|
|
40943
|
+
{ className: 'search__result-card__allotment__title__wrapper' },
|
|
40944
|
+
React__default.createElement(
|
|
40945
|
+
'h3',
|
|
40946
|
+
{ className: 'search__result-card__allotment__title' },
|
|
40947
|
+
result.name,
|
|
40948
|
+
React__default.createElement(
|
|
40949
|
+
'span',
|
|
40950
|
+
{ className: 'search__result-card__allotment__badge' },
|
|
40951
|
+
React__default.createElement(Icon$1, { name: 'ui-circle-check', width: 14, height: 14 }),
|
|
40952
|
+
'GAR'
|
|
40953
|
+
)
|
|
40954
|
+
),
|
|
40955
|
+
React__default.createElement(
|
|
40956
|
+
'div',
|
|
40957
|
+
{ className: 'search__result-card__allotment__container' },
|
|
40958
|
+
React__default.createElement(
|
|
40959
|
+
'div',
|
|
40960
|
+
{ className: 'search__result-card__allotment__header' },
|
|
40961
|
+
React__default.createElement(
|
|
40962
|
+
'div',
|
|
40963
|
+
{ className: 'search__result-card__allotment__wrapper' },
|
|
40964
|
+
React__default.createElement(
|
|
40965
|
+
'div',
|
|
40966
|
+
{ className: 'search__result-card__allotment__date' },
|
|
40967
|
+
React__default.createElement(Icon$1, { name: 'ui-plane', height: 16 }),
|
|
40968
|
+
React__default.createElement(
|
|
40969
|
+
'div',
|
|
40970
|
+
{ className: 'search__result-card__allotment__date--from' },
|
|
40971
|
+
format$1(new Date(result.fromDate), 'dd/MM/yyyy')
|
|
40972
|
+
)
|
|
40973
|
+
),
|
|
40974
|
+
React__default.createElement(
|
|
40975
|
+
'div',
|
|
40976
|
+
{ className: 'search__result-card__allotment__info' },
|
|
40977
|
+
React__default.createElement('span', null, React__default.createElement(Icon$1, { name: 'ui-calendar', height: 16 })),
|
|
40978
|
+
' ',
|
|
40979
|
+
calculateDays(result.stayFromDate, result.stayToDate),
|
|
40980
|
+
' ',
|
|
40981
|
+
translations.PRODUCT.DAYS,
|
|
40982
|
+
' -',
|
|
40983
|
+
' ',
|
|
40984
|
+
React__default.createElement('span', null, React__default.createElement(Icon$1, { name: 'ui-moon', height: 16 })),
|
|
40985
|
+
calculateNights(result.stayFromDate, result.stayToDate),
|
|
40986
|
+
' ',
|
|
40987
|
+
translations.SRP.NIGHTS
|
|
41001
40988
|
)
|
|
41002
40989
|
)
|
|
40990
|
+
),
|
|
40991
|
+
result.allotment &&
|
|
40992
|
+
React__default.createElement(
|
|
40993
|
+
'div',
|
|
40994
|
+
{ className: 'search__result-card__allotment__info' },
|
|
40995
|
+
React__default.createElement(
|
|
40996
|
+
'span',
|
|
40997
|
+
{ className: 'search__result-card__allotment__info__group' },
|
|
40998
|
+
translations === null || translations === void 0 ? void 0 : translations.SRP.TRAVEL_GROUP
|
|
40999
|
+
),
|
|
41000
|
+
React__default.createElement(
|
|
41001
|
+
'div',
|
|
41002
|
+
{ className: 'search__result-card__allotment__persons' },
|
|
41003
|
+
React__default.createElement(
|
|
41004
|
+
'div',
|
|
41005
|
+
{ className: 'search__result-card__allotment__person' },
|
|
41006
|
+
React__default.createElement(Icon$1, { name: 'ui-men', width: 16, height: 16 }),
|
|
41007
|
+
React__default.createElement('span', null, maleCount, ' p.')
|
|
41008
|
+
),
|
|
41009
|
+
React__default.createElement(
|
|
41010
|
+
'div',
|
|
41011
|
+
{ className: 'search__result-card__allotment__person' },
|
|
41012
|
+
React__default.createElement(Icon$1, { name: 'ui-women', width: 16, height: 16 }),
|
|
41013
|
+
React__default.createElement('span', null, femaleCount, ' p.')
|
|
41014
|
+
),
|
|
41015
|
+
React__default.createElement(
|
|
41016
|
+
'div',
|
|
41017
|
+
{ className: 'search__result-card__allotment__person' },
|
|
41018
|
+
React__default.createElement(Icon$1, { name: 'ui-other', width: 16, height: 16 }),
|
|
41019
|
+
React__default.createElement('span', null, otherCount, ' p.')
|
|
41020
|
+
)
|
|
41021
|
+
)
|
|
41022
|
+
)
|
|
41023
|
+
)
|
|
41024
|
+
),
|
|
41025
|
+
React__default.createElement(
|
|
41026
|
+
'div',
|
|
41027
|
+
{ className: 'search__result-card__allotment__footer' },
|
|
41028
|
+
React__default.createElement(
|
|
41029
|
+
'div',
|
|
41030
|
+
{ className: 'search__result-card__allotment__price__wrapper' },
|
|
41031
|
+
React__default.createElement(
|
|
41032
|
+
'div',
|
|
41033
|
+
{ className: 'search__result-card__allotment__price' },
|
|
41034
|
+
formatPrice(result.price, result.currencyCode, languageCode),
|
|
41035
|
+
' ',
|
|
41036
|
+
translations.PRODUCT.PER_PERSON
|
|
41037
|
+
)
|
|
41038
|
+
),
|
|
41039
|
+
React__default.createElement('button', { className: 'cta cta--select' }, 'Bekijk reis')
|
|
41003
41040
|
)
|
|
41004
41041
|
)
|
|
41005
41042
|
);
|
|
41006
41043
|
};
|
|
41007
41044
|
|
|
41045
|
+
var GroupTourResults = function (_a) {
|
|
41046
|
+
var _b, _c;
|
|
41047
|
+
var isLoading = _a.isLoading;
|
|
41048
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
41049
|
+
if (!context) {
|
|
41050
|
+
return;
|
|
41051
|
+
}
|
|
41052
|
+
if (isLoading) {
|
|
41053
|
+
return React__default.createElement(
|
|
41054
|
+
React__default.Fragment,
|
|
41055
|
+
null,
|
|
41056
|
+
(_b = context.customSpinner) !== null && _b !== void 0 ? _b : React__default.createElement(Spinner, null)
|
|
41057
|
+
);
|
|
41058
|
+
}
|
|
41059
|
+
var translations = getTranslations((_c = context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB');
|
|
41060
|
+
var _d = useSelector(function (state) {
|
|
41061
|
+
return state.searchResults;
|
|
41062
|
+
}),
|
|
41063
|
+
filteredResults = _d.filteredResults;
|
|
41064
|
+
_d.activeTab;
|
|
41065
|
+
if (isEmpty(filteredResults)) {
|
|
41066
|
+
return React__default.createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS);
|
|
41067
|
+
}
|
|
41068
|
+
return React__default.createElement(
|
|
41069
|
+
'div',
|
|
41070
|
+
{ className: 'search__results__cards search__results__cards--list' },
|
|
41071
|
+
filteredResults.map(function (result, index) {
|
|
41072
|
+
return React__default.createElement(GroupTourCard, { key: index, result: result });
|
|
41073
|
+
})
|
|
41074
|
+
);
|
|
41075
|
+
};
|
|
41076
|
+
|
|
41077
|
+
var applyFilters = function (results, filters) {
|
|
41078
|
+
return results.filter(function (r) {
|
|
41079
|
+
return filters.every(function (filter) {
|
|
41080
|
+
var _a, _b, _c, _d;
|
|
41081
|
+
if (!filter.isFrontendFilter) return true;
|
|
41082
|
+
// ACCOMMODATION
|
|
41083
|
+
if (filter.property === 'accommodation') {
|
|
41084
|
+
var selected =
|
|
41085
|
+
(_a = filter.options) === null || _a === void 0
|
|
41086
|
+
? void 0
|
|
41087
|
+
: _a
|
|
41088
|
+
.filter(function (o) {
|
|
41089
|
+
return o.isChecked;
|
|
41090
|
+
})
|
|
41091
|
+
.map(function (o) {
|
|
41092
|
+
return o.value;
|
|
41093
|
+
});
|
|
41094
|
+
if (!selected || selected.length === 0) return true;
|
|
41095
|
+
return selected.includes(r.accommodationCode);
|
|
41096
|
+
}
|
|
41097
|
+
// REGIME
|
|
41098
|
+
if (filter.property === 'regime') {
|
|
41099
|
+
var selected =
|
|
41100
|
+
(_b = filter.options) === null || _b === void 0
|
|
41101
|
+
? void 0
|
|
41102
|
+
: _b
|
|
41103
|
+
.filter(function (o) {
|
|
41104
|
+
return o.isChecked;
|
|
41105
|
+
})
|
|
41106
|
+
.map(function (o) {
|
|
41107
|
+
return o.value;
|
|
41108
|
+
});
|
|
41109
|
+
if (!selected || selected.length === 0) return true;
|
|
41110
|
+
if (!r.regimeCode) return false;
|
|
41111
|
+
return selected.includes(r.regimeCode);
|
|
41112
|
+
}
|
|
41113
|
+
// PRICE
|
|
41114
|
+
if (filter.property === 'price') {
|
|
41115
|
+
if (filter.selectedMin != null && r.price < filter.selectedMin) return false;
|
|
41116
|
+
if (filter.selectedMax != null && r.price > filter.selectedMax) return false;
|
|
41117
|
+
return true;
|
|
41118
|
+
}
|
|
41119
|
+
// THEME
|
|
41120
|
+
if (filter.property === 'theme') {
|
|
41121
|
+
var selected_1 =
|
|
41122
|
+
(_c = filter.options) === null || _c === void 0
|
|
41123
|
+
? void 0
|
|
41124
|
+
: _c
|
|
41125
|
+
.filter(function (o) {
|
|
41126
|
+
return o.isChecked;
|
|
41127
|
+
})
|
|
41128
|
+
.map(function (o) {
|
|
41129
|
+
return o.value;
|
|
41130
|
+
});
|
|
41131
|
+
if (!selected_1 || selected_1.length === 0) return true;
|
|
41132
|
+
return (_d = r.tagIds) === null || _d === void 0
|
|
41133
|
+
? void 0
|
|
41134
|
+
: _d.some(function (tagId) {
|
|
41135
|
+
return selected_1.includes(tagId);
|
|
41136
|
+
});
|
|
41137
|
+
}
|
|
41138
|
+
return true;
|
|
41139
|
+
});
|
|
41140
|
+
});
|
|
41141
|
+
};
|
|
41142
|
+
|
|
41008
41143
|
var SearchResultsContainer = function () {
|
|
41009
41144
|
var _a;
|
|
41010
41145
|
var dispatch = useDispatch();
|
|
@@ -41014,6 +41149,7 @@ var SearchResultsContainer = function () {
|
|
|
41014
41149
|
return state.searchResults;
|
|
41015
41150
|
}),
|
|
41016
41151
|
results = _b.results,
|
|
41152
|
+
filteredResults = _b.filteredResults,
|
|
41017
41153
|
bookingPackageDetails = _b.bookingPackageDetails,
|
|
41018
41154
|
entry = _b.entry,
|
|
41019
41155
|
isLoading = _b.isLoading,
|
|
@@ -41022,21 +41158,18 @@ var SearchResultsContainer = function () {
|
|
|
41022
41158
|
selectedHotelId = _b.selectedHotelId,
|
|
41023
41159
|
flyInIsOpen = _b.flyInIsOpen;
|
|
41024
41160
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
41025
|
-
var _c = useState(
|
|
41026
|
-
|
|
41027
|
-
|
|
41028
|
-
var _d = useState(
|
|
41029
|
-
|
|
41030
|
-
|
|
41031
|
-
var _e = useState(
|
|
41032
|
-
|
|
41033
|
-
|
|
41161
|
+
var _c = useState(false),
|
|
41162
|
+
initialFiltersSet = _c[0],
|
|
41163
|
+
setInitialFiltersSet = _c[1];
|
|
41164
|
+
var _d = useState([]),
|
|
41165
|
+
initialFilters = _d[0],
|
|
41166
|
+
setInitialFilters = _d[1];
|
|
41167
|
+
var _e = useState(false),
|
|
41168
|
+
filtersOpen = _e[0],
|
|
41169
|
+
setFiltersOpen = _e[1];
|
|
41034
41170
|
var _f = useState(false),
|
|
41035
|
-
|
|
41036
|
-
|
|
41037
|
-
var _g = useState(false),
|
|
41038
|
-
itineraryOpen = _g[0],
|
|
41039
|
-
setItineraryOpen = _g[1];
|
|
41171
|
+
itineraryOpen = _f[0],
|
|
41172
|
+
setItineraryOpen = _f[1];
|
|
41040
41173
|
var panelRef = useRef(null);
|
|
41041
41174
|
var sortByTypes = [
|
|
41042
41175
|
{ direction: 'asc', label: 'price' },
|
|
@@ -41140,7 +41273,6 @@ var SearchResultsContainer = function () {
|
|
|
41140
41273
|
var city = getNumberFromParams(params, 'location');
|
|
41141
41274
|
var hotel = getNumberFromParams(params, 'hotel');
|
|
41142
41275
|
var tagId = getNumberFromParams(params, 'tagId');
|
|
41143
|
-
// temp hardcoded params
|
|
41144
41276
|
if (!from || !to) {
|
|
41145
41277
|
console.error('Missing fromDate or toDate in query params, using default values');
|
|
41146
41278
|
return null;
|
|
@@ -41170,8 +41302,9 @@ var SearchResultsContainer = function () {
|
|
|
41170
41302
|
officeId: 1,
|
|
41171
41303
|
payload: {
|
|
41172
41304
|
catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
|
|
41173
|
-
serviceType:
|
|
41174
|
-
|
|
41305
|
+
serviceType:
|
|
41306
|
+
context.type === 'hotel' || context.type === 'hotel-flight' ? 3 : context.type === 'flight' ? 7 : context.type === 'roundTrip' ? 1 : undefined,
|
|
41307
|
+
searchType: context.type === 'groupTour' ? 1 : 0,
|
|
41175
41308
|
destination: {
|
|
41176
41309
|
id: Number(destinationId),
|
|
41177
41310
|
isCountry: destinationIsCountry,
|
|
@@ -41192,7 +41325,7 @@ var SearchResultsContainer = function () {
|
|
|
41192
41325
|
// .flatMap((o) => o.value.toString()) || [],
|
|
41193
41326
|
// minPrice: filters.find((f) => f.property === 'price')?.selectedMin,
|
|
41194
41327
|
// maxPrice: filters.find((f) => f.property === 'price')?.selectedMax,
|
|
41195
|
-
useExactDates: true,
|
|
41328
|
+
useExactDates: (context === null || context === void 0 ? void 0 : context.type) === 'groupTour' ? false : true,
|
|
41196
41329
|
onlyCachedResults: false,
|
|
41197
41330
|
includeAllAllotments: true,
|
|
41198
41331
|
productIds: hotel ? [hotel] : [],
|
|
@@ -41268,17 +41401,17 @@ var SearchResultsContainer = function () {
|
|
|
41268
41401
|
// seperate Search
|
|
41269
41402
|
useEffect(
|
|
41270
41403
|
function () {
|
|
41271
|
-
var
|
|
41404
|
+
var runSearch = function () {
|
|
41272
41405
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
41273
|
-
var config, params, entryId, entryLight, searchRequest, rq, packageSearchResults, enrichedFilters, matching, err_1;
|
|
41274
|
-
var _a;
|
|
41275
|
-
return __generator(this, function (
|
|
41276
|
-
switch (
|
|
41406
|
+
var config, params, entryId, entryLight, searchRequest, rq, packageSearchResults, enrichedFilters, initialFilteredResults, matching, err_1;
|
|
41407
|
+
var _a, _b;
|
|
41408
|
+
return __generator(this, function (_c) {
|
|
41409
|
+
switch (_c.label) {
|
|
41277
41410
|
case 0:
|
|
41278
41411
|
dispatch(setIsLoading(true));
|
|
41279
|
-
|
|
41412
|
+
_c.label = 1;
|
|
41280
41413
|
case 1:
|
|
41281
|
-
|
|
41414
|
+
_c.trys.push([1, 6, , 7]);
|
|
41282
41415
|
if (!context) {
|
|
41283
41416
|
return [2 /*return*/];
|
|
41284
41417
|
}
|
|
@@ -41293,7 +41426,7 @@ var SearchResultsContainer = function () {
|
|
|
41293
41426
|
if (!entryId) return [3 /*break*/, 3];
|
|
41294
41427
|
return [4 /*yield*/, build.getEntryLight(config, entryId)];
|
|
41295
41428
|
case 2:
|
|
41296
|
-
entryLight =
|
|
41429
|
+
entryLight = _c.sent();
|
|
41297
41430
|
// populate itinerary store
|
|
41298
41431
|
dispatch(setEntry({ entry: entryLight }));
|
|
41299
41432
|
searchRequest = buildSearchFromEntry(entryLight);
|
|
@@ -41304,19 +41437,21 @@ var SearchResultsContainer = function () {
|
|
|
41304
41437
|
throw new Error('Invalid search parameters');
|
|
41305
41438
|
}
|
|
41306
41439
|
searchRequest = rq;
|
|
41307
|
-
|
|
41440
|
+
_c.label = 4;
|
|
41308
41441
|
case 4:
|
|
41309
41442
|
return [4 /*yield*/, build.search(config, searchRequest)];
|
|
41310
41443
|
case 5:
|
|
41311
|
-
packageSearchResults =
|
|
41444
|
+
packageSearchResults = _c.sent();
|
|
41312
41445
|
console.log('Search results', packageSearchResults);
|
|
41313
|
-
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters);
|
|
41446
|
+
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
41314
41447
|
if (!initialFiltersSet) {
|
|
41315
41448
|
dispatch(resetFilters(enrichedFilters));
|
|
41316
41449
|
setInitialFilters(enrichedFilters);
|
|
41317
41450
|
setInitialFiltersSet(true);
|
|
41318
41451
|
}
|
|
41319
|
-
dispatch(setResults(
|
|
41452
|
+
dispatch(setResults(packageSearchResults));
|
|
41453
|
+
initialFilteredResults = applyFilters(packageSearchResults, filters);
|
|
41454
|
+
dispatch(setFilteredResults(initialFilteredResults));
|
|
41320
41455
|
if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
|
|
41321
41456
|
if (entryId) {
|
|
41322
41457
|
matching = packageSearchResults.find(function (r) {
|
|
@@ -41326,13 +41461,13 @@ var SearchResultsContainer = function () {
|
|
|
41326
41461
|
dispatch(setSelectedHotel(matching.productId));
|
|
41327
41462
|
}
|
|
41328
41463
|
} else {
|
|
41329
|
-
dispatch(setSelectedHotel((
|
|
41464
|
+
dispatch(setSelectedHotel((_b = packageSearchResults[0]) === null || _b === void 0 ? void 0 : _b.productId));
|
|
41330
41465
|
}
|
|
41331
41466
|
}
|
|
41332
41467
|
dispatch(setIsLoading(false));
|
|
41333
41468
|
return [3 /*break*/, 7];
|
|
41334
41469
|
case 6:
|
|
41335
|
-
err_1 =
|
|
41470
|
+
err_1 = _c.sent();
|
|
41336
41471
|
console.error('Search failed', err_1);
|
|
41337
41472
|
dispatch(setIsLoading(false));
|
|
41338
41473
|
return [3 /*break*/, 7];
|
|
@@ -41345,13 +41480,14 @@ var SearchResultsContainer = function () {
|
|
|
41345
41480
|
if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
|
|
41346
41481
|
if (
|
|
41347
41482
|
(context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight' ||
|
|
41348
|
-
(context === null || context === void 0 ? void 0 : context.type) === 'hotel'
|
|
41483
|
+
(context === null || context === void 0 ? void 0 : context.type) === 'hotel' ||
|
|
41484
|
+
(context === null || context === void 0 ? void 0 : context.type) === 'groupTour'
|
|
41349
41485
|
) {
|
|
41350
|
-
|
|
41486
|
+
runSearch();
|
|
41351
41487
|
}
|
|
41352
41488
|
}
|
|
41353
41489
|
},
|
|
41354
|
-
[location.search
|
|
41490
|
+
[location.search]
|
|
41355
41491
|
);
|
|
41356
41492
|
// Seperate detailsCall
|
|
41357
41493
|
useEffect(
|
|
@@ -41452,6 +41588,13 @@ var SearchResultsContainer = function () {
|
|
|
41452
41588
|
},
|
|
41453
41589
|
[selectedHotelId]
|
|
41454
41590
|
);
|
|
41591
|
+
useEffect(
|
|
41592
|
+
function () {
|
|
41593
|
+
var filteredResults = applyFilters(results, filters);
|
|
41594
|
+
dispatch(setFilteredResults(filteredResults));
|
|
41595
|
+
},
|
|
41596
|
+
[filters, results]
|
|
41597
|
+
);
|
|
41455
41598
|
return React__default.createElement(
|
|
41456
41599
|
'div',
|
|
41457
41600
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -41476,23 +41619,20 @@ var SearchResultsContainer = function () {
|
|
|
41476
41619
|
}
|
|
41477
41620
|
})
|
|
41478
41621
|
),
|
|
41479
|
-
(context.type === 'hotel-flight' || context.type === 'hotel' || context.type === 'roundTrip') &&
|
|
41622
|
+
(context.type === 'hotel-flight' || context.type === 'hotel' || context.type === 'groupTour' || context.type === 'roundTrip') &&
|
|
41480
41623
|
React__default.createElement(
|
|
41481
41624
|
React__default.Fragment,
|
|
41482
41625
|
null,
|
|
41483
41626
|
context.type != 'hotel-flight' &&
|
|
41484
41627
|
context.showFilters &&
|
|
41485
41628
|
React__default.createElement(Filters, {
|
|
41629
|
+
initialFilters: initialFilters,
|
|
41486
41630
|
filters: filters,
|
|
41487
41631
|
isOpen: filtersOpen,
|
|
41488
41632
|
handleSetIsOpen: function () {
|
|
41489
41633
|
return setFiltersOpen(!filtersOpen);
|
|
41490
41634
|
},
|
|
41491
|
-
handleApplyFilters
|
|
41492
|
-
return setSearchTrigger(function (prev) {
|
|
41493
|
-
return prev + 1;
|
|
41494
|
-
});
|
|
41495
|
-
},
|
|
41635
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
41496
41636
|
isLoading: isLoading
|
|
41497
41637
|
}),
|
|
41498
41638
|
context.type === 'hotel-flight' &&
|
|
@@ -41560,7 +41700,7 @@ var SearchResultsContainer = function () {
|
|
|
41560
41700
|
React__default.createElement(
|
|
41561
41701
|
React__default.Fragment,
|
|
41562
41702
|
null,
|
|
41563
|
-
(
|
|
41703
|
+
(filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults.length) && filteredResults.length,
|
|
41564
41704
|
' ',
|
|
41565
41705
|
translations.SRP.TOTAL_RESULTS_LABEL
|
|
41566
41706
|
)
|
|
@@ -41586,6 +41726,7 @@ var SearchResultsContainer = function () {
|
|
|
41586
41726
|
{ className: 'search__results__wrapper' },
|
|
41587
41727
|
context.showTabViews && React__default.createElement(TabViews, null),
|
|
41588
41728
|
context.showRoundTripResults && context.showMockup && React__default.createElement(RoundTripResults, null),
|
|
41729
|
+
context.type === 'groupTour' && React__default.createElement(GroupTourResults, { isLoading: isLoading }),
|
|
41589
41730
|
context.type === 'hotel-flight' &&
|
|
41590
41731
|
context.showFlightResults &&
|
|
41591
41732
|
(bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) &&
|
|
@@ -41593,7 +41734,7 @@ var SearchResultsContainer = function () {
|
|
|
41593
41734
|
flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights,
|
|
41594
41735
|
isDeparture: true
|
|
41595
41736
|
}),
|
|
41596
|
-
context.showHotelAccommodationResults && React__default.createElement(HotelAccommodationResults, { isLoading: isLoading
|
|
41737
|
+
context.showHotelAccommodationResults && React__default.createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
41597
41738
|
context.type === 'hotel-flight' &&
|
|
41598
41739
|
context.showFlightResults &&
|
|
41599
41740
|
(bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) &&
|