@qite/tide-booking-component 1.4.36 → 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.
@@ -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
- // const handleLocationChange = (val: string) => {
21561
- // setInputValue(val);
21562
- // hasTypedRef.current = true;
21563
- // if (val.trim() !== '' && activeSearchFieldProps) {
21564
- // const filtered = activeSearchFieldProps.options.filter((loc) => loc.value.toLowerCase().includes(val.toLowerCase())).map((loc) => loc.value);
21565
- // setSearchResultsLocal(filtered);
21566
- // } else {
21567
- // setSearchResultsLocal([]);
21568
- // }
21569
- // };
21570
- var handleLocationChange = function (val) {
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
- // const handleLocationSelect = (val: string) => {
21582
- // if (activeSearchFieldProps) {
21583
- // const { fieldKey } = activeSearchFieldProps;
21584
- // dispatch(setFieldValue({ fieldKey, value: val }));
21585
- // dispatch(setSearchResultsAction([]));
21586
- // dispatch(setActiveSearchField(null));
21587
- // }
21588
- // dispatch(closeMobileFilter());
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, onChange: function (e) { return handleLocationChange(e.target.value); }, className: "qsm__input qsm__input--modal qsm__from-to u-ps-2", placeholder: activeSearchFieldProps.placeholder }),
21650
- React.createElement(SearchInput, { onChange: handleLocationChange, searchResults: searchResultsLocal, onOptionSelect: handleLocationSelect, highlightTarget: inputValue, label: activeSearchFieldProps.label }))),
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, options]);
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;
@@ -23080,6 +23130,9 @@ var calculateNights = function (fromDate, toDate, translations) {
23080
23130
  var HotelAccommodationResults = function (_a) {
23081
23131
  var _b, _c;
23082
23132
  var isLoading = _a.isLoading, context = _a.context;
23133
+ if (context.showMockup) {
23134
+ return showMocukups(context);
23135
+ }
23083
23136
  var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
23084
23137
  if (isLoading) {
23085
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));
@@ -23113,6 +23166,191 @@ var HotelAccommodationResults = function (_a) {
23113
23166
  " ",
23114
23167
  React.createElement("strong", null, translations.SRP.ACCOMMODATION)))),
23115
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"))))));
23116
23354
  };
23117
23355
 
23118
23356
  var enrichFiltersWithResults = function (results, filters) {
@@ -23161,7 +23399,7 @@ var FlightResults = function (_a) {
23161
23399
  translations.SRP.SELECT,
23162
23400
  " ",
23163
23401
  React.createElement("strong", null, isDeparture ? translations.SRP.DEPARTURE : translations.SRP.RETURN)))),
23164
- 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) {
23165
23403
  var lines = flight.flightMetaData.flightLines;
23166
23404
  var firstLine = lines[0];
23167
23405
  var lastLine = lines[lines.length - 1];
@@ -23235,113 +23473,608 @@ var FlightResults = function (_a) {
23235
23473
  React.createElement("strong", null, formatDuration(parseISO(nextLine.departureDate).getTime() - parseISO(line.arrivalDate).getTime()))))))));
23236
23474
  })))),
23237
23475
  React.createElement("div", { className: "flight__rate" })))));
23238
- }))));
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" }))))))))));
23239
23826
  };
23240
23827
 
23241
23828
  var SearchResultsContainer = function () {
23242
23829
  var _a, _b;
23243
- var isMobile = useMediaQuery('(max-width: 1200px)');
23244
23830
  var dispatch = useDispatch();
23245
23831
  var context = useContext(SearchResultsConfigurationContext);
23246
23832
  var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
23247
- 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)');
23248
23835
  var _d = useState(0), searchTrigger = _d[0], setSearchTrigger = _d[1];
23249
23836
  var _e = useState(false), initialFiltersSet = _e[0], setInitialFiltersSet = _e[1];
23250
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]);
23251
24041
  // seperate Search
