@qite/tide-booking-component 1.4.35 → 1.4.37
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 +912 -192
- package/build/build-cjs/qsm/types.d.ts +1 -0
- package/build/build-cjs/search-results/components/flight/flight-results.d.ts +1 -1
- package/build/build-cjs/search-results/types.d.ts +5 -0
- package/build/build-esm/index.js +912 -192
- package/build/build-esm/qsm/types.d.ts +1 -0
- package/build/build-esm/search-results/components/flight/flight-results.d.ts +1 -1
- package/build/build-esm/search-results/types.d.ts +5 -0
- package/package.json +2 -2
- package/src/qsm/components/mobile-filter-modal/index.tsx +67 -42
- package/src/qsm/components/search-input-group/index.tsx +16 -2
- package/src/qsm/types.ts +1 -0
- package/src/search-results/components/flight/flight-results.tsx +115 -113
- package/src/search-results/components/hotel/hotel-accommodation-results.tsx +85 -0
- package/src/search-results/components/itinerary/index.tsx +11 -9
- package/src/search-results/components/search-results-container/search-results-container.tsx +294 -146
- package/src/search-results/features/flights/flight-search-results-self-contained.tsx +5 -1
- package/src/search-results/features/hotels/hotel-flight-search-results-self-contained.tsx +5 -1
- package/src/search-results/features/hotels/hotel-search-results-self-contained.tsx +5 -1
- package/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.tsx +5 -1
- package/src/search-results/types.ts +3 -1
package/build/build-esm/index.js
CHANGED
|
@@ -11950,6 +11950,9 @@ var ENDPOINT_SEARCH_WITH_ERROR_MAPPING =
|
|
|
11950
11950
|
// const ENDPOINT_ELASTIC = `${ENDPOINT}/elastic`; // TODO
|
|
11951
11951
|
var ENDPOINT_DETAILS = ENDPOINT$7 + "/details";
|
|
11952
11952
|
var ENDPOINT_DETAILS_WL = ENDPOINT$7 + "/details-wl";
|
|
11953
|
+
var ENDPOINT_ENTRYLIGHT = function (code) {
|
|
11954
|
+
return ENDPOINT$7 + "/entry-light/" + code;
|
|
11955
|
+
};
|
|
11953
11956
|
var ENDPOINT_VALIDATE_VOUCHER = ENDPOINT$7 + "/validate-voucher";
|
|
11954
11957
|
var ENDPOINT_ALTERNATE_HOTELS = function (transactionId, optionId) {
|
|
11955
11958
|
return (
|
|
@@ -12043,6 +12046,11 @@ var detailsWL = function (config, request, signal, languageCode) {
|
|
|
12043
12046
|
var body = JSON.stringify(request);
|
|
12044
12047
|
return post(url, apiKey, body, config.token, signal, true, languageCode);
|
|
12045
12048
|
};
|
|
12049
|
+
var getEntryLight = function (config, code, signal) {
|
|
12050
|
+
var url = "" + config.host + ENDPOINT_ENTRYLIGHT(code);
|
|
12051
|
+
var apiKey = config.apiKey;
|
|
12052
|
+
return get(url, apiKey, config.token, signal, true);
|
|
12053
|
+
};
|
|
12046
12054
|
var validateVoucher = function (config, request, signal) {
|
|
12047
12055
|
var url = "" + config.host + ENDPOINT_VALIDATE_VOUCHER;
|
|
12048
12056
|
var apiKey = config.apiKey;
|
|
@@ -12186,6 +12194,7 @@ var getMolliePayment = function (config, request, signal) {
|
|
|
12186
12194
|
|
|
12187
12195
|
var ENDPOINT$4 = "/api/web/search";
|
|
12188
12196
|
var ENDPOINT_COUNTRIES = ENDPOINT$4 + "/countries";
|
|
12197
|
+
var ENDPOINT_LOCATIONS$1 = ENDPOINT$4 + "/locations";
|
|
12189
12198
|
/**
|
|
12190
12199
|
* api/search/countries
|
|
12191
12200
|
* Gets all Countries
|
|
@@ -12198,6 +12207,15 @@ var getCountries = function (config, signal) {
|
|
|
12198
12207
|
var apiKey = config.apiKey;
|
|
12199
12208
|
return get(url, apiKey, config.token, signal, true);
|
|
12200
12209
|
};
|
|
12210
|
+
var searchLocations = function (config, searchTerm, signal) {
|
|
12211
|
+
var apiKey = config.apiKey;
|
|
12212
|
+
var safeSearch = searchTerm.replace(/'/g, "''");
|
|
12213
|
+
var filter =
|
|
12214
|
+
"$filter=contains(tolower(Name),'" + safeSearch.toLowerCase() + "')";
|
|
12215
|
+
var top = "$top=10";
|
|
12216
|
+
var url = "" + config.host + ENDPOINT_LOCATIONS$1 + "?" + filter + "&" + top;
|
|
12217
|
+
return get(url, apiKey, config.token, signal, true);
|
|
12218
|
+
};
|
|
12201
12219
|
|
|
12202
12220
|
var createParams = function (filter, all, gridColumns, mode, forceToLower) {
|
|
12203
12221
|
var params = {};
|
|
@@ -12635,6 +12653,7 @@ exports.getAllotmentList = getAllotmentList;
|
|
|
12635
12653
|
exports.getCountries = getCountries;
|
|
12636
12654
|
exports.getCustomEntryStatus = getCustomEntryStatus;
|
|
12637
12655
|
exports.getEntryDetailv2 = getEntryDetailv2;
|
|
12656
|
+
exports.getEntryLight = getEntryLight;
|
|
12638
12657
|
exports.getEntryList = getEntryList;
|
|
12639
12658
|
exports.getEntryListv2 = getEntryListv2;
|
|
12640
12659
|
exports.getEntryStatus = getEntryStatus;
|
|
@@ -12653,6 +12672,7 @@ exports.resetPassword = resetPassword;
|
|
|
12653
12672
|
exports.search = search;
|
|
12654
12673
|
exports.searchElastic = searchElastic;
|
|
12655
12674
|
exports.searchFlightPool = searchFlightPool;
|
|
12675
|
+
exports.searchLocations = searchLocations;
|
|
12656
12676
|
exports.searchWithErrorMapping = searchWithErrorMapping;
|
|
12657
12677
|
exports.setCustomEntryStatus = setCustomEntryStatus;
|
|
12658
12678
|
exports.setEntryStatus = setEntryStatus;
|
|
@@ -21533,60 +21553,77 @@ var TravelInput = function () {
|
|
|
21533
21553
|
};
|
|
21534
21554
|
|
|
21535
21555
|
var MobileFilterModal = function () {
|
|
21536
|
-
var _a = useContext(QSMConfigurationContext), datesIcon = _a.datesIcon, languageCode = _a.languageCode;
|
|
21556
|
+
var _a = useContext(QSMConfigurationContext), datesIcon = _a.datesIcon, languageCode = _a.languageCode, searchFields = _a.searchFields;
|
|
21537
21557
|
var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
|
|
21538
21558
|
var dispatch = useDispatch();
|
|
21539
|
-
var _b = useSelector(function (state) { return state.qsm; }), mobileFilterType = _b.mobileFilterType, mobileDatePickerMode = _b.mobileDatePickerMode, activeSearchFieldProps = _b.activeSearchFieldProps, fromDate = _b.fromDate, toDate = _b.toDate;
|
|
21559
|
+
var _b = useSelector(function (state) { return state.qsm; }), mobileFilterType = _b.mobileFilterType, mobileDatePickerMode = _b.mobileDatePickerMode, activeSearchFieldProps = _b.activeSearchFieldProps, fromDate = _b.fromDate, toDate = _b.toDate, searchResults = _b.searchResults;
|
|
21540
21560
|
var _c = useState(''), inputValue = _c[0], setInputValue = _c[1];
|
|
21541
|
-
var _d = useState([]), searchResultsLocal = _d[0], setSearchResultsLocal = _d[1];
|
|
21542
|
-
var hasTypedRef = useRef(false);
|
|
21543
21561
|
/* ---------------------------------------------------------------- */
|
|
21544
21562
|
/* Sync local state when a new field is opened */
|
|
21545
21563
|
/* ---------------------------------------------------------------- */
|
|
21546
21564
|
useEffect(function () {
|
|
21547
21565
|
if (activeSearchFieldProps) {
|
|
21548
21566
|
setInputValue(activeSearchFieldProps.value || '');
|
|
21549
|
-
setSearchResultsLocal([]);
|
|
21550
|
-
hasTypedRef.current = false;
|
|
21567
|
+
// setSearchResultsLocal([]);
|
|
21568
|
+
// hasTypedRef.current = false;
|
|
21551
21569
|
}
|
|
21552
21570
|
}, [activeSearchFieldProps]);
|
|
21553
21571
|
/* ---------------------------------------------------------------- */
|
|
21554
21572
|
/* Helpers */
|
|
21555
21573
|
/* ---------------------------------------------------------------- */
|
|
21556
21574
|
var closeModal = function () {
|
|
21557
|
-
hasTypedRef.current = false;
|
|
21575
|
+
// hasTypedRef.current = false;
|
|
21558
21576
|
dispatch(closeMobileFilter());
|
|
21559
21577
|
};
|
|
21560
|
-
|
|
21561
|
-
|
|
21562
|
-
|
|
21563
|
-
|
|
21564
|
-
|
|
21565
|
-
|
|
21566
|
-
|
|
21567
|
-
|
|
21568
|
-
|
|
21569
|
-
|
|
21570
|
-
|
|
21571
|
-
setInputValue(val);
|
|
21572
|
-
hasTypedRef.current = true;
|
|
21573
|
-
if (val.trim() !== '' && activeSearchFieldProps) {
|
|
21574
|
-
var filtered = activeSearchFieldProps.options.filter(function (option) { return option.value.toLowerCase().includes(val.toLowerCase()); });
|
|
21575
|
-
setSearchResultsLocal(filtered);
|
|
21576
|
-
}
|
|
21577
|
-
else {
|
|
21578
|
-
setSearchResultsLocal([]);
|
|
21578
|
+
var findConfig = function (all, key) {
|
|
21579
|
+
for (var _i = 0, all_1 = all; _i < all_1.length; _i++) {
|
|
21580
|
+
var config_1 = all_1[_i];
|
|
21581
|
+
if (config_1.type === 'single' && config_1.fieldKey === key) {
|
|
21582
|
+
return config_1;
|
|
21583
|
+
}
|
|
21584
|
+
if (config_1.type === 'double') {
|
|
21585
|
+
var field = config_1.fields.find(function (x) { return x.fieldKey === key; });
|
|
21586
|
+
if (field)
|
|
21587
|
+
return field;
|
|
21588
|
+
}
|
|
21579
21589
|
}
|
|
21590
|
+
return undefined;
|
|
21580
21591
|
};
|
|
21581
|
-
|
|
21582
|
-
|
|
21583
|
-
|
|
21584
|
-
|
|
21585
|
-
|
|
21586
|
-
|
|
21587
|
-
|
|
21588
|
-
|
|
21589
|
-
|
|
21592
|
+
var config = useMemo(function () {
|
|
21593
|
+
if (!activeSearchFieldProps)
|
|
21594
|
+
return undefined;
|
|
21595
|
+
return findConfig(searchFields, activeSearchFieldProps.fieldKey);
|
|
21596
|
+
}, [searchFields, activeSearchFieldProps]);
|
|
21597
|
+
var match = useCallback(function (input) {
|
|
21598
|
+
if (!input) {
|
|
21599
|
+
return [];
|
|
21600
|
+
}
|
|
21601
|
+
var lowered = input.toLowerCase();
|
|
21602
|
+
return activeSearchFieldProps === null || activeSearchFieldProps === void 0 ? void 0 : activeSearchFieldProps.options.filter(function (option) { var _a; return option.value.toLowerCase().includes(lowered) || ((_a = option.iataCode) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(lowered)); });
|
|
21603
|
+
}, [activeSearchFieldProps === null || activeSearchFieldProps === void 0 ? void 0 : activeSearchFieldProps.options]);
|
|
21604
|
+
var handleInputChange = useCallback(function (input) {
|
|
21605
|
+
var _a;
|
|
21606
|
+
setInputValue(input);
|
|
21607
|
+
if (!activeSearchFieldProps)
|
|
21608
|
+
return;
|
|
21609
|
+
dispatch(setFieldValue({ fieldKey: activeSearchFieldProps.fieldKey, value: input }));
|
|
21610
|
+
dispatch(setSearchResults([]));
|
|
21611
|
+
dispatch(setActiveSearchField(activeSearchFieldProps.fieldKey));
|
|
21612
|
+
if (config === null || config === void 0 ? void 0 : config.onChange) {
|
|
21613
|
+
config.onChange(input);
|
|
21614
|
+
return;
|
|
21615
|
+
}
|
|
21616
|
+
var filtered = (_a = match(input)) !== null && _a !== void 0 ? _a : [];
|
|
21617
|
+
dispatch(setSearchResults(filtered));
|
|
21618
|
+
}, [dispatch, activeSearchFieldProps, match]);
|
|
21619
|
+
useEffect(function () {
|
|
21620
|
+
var _a;
|
|
21621
|
+
if (!activeSearchFieldProps)
|
|
21622
|
+
return;
|
|
21623
|
+
if (!inputValue)
|
|
21624
|
+
return;
|
|
21625
|
+
dispatch(setSearchResults((_a = match(inputValue)) !== null && _a !== void 0 ? _a : []));
|
|
21626
|
+
}, [activeSearchFieldProps === null || activeSearchFieldProps === void 0 ? void 0 : activeSearchFieldProps.options]);
|
|
21590
21627
|
var handleLocationSelect = function (option) {
|
|
21591
21628
|
if (activeSearchFieldProps) {
|
|
21592
21629
|
var fieldKey = activeSearchFieldProps.fieldKey;
|
|
@@ -21646,8 +21683,10 @@ var MobileFilterModal = function () {
|
|
|
21646
21683
|
React.createElement("span", { className: "mobile-qsm-filter__modal-header-close", onClick: closeModal }))),
|
|
21647
21684
|
React.createElement("div", { className: "qsm__double-input qsm__double-input--search-modal" },
|
|
21648
21685
|
React.createElement("label", { className: "qsm__input-wrapper" },
|
|
21649
|
-
React.createElement("input", { type: "text", id: "search", value: inputValue,
|
|
21650
|
-
|
|
21686
|
+
React.createElement("input", { type: "text", id: "search", value: inputValue, onClick: function (e) { return e.stopPropagation(); }, onChange: function (e) { return handleInputChange(e.target.value); },
|
|
21687
|
+
// onChange={(e) => handleLocationChange(e.target.value)}
|
|
21688
|
+
className: "qsm__input qsm__input--modal qsm__from-to u-ps-2", placeholder: activeSearchFieldProps.placeholder }),
|
|
21689
|
+
React.createElement(SearchInput, { onChange: handleInputChange, searchResults: searchResults, onOptionSelect: handleLocationSelect, highlightTarget: inputValue, label: activeSearchFieldProps.label }))),
|
|
21651
21690
|
React.createElement("div", { className: "mobile-qsm-filter__modal-footer" },
|
|
21652
21691
|
React.createElement("button", { className: "cta", onClick: closeModal }, translations.QSM.CONFIRM))));
|
|
21653
21692
|
};
|
|
@@ -21710,7 +21749,7 @@ var SearchInputGroup = function (_a) {
|
|
|
21710
21749
|
return [];
|
|
21711
21750
|
}
|
|
21712
21751
|
var lowered = input.toLowerCase();
|
|
21713
|
-
return options.filter(function (option) { return option.value.toLowerCase().includes(lowered); });
|
|
21752
|
+
return options.filter(function (option) { var _a; return option.value.toLowerCase().includes(lowered) || ((_a = option.iataCode) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(lowered)); });
|
|
21714
21753
|
}, [options]);
|
|
21715
21754
|
var handleInputChange = useCallback(function (input) {
|
|
21716
21755
|
dispatch(setFieldValue({ fieldKey: fieldKey, value: input }));
|
|
@@ -21718,8 +21757,19 @@ var SearchInputGroup = function (_a) {
|
|
|
21718
21757
|
if (small)
|
|
21719
21758
|
return;
|
|
21720
21759
|
dispatch(setActiveSearchField(fieldKey));
|
|
21760
|
+
// if field has custom onChange (API search)
|
|
21761
|
+
if (config.onChange) {
|
|
21762
|
+
config.onChange(input);
|
|
21763
|
+
return;
|
|
21764
|
+
}
|
|
21765
|
+
// fallback to local filtering
|
|
21721
21766
|
dispatch(setSearchResults(match(input)));
|
|
21722
|
-
}, [dispatch, fieldKey, small, match,
|
|
21767
|
+
}, [dispatch, fieldKey, small, match, config]);
|
|
21768
|
+
useEffect(function () {
|
|
21769
|
+
if (!value || activeSearchField !== fieldKey)
|
|
21770
|
+
return;
|
|
21771
|
+
dispatch(setSearchResults(match(value)));
|
|
21772
|
+
}, [options, value, activeSearchField, config, fieldKey]);
|
|
21723
21773
|
var handleKeyDown = useCallback(function (e) {
|
|
21724
21774
|
if (!['Tab', 'Enter'].includes(e.key))
|
|
21725
21775
|
return;
|
|
@@ -22855,14 +22905,13 @@ var Itinerary = function (_a) {
|
|
|
22855
22905
|
React.createElement("div", { className: "search__filter-row-flex-title" },
|
|
22856
22906
|
React.createElement("p", { className: "search__filter-small-title" }, translations.SRP.ITINERARY_TITLE))),
|
|
22857
22907
|
isLoading ? (React.createElement(Spinner, null)) : (React.createElement(React.Fragment, null,
|
|
22858
|
-
React.createElement("div", { className: "search__filter-group" },
|
|
22859
|
-
React.createElement("
|
|
22860
|
-
|
|
22861
|
-
|
|
22862
|
-
|
|
22863
|
-
|
|
22864
|
-
|
|
22865
|
-
React.createElement("h4", { className: "search__filter__image__title" }, (location || '') + (location && country ? ' - ' : '') + (country || '')))),
|
|
22908
|
+
React.createElement("div", { className: "search__filter-group" }, (context === null || context === void 0 ? void 0 : context.destinationImage) && (React.createElement("div", { className: "search__filter__image__wrapper" },
|
|
22909
|
+
React.createElement("img", { src: context.destinationImage.url, alt: context.destinationImage.alt, className: "search__filter__image" }),
|
|
22910
|
+
(entry === null || entry === void 0 ? void 0 : entry.number) && (React.createElement("span", { className: "search__filter__image__text" },
|
|
22911
|
+
translations.SRP.DOSSIER_NUMBER,
|
|
22912
|
+
": ", entry === null || entry === void 0 ? void 0 :
|
|
22913
|
+
entry.number)),
|
|
22914
|
+
React.createElement("h4", { className: "search__filter__image__title" }, (location || '') + (location && country ? ' - ' : '') + (country || ''))))),
|
|
22866
22915
|
React.createElement("div", { className: "search__filter__prices" },
|
|
22867
22916
|
React.createElement("div", { className: "search__filter__prices__wrapper" },
|
|
22868
22917
|
React.createElement("h3", { className: "search__filter__prices--amount" }, formatPrice(((entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0) / ((entry === null || entry === void 0 ? void 0 : entry.numberOfPax) || 1), (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR')),
|
|
@@ -23081,6 +23130,9 @@ var calculateNights = function (fromDate, toDate, translations) {
|
|
|
23081
23130
|
var HotelAccommodationResults = function (_a) {
|
|
23082
23131
|
var _b, _c;
|
|
23083
23132
|
var isLoading = _a.isLoading, context = _a.context;
|
|
23133
|
+
if (context.showMockup) {
|
|
23134
|
+
return showMocukups(context);
|
|
23135
|
+
}
|
|
23084
23136
|
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
23085
23137
|
if (isLoading) {
|
|
23086
23138
|
return React.createElement(React.Fragment, null, (_c = context === null || context === void 0 ? void 0 : context.customSpinner) !== null && _c !== void 0 ? _c : React.createElement(Spinner, null));
|
|
@@ -23114,6 +23166,191 @@ var HotelAccommodationResults = function (_a) {
|
|
|
23114
23166
|
" ",
|
|
23115
23167
|
React.createElement("strong", null, translations.SRP.ACCOMMODATION)))),
|
|
23116
23168
|
renderResults(results, context, cmsMap, activeTab, translations)));
|
|
23169
|
+
};
|
|
23170
|
+
var showMocukups = function (context) {
|
|
23171
|
+
var mockedHotelResults = [
|
|
23172
|
+
{
|
|
23173
|
+
type: 'hotel',
|
|
23174
|
+
id: 2,
|
|
23175
|
+
title: 'HTFSWILLCARL',
|
|
23176
|
+
image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
|
|
23177
|
+
description: '2 persoons kamer',
|
|
23178
|
+
location: 'Tenerif, Spanje',
|
|
23179
|
+
price: '$2244',
|
|
23180
|
+
ctaText: 'Bekijk details',
|
|
23181
|
+
days: '7 nights',
|
|
23182
|
+
flightInfo: null,
|
|
23183
|
+
accommodation: 'Hotel XYZ',
|
|
23184
|
+
regime: 'All-inclusive',
|
|
23185
|
+
stars: 5
|
|
23186
|
+
},
|
|
23187
|
+
{
|
|
23188
|
+
type: 'hotel',
|
|
23189
|
+
id: 3,
|
|
23190
|
+
title: 'HTFSSOFTROCK',
|
|
23191
|
+
image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
|
|
23192
|
+
description: '3 persoons kamer',
|
|
23193
|
+
location: 'Tenerif, Spanje',
|
|
23194
|
+
price: '$2244',
|
|
23195
|
+
ctaText: 'Bekijk details',
|
|
23196
|
+
days: '7 nights',
|
|
23197
|
+
flightInfo: null,
|
|
23198
|
+
accommodation: 'Hotel ABC',
|
|
23199
|
+
regime: 'Half-board',
|
|
23200
|
+
stars: 4
|
|
23201
|
+
},
|
|
23202
|
+
{
|
|
23203
|
+
type: 'hotel',
|
|
23204
|
+
id: 4,
|
|
23205
|
+
title: 'HTFSROYGAR',
|
|
23206
|
+
image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
|
|
23207
|
+
description: '4 persoons kamer',
|
|
23208
|
+
location: 'Tenerif, Spanje',
|
|
23209
|
+
price: '$2496',
|
|
23210
|
+
ctaText: 'Bekijk details',
|
|
23211
|
+
days: '7 nights',
|
|
23212
|
+
flightInfo: null,
|
|
23213
|
+
accommodation: 'Hotel DEF',
|
|
23214
|
+
regime: 'Full-board',
|
|
23215
|
+
stars: 5
|
|
23216
|
+
},
|
|
23217
|
+
{
|
|
23218
|
+
type: 'hotel',
|
|
23219
|
+
id: 5,
|
|
23220
|
+
title: 'HTFSCONBEL',
|
|
23221
|
+
image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
|
|
23222
|
+
description: '5 persoons kamer',
|
|
23223
|
+
location: 'Tenerif, Spanje',
|
|
23224
|
+
price: '$6784.8',
|
|
23225
|
+
ctaText: 'Bekijk details',
|
|
23226
|
+
days: '7 nights',
|
|
23227
|
+
flightInfo: null,
|
|
23228
|
+
accommodation: 'Hotel GHI',
|
|
23229
|
+
regime: 'All-inclusive',
|
|
23230
|
+
stars: 5
|
|
23231
|
+
}
|
|
23232
|
+
];
|
|
23233
|
+
return React.createElement(React.Fragment, null, renderMockupResults(mockedHotelResults, context));
|
|
23234
|
+
};
|
|
23235
|
+
var renderMockupResults = function (results, context) {
|
|
23236
|
+
var renderedResults = results.map(function (result, index) {
|
|
23237
|
+
if ((context === null || context === void 0 ? void 0 : context.showCustomCards) && (context === null || context === void 0 ? void 0 : context.customCardRenderer)) {
|
|
23238
|
+
return (React.createElement("div", { key: "".concat(result.id, "-").concat(index), className: "search__result-card" }, context.customCardRenderer(result)));
|
|
23239
|
+
}
|
|
23240
|
+
return React.createElement(HotelCard, { key: "".concat(result.id, "-").concat(index), result: result });
|
|
23241
|
+
});
|
|
23242
|
+
return React.createElement("div", { className: "search__results__cards" }, renderedResults);
|
|
23243
|
+
};
|
|
23244
|
+
|
|
23245
|
+
var RoundTripResults = function () {
|
|
23246
|
+
return (React.createElement("div", { className: "search__results__cards search__results__cards--list" },
|
|
23247
|
+
React.createElement("div", { className: "search__result-card" },
|
|
23248
|
+
React.createElement("div", { className: "search__result-card__allotment" },
|
|
23249
|
+
React.createElement("div", { className: "search__result-card__allotment__title__wrapper" },
|
|
23250
|
+
React.createElement("h3", { className: "search__result-card__allotment__title" },
|
|
23251
|
+
"Rondreis Noord-India: Rajasthan",
|
|
23252
|
+
React.createElement("span", { className: "search__result-card__allotment__badge" },
|
|
23253
|
+
React.createElement(Icon, { name: "ui-circle-check", width: 14, height: 14 }),
|
|
23254
|
+
"GAR")),
|
|
23255
|
+
React.createElement("div", { className: "search__result-card__allotment__container" },
|
|
23256
|
+
React.createElement("div", { className: "search__result-card__allotment__header" },
|
|
23257
|
+
React.createElement("div", { className: "search__result-card__allotment__wrapper" },
|
|
23258
|
+
React.createElement("div", { className: "search__result-card__allotment__date" },
|
|
23259
|
+
React.createElement(Icon, { name: "ui-plane", height: 16 }),
|
|
23260
|
+
React.createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
|
|
23261
|
+
React.createElement("div", { className: "search__result-card__allotment__info" },
|
|
23262
|
+
React.createElement("span", null,
|
|
23263
|
+
React.createElement(Icon, { name: "ui-calendar", height: 16 })),
|
|
23264
|
+
' ',
|
|
23265
|
+
"8 dagen -",
|
|
23266
|
+
' ',
|
|
23267
|
+
React.createElement("span", null,
|
|
23268
|
+
React.createElement(Icon, { name: "ui-moon", height: 16 })),
|
|
23269
|
+
"7 nachten"))),
|
|
23270
|
+
React.createElement("div", { className: "search__result-card__allotment__info" },
|
|
23271
|
+
React.createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
|
|
23272
|
+
React.createElement("div", { className: "search__result-card__allotment__persons" },
|
|
23273
|
+
React.createElement("div", { className: "search__result-card__allotment__person" },
|
|
23274
|
+
React.createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
|
|
23275
|
+
React.createElement("span", null, "2 p.")),
|
|
23276
|
+
React.createElement("div", { className: "search__result-card__allotment__person" },
|
|
23277
|
+
React.createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
|
|
23278
|
+
React.createElement("span", null, "3 p.")))))),
|
|
23279
|
+
React.createElement("div", { className: "search__result-card__allotment__footer" },
|
|
23280
|
+
React.createElement("div", { className: "search__result-card__allotment__price__wrapper" },
|
|
23281
|
+
React.createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
|
|
23282
|
+
React.createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
|
|
23283
|
+
React.createElement("button", { className: "cta cta--select" }, "Bekijk reis")))),
|
|
23284
|
+
React.createElement("div", { className: "search__result-card" },
|
|
23285
|
+
React.createElement("div", { className: "search__result-card__allotment" },
|
|
23286
|
+
React.createElement("div", { className: "search__result-card__allotment__title__wrapper" },
|
|
23287
|
+
React.createElement("h3", { className: "search__result-card__allotment__title" },
|
|
23288
|
+
"Rondreis Thailand",
|
|
23289
|
+
React.createElement("span", { className: "search__result-card__allotment__badge search__result-card__allotment__badge--secondary" },
|
|
23290
|
+
React.createElement(Icon, { name: "ui-circle-half", width: 14, height: 14 }),
|
|
23291
|
+
"BIJNA GAR")),
|
|
23292
|
+
React.createElement("div", { className: "search__result-card__allotment__container" },
|
|
23293
|
+
React.createElement("div", { className: "search__result-card__allotment__header" },
|
|
23294
|
+
React.createElement("div", { className: "search__result-card__allotment__wrapper" },
|
|
23295
|
+
React.createElement("div", { className: "search__result-card__allotment__date" },
|
|
23296
|
+
React.createElement(Icon, { name: "ui-plane", height: 16 }),
|
|
23297
|
+
React.createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
|
|
23298
|
+
React.createElement("div", { className: "search__result-card__allotment__info" },
|
|
23299
|
+
React.createElement("span", null,
|
|
23300
|
+
React.createElement(Icon, { name: "ui-calendar", height: 16 })),
|
|
23301
|
+
' ',
|
|
23302
|
+
"8 dagen -",
|
|
23303
|
+
' ',
|
|
23304
|
+
React.createElement("span", null,
|
|
23305
|
+
React.createElement(Icon, { name: "ui-moon", height: 16 })),
|
|
23306
|
+
"7 nachten"))),
|
|
23307
|
+
React.createElement("div", { className: "search__result-card__allotment__info" },
|
|
23308
|
+
React.createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
|
|
23309
|
+
React.createElement("div", { className: "search__result-card__allotment__persons" },
|
|
23310
|
+
React.createElement("div", { className: "search__result-card__allotment__person" },
|
|
23311
|
+
React.createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
|
|
23312
|
+
React.createElement("span", null, "2 p.")),
|
|
23313
|
+
React.createElement("div", { className: "search__result-card__allotment__person" },
|
|
23314
|
+
React.createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
|
|
23315
|
+
React.createElement("span", null, "3 p.")))))),
|
|
23316
|
+
React.createElement("div", { className: "search__result-card__allotment__footer" },
|
|
23317
|
+
React.createElement("div", { className: "search__result-card__allotment__price__wrapper" },
|
|
23318
|
+
React.createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
|
|
23319
|
+
React.createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
|
|
23320
|
+
React.createElement("button", { className: "cta cta--select" }, "Bekijk reis")))),
|
|
23321
|
+
React.createElement("div", { className: "search__result-card" },
|
|
23322
|
+
React.createElement("div", { className: "search__result-card__allotment" },
|
|
23323
|
+
React.createElement("div", { className: "search__result-card__allotment__title__wrapper" },
|
|
23324
|
+
React.createElement("h3", { className: "search__result-card__allotment__title" }, "Rondreis Timboektoe"),
|
|
23325
|
+
React.createElement("div", { className: "search__result-card__allotment__container" },
|
|
23326
|
+
React.createElement("div", { className: "search__result-card__allotment__header" },
|
|
23327
|
+
React.createElement("div", { className: "search__result-card__allotment__wrapper" },
|
|
23328
|
+
React.createElement("div", { className: "search__result-card__allotment__date" },
|
|
23329
|
+
React.createElement(Icon, { name: "ui-plane", height: 16 }),
|
|
23330
|
+
React.createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
|
|
23331
|
+
React.createElement("div", { className: "search__result-card__allotment__info" },
|
|
23332
|
+
React.createElement("span", null,
|
|
23333
|
+
React.createElement(Icon, { name: "ui-calendar", height: 16 })),
|
|
23334
|
+
' ',
|
|
23335
|
+
"8 dagen -",
|
|
23336
|
+
' ',
|
|
23337
|
+
React.createElement("span", null,
|
|
23338
|
+
React.createElement(Icon, { name: "ui-moon", height: 16 })),
|
|
23339
|
+
"7 nachten"))),
|
|
23340
|
+
React.createElement("div", { className: "search__result-card__allotment__info" },
|
|
23341
|
+
React.createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
|
|
23342
|
+
React.createElement("div", { className: "search__result-card__allotment__persons" },
|
|
23343
|
+
React.createElement("div", { className: "search__result-card__allotment__person" },
|
|
23344
|
+
React.createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
|
|
23345
|
+
React.createElement("span", null, "2 p.")),
|
|
23346
|
+
React.createElement("div", { className: "search__result-card__allotment__person" },
|
|
23347
|
+
React.createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
|
|
23348
|
+
React.createElement("span", null, "3 p.")))))),
|
|
23349
|
+
React.createElement("div", { className: "search__result-card__allotment__footer" },
|
|
23350
|
+
React.createElement("div", { className: "search__result-card__allotment__price__wrapper" },
|
|
23351
|
+
React.createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
|
|
23352
|
+
React.createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
|
|
23353
|
+
React.createElement("button", { className: "cta cta--select" }, "Bekijk reis"))))));
|
|
23117
23354
|
};
|
|
23118
23355
|
|
|
23119
23356
|
var enrichFiltersWithResults = function (results, filters) {
|
|
@@ -23162,7 +23399,7 @@ var FlightResults = function (_a) {
|
|
|
23162
23399
|
translations.SRP.SELECT,
|
|
23163
23400
|
" ",
|
|
23164
23401
|
React.createElement("strong", null, isDeparture ? translations.SRP.DEPARTURE : translations.SRP.RETURN)))),
|
|
23165
|
-
React.createElement("div", { className: "search__results__cards search__results__cards--extended" }, flights.map(function (flight, index) {
|
|
23402
|
+
flights && flights.length > 0 && (React.createElement("div", { className: "search__results__cards search__results__cards--extended" }, flights.map(function (flight, index) {
|
|
23166
23403
|
var lines = flight.flightMetaData.flightLines;
|
|
23167
23404
|
var firstLine = lines[0];
|
|
23168
23405
|
var lastLine = lines[lines.length - 1];
|
|
@@ -23236,113 +23473,608 @@ var FlightResults = function (_a) {
|
|
|
23236
23473
|
React.createElement("strong", null, formatDuration(parseISO(nextLine.departureDate).getTime() - parseISO(line.arrivalDate).getTime()))))))));
|
|
23237
23474
|
})))),
|
|
23238
23475
|
React.createElement("div", { className: "flight__rate" })))));
|
|
23239
|
-
}))));
|
|
23476
|
+
})))));
|
|
23477
|
+
};
|
|
23478
|
+
|
|
23479
|
+
var FlightAccommodationResults = function () {
|
|
23480
|
+
return (React.createElement(React.Fragment, null,
|
|
23481
|
+
React.createElement("div", { className: "search__results__label search__results__label--secondary" },
|
|
23482
|
+
React.createElement("div", { className: "search__results__label__date" },
|
|
23483
|
+
React.createElement("p", { className: "search__results__label__date-date" }, "19"),
|
|
23484
|
+
React.createElement("p", null, "Jan")),
|
|
23485
|
+
React.createElement("div", { className: "search__results__label__text" },
|
|
23486
|
+
React.createElement("h3", null,
|
|
23487
|
+
"Select ",
|
|
23488
|
+
React.createElement("strong", null, "Accomodation")))),
|
|
23489
|
+
React.createElement("div", { className: "search__results__cards search__results__cards--extended" },
|
|
23490
|
+
React.createElement("div", { key: 1, className: "search__result-card" },
|
|
23491
|
+
React.createElement("div", { className: "flight" },
|
|
23492
|
+
React.createElement("div", { className: "flight__option" },
|
|
23493
|
+
React.createElement("div", { className: "flight__content" },
|
|
23494
|
+
React.createElement("div", { className: "flight__flights" },
|
|
23495
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23496
|
+
React.createElement("div", { className: "flight__flight__header" },
|
|
23497
|
+
React.createElement("div", { className: "flight__status__container" }),
|
|
23498
|
+
React.createElement("div", { className: "flight__price" },
|
|
23499
|
+
React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
|
|
23500
|
+
React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
|
|
23501
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23502
|
+
React.createElement("div", { className: "flight__flight__container" },
|
|
23503
|
+
React.createElement("div", { className: "flight__flight__wrapper" },
|
|
23504
|
+
React.createElement("div", { className: "flight__logo__wrapper" },
|
|
23505
|
+
React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
|
|
23506
|
+
React.createElement("span", null, "Example Airline")),
|
|
23507
|
+
React.createElement("div", { className: "flight__info" },
|
|
23508
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23509
|
+
React.createElement("strong", null, "08:30 JFK"),
|
|
23510
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23511
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23512
|
+
React.createElement("p", null, "7h 45m"),
|
|
23513
|
+
React.createElement("div", { className: "flight__info__duration__stops" },
|
|
23514
|
+
React.createElement("div", { className: "flight__info__duration__stop" })),
|
|
23515
|
+
React.createElement("span", null, "1 stop")),
|
|
23516
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23517
|
+
React.createElement("strong", null, "22:15 AMS"),
|
|
23518
|
+
React.createElement("p", null, "Tue 13 Feb 2025"),
|
|
23519
|
+
React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
|
|
23520
|
+
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
23521
|
+
React.createElement("div", { className: "flight__detail__btn" },
|
|
23522
|
+
React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
23523
|
+
React.createElement("div", { className: "flight__detail" },
|
|
23524
|
+
React.createElement("div", { className: "flight__info" },
|
|
23525
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23526
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23527
|
+
React.createElement("p", null, "08:30"),
|
|
23528
|
+
React.createElement("strong", null, "JFK"),
|
|
23529
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23530
|
+
React.createElement("div", null,
|
|
23531
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23532
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23533
|
+
React.createElement("p", null, "6h 20m"),
|
|
23534
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23535
|
+
React.createElement("span", null, "Example Airline"),
|
|
23536
|
+
React.createElement("strong", null, "EA123")),
|
|
23537
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23538
|
+
React.createElement("div", null,
|
|
23539
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23540
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23541
|
+
React.createElement("p", null, "20:50"),
|
|
23542
|
+
React.createElement("strong", null, "LHR"),
|
|
23543
|
+
React.createElement("p", null, "Mon 12 Feb 2025")))),
|
|
23544
|
+
React.createElement("div", { className: "flight__info" },
|
|
23545
|
+
React.createElement("div", { className: "flight__info__times" }),
|
|
23546
|
+
React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
|
|
23547
|
+
React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
|
|
23548
|
+
React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
|
|
23549
|
+
React.createElement("div", { className: "flight__info__duration__stoptime" },
|
|
23550
|
+
React.createElement("span", null, "Stop time"),
|
|
23551
|
+
React.createElement("strong", null, "1h 15m"))),
|
|
23552
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
|
|
23553
|
+
React.createElement("div", { className: "flight__info" },
|
|
23554
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23555
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23556
|
+
React.createElement("p", null, "22:05"),
|
|
23557
|
+
React.createElement("strong", null, "LHR"),
|
|
23558
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23559
|
+
React.createElement("div", null,
|
|
23560
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23561
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23562
|
+
React.createElement("p", null, "1h 10m"),
|
|
23563
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23564
|
+
React.createElement("span", null, "Example Airline"),
|
|
23565
|
+
React.createElement("strong", null, "EA456")),
|
|
23566
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23567
|
+
React.createElement("div", null,
|
|
23568
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23569
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23570
|
+
React.createElement("p", null, "23:15"),
|
|
23571
|
+
React.createElement("strong", null, "AMS"),
|
|
23572
|
+
React.createElement("p", null, "Mon 12 Feb 2025"))))),
|
|
23573
|
+
React.createElement("div", { className: "flight__rate" }))))))),
|
|
23574
|
+
React.createElement("div", { key: 2, className: "search__result-card" },
|
|
23575
|
+
React.createElement("div", { className: "flight" },
|
|
23576
|
+
React.createElement("div", { className: "flight__option" },
|
|
23577
|
+
React.createElement("div", { className: "flight__content" },
|
|
23578
|
+
React.createElement("div", { className: "flight__flights" },
|
|
23579
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23580
|
+
React.createElement("div", { className: "flight__flight__header" },
|
|
23581
|
+
React.createElement("div", { className: "flight__status__container" }),
|
|
23582
|
+
React.createElement("div", { className: "flight__price" },
|
|
23583
|
+
React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
|
|
23584
|
+
React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
|
|
23585
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23586
|
+
React.createElement("div", { className: "flight__flight__container" },
|
|
23587
|
+
React.createElement("div", { className: "flight__flight__wrapper" },
|
|
23588
|
+
React.createElement("div", { className: "flight__logo__wrapper" },
|
|
23589
|
+
React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
|
|
23590
|
+
React.createElement("span", null, "Example Airline")),
|
|
23591
|
+
React.createElement("div", { className: "flight__info" },
|
|
23592
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23593
|
+
React.createElement("strong", null, "08:30 JFK"),
|
|
23594
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23595
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23596
|
+
React.createElement("p", null, "7h 45m"),
|
|
23597
|
+
React.createElement("div", { className: "flight__info__duration__stops" },
|
|
23598
|
+
React.createElement("div", { className: "flight__info__duration__stop" })),
|
|
23599
|
+
React.createElement("span", null, "1 stop")),
|
|
23600
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23601
|
+
React.createElement("strong", null, "22:15 AMS"),
|
|
23602
|
+
React.createElement("p", null, "Tue 13 Feb 2025"),
|
|
23603
|
+
React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
|
|
23604
|
+
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
23605
|
+
React.createElement("div", { className: "flight__detail__btn" },
|
|
23606
|
+
React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
23607
|
+
React.createElement("div", { className: "flight__detail" },
|
|
23608
|
+
React.createElement("div", { className: "flight__info" },
|
|
23609
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23610
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23611
|
+
React.createElement("p", null, "08:30"),
|
|
23612
|
+
React.createElement("strong", null, "JFK"),
|
|
23613
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23614
|
+
React.createElement("div", null,
|
|
23615
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23616
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23617
|
+
React.createElement("p", null, "6h 20m"),
|
|
23618
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23619
|
+
React.createElement("span", null, "Example Airline"),
|
|
23620
|
+
React.createElement("strong", null, "EA123")),
|
|
23621
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23622
|
+
React.createElement("div", null,
|
|
23623
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23624
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23625
|
+
React.createElement("p", null, "20:50"),
|
|
23626
|
+
React.createElement("strong", null, "LHR"),
|
|
23627
|
+
React.createElement("p", null, "Mon 12 Feb 2025")))),
|
|
23628
|
+
React.createElement("div", { className: "flight__info" },
|
|
23629
|
+
React.createElement("div", { className: "flight__info__times" }),
|
|
23630
|
+
React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
|
|
23631
|
+
React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
|
|
23632
|
+
React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
|
|
23633
|
+
React.createElement("div", { className: "flight__info__duration__stoptime" },
|
|
23634
|
+
React.createElement("span", null, "Stop time"),
|
|
23635
|
+
React.createElement("strong", null, "1h 15m"))),
|
|
23636
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
|
|
23637
|
+
React.createElement("div", { className: "flight__info" },
|
|
23638
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23639
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23640
|
+
React.createElement("p", null, "22:05"),
|
|
23641
|
+
React.createElement("strong", null, "LHR"),
|
|
23642
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23643
|
+
React.createElement("div", null,
|
|
23644
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23645
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23646
|
+
React.createElement("p", null, "1h 10m"),
|
|
23647
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23648
|
+
React.createElement("span", null, "Example Airline"),
|
|
23649
|
+
React.createElement("strong", null, "EA456")),
|
|
23650
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23651
|
+
React.createElement("div", null,
|
|
23652
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23653
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23654
|
+
React.createElement("p", null, "23:15"),
|
|
23655
|
+
React.createElement("strong", null, "AMS"),
|
|
23656
|
+
React.createElement("p", null, "Mon 12 Feb 2025"))))),
|
|
23657
|
+
React.createElement("div", { className: "flight__rate" }))))))),
|
|
23658
|
+
React.createElement("div", { key: 3, className: "search__result-card" },
|
|
23659
|
+
React.createElement("div", { className: "flight" },
|
|
23660
|
+
React.createElement("div", { className: "flight__option" },
|
|
23661
|
+
React.createElement("div", { className: "flight__content" },
|
|
23662
|
+
React.createElement("div", { className: "flight__flights" },
|
|
23663
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23664
|
+
React.createElement("div", { className: "flight__flight__header" },
|
|
23665
|
+
React.createElement("div", { className: "flight__status__container" }),
|
|
23666
|
+
React.createElement("div", { className: "flight__price" },
|
|
23667
|
+
React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
|
|
23668
|
+
React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
|
|
23669
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23670
|
+
React.createElement("div", { className: "flight__flight__container" },
|
|
23671
|
+
React.createElement("div", { className: "flight__flight__wrapper" },
|
|
23672
|
+
React.createElement("div", { className: "flight__logo__wrapper" },
|
|
23673
|
+
React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
|
|
23674
|
+
React.createElement("span", null, "Example Airline")),
|
|
23675
|
+
React.createElement("div", { className: "flight__info" },
|
|
23676
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23677
|
+
React.createElement("strong", null, "08:30 JFK"),
|
|
23678
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23679
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23680
|
+
React.createElement("p", null, "7h 45m"),
|
|
23681
|
+
React.createElement("div", { className: "flight__info__duration__stops" },
|
|
23682
|
+
React.createElement("div", { className: "flight__info__duration__stop" })),
|
|
23683
|
+
React.createElement("span", null, "1 stop")),
|
|
23684
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23685
|
+
React.createElement("strong", null, "22:15 AMS"),
|
|
23686
|
+
React.createElement("p", null, "Tue 13 Feb 2025"),
|
|
23687
|
+
React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
|
|
23688
|
+
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
23689
|
+
React.createElement("div", { className: "flight__detail__btn" },
|
|
23690
|
+
React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
23691
|
+
React.createElement("div", { className: "flight__detail" },
|
|
23692
|
+
React.createElement("div", { className: "flight__info" },
|
|
23693
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23694
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23695
|
+
React.createElement("p", null, "08:30"),
|
|
23696
|
+
React.createElement("strong", null, "JFK"),
|
|
23697
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23698
|
+
React.createElement("div", null,
|
|
23699
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23700
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23701
|
+
React.createElement("p", null, "6h 20m"),
|
|
23702
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23703
|
+
React.createElement("span", null, "Example Airline"),
|
|
23704
|
+
React.createElement("strong", null, "EA123")),
|
|
23705
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23706
|
+
React.createElement("div", null,
|
|
23707
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23708
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23709
|
+
React.createElement("p", null, "20:50"),
|
|
23710
|
+
React.createElement("strong", null, "LHR"),
|
|
23711
|
+
React.createElement("p", null, "Mon 12 Feb 2025")))),
|
|
23712
|
+
React.createElement("div", { className: "flight__info" },
|
|
23713
|
+
React.createElement("div", { className: "flight__info__times" }),
|
|
23714
|
+
React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
|
|
23715
|
+
React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
|
|
23716
|
+
React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
|
|
23717
|
+
React.createElement("div", { className: "flight__info__duration__stoptime" },
|
|
23718
|
+
React.createElement("span", null, "Stop time"),
|
|
23719
|
+
React.createElement("strong", null, "1h 15m"))),
|
|
23720
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
|
|
23721
|
+
React.createElement("div", { className: "flight__info" },
|
|
23722
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23723
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23724
|
+
React.createElement("p", null, "22:05"),
|
|
23725
|
+
React.createElement("strong", null, "LHR"),
|
|
23726
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23727
|
+
React.createElement("div", null,
|
|
23728
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23729
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23730
|
+
React.createElement("p", null, "1h 10m"),
|
|
23731
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23732
|
+
React.createElement("span", null, "Example Airline"),
|
|
23733
|
+
React.createElement("strong", null, "EA456")),
|
|
23734
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23735
|
+
React.createElement("div", null,
|
|
23736
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23737
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23738
|
+
React.createElement("p", null, "23:15"),
|
|
23739
|
+
React.createElement("strong", null, "AMS"),
|
|
23740
|
+
React.createElement("p", null, "Mon 12 Feb 2025"))))),
|
|
23741
|
+
React.createElement("div", { className: "flight__rate" }))))))),
|
|
23742
|
+
React.createElement("div", { key: 4, className: "search__result-card" },
|
|
23743
|
+
React.createElement("div", { className: "flight" },
|
|
23744
|
+
React.createElement("div", { className: "flight__option" },
|
|
23745
|
+
React.createElement("div", { className: "flight__content" },
|
|
23746
|
+
React.createElement("div", { className: "flight__flights" },
|
|
23747
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23748
|
+
React.createElement("div", { className: "flight__flight__header" },
|
|
23749
|
+
React.createElement("div", { className: "flight__status__container" }),
|
|
23750
|
+
React.createElement("div", { className: "flight__price" },
|
|
23751
|
+
React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
|
|
23752
|
+
React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
|
|
23753
|
+
React.createElement("div", { className: "flight__flight" },
|
|
23754
|
+
React.createElement("div", { className: "flight__flight__container" },
|
|
23755
|
+
React.createElement("div", { className: "flight__flight__wrapper" },
|
|
23756
|
+
React.createElement("div", { className: "flight__logo__wrapper" },
|
|
23757
|
+
React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
|
|
23758
|
+
React.createElement("span", null, "Example Airline")),
|
|
23759
|
+
React.createElement("div", { className: "flight__info" },
|
|
23760
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23761
|
+
React.createElement("strong", null, "08:30 JFK"),
|
|
23762
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23763
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23764
|
+
React.createElement("p", null, "7h 45m"),
|
|
23765
|
+
React.createElement("div", { className: "flight__info__duration__stops" },
|
|
23766
|
+
React.createElement("div", { className: "flight__info__duration__stop" })),
|
|
23767
|
+
React.createElement("span", null, "1 stop")),
|
|
23768
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23769
|
+
React.createElement("strong", null, "22:15 AMS"),
|
|
23770
|
+
React.createElement("p", null, "Tue 13 Feb 2025"),
|
|
23771
|
+
React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
|
|
23772
|
+
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
23773
|
+
React.createElement("div", { className: "flight__detail__btn" },
|
|
23774
|
+
React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
23775
|
+
React.createElement("div", { className: "flight__detail" },
|
|
23776
|
+
React.createElement("div", { className: "flight__info" },
|
|
23777
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23778
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23779
|
+
React.createElement("p", null, "08:30"),
|
|
23780
|
+
React.createElement("strong", null, "JFK"),
|
|
23781
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23782
|
+
React.createElement("div", null,
|
|
23783
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23784
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23785
|
+
React.createElement("p", null, "6h 20m"),
|
|
23786
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23787
|
+
React.createElement("span", null, "Example Airline"),
|
|
23788
|
+
React.createElement("strong", null, "EA123")),
|
|
23789
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23790
|
+
React.createElement("div", null,
|
|
23791
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23792
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23793
|
+
React.createElement("p", null, "20:50"),
|
|
23794
|
+
React.createElement("strong", null, "LHR"),
|
|
23795
|
+
React.createElement("p", null, "Mon 12 Feb 2025")))),
|
|
23796
|
+
React.createElement("div", { className: "flight__info" },
|
|
23797
|
+
React.createElement("div", { className: "flight__info__times" }),
|
|
23798
|
+
React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
|
|
23799
|
+
React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
|
|
23800
|
+
React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
|
|
23801
|
+
React.createElement("div", { className: "flight__info__duration__stoptime" },
|
|
23802
|
+
React.createElement("span", null, "Stop time"),
|
|
23803
|
+
React.createElement("strong", null, "1h 15m"))),
|
|
23804
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
|
|
23805
|
+
React.createElement("div", { className: "flight__info" },
|
|
23806
|
+
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
23807
|
+
React.createElement("div", { className: "flight__info__times" },
|
|
23808
|
+
React.createElement("p", null, "22:05"),
|
|
23809
|
+
React.createElement("strong", null, "LHR"),
|
|
23810
|
+
React.createElement("p", null, "Mon 12 Feb 2025")),
|
|
23811
|
+
React.createElement("div", null,
|
|
23812
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
23813
|
+
React.createElement("div", { className: "flight__info__duration" },
|
|
23814
|
+
React.createElement("p", null, "1h 10m"),
|
|
23815
|
+
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
23816
|
+
React.createElement("span", null, "Example Airline"),
|
|
23817
|
+
React.createElement("strong", null, "EA456")),
|
|
23818
|
+
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
23819
|
+
React.createElement("div", null,
|
|
23820
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
23821
|
+
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
23822
|
+
React.createElement("p", null, "23:15"),
|
|
23823
|
+
React.createElement("strong", null, "AMS"),
|
|
23824
|
+
React.createElement("p", null, "Mon 12 Feb 2025"))))),
|
|
23825
|
+
React.createElement("div", { className: "flight__rate" }))))))))));
|
|
23240
23826
|
};
|
|
23241
23827
|
|
|
23242
23828
|
var SearchResultsContainer = function () {
|
|
23243
23829
|
var _a, _b;
|
|
23244
|
-
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
23245
23830
|
var dispatch = useDispatch();
|
|
23246
23831
|
var context = useContext(SearchResultsConfigurationContext);
|
|
23247
23832
|
var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
|
|
23248
|
-
var _c = useSelector(function (state) { return state.searchResults; }), results = _c.results, bookingPackageDetails = _c.bookingPackageDetails, isLoading = _c.isLoading, filters = _c.filters, sortKey = _c.sortKey, selectedHotelId = _c.selectedHotelId;
|
|
23833
|
+
var _c = useSelector(function (state) { return state.searchResults; }), results = _c.results, bookingPackageDetails = _c.bookingPackageDetails, entry = _c.entry, isLoading = _c.isLoading, filters = _c.filters, sortKey = _c.sortKey, selectedHotelId = _c.selectedHotelId;
|
|
23834
|
+
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
23249
23835
|
var _d = useState(0), searchTrigger = _d[0], setSearchTrigger = _d[1];
|
|
23250
23836
|
var _e = useState(false), initialFiltersSet = _e[0], setInitialFiltersSet = _e[1];
|
|
23251
23837
|
var _f = useState([]); _f[0]; var setInitialFilters = _f[1];
|
|
23838
|
+
var _g = useState(false), filtersOpen = _g[0], setFiltersOpen = _g[1];
|
|
23839
|
+
var _h = useState(false), itineraryOpen = _h[0], setItineraryOpen = _h[1];
|
|
23840
|
+
var sortingOptions = [
|
|
23841
|
+
{ key: 'price-asc', label: translations.SRP.PRICE_ASC },
|
|
23842
|
+
{ key: 'price-desc', label: translations.SRP.PRICE_DESC },
|
|
23843
|
+
{ key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
|
|
23844
|
+
];
|
|
23845
|
+
var handleSortChange = function (newSortKey) {
|
|
23846
|
+
dispatch(setSortKey(newSortKey));
|
|
23847
|
+
};
|
|
23848
|
+
var buildSearchFromEntry = function (entry) {
|
|
23849
|
+
var _a;
|
|
23850
|
+
var from = new Date(Math.min.apply(Math, entry.items.map(function (i) { return i.startDate.getTime(); }))).toISOString();
|
|
23851
|
+
var to = new Date(Math.max.apply(Math, entry.items.map(function (i) { return i.endDate.getTime(); }))).toISOString();
|
|
23852
|
+
var rooms = entry.rooms;
|
|
23853
|
+
var hotelItem = entry.items.find(function (i) { return i.productType === 3; });
|
|
23854
|
+
var country = hotelItem ? hotelItem.countryId : null;
|
|
23855
|
+
var region = hotelItem ? hotelItem.regionId : null;
|
|
23856
|
+
var oord = hotelItem ? hotelItem.oordId : null;
|
|
23857
|
+
var city = hotelItem ? hotelItem.locationId : null;
|
|
23858
|
+
var hotel = hotelItem ? hotelItem.productCode : null;
|
|
23859
|
+
if (typeof window !== 'undefined') {
|
|
23860
|
+
window.scrollTo(0, 0);
|
|
23861
|
+
}
|
|
23862
|
+
var destinationId = null;
|
|
23863
|
+
var destinationIsCountry = false;
|
|
23864
|
+
var destinationIsRegion = false;
|
|
23865
|
+
var destinationIsOord = false;
|
|
23866
|
+
var destinationIsLocation = false;
|
|
23867
|
+
if (country) {
|
|
23868
|
+
destinationId = country;
|
|
23869
|
+
destinationIsCountry = true;
|
|
23870
|
+
}
|
|
23871
|
+
else if (region) {
|
|
23872
|
+
destinationId = region;
|
|
23873
|
+
destinationIsRegion = true;
|
|
23874
|
+
}
|
|
23875
|
+
else if (oord) {
|
|
23876
|
+
destinationId = oord;
|
|
23877
|
+
destinationIsOord = true;
|
|
23878
|
+
}
|
|
23879
|
+
else if (city) {
|
|
23880
|
+
destinationId = city;
|
|
23881
|
+
destinationIsLocation = true;
|
|
23882
|
+
}
|
|
23883
|
+
var searchRequest = {
|
|
23884
|
+
officeId: 1,
|
|
23885
|
+
payload: {
|
|
23886
|
+
catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
|
|
23887
|
+
serviceType: context.type === 'hotel' || context.type === 'hotel-flight' ? 3 : context.type === 'flight' ? 7 : context.type === 'roundTrip' ? 1 : 0,
|
|
23888
|
+
searchType: 0,
|
|
23889
|
+
destination: {
|
|
23890
|
+
id: Number(destinationId),
|
|
23891
|
+
isCountry: destinationIsCountry,
|
|
23892
|
+
isRegion: destinationIsRegion,
|
|
23893
|
+
isOord: destinationIsOord,
|
|
23894
|
+
isLocation: destinationIsLocation
|
|
23895
|
+
},
|
|
23896
|
+
rooms: getRequestRoomsFromEntry(rooms),
|
|
23897
|
+
fromDate: from,
|
|
23898
|
+
toDate: to,
|
|
23899
|
+
earliestFromOffset: 0,
|
|
23900
|
+
latestToOffset: 0,
|
|
23901
|
+
includeFlights: true,
|
|
23902
|
+
regimeCodes: entry.items.map(function (i) { return i.regimeCode; }) || [],
|
|
23903
|
+
useExactDates: true,
|
|
23904
|
+
onlyCachedResults: false,
|
|
23905
|
+
includeAllAllotments: true,
|
|
23906
|
+
productCodes: hotel ? [hotel] : []
|
|
23907
|
+
}
|
|
23908
|
+
};
|
|
23909
|
+
return searchRequest;
|
|
23910
|
+
};
|
|
23911
|
+
var buildSearchFromQueryParams = function (params) {
|
|
23912
|
+
var _a, _b, _c, _d, _e;
|
|
23913
|
+
var from = getDateFromParams(params, 'fromDate');
|
|
23914
|
+
var to = getDateFromParams(params, 'toDate');
|
|
23915
|
+
var rooms = getRoomsFromParams(params, 'rooms');
|
|
23916
|
+
var country = getNumberFromParams(params, 'country');
|
|
23917
|
+
var region = getNumberFromParams(params, 'region');
|
|
23918
|
+
var oord = getNumberFromParams(params, 'oord');
|
|
23919
|
+
var city = getNumberFromParams(params, 'location');
|
|
23920
|
+
var hotel = getNumberFromParams(params, 'hotel');
|
|
23921
|
+
var tagId = getNumberFromParams(params, 'tagId');
|
|
23922
|
+
// temp hardcoded params
|
|
23923
|
+
if (!from || !to) {
|
|
23924
|
+
from = '2026-04-07';
|
|
23925
|
+
to = '2026-04-13';
|
|
23926
|
+
}
|
|
23927
|
+
if (!country && !region && !oord && !city) {
|
|
23928
|
+
region = 1;
|
|
23929
|
+
}
|
|
23930
|
+
if (typeof window !== 'undefined') {
|
|
23931
|
+
window.scrollTo(0, 0);
|
|
23932
|
+
}
|
|
23933
|
+
var destinationId = null;
|
|
23934
|
+
var destinationIsCountry = false;
|
|
23935
|
+
var destinationIsRegion = false;
|
|
23936
|
+
var destinationIsOord = false;
|
|
23937
|
+
var destinationIsLocation = false;
|
|
23938
|
+
if (country) {
|
|
23939
|
+
destinationId = country;
|
|
23940
|
+
destinationIsCountry = true;
|
|
23941
|
+
}
|
|
23942
|
+
else if (region) {
|
|
23943
|
+
destinationId = region;
|
|
23944
|
+
destinationIsRegion = true;
|
|
23945
|
+
}
|
|
23946
|
+
else if (oord) {
|
|
23947
|
+
destinationId = oord;
|
|
23948
|
+
destinationIsOord = true;
|
|
23949
|
+
}
|
|
23950
|
+
else if (city) {
|
|
23951
|
+
destinationId = city;
|
|
23952
|
+
destinationIsLocation = true;
|
|
23953
|
+
}
|
|
23954
|
+
var searchRequest = {
|
|
23955
|
+
officeId: 1,
|
|
23956
|
+
payload: {
|
|
23957
|
+
catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
|
|
23958
|
+
serviceType: context.type === 'hotel' || context.type === 'hotel-flight' ? 3 : context.type === 'flight' ? 7 : context.type === 'roundTrip' ? 1 : 0,
|
|
23959
|
+
searchType: 0,
|
|
23960
|
+
destination: {
|
|
23961
|
+
id: Number(destinationId),
|
|
23962
|
+
isCountry: destinationIsCountry,
|
|
23963
|
+
isRegion: destinationIsRegion,
|
|
23964
|
+
isOord: destinationIsOord,
|
|
23965
|
+
isLocation: destinationIsLocation
|
|
23966
|
+
},
|
|
23967
|
+
rooms: getRequestRooms(rooms),
|
|
23968
|
+
fromDate: from,
|
|
23969
|
+
toDate: to,
|
|
23970
|
+
earliestFromOffset: 0,
|
|
23971
|
+
latestToOffset: 0,
|
|
23972
|
+
includeFlights: true,
|
|
23973
|
+
regimeCodes: ((_c = (_b = filters
|
|
23974
|
+
.find(function (f) { return f.property === 'regime'; })) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.filter(function (o) { return o.isChecked; }).flatMap(function (o) { return o.value.toString(); })) || [],
|
|
23975
|
+
minPrice: (_d = filters.find(function (f) { return f.property === 'price'; })) === null || _d === void 0 ? void 0 : _d.selectedMin,
|
|
23976
|
+
maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
|
|
23977
|
+
useExactDates: true,
|
|
23978
|
+
onlyCachedResults: false,
|
|
23979
|
+
includeAllAllotments: true,
|
|
23980
|
+
productIds: hotel ? [hotel] : [],
|
|
23981
|
+
productTagIds: tagId ? [tagId] : []
|
|
23982
|
+
}
|
|
23983
|
+
};
|
|
23984
|
+
return searchRequest;
|
|
23985
|
+
};
|
|
23986
|
+
var getRequestRoomsFromEntry = function (rooms) {
|
|
23987
|
+
if (!rooms) {
|
|
23988
|
+
// Fall back to 2 adults
|
|
23989
|
+
var room = { index: 0, pax: [] };
|
|
23990
|
+
range(0, 2).forEach(function () {
|
|
23991
|
+
room.pax.push({
|
|
23992
|
+
age: 30
|
|
23993
|
+
});
|
|
23994
|
+
});
|
|
23995
|
+
return [room];
|
|
23996
|
+
}
|
|
23997
|
+
var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
|
|
23998
|
+
var room = { index: i, pax: [] };
|
|
23999
|
+
x.travellers.forEach(function (p) {
|
|
24000
|
+
room.pax.push({
|
|
24001
|
+
age: p.age,
|
|
24002
|
+
dateOfBirth: p.dateOfBirth
|
|
24003
|
+
});
|
|
24004
|
+
});
|
|
24005
|
+
return room;
|
|
24006
|
+
});
|
|
24007
|
+
return requestRooms;
|
|
24008
|
+
};
|
|
24009
|
+
var getRequestRooms = function (rooms) {
|
|
24010
|
+
if (!rooms) {
|
|
24011
|
+
// Fall back to 2 adults
|
|
24012
|
+
var room = { index: 0, pax: [] };
|
|
24013
|
+
range(0, 2).forEach(function () {
|
|
24014
|
+
room.pax.push({
|
|
24015
|
+
age: 30
|
|
24016
|
+
});
|
|
24017
|
+
});
|
|
24018
|
+
return [room];
|
|
24019
|
+
}
|
|
24020
|
+
var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
|
|
24021
|
+
var room = { index: i, pax: [] };
|
|
24022
|
+
range(0, x.adults).forEach(function () {
|
|
24023
|
+
room.pax.push({
|
|
24024
|
+
age: 30
|
|
24025
|
+
});
|
|
24026
|
+
});
|
|
24027
|
+
x.childAges.forEach(function (x) {
|
|
24028
|
+
room.pax.push({
|
|
24029
|
+
age: x
|
|
24030
|
+
});
|
|
24031
|
+
});
|
|
24032
|
+
return room;
|
|
24033
|
+
});
|
|
24034
|
+
return requestRooms;
|
|
24035
|
+
};
|
|
24036
|
+
useEffect(function () {
|
|
24037
|
+
if (typeof document !== 'undefined') {
|
|
24038
|
+
document.body.classList.toggle('has-overlay', filtersOpen);
|
|
24039
|
+
}
|
|
24040
|
+
}, [filtersOpen]);
|
|
23252
24041
|
// seperate Search
|
|
23253
24042
|
useEffect(function () {
|
|
23254
24043
|
var runSearch = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
23255
|
-
var
|
|
23256
|
-
var _a
|
|
23257
|
-
return __generator(this, function (
|
|
23258
|
-
switch (
|
|
24044
|
+
var config, params, entryId, entryLight, searchRequest, packageSearchResults, enrichedFilters, matching, err_1;
|
|
24045
|
+
var _a;
|
|
24046
|
+
return __generator(this, function (_b) {
|
|
24047
|
+
switch (_b.label) {
|
|
23259
24048
|
case 0:
|
|
23260
24049
|
dispatch(setIsLoading(true));
|
|
23261
|
-
|
|
24050
|
+
_b.label = 1;
|
|
23262
24051
|
case 1:
|
|
23263
|
-
|
|
24052
|
+
_b.trys.push([1, 6, , 7]);
|
|
23264
24053
|
if (!context) {
|
|
23265
24054
|
return [2 /*return*/];
|
|
23266
24055
|
}
|
|
23267
|
-
params = new URLSearchParams(location.search);
|
|
23268
|
-
from = getDateFromParams(params, 'fromDate');
|
|
23269
|
-
to = getDateFromParams(params, 'toDate');
|
|
23270
|
-
rooms = getRoomsFromParams(params, 'rooms');
|
|
23271
|
-
country = getNumberFromParams(params, 'country');
|
|
23272
|
-
region = getNumberFromParams(params, 'region');
|
|
23273
|
-
oord = getNumberFromParams(params, 'oord');
|
|
23274
|
-
city = getNumberFromParams(params, 'location');
|
|
23275
|
-
hotel = getNumberFromParams(params, 'hotel');
|
|
23276
|
-
tagId = getNumberFromParams(params, 'tagId');
|
|
23277
|
-
// temp hardcoded params
|
|
23278
|
-
if (!from || !to) {
|
|
23279
|
-
from = '2026-04-07';
|
|
23280
|
-
to = '2026-04-13';
|
|
23281
|
-
}
|
|
23282
|
-
if (!country && !region && !oord && !city) {
|
|
23283
|
-
region = 1;
|
|
23284
|
-
}
|
|
23285
|
-
if (typeof window !== 'undefined') {
|
|
23286
|
-
window.scrollTo(0, 0);
|
|
23287
|
-
}
|
|
23288
|
-
destinationId = null;
|
|
23289
|
-
destinationIsCountry = false;
|
|
23290
|
-
destinationIsRegion = false;
|
|
23291
|
-
destinationIsOord = false;
|
|
23292
|
-
destinationIsLocation = false;
|
|
23293
|
-
if (country) {
|
|
23294
|
-
destinationId = country;
|
|
23295
|
-
destinationIsCountry = true;
|
|
23296
|
-
}
|
|
23297
|
-
else if (region) {
|
|
23298
|
-
destinationId = region;
|
|
23299
|
-
destinationIsRegion = true;
|
|
23300
|
-
}
|
|
23301
|
-
else if (oord) {
|
|
23302
|
-
destinationId = oord;
|
|
23303
|
-
destinationIsOord = true;
|
|
23304
|
-
}
|
|
23305
|
-
else if (city) {
|
|
23306
|
-
destinationId = city;
|
|
23307
|
-
destinationIsLocation = true;
|
|
23308
|
-
}
|
|
23309
|
-
searchRequest = {
|
|
23310
|
-
officeId: 1,
|
|
23311
|
-
payload: {
|
|
23312
|
-
catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
|
|
23313
|
-
serviceType: (context === null || context === void 0 ? void 0 : context.type) === 'hotel' || (context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight' ? 3 : (context === null || context === void 0 ? void 0 : context.type) === 'flight' ? 7 : (context === null || context === void 0 ? void 0 : context.type) === 'roundTrip' ? 1 : 0,
|
|
23314
|
-
searchType: 0,
|
|
23315
|
-
destination: {
|
|
23316
|
-
id: Number(destinationId),
|
|
23317
|
-
isCountry: destinationIsCountry,
|
|
23318
|
-
isRegion: destinationIsRegion,
|
|
23319
|
-
isOord: destinationIsOord,
|
|
23320
|
-
isLocation: destinationIsLocation
|
|
23321
|
-
},
|
|
23322
|
-
rooms: getRequestRooms(rooms),
|
|
23323
|
-
fromDate: from,
|
|
23324
|
-
toDate: to,
|
|
23325
|
-
earliestFromOffset: 0,
|
|
23326
|
-
latestToOffset: 0,
|
|
23327
|
-
includeFlights: true,
|
|
23328
|
-
regimeCodes: ((_c = (_b = filters
|
|
23329
|
-
.find(function (f) { return f.property === 'regime'; })) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.filter(function (o) { return o.isChecked; }).flatMap(function (o) { return o.value.toString(); })) || [],
|
|
23330
|
-
minPrice: (_d = filters.find(function (f) { return f.property === 'price'; })) === null || _d === void 0 ? void 0 : _d.selectedMin,
|
|
23331
|
-
maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
|
|
23332
|
-
useExactDates: true,
|
|
23333
|
-
onlyCachedResults: false,
|
|
23334
|
-
includeAllAllotments: true,
|
|
23335
|
-
productIds: hotel ? [hotel] : [],
|
|
23336
|
-
productTagIds: tagId ? [tagId] : []
|
|
23337
|
-
}
|
|
23338
|
-
};
|
|
23339
24056
|
config = {
|
|
23340
24057
|
host: context.tideConnection.host,
|
|
23341
24058
|
apiKey: context.tideConnection.apiKey
|
|
23342
24059
|
};
|
|
23343
|
-
|
|
24060
|
+
params = new URLSearchParams(location.search);
|
|
24061
|
+
entryId = getStringFromParams(params, 'entryId');
|
|
24062
|
+
entryLight = null;
|
|
24063
|
+
searchRequest = void 0;
|
|
24064
|
+
if (!entryId) return [3 /*break*/, 3];
|
|
24065
|
+
return [4 /*yield*/, build.getEntryLight(config, entryId)];
|
|
23344
24066
|
case 2:
|
|
23345
|
-
|
|
24067
|
+
entryLight = _b.sent();
|
|
24068
|
+
// populate itinerary store
|
|
24069
|
+
dispatch(setEntry({ entry: entryLight }));
|
|
24070
|
+
searchRequest = buildSearchFromEntry(entryLight);
|
|
24071
|
+
return [3 /*break*/, 4];
|
|
24072
|
+
case 3:
|
|
24073
|
+
searchRequest = buildSearchFromQueryParams(params);
|
|
24074
|
+
_b.label = 4;
|
|
24075
|
+
case 4: return [4 /*yield*/, build.search(config, searchRequest)];
|
|
24076
|
+
case 5:
|
|
24077
|
+
packageSearchResults = _b.sent();
|
|
23346
24078
|
console.log('Search results', packageSearchResults);
|
|
23347
24079
|
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters);
|
|
23348
24080
|
if (!initialFiltersSet) {
|
|
@@ -23352,25 +24084,35 @@ var SearchResultsContainer = function () {
|
|
|
23352
24084
|
}
|
|
23353
24085
|
dispatch(setResults({ results: packageSearchResults }));
|
|
23354
24086
|
if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
|
|
23355
|
-
|
|
24087
|
+
if (entryId) {
|
|
24088
|
+
matching = packageSearchResults.find(function (r) { return r.productId === (entry === null || entry === void 0 ? void 0 : entry.id); });
|
|
24089
|
+
if (matching) {
|
|
24090
|
+
dispatch(setSelectedHotel(matching.productId));
|
|
24091
|
+
}
|
|
24092
|
+
}
|
|
24093
|
+
else {
|
|
24094
|
+
dispatch(setSelectedHotel((_a = packageSearchResults[0]) === null || _a === void 0 ? void 0 : _a.productId));
|
|
24095
|
+
}
|
|
23356
24096
|
}
|
|
23357
24097
|
dispatch(setIsLoading(false));
|
|
23358
|
-
return [3 /*break*/,
|
|
23359
|
-
case
|
|
23360
|
-
err_1 =
|
|
24098
|
+
return [3 /*break*/, 7];
|
|
24099
|
+
case 6:
|
|
24100
|
+
err_1 = _b.sent();
|
|
23361
24101
|
console.error('Search failed', err_1);
|
|
23362
24102
|
dispatch(setIsLoading(false));
|
|
23363
|
-
return [3 /*break*/,
|
|
23364
|
-
case
|
|
24103
|
+
return [3 /*break*/, 7];
|
|
24104
|
+
case 7: return [2 /*return*/];
|
|
23365
24105
|
}
|
|
23366
24106
|
});
|
|
23367
24107
|
}); };
|
|
23368
|
-
|
|
24108
|
+
if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
|
|
24109
|
+
runSearch();
|
|
24110
|
+
}
|
|
23369
24111
|
}, [location.search, searchTrigger]);
|
|
23370
24112
|
// Seperate detailsCall
|
|
23371
24113
|
useEffect(function () {
|
|
23372
24114
|
var fetchPackageDetails = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
23373
|
-
var config, selectedItem, params,
|
|
24115
|
+
var config, selectedItem, params, entryId, requestRooms, rooms, detailsRequest, detailsResponse, detailsWLResponse, err_2;
|
|
23374
24116
|
var _a, _b;
|
|
23375
24117
|
return __generator(this, function (_c) {
|
|
23376
24118
|
switch (_c.label) {
|
|
@@ -23379,17 +24121,26 @@ var SearchResultsContainer = function () {
|
|
|
23379
24121
|
return [2 /*return*/];
|
|
23380
24122
|
_c.label = 1;
|
|
23381
24123
|
case 1:
|
|
23382
|
-
_c.trys.push([1,
|
|
24124
|
+
_c.trys.push([1, 6, , 7]);
|
|
23383
24125
|
config = {
|
|
23384
24126
|
host: context.tideConnection.host,
|
|
23385
24127
|
apiKey: context.tideConnection.apiKey
|
|
23386
24128
|
};
|
|
23387
24129
|
selectedItem = results.find(function (r) { return r.productId === selectedHotelId; });
|
|
23388
|
-
if (!selectedItem)
|
|
24130
|
+
if (!selectedItem) {
|
|
24131
|
+
// TODO: handle this case better, show an error message to the user
|
|
23389
24132
|
return [2 /*return*/];
|
|
24133
|
+
}
|
|
23390
24134
|
params = new URLSearchParams(location.search);
|
|
23391
|
-
|
|
23392
|
-
requestRooms =
|
|
24135
|
+
entryId = getStringFromParams(params, 'entryId');
|
|
24136
|
+
requestRooms = void 0;
|
|
24137
|
+
if (entry && entryId) {
|
|
24138
|
+
requestRooms = getRequestRoomsFromEntry(entry.rooms);
|
|
24139
|
+
}
|
|
24140
|
+
else {
|
|
24141
|
+
rooms = getRoomsFromParams(params, 'rooms');
|
|
24142
|
+
requestRooms = getRequestRooms(rooms);
|
|
24143
|
+
}
|
|
23393
24144
|
detailsRequest = {
|
|
23394
24145
|
officeId: 1,
|
|
23395
24146
|
payload: {
|
|
@@ -23409,65 +24160,32 @@ var SearchResultsContainer = function () {
|
|
|
23409
24160
|
postNights: null
|
|
23410
24161
|
}
|
|
23411
24162
|
};
|
|
23412
|
-
return [
|
|
24163
|
+
if (!(entry && entryId)) return [3 /*break*/, 3];
|
|
24164
|
+
requestRooms = getRequestRoomsFromEntry(entry.rooms);
|
|
24165
|
+
return [4 /*yield*/, build.details(config, detailsRequest)];
|
|
23413
24166
|
case 2:
|
|
24167
|
+
detailsResponse = _c.sent();
|
|
24168
|
+
console.log('Details:', detailsResponse);
|
|
24169
|
+
dispatch(setBookingPackageDetails({ details: detailsResponse === null || detailsResponse === void 0 ? void 0 : detailsResponse.payload }));
|
|
24170
|
+
return [3 /*break*/, 5];
|
|
24171
|
+
case 3: return [4 /*yield*/, build.detailsWL(config, detailsRequest)];
|
|
24172
|
+
case 4:
|
|
23414
24173
|
detailsWLResponse = _c.sent();
|
|
23415
24174
|
console.log('Details with entryLight:', detailsWLResponse);
|
|
23416
24175
|
dispatch(setBookingPackageDetails({ details: (_a = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _a === void 0 ? void 0 : _a.bookingPackage }));
|
|
23417
24176
|
dispatch(setEntry({ entry: (_b = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _b === void 0 ? void 0 : _b.entry }));
|
|
23418
|
-
|
|
23419
|
-
case 3
|
|
24177
|
+
_c.label = 5;
|
|
24178
|
+
case 5: return [3 /*break*/, 7];
|
|
24179
|
+
case 6:
|
|
23420
24180
|
err_2 = _c.sent();
|
|
23421
24181
|
console.error('Failed to fetch package details', err_2);
|
|
23422
|
-
return [3 /*break*/,
|
|
23423
|
-
case
|
|
24182
|
+
return [3 /*break*/, 7];
|
|
24183
|
+
case 7: return [2 /*return*/];
|
|
23424
24184
|
}
|
|
23425
24185
|
});
|
|
23426
24186
|
}); };
|
|
23427
24187
|
fetchPackageDetails();
|
|
23428
24188
|
}, [selectedHotelId]);
|
|
23429
|
-
var getRequestRooms = function (rooms) {
|
|
23430
|
-
if (!rooms) {
|
|
23431
|
-
// Fall back to 2 adults
|
|
23432
|
-
var room = { index: 0, pax: [] };
|
|
23433
|
-
range(0, 2).forEach(function () {
|
|
23434
|
-
room.pax.push({
|
|
23435
|
-
age: 30
|
|
23436
|
-
});
|
|
23437
|
-
});
|
|
23438
|
-
return [room];
|
|
23439
|
-
}
|
|
23440
|
-
var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
|
|
23441
|
-
var room = { index: i, pax: [] };
|
|
23442
|
-
range(0, x.adults).forEach(function () {
|
|
23443
|
-
room.pax.push({
|
|
23444
|
-
age: 30
|
|
23445
|
-
});
|
|
23446
|
-
});
|
|
23447
|
-
x.childAges.forEach(function (x) {
|
|
23448
|
-
room.pax.push({
|
|
23449
|
-
age: x
|
|
23450
|
-
});
|
|
23451
|
-
});
|
|
23452
|
-
return room;
|
|
23453
|
-
});
|
|
23454
|
-
return requestRooms;
|
|
23455
|
-
};
|
|
23456
|
-
var _g = useState(false), filtersOpen = _g[0], setFiltersOpen = _g[1];
|
|
23457
|
-
var _h = useState(false), itineraryOpen = _h[0], setItineraryOpen = _h[1];
|
|
23458
|
-
var handleSortChange = function (newSortKey) {
|
|
23459
|
-
dispatch(setSortKey(newSortKey));
|
|
23460
|
-
};
|
|
23461
|
-
useEffect(function () {
|
|
23462
|
-
if (typeof document !== 'undefined') {
|
|
23463
|
-
document.body.classList.toggle('has-overlay', filtersOpen);
|
|
23464
|
-
}
|
|
23465
|
-
}, [filtersOpen]);
|
|
23466
|
-
var sortingOptions = [
|
|
23467
|
-
{ key: 'price-asc', label: translations.SRP.PRICE_ASC },
|
|
23468
|
-
{ key: 'price-desc', label: translations.SRP.PRICE_DESC },
|
|
23469
|
-
{ key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
|
|
23470
|
-
];
|
|
23471
24189
|
return (React.createElement("div", { id: "tide-booking", className: "search__bg" }, context && (React.createElement("div", { className: "search" },
|
|
23472
24190
|
React.createElement("div", { className: "search__container" },
|
|
23473
24191
|
context.showFilters && (React.createElement(Filters, { filters: filters, isOpen: filtersOpen, handleSetIsOpen: function () { return setFiltersOpen(!filtersOpen); }, handleApplyFilters: function () { return setSearchTrigger(function (prev) { return prev + 1; }); }, isLoading: isLoading })),
|
|
@@ -23490,9 +24208,11 @@ var SearchResultsContainer = function () {
|
|
|
23490
24208
|
React.createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: translations.SRP.SORTBY, placeholder: translations.SRP.SORTBY, classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
|
|
23491
24209
|
React.createElement("div", { className: "search__results__wrapper" },
|
|
23492
24210
|
context.showTabViews && React.createElement(TabViews, null),
|
|
23493
|
-
context.
|
|
24211
|
+
context.showRoundTripResults && context.showMockup && React.createElement(RoundTripResults, null),
|
|
24212
|
+
context.showFlightResults && (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) && (React.createElement(FlightResults, { flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights, isDeparture: true })),
|
|
23494
24213
|
context.showHotelAccommodationResults && React.createElement(HotelAccommodationResults, { isLoading: isLoading, context: context }),
|
|
23495
|
-
context.
|
|
24214
|
+
context.showFlightAccommodationResults && context.showMockup && React.createElement(FlightAccommodationResults, null),
|
|
24215
|
+
context.showFlightResults && (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) && (React.createElement(FlightResults, { flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights, isDeparture: false })))))))));
|
|
23496
24216
|
};
|
|
23497
24217
|
|
|
23498
24218
|
var createSearchResultsStore = function () {
|