@qite/tide-booking-component 1.4.53 → 1.4.54

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.
@@ -32217,49 +32217,48 @@ var QSMContainer = function () {
32217
32217
  React__default['default'].createElement(
32218
32218
  'div',
32219
32219
  { className: 'qsm__filter' },
32220
- qsmType === 'hotel' ||
32221
- (qsmType == 'hotel-flight' &&
32220
+ (qsmType === 'hotel' || qsmType === 'hotel-flight') &&
32221
+ React__default['default'].createElement(
32222
+ 'div',
32223
+ { className: 'radiobutton-group qsm__filter__inputgroup' },
32222
32224
  React__default['default'].createElement(
32223
32225
  'div',
32224
- { className: 'radiobutton-group qsm__filter__inputgroup' },
32226
+ { className: 'radiobutton' },
32225
32227
  React__default['default'].createElement(
32226
- 'div',
32227
- { className: 'radiobutton' },
32228
- React__default['default'].createElement(
32229
- 'label',
32230
- { className: 'radiobutton__label' },
32231
- React__default['default'].createElement('input', {
32232
- type: 'radio',
32233
- name: 'numberOfAccommodations',
32234
- // onChange={handleMainBookerChange}
32235
- // onBlur={formik.handleBlur}
32236
- value: '',
32237
- checked: true,
32238
- readOnly: true,
32239
- className: 'radiobutton__input'
32240
- }),
32241
- React__default['default'].createElement('span', null, translations.QSM.ONE_ACCOMMODATION)
32242
- )
32243
- ),
32228
+ 'label',
32229
+ { className: 'radiobutton__label' },
32230
+ React__default['default'].createElement('input', {
32231
+ type: 'radio',
32232
+ name: 'numberOfAccommodations',
32233
+ // onChange={handleMainBookerChange}
32234
+ // onBlur={formik.handleBlur}
32235
+ value: '',
32236
+ checked: true,
32237
+ readOnly: true,
32238
+ className: 'radiobutton__input'
32239
+ }),
32240
+ React__default['default'].createElement('span', null, translations.QSM.ONE_ACCOMMODATION)
32241
+ )
32242
+ ),
32243
+ React__default['default'].createElement(
32244
+ 'div',
32245
+ { className: 'radiobutton' },
32244
32246
  React__default['default'].createElement(
32245
- 'div',
32246
- { className: 'radiobutton' },
32247
- React__default['default'].createElement(
32248
- 'label',
32249
- { className: 'radiobutton__label' },
32250
- React__default['default'].createElement('input', {
32251
- type: 'radio',
32252
- name: 'numberOfAccommodations',
32253
- // onChange={handleMainBookerChange}
32254
- // onBlur={formik.handleBlur}
32255
- value: '',
32256
- className: 'radiobutton__input',
32257
- disabled: true
32258
- }),
32259
- React__default['default'].createElement('span', null, translations.QSM.MULTIPLE_ACCOMMODATIONS)
32260
- )
32247
+ 'label',
32248
+ { className: 'radiobutton__label' },
32249
+ React__default['default'].createElement('input', {
32250
+ type: 'radio',
32251
+ name: 'numberOfAccommodations',
32252
+ // onChange={handleMainBookerChange}
32253
+ // onBlur={formik.handleBlur}
32254
+ value: '',
32255
+ className: 'radiobutton__input',
32256
+ disabled: true
32257
+ }),
32258
+ React__default['default'].createElement('span', null, translations.QSM.MULTIPLE_ACCOMMODATIONS)
32261
32259
  )
32262
- )),
32260
+ )
32261
+ ),
32263
32262
  qsmType === 'flight' &&
32264
32263
  React__default['default'].createElement(
32265
32264
  'div',
@@ -32500,9 +32499,9 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
32500
32499
  setBookingPackageDetails = _a.setBookingPackageDetails,
32501
32500
  setEntry = _a.setEntry,
32502
32501
  selectFlight = _a.selectFlight,
32503
- setIsLoading = _a.setIsLoading;
32504
- _a.setFilters;
32505
- var resetFilters = _a.resetFilters,
32502
+ setIsLoading = _a.setIsLoading,
32503
+ setFilters = _a.setFilters,
32504
+ resetFilters = _a.resetFilters,
32506
32505
  setSortKey = _a.setSortKey,
32507
32506
  setActiveTab = _a.setActiveTab;
32508
32507
  _a.setCurrentPage;
@@ -39848,6 +39847,433 @@ var FlightResultsContainer = function (_a) {
39848
39847
  );
39849
39848
  };