23252
24042
  useEffect(function () {
23253
24043
  var runSearch = function () { return __awaiter(void 0, void 0, void 0, function () {
23254
- var params, from, to, rooms, country, region, oord, city, hotel, tagId, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
23255
- var _a, _b, _c, _d, _e;
23256
- return __generator(this, function (_f) {
23257
- switch (_f.label) {
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) {
23258
24048
  case 0:
23259
24049
  dispatch(setIsLoading(true));
23260
- _f.label = 1;
24050
+ _b.label = 1;
23261
24051
  case 1:
23262
- _f.trys.push([1, 3, , 4]);
24052
+ _b.trys.push([1, 6, , 7]);
23263
24053
  if (!context) {
23264
24054
  return [2 /*return*/];
23265
24055
  }
23266
- params = new URLSearchParams(location.search);
23267
- from = getDateFromParams(params, 'fromDate');
23268
- to = getDateFromParams(params, 'toDate');
23269
- rooms = getRoomsFromParams(params, 'rooms');
23270
- country = getNumberFromParams(params, 'country');
23271
- region = getNumberFromParams(params, 'region');
23272
- oord = getNumberFromParams(params, 'oord');
23273
- city = getNumberFromParams(params, 'location');
23274
- hotel = getNumberFromParams(params, 'hotel');
23275
- tagId = getNumberFromParams(params, 'tagId');
23276
- // temp hardcoded params
23277
- if (!from || !to) {
23278
- from = '2026-04-07';
23279
- to = '2026-04-13';
23280
- }
23281
- if (!country && !region && !oord && !city) {
23282
- region = 1;
23283
- }
23284
- if (typeof window !== 'undefined') {
23285
- window.scrollTo(0, 0);
23286
- }
23287
- destinationId = null;
23288
- destinationIsCountry = false;
23289
- destinationIsRegion = false;
23290
- destinationIsOord = false;
23291
- destinationIsLocation = false;
23292
- if (country) {
23293
- destinationId = country;
23294
- destinationIsCountry = true;
23295
- }
23296
- else if (region) {
23297
- destinationId = region;
23298
- destinationIsRegion = true;
23299
- }
23300
- else if (oord) {
23301
- destinationId = oord;
23302
- destinationIsOord = true;
23303
- }
23304
- else if (city) {
23305
- destinationId = city;
23306
- destinationIsLocation = true;
23307
- }
23308
- searchRequest = {
23309
- officeId: 1,
23310
- payload: {
23311
- catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
23312
- 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,
23313
- searchType: 0,
23314
- destination: {
23315
- id: Number(destinationId),
23316
- isCountry: destinationIsCountry,
23317
- isRegion: destinationIsRegion,
23318
- isOord: destinationIsOord,
23319
- isLocation: destinationIsLocation
23320
- },
23321
- rooms: getRequestRooms(rooms),
23322
- fromDate: from,
23323
- toDate: to,
23324
- earliestFromOffset: 0,
23325
- latestToOffset: 0,
23326
- includeFlights: true,
23327
- regimeCodes: ((_c = (_b = filters
23328
- .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(); })) || [],
23329
- minPrice: (_d = filters.find(function (f) { return f.property === 'price'; })) === null || _d === void 0 ? void 0 : _d.selectedMin,
23330
- maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
23331
- useExactDates: true,
23332
- onlyCachedResults: false,
23333
- includeAllAllotments: true,
23334
- productIds: hotel ? [hotel] : [],
23335
- productTagIds: tagId ? [tagId] : []
23336
- }
23337
- };
23338
24056
  config = {
23339
24057
  host: context.tideConnection.host,
23340
24058
  apiKey: context.tideConnection.apiKey
23341
24059
  };
23342
- return [4 /*yield*/, build.search(config, searchRequest)];
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)];
23343
24066
  case 2:
23344
- packageSearchResults = _f.sent();
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();
23345
24078
  console.log('Search results', packageSearchResults);
23346
24079
  enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters);
23347
24080
  if (!initialFiltersSet) {
@@ -23351,25 +24084,35 @@ var SearchResultsContainer = function () {
23351
24084
  }
23352
24085
  dispatch(setResults({ results: packageSearchResults }));
23353
24086
  if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
23354
- dispatch(setSelectedHotel(packageSearchResults[0].productId));
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
+ }
23355
24096
  }
23356
24097
  dispatch(setIsLoading(false));
23357
- return [3 /*break*/, 4];
23358
- case 3:
23359
- err_1 = _f.sent();
24098
+ return [3 /*break*/, 7];
24099
+ case 6:
24100
+ err_1 = _b.sent();
23360
24101
  console.error('Search failed', err_1);
23361
24102
  dispatch(setIsLoading(false));
23362
- return [3 /*break*/, 4];
23363
- case 4: return [2 /*return*/];
24103
+ return [3 /*break*/, 7];
24104
+ case 7: return [2 /*return*/];
23364
24105
  }
23365
24106
  });
23366
24107
  }); };
23367
- runSearch();
24108
+ if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
24109
+ runSearch();
24110
+ }
23368
24111
  }, [location.search, searchTrigger]);
23369
24112
  // Seperate detailsCall
