@qite/tide-booking-component 1.4.35 → 1.4.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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;
@@ -22855,14 +22905,13 @@ var Itinerary = function (_a) {
22855
22905
  React.createElement("div", { className: "search__filter-row-flex-title" },
22856
22906
  React.createElement("p", { className: "search__filter-small-title" }, translations.SRP.ITINERARY_TITLE))),
22857
22907
  isLoading ? (React.createElement(Spinner, null)) : (React.createElement(React.Fragment, null,
22858
- React.createElement("div", { className: "search__filter-group" },
22859
- React.createElement("div", { className: "search__filter__image__wrapper" },
22860
- React.createElement("img", { src: "", alt: "", className: "search__filter__image" }),
22861
- (entry === null || entry === void 0 ? void 0 : entry.number) && (React.createElement("span", { className: "search__filter__image__text" },
22862
- translations.SRP.DOSSIER_NUMBER,
22863
- ": ", entry === null || entry === void 0 ? void 0 :
22864
- entry.number)),
22865
- React.createElement("h4", { className: "search__filter__image__title" }, (location || '') + (location && country ? ' - ' : '') + (country || '')))),
22908
+ React.createElement("div", { className: "search__filter-group" }, (context === null || context === void 0 ? void 0 : context.destinationImage) && (React.createElement("div", { className: "search__filter__image__wrapper" },
22909
+ React.createElement("img", { src: context.destinationImage.url, alt: context.destinationImage.alt, className: "search__filter__image" }),
22910
+ (entry === null || entry === void 0 ? void 0 : entry.number) && (React.createElement("span", { className: "search__filter__image__text" },
22911
+ translations.SRP.DOSSIER_NUMBER,
22912
+ ": ", entry === null || entry === void 0 ? void 0 :
22913
+ entry.number)),
22914
+ React.createElement("h4", { className: "search__filter__image__title" }, (location || '') + (location && country ? ' - ' : '') + (country || ''))))),
22866
22915
  React.createElement("div", { className: "search__filter__prices" },
22867
22916
  React.createElement("div", { className: "search__filter__prices__wrapper" },
22868
22917
  React.createElement("h3", { className: "search__filter__prices--amount" }, formatPrice(((entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0) / ((entry === null || entry === void 0 ? void 0 : entry.numberOfPax) || 1), (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR')),
@@ -23081,6 +23130,9 @@ var calculateNights = function (fromDate, toDate, translations) {
23081
23130
  var HotelAccommodationResults = function (_a) {
23082
23131
  var _b, _c;
23083
23132
  var isLoading = _a.isLoading, context = _a.context;
23133
+ if (context.showMockup) {
23134
+ return showMocukups(context);
23135
+ }
23084
23136
  var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
23085
23137
  if (isLoading) {
23086
23138
  return React.createElement(React.Fragment, null, (_c = context === null || context === void 0 ? void 0 : context.customSpinner) !== null && _c !== void 0 ? _c : React.createElement(Spinner, null));
@@ -23114,6 +23166,191 @@ var HotelAccommodationResults = function (_a) {
23114
23166
  " ",
23115
23167
  React.createElement("strong", null, translations.SRP.ACCOMMODATION)))),
23116
23168
  renderResults(results, context, cmsMap, activeTab, translations)));
23169
+ };
23170
+ var showMocukups = function (context) {
23171
+ var mockedHotelResults = [
23172
+ {
23173
+ type: 'hotel',
23174
+ id: 2,
23175
+ title: 'HTFSWILLCARL',
23176
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
23177
+ description: '2 persoons kamer',
23178
+ location: 'Tenerif, Spanje',
23179
+ price: '$2244',
23180
+ ctaText: 'Bekijk details',
23181
+ days: '7 nights',
23182
+ flightInfo: null,
23183
+ accommodation: 'Hotel XYZ',
23184
+ regime: 'All-inclusive',
23185
+ stars: 5
23186
+ },
23187
+ {
23188
+ type: 'hotel',
23189
+ id: 3,
23190
+ title: 'HTFSSOFTROCK',
23191
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
23192
+ description: '3 persoons kamer',
23193
+ location: 'Tenerif, Spanje',
23194
+ price: '$2244',
23195
+ ctaText: 'Bekijk details',
23196
+ days: '7 nights',
23197
+ flightInfo: null,
23198
+ accommodation: 'Hotel ABC',
23199
+ regime: 'Half-board',
23200
+ stars: 4
23201
+ },
23202
+ {
23203
+ type: 'hotel',
23204
+ id: 4,
23205
+ title: 'HTFSROYGAR',
23206
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
23207
+ description: '4 persoons kamer',
23208
+ location: 'Tenerif, Spanje',
23209
+ price: '$2496',
23210
+ ctaText: 'Bekijk details',
23211
+ days: '7 nights',
23212
+ flightInfo: null,
23213
+ accommodation: 'Hotel DEF',
23214
+ regime: 'Full-board',
23215
+ stars: 5
23216
+ },
23217
+ {
23218
+ type: 'hotel',
23219
+ id: 5,
23220
+ title: 'HTFSCONBEL',
23221
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
23222
+ description: '5 persoons kamer',
23223
+ location: 'Tenerif, Spanje',
23224
+ price: '$6784.8',
23225
+ ctaText: 'Bekijk details',
23226
+ days: '7 nights',
23227
+ flightInfo: null,
23228
+ accommodation: 'Hotel GHI',
23229
+ regime: 'All-inclusive',
23230
+ stars: 5
23231
+ }
23232
+ ];
23233
+ return React.createElement(React.Fragment, null, renderMockupResults(mockedHotelResults, context));
23234
+ };
23235
+ var renderMockupResults = function (results, context) {
23236
+ var renderedResults = results.map(function (result, index) {
23237
+ if ((context === null || context === void 0 ? void 0 : context.showCustomCards) && (context === null || context === void 0 ? void 0 : context.customCardRenderer)) {
23238
+ return (React.createElement("div", { key: "".concat(result.id, "-").concat(index), className: "search__result-card" }, context.customCardRenderer(result)));
23239
+ }
23240
+ return React.createElement(HotelCard, { key: "".concat(result.id, "-").concat(index), result: result });
23241
+ });
23242
+ return React.createElement("div", { className: "search__results__cards" }, renderedResults);
23243
+ };
23244
+
23245
+ var RoundTripResults = function () {
23246
+ return (React.createElement("div", { className: "search__results__cards search__results__cards--list" },
23247
+ React.createElement("div", { className: "search__result-card" },
23248
+ React.createElement("div", { className: "search__result-card__allotment" },
23249
+ React.createElement("div", { className: "search__result-card__allotment__title__wrapper" },
23250
+ React.createElement("h3", { className: "search__result-card__allotment__title" },
23251
+ "Rondreis Noord-India: Rajasthan",
23252
+ React.createElement("span", { className: "search__result-card__allotment__badge" },
23253
+ React.createElement(Icon, { name: "ui-circle-check", width: 14, height: 14 }),
23254
+ "GAR")),
23255
+ React.createElement("div", { className: "search__result-card__allotment__container" },
23256
+ React.createElement("div", { className: "search__result-card__allotment__header" },
23257
+ React.createElement("div", { className: "search__result-card__allotment__wrapper" },
23258
+ React.createElement("div", { className: "search__result-card__allotment__date" },
23259
+ React.createElement(Icon, { name: "ui-plane", height: 16 }),
23260
+ React.createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
23261
+ React.createElement("div", { className: "search__result-card__allotment__info" },
23262
+ React.createElement("span", null,
23263
+ React.createElement(Icon, { name: "ui-calendar", height: 16 })),
23264
+ ' ',
23265
+ "8 dagen -",
23266
+ ' ',
23267
+ React.createElement("span", null,
23268
+ React.createElement(Icon, { name: "ui-moon", height: 16 })),
23269
+ "7 nachten"))),
23270
+ React.createElement("div", { className: "search__result-card__allotment__info" },
23271
+ React.createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
23272
+ React.createElement("div", { className: "search__result-card__allotment__persons" },
23273
+ React.createElement("div", { className: "search__result-card__allotment__person" },
23274
+ React.createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
23275
+ React.createElement("span", null, "2 p.")),
23276
+ React.createElement("div", { className: "search__result-card__allotment__person" },
23277
+ React.createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
23278
+ React.createElement("span", null, "3 p.")))))),
23279
+ React.createElement("div", { className: "search__result-card__allotment__footer" },
23280
+ React.createElement("div", { className: "search__result-card__allotment__price__wrapper" },
23281
+ React.createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
23282
+ React.createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
23283
+ React.createElement("button", { className: "cta cta--select" }, "Bekijk reis")))),
23284
+ React.createElement("div", { className: "search__result-card" },
23285
+ React.createElement("div", { className: "search__result-card__allotment" },
23286
+ React.createElement("div", { className: "search__result-card__allotment__title__wrapper" },
23287
+ React.createElement("h3", { className: "search__result-card__allotment__title" },
23288
+ "Rondreis Thailand",
23289
+ React.createElement("span", { className: "search__result-card__allotment__badge search__result-card__allotment__badge--secondary" },
23290
+ React.createElement(Icon, { name: "ui-circle-half", width: 14, height: 14 }),
23291
+ "BIJNA GAR")),
23292
+ React.createElement("div", { className: "search__result-card__allotment__container" },
23293
+ React.createElement("div", { className: "search__result-card__allotment__header" },
23294
+ React.createElement("div", { className: "search__result-card__allotment__wrapper" },
23295
+ React.createElement("div", { className: "search__result-card__allotment__date" },
23296
+ React.createElement(Icon, { name: "ui-plane", height: 16 }),
23297
+ React.createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
23298
+ React.createElement("div", { className: "search__result-card__allotment__info" },
23299
+ React.createElement("span", null,
23300
+ React.createElement(Icon, { name: "ui-calendar", height: 16 })),
23301
+ ' ',
23302
+ "8 dagen -",
23303
+ ' ',
23304
+ React.createElement("span", null,
23305
+ React.createElement(Icon, { name: "ui-moon", height: 16 })),
23306
+ "7 nachten"))),
23307
+ React.createElement("div", { className: "search__result-card__allotment__info" },
23308
+ React.createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
23309
+ React.createElement("div", { className: "search__result-card__allotment__persons" },
23310
+ React.createElement("div", { className: "search__result-card__allotment__person" },
23311
+ React.createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
23312
+ React.createElement("span", null, "2 p.")),
23313
+ React.createElement("div", { className: "search__result-card__allotment__person" },
23314
+ React.createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
23315
+ React.createElement("span", null, "3 p.")))))),
23316
+ React.createElement("div", { className: "search__result-card__allotment__footer" },
23317
+ React.createElement("div", { className: "search__result-card__allotment__price__wrapper" },
23318
+ React.createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
23319
+ React.createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
23320
+ React.createElement("button", { className: "cta cta--select" }, "Bekijk reis")))),
23321
+ React.createElement("div", { className: "search__result-card" },
23322
+ React.createElement("div", { className: "search__result-card__allotment" },
23323
+ React.createElement("div", { className: "search__result-card__allotment__title__wrapper" },
23324
+ React.createElement("h3", { className: "search__result-card__allotment__title" }, "Rondreis Timboektoe"),
23325
+ React.createElement("div", { className: "search__result-card__allotment__container" },
23326
+ React.createElement("div", { className: "search__result-card__allotment__header" },
23327
+ React.createElement("div", { className: "search__result-card__allotment__wrapper" },
23328
+ React.createElement("div", { className: "search__result-card__allotment__date" },
23329
+ React.createElement(Icon, { name: "ui-plane", height: 16 }),
23330
+ React.createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
23331
+ React.createElement("div", { className: "search__result-card__allotment__info" },
23332
+ React.createElement("span", null,
23333
+ React.createElement(Icon, { name: "ui-calendar", height: 16 })),
23334
+ ' ',
23335
+ "8 dagen -",
23336
+ ' ',
23337
+ React.createElement("span", null,
23338
+ React.createElement(Icon, { name: "ui-moon", height: 16 })),
23339
+ "7 nachten"))),
23340
+ React.createElement("div", { className: "search__result-card__allotment__info" },
23341
+ React.createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
23342
+ React.createElement("div", { className: "search__result-card__allotment__persons" },
23343
+ React.createElement("div", { className: "search__result-card__allotment__person" },
23344
+ React.createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
23345
+ React.createElement("span", null, "2 p.")),
23346
+ React.createElement("div", { className: "search__result-card__allotment__person" },
23347
+ React.createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
23348
+ React.createElement("span", null, "3 p.")))))),
23349
+ React.createElement("div", { className: "search__result-card__allotment__footer" },
23350
+ React.createElement("div", { className: "search__result-card__allotment__price__wrapper" },
23351
+ React.createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
23352
+ React.createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
23353
+ React.createElement("button", { className: "cta cta--select" }, "Bekijk reis"))))));
23117
23354
  };
23118
23355
 
23119
23356
  var enrichFiltersWithResults = function (results, filters) {
@@ -23162,7 +23399,7 @@ var FlightResults = function (_a) {
23162
23399
  translations.SRP.SELECT,
23163
23400
  " ",
23164
23401
  React.createElement("strong", null, isDeparture ? translations.SRP.DEPARTURE : translations.SRP.RETURN)))),
23165
- React.createElement("div", { className: "search__results__cards search__results__cards--extended" }, flights.map(function (flight, index) {
23402
+ flights && flights.length > 0 && (React.createElement("div", { className: "search__results__cards search__results__cards--extended" }, flights.map(function (flight, index) {
23166
23403
  var lines = flight.flightMetaData.flightLines;
23167
23404
  var firstLine = lines[0];
23168
23405
  var lastLine = lines[lines.length - 1];
@@ -23236,113 +23473,608 @@ var FlightResults = function (_a) {
23236
23473
  React.createElement("strong", null, formatDuration(parseISO(nextLine.departureDate).getTime() - parseISO(line.arrivalDate).getTime()))))))));
23237
23474
  })))),
23238
23475
  React.createElement("div", { className: "flight__rate" })))));
23239
- }))));
23476
+ })))));
23477
+ };
23478
+
23479
+ var FlightAccommodationResults = function () {
23480
+ return (React.createElement(React.Fragment, null,
23481
+ React.createElement("div", { className: "search__results__label search__results__label--secondary" },
23482
+ React.createElement("div", { className: "search__results__label__date" },
23483
+ React.createElement("p", { className: "search__results__label__date-date" }, "19"),
23484
+ React.createElement("p", null, "Jan")),
23485
+ React.createElement("div", { className: "search__results__label__text" },
23486
+ React.createElement("h3", null,
23487
+ "Select ",
23488
+ React.createElement("strong", null, "Accomodation")))),
23489
+ React.createElement("div", { className: "search__results__cards search__results__cards--extended" },
23490
+ React.createElement("div", { key: 1, className: "search__result-card" },
23491
+ React.createElement("div", { className: "flight" },
23492
+ React.createElement("div", { className: "flight__option" },
23493
+ React.createElement("div", { className: "flight__content" },
23494
+ React.createElement("div", { className: "flight__flights" },
23495
+ React.createElement("div", { className: "flight__flight" },
23496
+ React.createElement("div", { className: "flight__flight__header" },
23497
+ React.createElement("div", { className: "flight__status__container" }),
23498
+ React.createElement("div", { className: "flight__price" },
23499
+ React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
23500
+ React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
23501
+ React.createElement("div", { className: "flight__flight" },
23502
+ React.createElement("div", { className: "flight__flight__container" },
23503
+ React.createElement("div", { className: "flight__flight__wrapper" },
23504
+ React.createElement("div", { className: "flight__logo__wrapper" },
23505
+ React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
23506
+ React.createElement("span", null, "Example Airline")),
23507
+ React.createElement("div", { className: "flight__info" },
23508
+ React.createElement("div", { className: "flight__info__times" },
23509
+ React.createElement("strong", null, "08:30 JFK"),
23510
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23511
+ React.createElement("div", { className: "flight__info__duration" },
23512
+ React.createElement("p", null, "7h 45m"),
23513
+ React.createElement("div", { className: "flight__info__duration__stops" },
23514
+ React.createElement("div", { className: "flight__info__duration__stop" })),
23515
+ React.createElement("span", null, "1 stop")),
23516
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23517
+ React.createElement("strong", null, "22:15 AMS"),
23518
+ React.createElement("p", null, "Tue 13 Feb 2025"),
23519
+ React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
23520
+ React.createElement("div", { className: "flight__detail__btn__wrapper" },
23521
+ React.createElement("div", { className: "flight__detail__btn" },
23522
+ React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
23523
+ React.createElement("div", { className: "flight__detail" },
23524
+ React.createElement("div", { className: "flight__info" },
23525
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23526
+ React.createElement("div", { className: "flight__info__times" },
23527
+ React.createElement("p", null, "08:30"),
23528
+ React.createElement("strong", null, "JFK"),
23529
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23530
+ React.createElement("div", null,
23531
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23532
+ React.createElement("div", { className: "flight__info__duration" },
23533
+ React.createElement("p", null, "6h 20m"),
23534
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23535
+ React.createElement("span", null, "Example Airline"),
23536
+ React.createElement("strong", null, "EA123")),
23537
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23538
+ React.createElement("div", null,
23539
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23540
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23541
+ React.createElement("p", null, "20:50"),
23542
+ React.createElement("strong", null, "LHR"),
23543
+ React.createElement("p", null, "Mon 12 Feb 2025")))),
23544
+ React.createElement("div", { className: "flight__info" },
23545
+ React.createElement("div", { className: "flight__info__times" }),
23546
+ React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
23547
+ React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
23548
+ React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
23549
+ React.createElement("div", { className: "flight__info__duration__stoptime" },
23550
+ React.createElement("span", null, "Stop time"),
23551
+ React.createElement("strong", null, "1h 15m"))),
23552
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
23553
+ React.createElement("div", { className: "flight__info" },
23554
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23555
+ React.createElement("div", { className: "flight__info__times" },
23556
+ React.createElement("p", null, "22:05"),
23557
+ React.createElement("strong", null, "LHR"),
23558
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23559
+ React.createElement("div", null,
23560
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23561
+ React.createElement("div", { className: "flight__info__duration" },
23562
+ React.createElement("p", null, "1h 10m"),
23563
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23564
+ React.createElement("span", null, "Example Airline"),
23565
+ React.createElement("strong", null, "EA456")),
23566
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23567
+ React.createElement("div", null,
23568
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23569
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23570
+ React.createElement("p", null, "23:15"),
23571
+ React.createElement("strong", null, "AMS"),
23572
+ React.createElement("p", null, "Mon 12 Feb 2025"))))),
23573
+ React.createElement("div", { className: "flight__rate" }))))))),
23574
+ React.createElement("div", { key: 2, className: "search__result-card" },
23575
+ React.createElement("div", { className: "flight" },
23576
+ React.createElement("div", { className: "flight__option" },
23577
+ React.createElement("div", { className: "flight__content" },
23578
+ React.createElement("div", { className: "flight__flights" },
23579
+ React.createElement("div", { className: "flight__flight" },
23580
+ React.createElement("div", { className: "flight__flight__header" },
23581
+ React.createElement("div", { className: "flight__status__container" }),
23582
+ React.createElement("div", { className: "flight__price" },
23583
+ React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
23584
+ React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
23585
+ React.createElement("div", { className: "flight__flight" },
23586
+ React.createElement("div", { className: "flight__flight__container" },
23587
+ React.createElement("div", { className: "flight__flight__wrapper" },
23588
+ React.createElement("div", { className: "flight__logo__wrapper" },
23589
+ React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
23590
+ React.createElement("span", null, "Example Airline")),
23591
+ React.createElement("div", { className: "flight__info" },
23592
+ React.createElement("div", { className: "flight__info__times" },
23593
+ React.createElement("strong", null, "08:30 JFK"),
23594
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23595
+ React.createElement("div", { className: "flight__info__duration" },
23596
+ React.createElement("p", null, "7h 45m"),
23597
+ React.createElement("div", { className: "flight__info__duration__stops" },
23598
+ React.createElement("div", { className: "flight__info__duration__stop" })),
23599
+ React.createElement("span", null, "1 stop")),
23600
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23601
+ React.createElement("strong", null, "22:15 AMS"),
23602
+ React.createElement("p", null, "Tue 13 Feb 2025"),
23603
+ React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
23604
+ React.createElement("div", { className: "flight__detail__btn__wrapper" },
23605
+ React.createElement("div", { className: "flight__detail__btn" },
23606
+ React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
23607
+ React.createElement("div", { className: "flight__detail" },
23608
+ React.createElement("div", { className: "flight__info" },
23609
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23610
+ React.createElement("div", { className: "flight__info__times" },
23611
+ React.createElement("p", null, "08:30"),
23612
+ React.createElement("strong", null, "JFK"),
23613
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23614
+ React.createElement("div", null,
23615
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23616
+ React.createElement("div", { className: "flight__info__duration" },
23617
+ React.createElement("p", null, "6h 20m"),
23618
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23619
+ React.createElement("span", null, "Example Airline"),
23620
+ React.createElement("strong", null, "EA123")),
23621
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23622
+ React.createElement("div", null,
23623
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23624
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23625
+ React.createElement("p", null, "20:50"),
23626
+ React.createElement("strong", null, "LHR"),
23627
+ React.createElement("p", null, "Mon 12 Feb 2025")))),
23628
+ React.createElement("div", { className: "flight__info" },
23629
+ React.createElement("div", { className: "flight__info__times" }),
23630
+ React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
23631
+ React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
23632
+ React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
23633
+ React.createElement("div", { className: "flight__info__duration__stoptime" },
23634
+ React.createElement("span", null, "Stop time"),
23635
+ React.createElement("strong", null, "1h 15m"))),
23636
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
23637
+ React.createElement("div", { className: "flight__info" },
23638
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23639
+ React.createElement("div", { className: "flight__info__times" },
23640
+ React.createElement("p", null, "22:05"),
23641
+ React.createElement("strong", null, "LHR"),
23642
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23643
+ React.createElement("div", null,
23644
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23645
+ React.createElement("div", { className: "flight__info__duration" },
23646
+ React.createElement("p", null, "1h 10m"),
23647
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23648
+ React.createElement("span", null, "Example Airline"),
23649
+ React.createElement("strong", null, "EA456")),
23650
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23651
+ React.createElement("div", null,
23652
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23653
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23654
+ React.createElement("p", null, "23:15"),
23655
+ React.createElement("strong", null, "AMS"),
23656
+ React.createElement("p", null, "Mon 12 Feb 2025"))))),
23657
+ React.createElement("div", { className: "flight__rate" }))))))),
23658
+ React.createElement("div", { key: 3, className: "search__result-card" },
23659
+ React.createElement("div", { className: "flight" },
23660
+ React.createElement("div", { className: "flight__option" },
23661
+ React.createElement("div", { className: "flight__content" },
23662
+ React.createElement("div", { className: "flight__flights" },
23663
+ React.createElement("div", { className: "flight__flight" },
23664
+ React.createElement("div", { className: "flight__flight__header" },
23665
+ React.createElement("div", { className: "flight__status__container" }),
23666
+ React.createElement("div", { className: "flight__price" },
23667
+ React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
23668
+ React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
23669
+ React.createElement("div", { className: "flight__flight" },
23670
+ React.createElement("div", { className: "flight__flight__container" },
23671
+ React.createElement("div", { className: "flight__flight__wrapper" },
23672
+ React.createElement("div", { className: "flight__logo__wrapper" },
23673
+ React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
23674
+ React.createElement("span", null, "Example Airline")),
23675
+ React.createElement("div", { className: "flight__info" },
23676
+ React.createElement("div", { className: "flight__info__times" },
23677
+ React.createElement("strong", null, "08:30 JFK"),
23678
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23679
+ React.createElement("div", { className: "flight__info__duration" },
23680
+ React.createElement("p", null, "7h 45m"),
23681
+ React.createElement("div", { className: "flight__info__duration__stops" },
23682
+ React.createElement("div", { className: "flight__info__duration__stop" })),
23683
+ React.createElement("span", null, "1 stop")),
23684
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23685
+ React.createElement("strong", null, "22:15 AMS"),
23686
+ React.createElement("p", null, "Tue 13 Feb 2025"),
23687
+ React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
23688
+ React.createElement("div", { className: "flight__detail__btn__wrapper" },
23689
+ React.createElement("div", { className: "flight__detail__btn" },
23690
+ React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
23691
+ React.createElement("div", { className: "flight__detail" },
23692
+ React.createElement("div", { className: "flight__info" },
23693
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23694
+ React.createElement("div", { className: "flight__info__times" },
23695
+ React.createElement("p", null, "08:30"),
23696
+ React.createElement("strong", null, "JFK"),
23697
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23698
+ React.createElement("div", null,
23699
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23700
+ React.createElement("div", { className: "flight__info__duration" },
23701
+ React.createElement("p", null, "6h 20m"),
23702
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23703
+ React.createElement("span", null, "Example Airline"),
23704
+ React.createElement("strong", null, "EA123")),
23705
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23706
+ React.createElement("div", null,
23707
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23708
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23709
+ React.createElement("p", null, "20:50"),
23710
+ React.createElement("strong", null, "LHR"),
23711
+ React.createElement("p", null, "Mon 12 Feb 2025")))),
23712
+ React.createElement("div", { className: "flight__info" },
23713
+ React.createElement("div", { className: "flight__info__times" }),
23714
+ React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
23715
+ React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
23716
+ React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
23717
+ React.createElement("div", { className: "flight__info__duration__stoptime" },
23718
+ React.createElement("span", null, "Stop time"),
23719
+ React.createElement("strong", null, "1h 15m"))),
23720
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
23721
+ React.createElement("div", { className: "flight__info" },
23722
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23723
+ React.createElement("div", { className: "flight__info__times" },
23724
+ React.createElement("p", null, "22:05"),
23725
+ React.createElement("strong", null, "LHR"),
23726
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23727
+ React.createElement("div", null,
23728
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23729
+ React.createElement("div", { className: "flight__info__duration" },
23730
+ React.createElement("p", null, "1h 10m"),
23731
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23732
+ React.createElement("span", null, "Example Airline"),
23733
+ React.createElement("strong", null, "EA456")),
23734
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23735
+ React.createElement("div", null,
23736
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23737
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23738
+ React.createElement("p", null, "23:15"),
23739
+ React.createElement("strong", null, "AMS"),
23740
+ React.createElement("p", null, "Mon 12 Feb 2025"))))),
23741
+ React.createElement("div", { className: "flight__rate" }))))))),
23742
+ React.createElement("div", { key: 4, className: "search__result-card" },
23743
+ React.createElement("div", { className: "flight" },
23744
+ React.createElement("div", { className: "flight__option" },
23745
+ React.createElement("div", { className: "flight__content" },
23746
+ React.createElement("div", { className: "flight__flights" },
23747
+ React.createElement("div", { className: "flight__flight" },
23748
+ React.createElement("div", { className: "flight__flight__header" },
23749
+ React.createElement("div", { className: "flight__status__container" }),
23750
+ React.createElement("div", { className: "flight__price" },
23751
+ React.createElement("span", { className: "price price--increase" }, "- \u20AC 375,98"),
23752
+ React.createElement("button", { type: "button", className: "cta cta--select" }, "Select")))),
23753
+ React.createElement("div", { className: "flight__flight" },
23754
+ React.createElement("div", { className: "flight__flight__container" },
23755
+ React.createElement("div", { className: "flight__flight__wrapper" },
23756
+ React.createElement("div", { className: "flight__logo__wrapper" },
23757
+ React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/XX.png?height=256", alt: "", className: "flight__logo" }),
23758
+ React.createElement("span", null, "Example Airline")),
23759
+ React.createElement("div", { className: "flight__info" },
23760
+ React.createElement("div", { className: "flight__info__times" },
23761
+ React.createElement("strong", null, "08:30 JFK"),
23762
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23763
+ React.createElement("div", { className: "flight__info__duration" },
23764
+ React.createElement("p", null, "7h 45m"),
23765
+ React.createElement("div", { className: "flight__info__duration__stops" },
23766
+ React.createElement("div", { className: "flight__info__duration__stop" })),
23767
+ React.createElement("span", null, "1 stop")),
23768
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23769
+ React.createElement("strong", null, "22:15 AMS"),
23770
+ React.createElement("p", null, "Tue 13 Feb 2025"),
23771
+ React.createElement("span", { className: "flight__info__times__days" }, "+1 day")))),
23772
+ React.createElement("div", { className: "flight__detail__btn__wrapper" },
23773
+ React.createElement("div", { className: "flight__detail__btn" },
23774
+ React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
23775
+ React.createElement("div", { className: "flight__detail" },
23776
+ React.createElement("div", { className: "flight__info" },
23777
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23778
+ React.createElement("div", { className: "flight__info__times" },
23779
+ React.createElement("p", null, "08:30"),
23780
+ React.createElement("strong", null, "JFK"),
23781
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23782
+ React.createElement("div", null,
23783
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23784
+ React.createElement("div", { className: "flight__info__duration" },
23785
+ React.createElement("p", null, "6h 20m"),
23786
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23787
+ React.createElement("span", null, "Example Airline"),
23788
+ React.createElement("strong", null, "EA123")),
23789
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23790
+ React.createElement("div", null,
23791
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23792
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23793
+ React.createElement("p", null, "20:50"),
23794
+ React.createElement("strong", null, "LHR"),
23795
+ React.createElement("p", null, "Mon 12 Feb 2025")))),
23796
+ React.createElement("div", { className: "flight__info" },
23797
+ React.createElement("div", { className: "flight__info__times" }),
23798
+ React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
23799
+ React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
23800
+ React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
23801
+ React.createElement("div", { className: "flight__info__duration__stoptime" },
23802
+ React.createElement("span", null, "Stop time"),
23803
+ React.createElement("strong", null, "1h 15m"))),
23804
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" })),
23805
+ React.createElement("div", { className: "flight__info" },
23806
+ React.createElement("div", { className: "flight__info__times__wrapper" },
23807
+ React.createElement("div", { className: "flight__info__times" },
23808
+ React.createElement("p", null, "22:05"),
23809
+ React.createElement("strong", null, "LHR"),
23810
+ React.createElement("p", null, "Mon 12 Feb 2025")),
23811
+ React.createElement("div", null,
23812
+ React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
23813
+ React.createElement("div", { className: "flight__info__duration" },
23814
+ React.createElement("p", null, "1h 10m"),
23815
+ React.createElement("div", { className: "flight__info__duration__stops" }),
23816
+ React.createElement("span", null, "Example Airline"),
23817
+ React.createElement("strong", null, "EA456")),
23818
+ React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23819
+ React.createElement("div", null,
23820
+ React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
23821
+ React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23822
+ React.createElement("p", null, "23:15"),
23823
+ React.createElement("strong", null, "AMS"),
23824
+ React.createElement("p", null, "Mon 12 Feb 2025"))))),
23825
+ React.createElement("div", { className: "flight__rate" }))))))))));
23240
23826
  };
23241
23827
 
23242
23828
  var SearchResultsContainer = function () {
23243
23829
  var _a, _b;
23244
- var isMobile = useMediaQuery('(max-width: 1200px)');
23245
23830
  var dispatch = useDispatch();
23246
23831
  var context = useContext(SearchResultsConfigurationContext);
23247
23832
  var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
23248
- var _c = useSelector(function (state) { return state.searchResults; }), results = _c.results, bookingPackageDetails = _c.bookingPackageDetails, isLoading = _c.isLoading, filters = _c.filters, sortKey = _c.sortKey, selectedHotelId = _c.selectedHotelId;
23833
+ var _c = useSelector(function (state) { return state.searchResults; }), results = _c.results, bookingPackageDetails = _c.bookingPackageDetails, entry = _c.entry, isLoading = _c.isLoading, filters = _c.filters, sortKey = _c.sortKey, selectedHotelId = _c.selectedHotelId;
23834
+ var isMobile = useMediaQuery('(max-width: 1200px)');
23249
23835
  var _d = useState(0), searchTrigger = _d[0], setSearchTrigger = _d[1];
23250
23836
  var _e = useState(false), initialFiltersSet = _e[0], setInitialFiltersSet = _e[1];
23251
23837
  var _f = useState([]); _f[0]; var setInitialFilters = _f[1];
23838
+ var _g = useState(false), filtersOpen = _g[0], setFiltersOpen = _g[1];
23839
+ var _h = useState(false), itineraryOpen = _h[0], setItineraryOpen = _h[1];
23840
+ var sortingOptions = [
23841
+ { key: 'price-asc', label: translations.SRP.PRICE_ASC },
23842
+ { key: 'price-desc', label: translations.SRP.PRICE_DESC },
23843
+ { key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
23844
+ ];
23845
+ var handleSortChange = function (newSortKey) {
23846
+ dispatch(setSortKey(newSortKey));
23847
+ };
23848
+ var buildSearchFromEntry = function (entry) {
23849
+ var _a;
23850
+ var from = new Date(Math.min.apply(Math, entry.items.map(function (i) { return i.startDate.getTime(); }))).toISOString();
23851
+ var to = new Date(Math.max.apply(Math, entry.items.map(function (i) { return i.endDate.getTime(); }))).toISOString();
23852
+ var rooms = entry.rooms;
23853
+ var hotelItem = entry.items.find(function (i) { return i.productType === 3; });
23854
+ var country = hotelItem ? hotelItem.countryId : null;
23855
+ var region = hotelItem ? hotelItem.regionId : null;
23856
+ var oord = hotelItem ? hotelItem.oordId : null;
23857
+ var city = hotelItem ? hotelItem.locationId : null;
23858
+ var hotel = hotelItem ? hotelItem.productCode : null;
23859
+ if (typeof window !== 'undefined') {
23860
+ window.scrollTo(0, 0);
23861
+ }
23862
+ var destinationId = null;
23863
+ var destinationIsCountry = false;
23864
+ var destinationIsRegion = false;
23865
+ var destinationIsOord = false;
23866
+ var destinationIsLocation = false;
23867
+ if (country) {
23868
+ destinationId = country;
23869
+ destinationIsCountry = true;
23870
+ }
23871
+ else if (region) {
23872
+ destinationId = region;
23873
+ destinationIsRegion = true;
23874
+ }
23875
+ else if (oord) {
23876
+ destinationId = oord;
23877
+ destinationIsOord = true;
23878
+ }
23879
+ else if (city) {
23880
+ destinationId = city;
23881
+ destinationIsLocation = true;
23882
+ }
23883
+ var searchRequest = {
23884
+ officeId: 1,
23885
+ payload: {
23886
+ catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
23887
+ serviceType: context.type === 'hotel' || context.type === 'hotel-flight' ? 3 : context.type === 'flight' ? 7 : context.type === 'roundTrip' ? 1 : 0,
23888
+ searchType: 0,
23889
+ destination: {
23890
+ id: Number(destinationId),
23891
+ isCountry: destinationIsCountry,
23892
+ isRegion: destinationIsRegion,
23893
+ isOord: destinationIsOord,
23894
+ isLocation: destinationIsLocation
23895
+ },
23896
+ rooms: getRequestRoomsFromEntry(rooms),
23897
+ fromDate: from,
23898
+ toDate: to,
23899
+ earliestFromOffset: 0,
23900
+ latestToOffset: 0,
23901
+ includeFlights: true,
23902
+ regimeCodes: entry.items.map(function (i) { return i.regimeCode; }) || [],
23903
+ useExactDates: true,
23904
+ onlyCachedResults: false,
23905
+ includeAllAllotments: true,
23906
+ productCodes: hotel ? [hotel] : []
23907
+ }
23908
+ };
23909
+ return searchRequest;
23910
+ };
23911
+ var buildSearchFromQueryParams = function (params) {
23912
+ var _a, _b, _c, _d, _e;
23913
+ var from = getDateFromParams(params, 'fromDate');
23914
+ var to = getDateFromParams(params, 'toDate');
23915
+ var rooms = getRoomsFromParams(params, 'rooms');
23916
+ var country = getNumberFromParams(params, 'country');
23917
+ var region = getNumberFromParams(params, 'region');
23918
+ var oord = getNumberFromParams(params, 'oord');
23919
+ var city = getNumberFromParams(params, 'location');
23920
+ var hotel = getNumberFromParams(params, 'hotel');
23921
+ var tagId = getNumberFromParams(params, 'tagId');
23922
+ // temp hardcoded params
23923
+ if (!from || !to) {
23924
+ from = '2026-04-07';
23925
+ to = '2026-04-13';
23926
+ }
23927
+ if (!country && !region && !oord && !city) {
23928
+ region = 1;
23929
+ }
23930
+ if (typeof window !== 'undefined') {
23931
+ window.scrollTo(0, 0);
23932
+ }
23933
+ var destinationId = null;
23934
+ var destinationIsCountry = false;
23935
+ var destinationIsRegion = false;
23936
+ var destinationIsOord = false;
23937
+ var destinationIsLocation = false;
23938
+ if (country) {
23939
+ destinationId = country;
23940
+ destinationIsCountry = true;
23941
+ }
23942
+ else if (region) {
23943
+ destinationId = region;
23944
+ destinationIsRegion = true;
23945
+ }
23946
+ else if (oord) {
23947
+ destinationId = oord;
23948
+ destinationIsOord = true;
23949
+ }
23950
+ else if (city) {
23951
+ destinationId = city;
23952
+ destinationIsLocation = true;
23953
+ }
23954
+ var searchRequest = {
23955
+ officeId: 1,
23956
+ payload: {
23957
+ catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
23958
+ serviceType: context.type === 'hotel' || context.type === 'hotel-flight' ? 3 : context.type === 'flight' ? 7 : context.type === 'roundTrip' ? 1 : 0,
23959
+ searchType: 0,
23960
+ destination: {
23961
+ id: Number(destinationId),
23962
+ isCountry: destinationIsCountry,
23963
+ isRegion: destinationIsRegion,
23964
+ isOord: destinationIsOord,
23965
+ isLocation: destinationIsLocation
23966
+ },
23967
+ rooms: getRequestRooms(rooms),
23968
+ fromDate: from,
23969
+ toDate: to,
23970
+ earliestFromOffset: 0,
23971
+ latestToOffset: 0,
23972
+ includeFlights: true,
23973
+ regimeCodes: ((_c = (_b = filters
23974
+ .find(function (f) { return f.property === 'regime'; })) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.filter(function (o) { return o.isChecked; }).flatMap(function (o) { return o.value.toString(); })) || [],
23975
+ minPrice: (_d = filters.find(function (f) { return f.property === 'price'; })) === null || _d === void 0 ? void 0 : _d.selectedMin,
23976
+ maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
23977
+ useExactDates: true,
23978
+ onlyCachedResults: false,
23979
+ includeAllAllotments: true,
23980
+ productIds: hotel ? [hotel] : [],
23981
+ productTagIds: tagId ? [tagId] : []
23982
+ }
23983
+ };
23984
+ return searchRequest;
23985
+ };
23986
+ var getRequestRoomsFromEntry = function (rooms) {
23987
+ if (!rooms) {
23988
+ // Fall back to 2 adults
23989
+ var room = { index: 0, pax: [] };
23990
+ range(0, 2).forEach(function () {
23991
+ room.pax.push({
23992
+ age: 30
23993
+ });
23994
+ });
23995
+ return [room];
23996
+ }
23997
+ var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
23998
+ var room = { index: i, pax: [] };
23999
+ x.travellers.forEach(function (p) {
24000
+ room.pax.push({
24001
+ age: p.age,
24002
+ dateOfBirth: p.dateOfBirth
24003
+ });
24004
+ });
24005
+ return room;
24006
+ });
24007
+ return requestRooms;
24008
+ };
24009
+ var getRequestRooms = function (rooms) {
24010
+ if (!rooms) {
24011
+ // Fall back to 2 adults
24012
+ var room = { index: 0, pax: [] };
24013
+ range(0, 2).forEach(function () {
24014
+ room.pax.push({
24015
+ age: 30
24016
+ });
24017
+ });
24018
+ return [room];
24019
+ }
24020
+ var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
24021
+ var room = { index: i, pax: [] };
24022
+ range(0, x.adults).forEach(function () {
24023
+ room.pax.push({
24024
+ age: 30
24025
+ });
24026
+ });
24027
+ x.childAges.forEach(function (x) {
24028
+ room.pax.push({
24029
+ age: x
24030
+ });
24031
+ });
24032
+ return room;
24033
+ });
24034
+ return requestRooms;
24035
+ };
24036
+ useEffect(function () {
24037
+ if (typeof document !== 'undefined') {
24038
+ document.body.classList.toggle('has-overlay', filtersOpen);
24039
+ }
24040
+ }, [filtersOpen]);
23252
24041
  // seperate Search
23253
24042
  useEffect(function () {
23254
24043
  var runSearch = function () { return __awaiter(void 0, void 0, void 0, function () {
23255
- var params, from, to, rooms, country, region, oord, city, hotel, tagId, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
23256
- var _a, _b, _c, _d, _e;
23257
- return __generator(this, function (_f) {
23258
- 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) {
23259
24048
  case 0:
23260
24049
  dispatch(setIsLoading(true));
23261
- _f.label = 1;
24050
+ _b.label = 1;
23262
24051
  case 1:
23263
- _f.trys.push([1, 3, , 4]);
24052
+ _b.trys.push([1, 6, , 7]);
23264
24053
  if (!context) {
23265
24054
  return [2 /*return*/];
23266
24055
  }
23267
- params = new URLSearchParams(location.search);
23268
- from = getDateFromParams(params, 'fromDate');
23269
- to = getDateFromParams(params, 'toDate');
23270
- rooms = getRoomsFromParams(params, 'rooms');
23271
- country = getNumberFromParams(params, 'country');
23272
- region = getNumberFromParams(params, 'region');
23273
- oord = getNumberFromParams(params, 'oord');
23274
- city = getNumberFromParams(params, 'location');
23275
- hotel = getNumberFromParams(params, 'hotel');
23276
- tagId = getNumberFromParams(params, 'tagId');
23277
- // temp hardcoded params
23278
- if (!from || !to) {
23279
- from = '2026-04-07';
23280
- to = '2026-04-13';
23281
- }
23282
- if (!country && !region && !oord && !city) {
23283
- region = 1;
23284
- }
23285
- if (typeof window !== 'undefined') {
23286
- window.scrollTo(0, 0);
23287
- }
23288
- destinationId = null;
23289
- destinationIsCountry = false;
23290
- destinationIsRegion = false;
23291
- destinationIsOord = false;
23292
- destinationIsLocation = false;
23293
- if (country) {
23294
- destinationId = country;
23295
- destinationIsCountry = true;
23296
- }
23297
- else if (region) {
23298
- destinationId = region;
23299
- destinationIsRegion = true;
23300
- }
23301
- else if (oord) {
23302
- destinationId = oord;
23303
- destinationIsOord = true;
23304
- }
23305
- else if (city) {
23306
- destinationId = city;
23307
- destinationIsLocation = true;
23308
- }
23309
- searchRequest = {
23310
- officeId: 1,
23311
- payload: {
23312
- catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
23313
- serviceType: (context === null || context === void 0 ? void 0 : context.type) === 'hotel' || (context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight' ? 3 : (context === null || context === void 0 ? void 0 : context.type) === 'flight' ? 7 : (context === null || context === void 0 ? void 0 : context.type) === 'roundTrip' ? 1 : 0,
23314
- searchType: 0,
23315
- destination: {
23316
- id: Number(destinationId),
23317
- isCountry: destinationIsCountry,
23318
- isRegion: destinationIsRegion,
23319
- isOord: destinationIsOord,
23320
- isLocation: destinationIsLocation
23321
- },
23322
- rooms: getRequestRooms(rooms),
23323
- fromDate: from,
23324
- toDate: to,
23325
- earliestFromOffset: 0,
23326
- latestToOffset: 0,
23327
- includeFlights: true,
23328
- regimeCodes: ((_c = (_b = filters
23329
- .find(function (f) { return f.property === 'regime'; })) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.filter(function (o) { return o.isChecked; }).flatMap(function (o) { return o.value.toString(); })) || [],
23330
- minPrice: (_d = filters.find(function (f) { return f.property === 'price'; })) === null || _d === void 0 ? void 0 : _d.selectedMin,
23331
- maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
23332
- useExactDates: true,
23333
- onlyCachedResults: false,
23334
- includeAllAllotments: true,
23335
- productIds: hotel ? [hotel] : [],
23336
- productTagIds: tagId ? [tagId] : []
23337
- }
23338
- };
23339
24056
  config = {
23340
24057
  host: context.tideConnection.host,
23341
24058
  apiKey: context.tideConnection.apiKey
23342
24059
  };
23343
- 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)];
23344
24066
  case 2:
23345
- 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();
23346
24078
  console.log('Search results', packageSearchResults);
23347
24079
  enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters);
23348
24080
  if (!initialFiltersSet) {
@@ -23352,25 +24084,35 @@ var SearchResultsContainer = function () {
23352
24084
  }
23353
24085
  dispatch(setResults({ results: packageSearchResults }));
23354
24086
  if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
23355
- 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
+ }
23356
24096
  }
23357
24097
  dispatch(setIsLoading(false));
23358
- return [3 /*break*/, 4];
23359
- case 3:
23360
- err_1 = _f.sent();
24098
+ return [3 /*break*/, 7];
24099
+ case 6:
24100
+ err_1 = _b.sent();
23361
24101
  console.error('Search failed', err_1);
23362
24102
  dispatch(setIsLoading(false));
23363
- return [3 /*break*/, 4];
23364
- case 4: return [2 /*return*/];
24103
+ return [3 /*break*/, 7];
24104
+ case 7: return [2 /*return*/];
23365
24105
  }
23366
24106
  });
23367
24107
  }); };
23368
- runSearch();
24108
+ if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
24109
+ runSearch();
24110
+ }
23369
24111
  }, [location.search, searchTrigger]);
23370
24112
  // Seperate detailsCall
23371
24113
  useEffect(function () {
23372
24114
  var fetchPackageDetails = function () { return __awaiter(void 0, void 0, void 0, function () {
23373
- var config, selectedItem, params, rooms, requestRooms, detailsRequest, detailsWLResponse, err_2;
24115
+ var config, selectedItem, params, entryId, requestRooms, rooms, detailsRequest, detailsResponse, detailsWLResponse, err_2;
23374
24116
  var _a, _b;
23375
24117
  return __generator(this, function (_c) {
23376
24118
  switch (_c.label) {
@@ -23379,17 +24121,26 @@ var SearchResultsContainer = function () {
23379
24121
  return [2 /*return*/];
23380
24122
  _c.label = 1;
23381
24123
  case 1:
23382
- _c.trys.push([1, 3, , 4]);
24124
+ _c.trys.push([1, 6, , 7]);
23383
24125
  config = {
23384
24126
  host: context.tideConnection.host,
23385
24127
  apiKey: context.tideConnection.apiKey
23386
24128
  };
23387
24129
  selectedItem = results.find(function (r) { return r.productId === selectedHotelId; });
23388
- if (!selectedItem)
24130
+ if (!selectedItem) {
24131
+ // TODO: handle this case better, show an error message to the user
23389
24132
  return [2 /*return*/];
24133
+ }
23390
24134
  params = new URLSearchParams(location.search);
23391
- rooms = getRoomsFromParams(params, 'rooms');
23392
- 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
+ }
23393
24144
  detailsRequest = {
23394
24145
  officeId: 1,
23395
24146
  payload: {
@@ -23409,65 +24160,32 @@ var SearchResultsContainer = function () {
23409
24160
  postNights: null
23410
24161
  }
23411
24162
  };
23412
- return [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)];
23413
24166
  case 2:
24167
+ detailsResponse = _c.sent();
24168
+ console.log('Details:', detailsResponse);
24169
+ dispatch(setBookingPackageDetails({ details: detailsResponse === null || detailsResponse === void 0 ? void 0 : detailsResponse.payload }));
24170
+ return [3 /*break*/, 5];
24171
+ case 3: return [4 /*yield*/, build.detailsWL(config, detailsRequest)];
24172
+ case 4:
23414
24173
  detailsWLResponse = _c.sent();
23415
24174
  console.log('Details with entryLight:', detailsWLResponse);
23416
24175
  dispatch(setBookingPackageDetails({ details: (_a = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _a === void 0 ? void 0 : _a.bookingPackage }));
23417
24176
  dispatch(setEntry({ entry: (_b = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _b === void 0 ? void 0 : _b.entry }));
23418
- return [3 /*break*/, 4];
23419
- case 3:
24177
+ _c.label = 5;
24178
+ case 5: return [3 /*break*/, 7];
24179
+ case 6:
23420
24180
  err_2 = _c.sent();
23421
24181
  console.error('Failed to fetch package details', err_2);
23422
- return [3 /*break*/, 4];
23423
- case 4: return [2 /*return*/];
24182
+ return [3 /*break*/, 7];
24183
+ case 7: return [2 /*return*/];
23424
24184
  }
23425
24185
  });
23426
24186
  }); };
23427
24187
  fetchPackageDetails();
23428
24188
  }, [selectedHotelId]);
23429
- var getRequestRooms = function (rooms) {
23430
- if (!rooms) {
23431
- // Fall back to 2 adults
23432
- var room = { index: 0, pax: [] };
23433
- range(0, 2).forEach(function () {
23434
- room.pax.push({
23435
- age: 30
23436
- });
23437
- });
23438
- return [room];
23439
- }
23440
- var requestRooms = rooms === null || rooms === void 0 ? void 0 : rooms.map(function (x, i) {
23441
- var room = { index: i, pax: [] };
23442
- range(0, x.adults).forEach(function () {
23443
- room.pax.push({
23444
- age: 30
23445
- });
23446
- });
23447
- x.childAges.forEach(function (x) {
23448
- room.pax.push({
23449
- age: x
23450
- });
23451
- });
23452
- return room;
23453
- });
23454
- return requestRooms;
23455
- };
23456
- var _g = useState(false), filtersOpen = _g[0], setFiltersOpen = _g[1];
23457
- var _h = useState(false), itineraryOpen = _h[0], setItineraryOpen = _h[1];
23458
- var handleSortChange = function (newSortKey) {
23459
- dispatch(setSortKey(newSortKey));
23460
- };
23461
- useEffect(function () {
23462
- if (typeof document !== 'undefined') {
23463
- document.body.classList.toggle('has-overlay', filtersOpen);
23464
- }
23465
- }, [filtersOpen]);
23466
- var sortingOptions = [
23467
- { key: 'price-asc', label: translations.SRP.PRICE_ASC },
23468
- { key: 'price-desc', label: translations.SRP.PRICE_DESC },
23469
- { key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
23470
- ];
23471
24189
  return (React.createElement("div", { id: "tide-booking", className: "search__bg" }, context && (React.createElement("div", { className: "search" },
23472
24190
  React.createElement("div", { className: "search__container" },
23473
24191
  context.showFilters && (React.createElement(Filters, { filters: filters, isOpen: filtersOpen, handleSetIsOpen: function () { return setFiltersOpen(!filtersOpen); }, handleApplyFilters: function () { return setSearchTrigger(function (prev) { return prev + 1; }); }, isLoading: isLoading })),
@@ -23490,9 +24208,11 @@ var SearchResultsContainer = function () {
23490
24208
  React.createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: translations.SRP.SORTBY, placeholder: translations.SRP.SORTBY, classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
23491
24209
  React.createElement("div", { className: "search__results__wrapper" },
23492
24210
  context.showTabViews && React.createElement(TabViews, null),
23493
- context.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 })),
23494
24213
  context.showHotelAccommodationResults && React.createElement(HotelAccommodationResults, { isLoading: isLoading, context: context }),
23495
- 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 })))))))));
23496
24216
  };
23497
24217
 
23498
24218
  var createSearchResultsStore = function () {