39850
39849
 
39850
+ var initialFilters = [
39851
+ {
39852
+ property: 'regime',
39853
+ label: 'Regime',
39854
+ type: 'checkbox',
39855
+ options: [
39856
+ {
39857
+ label: 'Room only',
39858
+ value: ['RO', 'LO', 'OB'],
39859
+ isChecked: false
39860
+ },
39861
+ {
39862
+ label: 'Bed & Beakfast',
39863
+ value: ['BB', 'KO'],
39864
+ isChecked: false
39865
+ },
39866
+ {
39867
+ label: 'Half board',
39868
+ value: ['HB'],
39869
+ isChecked: false
39870
+ },
39871
+ {
39872
+ label: 'Full board',
39873
+ value: ['FB'],
39874
+ isChecked: false
39875
+ }
39876
+ ],
39877
+ isFrontendFilter: false
39878
+ },
39879
+ {
39880
+ property: 'price',
39881
+ label: 'Prijs',
39882
+ type: 'slider',
39883
+ isFrontendFilter: false,
39884
+ min: 2244,
39885
+ max: 6785
39886
+ },
39887
+ {
39888
+ property: 'rating',
39889
+ label: 'Rating',
39890
+ type: 'star-rating',
39891
+ isFrontendFilter: true
39892
+ },
39893
+ {
39894
+ property: 'theme',
39895
+ label: "Thema's",
39896
+ type: 'toggle',
39897
+ options: [
39898
+ {
39899
+ label: 'Adults',
39900
+ value: 1,
39901
+ isChecked: false
39902
+ },
39903
+ {
39904
+ label: 'Luxury',
39905
+ value: 2,
39906
+ isChecked: false
39907
+ },
39908
+ {
39909
+ label: 'Welness & Spa',
39910
+ value: 3,
39911
+ isChecked: false
39912
+ },
39913
+ {
39914
+ label: 'familie',
39915
+ value: 4,
39916
+ isChecked: false
39917
+ }
39918
+ ],
39919
+ isFrontendFilter: false
39920
+ }
39921
+ ];
39922
+ var Filters = function (_a) {
39923
+ var _b;
39924
+ var filters = _a.filters,
39925
+ isOpen = _a.isOpen,
39926
+ handleSetIsOpen = _a.handleSetIsOpen,
39927
+ handleApplyFilters = _a.handleApplyFilters,
39928
+ isLoading = _a.isLoading;
39929
+ var context = React.useContext(SearchResultsConfigurationContext);
39930
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
39931
+ var _c = React.useState({}),
39932
+ visibleFilters = _c[0],
39933
+ setVisibleFilters = _c[1];
39934
+ var _d = React.useState([]),
39935
+ pendingFilters = _d[0],
39936
+ setPendingFilters = _d[1];
39937
+ React.useEffect(
39938
+ function () {
39939
+ if (initialFilters.length > 0) {
39940
+ setPendingFilters(initialFilters);
39941
+ }
39942
+ },
39943
+ [initialFilters]
39944
+ );
39945
+ var dispatch = reactRedux.useDispatch();
39946
+ var toggleFilterVisibility = function (filterId) {
39947
+ setVisibleFilters(function (prev) {
39948
+ var _a;
39949
+ return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
39950
+ });
39951
+ };
39952
+ var updatePendingFilter = function (updatedFilter) {
39953
+ setPendingFilters(function (prevFilters) {
39954
+ var index = prevFilters.findIndex(function (f) {
39955
+ return f.property === updatedFilter.property;
39956
+ });
39957
+ if (index !== -1) {
39958
+ var newFilters = __spreadArray([], prevFilters, true);
39959
+ newFilters[index] = updatedFilter;
39960
+ return newFilters;
39961
+ } else {
39962
+ return __spreadArray(__spreadArray([], prevFilters, true), [updatedFilter], false);
39963
+ }
39964
+ });
39965
+ };
39966
+ var handleCheckBoxFilter = function (filter, option) {
39967
+ setPendingFilters(function (prev) {
39968
+ var _a;
39969
+ var updated = prev.map(function (f) {
39970
+ var _a;
39971
+ if (f.property !== filter.property) {
39972
+ return f;
39973
+ }
39974
+ return __assign(__assign({}, f), {
39975
+ options:
39976
+ (_a = f.options) === null || _a === void 0
39977
+ ? void 0
39978
+ : _a.map(function (opt) {
39979
+ return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
39980
+ })
39981
+ });
39982
+ });
39983
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
39984
+ dispatch(setFilters(updated));
39985
+ (_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, updated);
39986
+ }
39987
+ return updated;
39988
+ });
39989
+ };
39990
+ var handleSliderMinChange = function (filter, value) {
39991
+ var _a, _b;
39992
+ if (value < ((_b = (_a = filter.selectedMax) !== null && _a !== void 0 ? _a : filter.max) !== null && _b !== void 0 ? _b : 100)) {
39993
+ var updatedFilter = __assign(__assign({}, filter), { selectedMin: value });
39994
+ updatePendingFilter(updatedFilter);
39995
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
39996
+ applyFilters();
39997
+ }
39998
+ }
39999
+ };
40000
+ var handleSliderMaxChange = function (filter, value) {
40001
+ var _a, _b;
40002
+ if (value > ((_b = (_a = filter.selectedMin) !== null && _a !== void 0 ? _a : filter.min) !== null && _b !== void 0 ? _b : 0)) {
40003
+ var updatedFilter = __assign(__assign({}, filter), { selectedMax: value });
40004
+ updatePendingFilter(updatedFilter);
40005
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
40006
+ applyFilters();
40007
+ }
40008
+ }
40009
+ };
40010
+ var applyFilters = function () {
40011
+ var _a;
40012
+ dispatch(setFilters(pendingFilters));
40013
+ (_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, pendingFilters);
40014
+ handleApplyFilters();
40015
+ if (isOpen) {
40016
+ handleSetIsOpen();
40017
+ }
40018
+ };
40019
+ var handleFullReset = function () {
40020
+ if (!isLoading) {
40021
+ setPendingFilters(initialFilters);
40022
+ dispatch(resetFilters(initialFilters));
40023
+ }
40024
+ };
40025
+ var handleResetPendingChanges = function () {
40026
+ setPendingFilters(filters); // ← back to last applied
40027
+ };
40028
+ var hasPendingChanges = function () {
40029
+ return JSON.stringify(pendingFilters) !== JSON.stringify(filters);
40030
+ };
40031
+ if (!context || !context.showFilters) {
40032
+ return null;
40033
+ }
40034
+ return React__default['default'].createElement(
40035
+ React__default['default'].Fragment,
40036
+ null,
40037
+ React__default['default'].createElement(
40038
+ 'div',
40039
+ { className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
40040
+ React__default['default'].createElement('div', {
40041
+ className: 'search__filters--background',
40042
+ onClick: function () {
40043
+ return handleSetIsOpen();
40044
+ }
40045
+ }),
40046
+ React__default['default'].createElement(
40047
+ 'button',
40048
+ {
40049
+ className: 'search__filters--close',
40050
+ onClick: function () {
40051
+ return handleSetIsOpen();
40052
+ }
40053
+ },
40054
+ React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
40055
+ ),
40056
+ React__default['default'].createElement(
40057
+ 'div',
40058
+ { className: 'search__filters' },
40059
+ React__default['default'].createElement(
40060
+ 'div',
40061
+ { className: 'search__filter-row search__filter__header' },
40062
+ React__default['default'].createElement(
40063
+ 'div',
40064
+ { className: 'search__filter-row-flex-title' },
40065
+ React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
40066
+ ),
40067
+ !isLoading &&
40068
+ React__default['default'].createElement(
40069
+ 'a',
40070
+ {
40071
+ className: 'search__filter-reset',
40072
+ onClick: function () {
40073
+ return handleFullReset();
40074
+ }
40075
+ },
40076
+ translations.SRP.RESET
40077
+ )
40078
+ ),
40079
+ isLoading
40080
+ ? React__default['default'].createElement(Spinner, null)
40081
+ : React__default['default'].createElement(
40082
+ React__default['default'].Fragment,
40083
+ null,
40084
+ React__default['default'].createElement(
40085
+ 'div',
40086
+ { className: 'search__filters__group-container' },
40087
+ pendingFilters.map(function (filter, index) {
40088
+ var _a, _b;
40089
+ var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
40090
+ return React__default['default'].createElement(
40091
+ 'div',
40092
+ { key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
40093
+ React__default['default'].createElement(
40094
+ 'div',
40095
+ {
40096
+ className: 'search__filter-row search__filter-row--underline',
40097
+ onClick: function () {
40098
+ return toggleFilterVisibility(filter.property);
40099
+ },
40100
+ role: 'button',
40101
+ tabIndex: 0
40102
+ },
40103
+ React__default['default'].createElement('h6', { className: 'search__filter-large-title' }, filter.label),
40104
+ React__default['default'].createElement(
40105
+ 'svg',
40106
+ {
40107
+ id: 'search-chevron-up-icon',
40108
+ className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
40109
+ viewBox: '0 0 10 6.063',
40110
+ width: 10,
40111
+ height: 6.063
40112
+ },
40113
+ React__default['default'].createElement('path', {
40114
+ id: 'Path_62',
40115
+ 'data-name': 'Path 62',
40116
+ d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
40117
+ transform: 'translate(-240 624)',
40118
+ fill: '#707070'
40119
+ })
40120
+ )
40121
+ ),
40122
+ isVisible &&
40123
+ filter.type === 'checkbox' &&
40124
+ React__default['default'].createElement(
40125
+ 'div',
40126
+ { className: 'search__filter-rows' },
40127
+ filter.options &&
40128
+ filter.options.map(function (option, optionIndex) {
40129
+ return React__default['default'].createElement(
40130
+ 'div',
40131
+ { className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
40132
+ React__default['default'].createElement(
40133
+ 'div',
40134
+ { className: 'checkbox' },
40135
+ React__default['default'].createElement(
40136
+ 'label',
40137
+ { className: 'checkbox__label' },
40138
+ React__default['default'].createElement('input', {
40139
+ type: 'checkbox',
40140
+ className: 'checkbox__input checkbox__input--parent',
40141
+ checked: option.isChecked,
40142
+ onChange: function (e) {
40143
+ return handleCheckBoxFilter(filter, option);
40144
+ }
40145
+ }),
40146
+ React__default['default'].createElement('span', { className: 'radiobutton__label-text' }, option.label)
40147
+ )
40148
+ )
40149
+ );
40150
+ })
40151
+ ),
40152
+ isVisible &&
40153
+ filter.type === 'toggle' &&
40154
+ React__default['default'].createElement(
40155
+ 'div',
40156
+ { className: 'search__filter-rows' },
40157
+ (_b = filter.options) === null || _b === void 0
40158
+ ? void 0
40159
+ : _b.map(function (option, optionIndex) {
40160
+ return React__default['default'].createElement(
40161
+ 'div',
40162
+ { className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
40163
+ React__default['default'].createElement('span', { className: 'search__filter-toggle-label' }, option.label),
40164
+ React__default['default'].createElement('div', { className: 'checkbox' }),
40165
+ React__default['default'].createElement(
40166
+ 'label',
40167
+ { className: 'checkbox__label' },
40168
+ React__default['default'].createElement('input', {
40169
+ type: 'checkbox',
40170
+ className: 'checkbox__input',
40171
+ checked: option.isChecked,
40172
+ onChange: function () {
40173
+ return handleCheckBoxFilter(filter, option);
40174
+ }
40175
+ })
40176
+ )
40177
+ );
40178
+ })
40179
+ ),
40180
+ isVisible &&
40181
+ filter &&
40182
+ filter.type === 'slider' &&
40183
+ (function () {
40184
+ var _a, _b, _c, _d;
40185
+ var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
40186
+ var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
40187
+ var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
40188
+ var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
40189
+ return React__default['default'].createElement(MultiRangeFilter, {
40190
+ min: min,
40191
+ max: max,
40192
+ selectedMin: selectedMin,
40193
+ selectedMax: selectedMax,
40194
+ valueFormatter: function (value) {
40195
+ return ''.concat(value);
40196
+ },
40197
+ onChange: function (newMin, newMax) {
40198
+ handleSliderMinChange(filter, newMin);
40199
+ handleSliderMaxChange(filter, newMax);
40200
+ }
40201
+ });
40202
+ })(),
40203
+ isVisible &&
40204
+ filter.property === 'rating' &&
40205
+ filter.type === 'star-rating' &&
40206
+ (function () {
40207
+ var _a;
40208
+ var selectedRating = (_a = filter.selectedRating) !== null && _a !== void 0 ? _a : 0;
40209
+ var handleRatingChange = function (rating) {
40210
+ var updatedFilter = __assign(__assign({}, filter), { selectedRating: rating });
40211
+ updatePendingFilter(updatedFilter);
40212
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
40213
+ applyFilters();
40214
+ }
40215
+ };
40216
+ return React__default['default'].createElement(
40217
+ 'div',
40218
+ { className: 'search__filter-row star-rating-filter' },
40219
+ [5, 4, 3, 2, 1].map(function (star) {
40220
+ return React__default['default'].createElement(
40221
+ 'span',
40222
+ {
40223
+ key: star,
40224
+ className: 'star '.concat(star <= selectedRating ? 'filled' : ''),
40225
+ onClick: function () {
40226
+ return handleRatingChange(star);
40227
+ },
40228
+ role: 'button',
40229
+ tabIndex: 0,
40230
+ onKeyDown: function (e) {
40231
+ if (e.key === 'Enter' || e.key === ' ') handleRatingChange(star);
40232
+ }
40233
+ },
40234
+ '\u2605'
40235
+ );
40236
+ })
40237
+ );
40238
+ })()
40239
+ );
40240
+ }),
40241
+ context.useGlobalApplyFilterButton &&
40242
+ hasPendingChanges() &&
40243
+ React__default['default'].createElement(
40244
+ 'div',
40245
+ { className: 'search__filters__actions' },
40246
+ React__default['default'].createElement(
40247
+ 'button',
40248
+ {
40249
+ className: 'cta--secondary ',
40250
+ onClick: function () {
40251
+ handleResetPendingChanges();
40252
+ handleSetIsOpen();
40253
+ },
40254
+ disabled: isLoading
40255
+ },
40256
+ translations.SRP.CANCEL
40257
+ ),
40258
+ React__default['default'].createElement(
40259
+ 'button',
40260
+ {
40261
+ className: 'cta',
40262
+ onClick: function () {
40263
+ return applyFilters();
40264
+ },
40265
+ disabled: isLoading
40266
+ },
40267
+ translations.SRP.APPLY
40268
+ )
40269
+ )
40270
+ )
40271
+ )
40272
+ )
40273
+ )
40274
+ );
40275
+ };
40276
+
39851
40277
  var SearchResultsContainer = function () {
39852
40278
  var _a;
39853
40279
  var dispatch = reactRedux.useDispatch();
@@ -39866,8 +40292,8 @@ var SearchResultsContainer = function () {
39866
40292
  flyInIsOpen = _b.flyInIsOpen;
39867
40293
  var isMobile = useMediaQuery('(max-width: 1200px)');
39868
40294
  var _c = React.useState(0),
39869
- searchTrigger = _c[0];
39870
- _c[1];
40295
+ searchTrigger = _c[0],
40296
+ setSearchTrigger = _c[1];
39871
40297
  var _d = React.useState(false),
39872
40298
  initialFiltersSet = _d[0],
39873
40299
  setInitialFiltersSet = _d[1];
@@ -39881,10 +40307,11 @@ var SearchResultsContainer = function () {
39881
40307
  itineraryOpen = _g[0],
39882
40308
  setItineraryOpen = _g[1];
39883
40309
  var panelRef = React.useRef(null);
39884
- var sortingOptions = [
39885
- { key: 'price-asc', label: translations.SRP.PRICE_ASC },
39886
- { key: 'price-desc', label: translations.SRP.PRICE_DESC },
39887
- { key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
40310
+ var sortByTypes = [
40311
+ { direction: 'asc', label: 'price' },
40312
+ { direction: 'desc', label: 'price' },
40313
+ { direction: 'asc', label: 'departure' },
40314
+ { direction: 'desc', label: 'departure' }
39888
40315
  ];
39889
40316
  var handleFlyInToggle = function (isOpen) {
39890
40317
  dispatch(setFlyInIsOpen(isOpen));
@@ -39972,7 +40399,7 @@ var SearchResultsContainer = function () {
39972
40399
  return searchRequest;
39973
40400
  };
39974
40401
  var buildSearchFromQueryParams = function (params) {
39975
- var _a, _b, _c, _d, _e;
40402
+ var _a;
39976
40403
  var from = getDateFromParams(params, 'fromDate');
39977
40404
  var to = getDateFromParams(params, 'toDate');
39978
40405
  var rooms = getRoomsFromParams(params, 'rooms');
@@ -39984,11 +40411,8 @@ var SearchResultsContainer = function () {
39984
40411
  var tagId = getNumberFromParams(params, 'tagId');
39985
40412
  // temp hardcoded params
39986
40413
  if (!from || !to) {
39987
- from = '2026-04-07';
39988
- to = '2026-04-13';
39989
- }
39990
- if (!country && !region && !oord && !city) {
39991
- region = 1;
40414
+ console.error('Missing fromDate or toDate in query params, using default values');
40415
+ return null;
39992
40416
  }
39993
40417
  if (typeof window !== 'undefined') {
39994
40418
  window.scrollTo(0, 0);
@@ -40029,34 +40453,14 @@ var SearchResultsContainer = function () {
40029
40453
  toDate: to,
40030
40454
  earliestFromOffset: 0,
40031
40455
  latestToOffset: 0,
40032
- includeFlights: true,
40033
- regimeCodes:
40034
- ((_c =
40035
- (_b = filters.find(function (f) {
40036
- return f.property === 'regime';
40037
- })) === null || _b === void 0
40038
- ? void 0
40039
- : _b.options) === null || _c === void 0
40040
- ? void 0
40041
- : _c
40042
- .filter(function (o) {
40043
- return o.isChecked;
40044
- })
40045
- .flatMap(function (o) {
40046
- return o.value.toString();
40047
- })) || [],
40048
- minPrice:
40049
- (_d = filters.find(function (f) {
40050
- return f.property === 'price';
40051
- })) === null || _d === void 0
40052
- ? void 0
40053
- : _d.selectedMin,
40054
- maxPrice:
40055
- (_e = filters.find(function (f) {
40056
- return f.property === 'price';
40057
- })) === null || _e === void 0
40058
- ? void 0
40059
- : _e.selectedMax,
40456
+ includeFlights: context.type === 'hotel-flight' ? true : false,
40457
+ // regimeCodes:
40458
+ // filters
40459
+ // .find((f) => f.property === 'regime')
40460
+ // ?.options?.filter((o) => o.isChecked)
40461
+ // .flatMap((o) => o.value.toString()) || [],
40462
+ // minPrice: filters.find((f) => f.property === 'price')?.selectedMin,
40463
+ // maxPrice: filters.find((f) => f.property === 'price')?.selectedMax,
40060
40464
  useExactDates: true,
40061
40465
  onlyCachedResults: false,
40062
40466
  includeAllAllotments: true,
@@ -40133,9 +40537,9 @@ var SearchResultsContainer = function () {
40133
40537
  // seperate Search
40134
40538
  React.useEffect(
40135
40539
  function () {
40136
- var runHotelFlightSearch = function () {
40540
+ var runHotelSearch = function () {
40137
40541
  return __awaiter(void 0, void 0, void 0, function () {
40138
- var config, params, entryId, entryLight, searchRequest, packageSearchResults, enrichedFilters, matching, err_1;
40542
+ var config, params, entryId, entryLight, searchRequest, rq, packageSearchResults, enrichedFilters, matching, err_1;
40139
40543
  var _a;
40140
40544
  return __generator(this, function (_b) {
40141
40545
  switch (_b.label) {
@@ -40164,7 +40568,11 @@ var SearchResultsContainer = function () {
40164
40568
  searchRequest = buildSearchFromEntry(entryLight);
40165
40569
  return [3 /*break*/, 4];
40166
40570
  case 3:
40167
- searchRequest = buildSearchFromQueryParams(params);
40571
+ rq = buildSearchFromQueryParams(params);
40572
+ if (!rq) {
40573
+ throw new Error('Invalid search parameters');
40574
+ }
40575
+ searchRequest = rq;
40168
40576
  _b.label = 4;
40169
40577
  case 4:
40170
40578
  return [4 /*yield*/, build.search(config, searchRequest)];
@@ -40204,8 +40612,11 @@ var SearchResultsContainer = function () {
40204
40612
  });
40205
40613
  };
40206
40614
  if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
40207
- if ((context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight') {
40208
- runHotelFlightSearch();
40615
+ if (
40616
+ (context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight' ||
40617
+ (context === null || context === void 0 ? void 0 : context.type) === 'hotel'
40618
+ ) {
40619
+ runHotelSearch();
40209
40620
  }
40210
40621
  }
40211
40622
  },
@@ -40254,7 +40665,7 @@ var SearchResultsContainer = function () {
40254
40665
  productCode: selectedItem.code,
40255
40666
  fromDate: selectedItem.fromDate,
40256
40667
  toDate: selectedItem.toDate,
40257
- includeFlights: true,
40668
+ includeFlights: context.type === 'hotel-flight' ? true : false,
40258
40669
  includeHotels: true,
40259
40670
  includePaxTypes: true,
40260
40671
  checkExternalAvailability: true,
@@ -40334,17 +40745,33 @@ var SearchResultsContainer = function () {
40334
40745
  }
40335
40746
  })
40336
40747
  ),
40337
- context.type === 'hotel-flight' &&
40748
+ (context.type === 'hotel-flight' || context.type === 'hotel' || context.type === 'roundTrip') &&
40338
40749
  React__default['default'].createElement(
40339
40750
  React__default['default'].Fragment,
40340
40751
  null,
40341
- React__default['default'].createElement(Itinerary, {
40342
- isOpen: itineraryOpen,
40343
- handleSetIsOpen: function () {
40344
- return setItineraryOpen(!itineraryOpen);
40345
- },
40346
- isLoading: isLoading
40347
- }),
40752
+ context.type != 'hotel-flight' &&
40753
+ context.showFilters &&
40754
+ React__default['default'].createElement(Filters, {
40755
+ filters: filters,
40756
+ isOpen: filtersOpen,
40757
+ handleSetIsOpen: function () {
40758
+ return setFiltersOpen(!filtersOpen);
40759
+ },
40760
+ handleApplyFilters: function () {
40761
+ return setSearchTrigger(function (prev) {
40762
+ return prev + 1;
40763
+ });
40764
+ },
40765
+ isLoading: isLoading
40766
+ }),
40767
+ context.type === 'hotel-flight' &&
40768
+ React__default['default'].createElement(Itinerary, {
40769
+ isOpen: itineraryOpen,
40770
+ handleSetIsOpen: function () {
40771
+ return setItineraryOpen(!itineraryOpen);
40772
+ },
40773
+ isLoading: isLoading
40774
+ }),
40348
40775
  React__default['default'].createElement(
40349
40776
  'div',
40350
40777
  { className: 'search__results' },
@@ -40355,7 +40782,8 @@ var SearchResultsContainer = function () {
40355
40782
  React__default['default'].createElement(
40356
40783
  'div',
40357
40784
  { className: 'search__results__actions' },
40358
- context.showFilters &&
40785
+ context.type != 'hotel-flight' &&
40786
+ context.showFilters &&
40359
40787
  React__default['default'].createElement(
40360
40788
  'div',
40361
40789
  {
@@ -40380,10 +40808,10 @@ var SearchResultsContainer = function () {
40380
40808
  translations.SRP.SHOW_ITINERARY
40381
40809
  )
40382
40810
  ),
40383
- sortingOptions &&
40384
- sortingOptions.length > 0 &&
40811
+ sortByTypes &&
40812
+ sortByTypes.length > 0 &&
40385
40813
  React__default['default'].createElement(ItemPicker, {
40386
- items: sortingOptions,
40814
+ items: sortByTypes,
40387
40815
  selection: sortKey || undefined,
40388
40816
  label: translations.SRP.SORTBY,
40389
40817
  placeholder: translations.SRP.SORTBY,
@@ -40407,13 +40835,13 @@ var SearchResultsContainer = function () {
40407
40835
  )
40408
40836
  ),
40409
40837
  !isMobile &&
40410
- sortingOptions &&
40411
- sortingOptions.length > 0 &&
40838
+ sortByTypes &&
40839
+ sortByTypes.length > 0 &&
40412
40840
  React__default['default'].createElement(
40413
40841
  'div',
40414
40842
  { className: 'search__result-row-filter' },
40415
40843
  React__default['default'].createElement(ItemPicker, {
40416
- items: sortingOptions,
40844
+ items: sortByTypes,
40417
40845
  selection: sortKey || undefined,
40418
40846
  label: translations.SRP.SORTBY,
40419
40847
  placeholder: translations.SRP.SORTBY,