23370
24113
  useEffect(function () {
23371
24114
  var fetchPackageDetails = function () { return __awaiter(void 0, void 0, void 0, function () {
23372
- var config, selectedItem, params, rooms, requestRooms, detailsRequest, detailsWLResponse, err_2;
24115
+ var config, selectedItem, params, entryId, requestRooms, rooms, detailsRequest, detailsResponse, detailsWLResponse, err_2;
23373
24116
  var _a, _b;
23374
24117
  return __generator(this, function (_c) {
23375
24118
  switch (_c.label) {
@@ -23378,17 +24121,26 @@ var SearchResultsContainer = function () {
23378
24121
  return [2 /*return*/];
23379
24122
  _c.label = 1;
23380
24123
  case 1:
23381
- _c.trys.push([1, 3, , 4]);
24124
+ _c.trys.push([1, 6, , 7]);
23382
24125
  config = {
23383
24126
  host: context.tideConnection.host,
23384
24127
  apiKey: context.tideConnection.apiKey
23385
24128
  };
23386
24129
  selectedItem = results.find(function (r) { return r.productId === selectedHotelId; });
23387
- if (!selectedItem)
24130
+ if (!selectedItem) {
24131
+ // TODO: handle this case better, show an error message to the user
23388
24132
  return [2 /*return*/];
24133
+ }
23389
24134
  params = new URLSearchParams(location.search);
23390
- rooms = getRoomsFromParams(params, 'rooms');
23391
- requestRooms = getRequestRooms(rooms);
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
+ }
23392
24144
  detailsRequest = {
23393
24145
  officeId: 1,
23394
24146
  payload: {
@@ -23408,65 +24160,32 @@ var SearchResultsContainer = function () {
23408
24160
  postNights: null
23409
24161
  }
23410
24162
  };
23411
- return [4 /*yield*/, build.detailsWL(config, detailsRequest)];
24163
+ if (!(entry && entryId)) return [3 /*break*/, 3];
24164
+ requestRooms = getRequestRoomsFromEntry(entry.rooms);
24165
+ return [4 /*yield*/, build.details(config, detailsRequest)];
23412
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:
23413
24173
  detailsWLResponse = _c.sent();
23414
24174
  console.log('Details with entryLight:', detailsWLResponse);
23415
24175
  dispatch(setBookingPackageDetails({ details: (_a = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _a === void 0 ? void 0 : _a.bookingPackage }));
23416
24176
  dispatch(setEntry({ entry: (_b = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _b === void 0 ? void 0 : _b.entry }));
23417
- return [3 /*break*/, 4];
23418
- case 3:
24177
+ _c.label = 5;
24178
+ case 5: return [3 /*break*/, 7];
24179
+ case 6:
23419
24180
  err_2 = _c.sent();
23420
24181
  console.error('Failed to fetch package details', err_2);
23421
- return [3 /*break*/, 4];
23422
- case 4: return [2 /*return*/];
24182
+ return [3 /*break*/, 7];
24183
+ case 7: return [2 /*return*/];
23423
24184
  }
23424
24185
  });
23425
24186
  }); };
23426
24187
  fetchPackageDetails();
23427
24188
  }, [selectedHotelId]);
23428
- var getRequestRooms = function (rooms) {
23429
- if (!rooms) {
23430
- // Fall back to 2 adults
23431
- var room = { index: 0, pax: [] };
23432
- range(0, 2).forEach(function () {
23433
- room.pax.push({
23434
- age: 30
23435
- });
23436
- });
23437
- return [room];
23438
- }
23439
- var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
23440
- var room = { index: i, pax: [] };
23441
- range(0, x.adults).forEach(function () {
23442
- room.pax.push({
23443
- age: 30
23444
- });
23445
- });
23446
- x.childAges.forEach(function (x) {
23447
- room.pax.push({
23448
- age: x
23449
- });
23450
- });
23451
- return room;
23452
- });
23453
- return requestRooms;
23454
- };
23455
- var _g = useState(false), filtersOpen = _g[0], setFiltersOpen = _g[1];
23456
- var _h = useState(false), itineraryOpen = _h[0], setItineraryOpen = _h[1];
23457
- var handleSortChange = function (newSortKey) {
23458
- dispatch(setSortKey(newSortKey));
23459
- };
23460
- useEffect(function () {
23461
- if (typeof document !== 'undefined') {
23462
- document.body.classList.toggle('has-overlay', filtersOpen);
23463
- }
23464
- }, [filtersOpen]);
23465
- var sortingOptions = [
23466
- { key: 'price-asc', label: translations.SRP.PRICE_ASC },
23467
- { key: 'price-desc', label: translations.SRP.PRICE_DESC },
23468
- { key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
23469
- ];
23470
24189
  return (React.createElement("div", { id: "tide-booking", className: "search__bg" }, context && (React.createElement("div", { className: "search" },
23471
24190
  React.createElement("div", { className: "search__container" },
23472
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 })),
@@ -23489,9 +24208,11 @@ var SearchResultsContainer = function () {
23489
24208
  React.createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: translations.SRP.SORTBY, placeholder: translations.SRP.SORTBY, classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
23490
24209
  React.createElement("div", { className: "search__results__wrapper" },
23491
24210
  context.showTabViews && React.createElement(TabViews, null),
23492
- context.showFlightResults && (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) && (React.createElement(FlightResults, { flights: bookingPackageDetails.outwardFlights, isDeparture: true })),
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 })),
23493
24213
  context.showHotelAccommodationResults && React.createElement(HotelAccommodationResults, { isLoading: isLoading, context: context }),
23494
- context.showFlightResults && (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) && (React.createElement(FlightResults, { flights: bookingPackageDetails.returnFlights, isDeparture: false })))))))));
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 })))))))));
23495
24216
  };
23496
24217
 
23497
24218
  var createSearchResultsStore = function () {