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