@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.
@@ -32070,49 +32070,48 @@ var QSMContainer = function () {
32070
32070
  React__default.createElement(
32071
32071
  'div',
32072
32072
  { className: 'qsm__filter' },
32073
- qsmType === 'hotel' ||
32074
- (qsmType == 'hotel-flight' &&
32073
+ (qsmType === 'hotel' || qsmType === 'hotel-flight') &&
32074
+ React__default.createElement(
32075
+ 'div',
32076
+ { className: 'radiobutton-group qsm__filter__inputgroup' },
32075
32077
  React__default.createElement(
32076
32078
  'div',
32077
- { className: 'radiobutton-group qsm__filter__inputgroup' },
32079
+ { className: 'radiobutton' },
32078
32080
  React__default.createElement(
32079
- 'div',
32080
- { className: 'radiobutton' },
32081
- React__default.createElement(
32082
- 'label',
32083
- { className: 'radiobutton__label' },
32084
- React__default.createElement('input', {
32085
- type: 'radio',
32086
- name: 'numberOfAccommodations',
32087
- // onChange={handleMainBookerChange}
32088
- // onBlur={formik.handleBlur}
32089
- value: '',
32090
- checked: true,
32091
- readOnly: true,
32092
- className: 'radiobutton__input'
32093
- }),
32094
- React__default.createElement('span', null, translations.QSM.ONE_ACCOMMODATION)
32095
- )
32096
- ),
32081
+ 'label',
32082
+ { className: 'radiobutton__label' },
32083
+ React__default.createElement('input', {
32084
+ type: 'radio',
32085
+ name: 'numberOfAccommodations',
32086
+ // onChange={handleMainBookerChange}
32087
+ // onBlur={formik.handleBlur}
32088
+ value: '',
32089
+ checked: true,
32090
+ readOnly: true,
32091
+ className: 'radiobutton__input'
32092
+ }),
32093
+ React__default.createElement('span', null, translations.QSM.ONE_ACCOMMODATION)
32094
+ )
32095
+ ),
32096
+ React__default.createElement(
32097
+ 'div',
32098
+ { className: 'radiobutton' },
32097
32099
  React__default.createElement(
32098
- 'div',
32099
- { className: 'radiobutton' },
32100
- React__default.createElement(
32101
- 'label',
32102
- { className: 'radiobutton__label' },
32103
- React__default.createElement('input', {
32104
- type: 'radio',
32105
- name: 'numberOfAccommodations',
32106
- // onChange={handleMainBookerChange}
32107
- // onBlur={formik.handleBlur}
32108
- value: '',
32109
- className: 'radiobutton__input',
32110
- disabled: true
32111
- }),
32112
- React__default.createElement('span', null, translations.QSM.MULTIPLE_ACCOMMODATIONS)
32113
- )
32100
+ 'label',
32101
+ { className: 'radiobutton__label' },
32102
+ React__default.createElement('input', {
32103
+ type: 'radio',
32104
+ name: 'numberOfAccommodations',
32105
+ // onChange={handleMainBookerChange}
32106
+ // onBlur={formik.handleBlur}
32107
+ value: '',
32108
+ className: 'radiobutton__input',
32109
+ disabled: true
32110
+ }),
32111
+ React__default.createElement('span', null, translations.QSM.MULTIPLE_ACCOMMODATIONS)
32114
32112
  )
32115
- )),
32113
+ )
32114
+ ),
32116
32115
  qsmType === 'flight' &&
32117
32116
  React__default.createElement(
32118
32117
  'div',
@@ -32346,9 +32345,9 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
32346
32345
  setBookingPackageDetails = _a.setBookingPackageDetails,
32347
32346
  setEntry = _a.setEntry,
32348
32347
  selectFlight = _a.selectFlight,
32349
- setIsLoading = _a.setIsLoading;
32350
- _a.setFilters;
32351
- var resetFilters = _a.resetFilters,
32348
+ setIsLoading = _a.setIsLoading,
32349
+ setFilters = _a.setFilters,
32350
+ resetFilters = _a.resetFilters,
32352
32351
  setSortKey = _a.setSortKey,
32353
32352
  setActiveTab = _a.setActiveTab;
32354
32353
  _a.setCurrentPage;
@@ -39583,6 +39582,433 @@ var FlightResultsContainer = function (_a) {
39583
39582
  );
39584
39583
  };
39585
39584
 
39585
+ var initialFilters = [
39586
+ {
39587
+ property: 'regime',
39588
+ label: 'Regime',
39589
+ type: 'checkbox',
39590
+ options: [
39591
+ {
39592
+ label: 'Room only',
39593
+ value: ['RO', 'LO', 'OB'],
39594
+ isChecked: false
39595
+ },
39596
+ {
39597
+ label: 'Bed & Beakfast',
39598
+ value: ['BB', 'KO'],
39599
+ isChecked: false
39600
+ },
39601
+ {
39602
+ label: 'Half board',
39603
+ value: ['HB'],
39604
+ isChecked: false
39605
+ },
39606
+ {
39607
+ label: 'Full board',
39608
+ value: ['FB'],
39609
+ isChecked: false
39610
+ }
39611
+ ],
39612
+ isFrontendFilter: false
39613
+ },
39614
+ {
39615
+ property: 'price',
39616
+ label: 'Prijs',
39617
+ type: 'slider',
39618
+ isFrontendFilter: false,
39619
+ min: 2244,
39620
+ max: 6785
39621
+ },
39622
+ {
39623
+ property: 'rating',
39624
+ label: 'Rating',
39625
+ type: 'star-rating',
39626
+ isFrontendFilter: true
39627
+ },
39628
+ {
39629
+ property: 'theme',
39630
+ label: "Thema's",
39631
+ type: 'toggle',
39632
+ options: [
39633
+ {
39634
+ label: 'Adults',
39635
+ value: 1,
39636
+ isChecked: false
39637
+ },
39638
+ {
39639
+ label: 'Luxury',
39640
+ value: 2,
39641
+ isChecked: false
39642
+ },
39643
+ {
39644
+ label: 'Welness & Spa',
39645
+ value: 3,
39646
+ isChecked: false
39647
+ },
39648
+ {
39649
+ label: 'familie',
39650
+ value: 4,
39651
+ isChecked: false
39652
+ }
39653
+ ],
39654
+ isFrontendFilter: false
39655
+ }
39656
+ ];
39657
+ var Filters = function (_a) {
39658
+ var _b;
39659
+ var filters = _a.filters,
39660
+ isOpen = _a.isOpen,
39661
+ handleSetIsOpen = _a.handleSetIsOpen,
39662
+ handleApplyFilters = _a.handleApplyFilters,
39663
+ isLoading = _a.isLoading;
39664
+ var context = useContext(SearchResultsConfigurationContext);
39665
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
39666
+ var _c = useState({}),
39667
+ visibleFilters = _c[0],
39668
+ setVisibleFilters = _c[1];
39669
+ var _d = useState([]),
39670
+ pendingFilters = _d[0],
39671
+ setPendingFilters = _d[1];
39672
+ useEffect(
39673
+ function () {
39674
+ if (initialFilters.length > 0) {
39675
+ setPendingFilters(initialFilters);
39676
+ }
39677
+ },
39678
+ [initialFilters]
39679
+ );
39680
+ var dispatch = useDispatch();
39681
+ var toggleFilterVisibility = function (filterId) {
39682
+ setVisibleFilters(function (prev) {
39683
+ var _a;
39684
+ return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
39685
+ });
39686
+ };
39687
+ var updatePendingFilter = function (updatedFilter) {
39688
+ setPendingFilters(function (prevFilters) {
39689
+ var index = prevFilters.findIndex(function (f) {
39690
+ return f.property === updatedFilter.property;
39691
+ });
39692
+ if (index !== -1) {
39693
+ var newFilters = __spreadArray([], prevFilters, true);
39694
+ newFilters[index] = updatedFilter;
39695
+ return newFilters;
39696
+ } else {
39697
+ return __spreadArray(__spreadArray([], prevFilters, true), [updatedFilter], false);
39698
+ }
39699
+ });
39700
+ };
39701
+ var handleCheckBoxFilter = function (filter, option) {
39702
+ setPendingFilters(function (prev) {
39703
+ var _a;
39704
+ var updated = prev.map(function (f) {
39705
+ var _a;
39706
+ if (f.property !== filter.property) {
39707
+ return f;
39708
+ }
39709
+ return __assign(__assign({}, f), {
39710
+ options:
39711
+ (_a = f.options) === null || _a === void 0
39712
+ ? void 0
39713
+ : _a.map(function (opt) {
39714
+ return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
39715
+ })
39716
+ });
39717
+ });
39718
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
39719
+ dispatch(setFilters(updated));
39720
+ (_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, updated);
39721
+ }
39722
+ return updated;
39723
+ });
39724
+ };
39725
+ var handleSliderMinChange = function (filter, value) {
39726
+ var _a, _b;
39727
+ if (value < ((_b = (_a = filter.selectedMax) !== null && _a !== void 0 ? _a : filter.max) !== null && _b !== void 0 ? _b : 100)) {
39728
+ var updatedFilter = __assign(__assign({}, filter), { selectedMin: value });
39729
+ updatePendingFilter(updatedFilter);
39730
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
39731
+ applyFilters();
39732
+ }
39733
+ }
39734
+ };
39735
+ var handleSliderMaxChange = function (filter, value) {
39736
+ var _a, _b;
39737
+ if (value > ((_b = (_a = filter.selectedMin) !== null && _a !== void 0 ? _a : filter.min) !== null && _b !== void 0 ? _b : 0)) {
39738
+ var updatedFilter = __assign(__assign({}, filter), { selectedMax: value });
39739
+ updatePendingFilter(updatedFilter);
39740
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
39741
+ applyFilters();
39742
+ }
39743
+ }
39744
+ };
39745
+ var applyFilters = function () {
39746
+ var _a;
39747
+ dispatch(setFilters(pendingFilters));
39748
+ (_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, pendingFilters);
39749
+ handleApplyFilters();
39750
+ if (isOpen) {
39751
+ handleSetIsOpen();
39752
+ }
39753
+ };
39754
+ var handleFullReset = function () {
39755
+ if (!isLoading) {
39756
+ setPendingFilters(initialFilters);
39757
+ dispatch(resetFilters(initialFilters));
39758
+ }
39759
+ };
39760
+ var handleResetPendingChanges = function () {
39761
+ setPendingFilters(filters); // ← back to last applied
39762
+ };
39763
+ var hasPendingChanges = function () {
39764
+ return JSON.stringify(pendingFilters) !== JSON.stringify(filters);
39765
+ };
39766
+ if (!context || !context.showFilters) {
39767
+ return null;
39768
+ }
39769
+ return React__default.createElement(
39770
+ React__default.Fragment,
39771
+ null,
39772
+ React__default.createElement(
39773
+ 'div',
39774
+ { className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
39775
+ React__default.createElement('div', {
39776
+ className: 'search__filters--background',
39777
+ onClick: function () {
39778
+ return handleSetIsOpen();
39779
+ }
39780
+ }),
39781
+ React__default.createElement(
39782
+ 'button',
39783
+ {
39784
+ className: 'search__filters--close',
39785
+ onClick: function () {
39786
+ return handleSetIsOpen();
39787
+ }
39788
+ },
39789
+ React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
39790
+ ),
39791
+ React__default.createElement(
39792
+ 'div',
39793
+ { className: 'search__filters' },
39794
+ React__default.createElement(
39795
+ 'div',
39796
+ { className: 'search__filter-row search__filter__header' },
39797
+ React__default.createElement(
39798
+ 'div',
39799
+ { className: 'search__filter-row-flex-title' },
39800
+ React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
39801
+ ),
39802
+ !isLoading &&
39803
+ React__default.createElement(
39804
+ 'a',
39805
+ {
39806
+ className: 'search__filter-reset',
39807
+ onClick: function () {
39808
+ return handleFullReset();
39809
+ }
39810
+ },
39811
+ translations.SRP.RESET
39812
+ )
39813
+ ),
39814
+ isLoading
39815
+ ? React__default.createElement(Spinner, null)
39816
+ : React__default.createElement(
39817
+ React__default.Fragment,
39818
+ null,
39819
+ React__default.createElement(
39820
+ 'div',
39821
+ { className: 'search__filters__group-container' },
39822
+ pendingFilters.map(function (filter, index) {
39823
+ var _a, _b;
39824
+ var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
39825
+ return React__default.createElement(
39826
+ 'div',
39827
+ { key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
39828
+ React__default.createElement(
39829
+ 'div',
39830
+ {
39831
+ className: 'search__filter-row search__filter-row--underline',
39832
+ onClick: function () {
39833
+ return toggleFilterVisibility(filter.property);
39834
+ },
39835
+ role: 'button',
39836
+ tabIndex: 0
39837
+ },
39838
+ React__default.createElement('h6', { className: 'search__filter-large-title' }, filter.label),
39839
+ React__default.createElement(
39840
+ 'svg',
39841
+ {
39842
+ id: 'search-chevron-up-icon',
39843
+ className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
39844
+ viewBox: '0 0 10 6.063',
39845
+ width: 10,
39846
+ height: 6.063
39847
+ },
39848
+ React__default.createElement('path', {
39849
+ id: 'Path_62',
39850
+ 'data-name': 'Path 62',
39851
+ d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
39852
+ transform: 'translate(-240 624)',
39853
+ fill: '#707070'
39854
+ })
39855
+ )
39856
+ ),
39857
+ isVisible &&
39858
+ filter.type === 'checkbox' &&
39859
+ React__default.createElement(
39860
+ 'div',
39861
+ { className: 'search__filter-rows' },
39862
+ filter.options &&
39863
+ filter.options.map(function (option, optionIndex) {
39864
+ return React__default.createElement(
39865
+ 'div',
39866
+ { className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
39867
+ React__default.createElement(
39868
+ 'div',
39869
+ { className: 'checkbox' },
39870
+ React__default.createElement(
39871
+ 'label',
39872
+ { className: 'checkbox__label' },
39873
+ React__default.createElement('input', {
39874
+ type: 'checkbox',
39875
+ className: 'checkbox__input checkbox__input--parent',
39876
+ checked: option.isChecked,
39877
+ onChange: function (e) {
39878
+ return handleCheckBoxFilter(filter, option);
39879
+ }
39880
+ }),
39881
+ React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
39882
+ )
39883
+ )
39884
+ );
39885
+ })
39886
+ ),
39887
+ isVisible &&
39888
+ filter.type === 'toggle' &&
39889
+ React__default.createElement(
39890
+ 'div',
39891
+ { className: 'search__filter-rows' },
39892
+ (_b = filter.options) === null || _b === void 0
39893
+ ? void 0
39894
+ : _b.map(function (option, optionIndex) {
39895
+ return React__default.createElement(
39896
+ 'div',
39897
+ { className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
39898
+ React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
39899
+ React__default.createElement('div', { className: 'checkbox' }),
39900
+ React__default.createElement(
39901
+ 'label',
39902
+ { className: 'checkbox__label' },
39903
+ React__default.createElement('input', {
39904
+ type: 'checkbox',
39905
+ className: 'checkbox__input',
39906
+ checked: option.isChecked,
39907
+ onChange: function () {
39908
+ return handleCheckBoxFilter(filter, option);
39909
+ }
39910
+ })
39911
+ )
39912
+ );
39913
+ })
39914
+ ),
39915
+ isVisible &&
39916
+ filter &&
39917
+ filter.type === 'slider' &&
39918
+ (function () {
39919
+ var _a, _b, _c, _d;
39920
+ var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
39921
+ var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
39922
+ var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
39923
+ var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
39924
+ return React__default.createElement(MultiRangeFilter, {
39925
+ min: min,
39926
+ max: max,
39927
+ selectedMin: selectedMin,
39928
+ selectedMax: selectedMax,
39929
+ valueFormatter: function (value) {
39930
+ return ''.concat(value);
39931
+ },
39932
+ onChange: function (newMin, newMax) {
39933
+ handleSliderMinChange(filter, newMin);
39934
+ handleSliderMaxChange(filter, newMax);
39935
+ }
39936
+ });
39937
+ })(),
39938
+ isVisible &&
39939
+ filter.property === 'rating' &&
39940
+ filter.type === 'star-rating' &&
39941
+ (function () {
39942
+ var _a;
39943
+ var selectedRating = (_a = filter.selectedRating) !== null && _a !== void 0 ? _a : 0;
39944
+ var handleRatingChange = function (rating) {
39945
+ var updatedFilter = __assign(__assign({}, filter), { selectedRating: rating });
39946
+ updatePendingFilter(updatedFilter);
39947
+ if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
39948
+ applyFilters();
39949
+ }
39950
+ };
39951
+ return React__default.createElement(
39952
+ 'div',
39953
+ { className: 'search__filter-row star-rating-filter' },
39954
+ [5, 4, 3, 2, 1].map(function (star) {
39955
+ return React__default.createElement(
39956
+ 'span',
39957
+ {
39958
+ key: star,
39959
+ className: 'star '.concat(star <= selectedRating ? 'filled' : ''),
39960
+ onClick: function () {
39961
+ return handleRatingChange(star);
39962
+ },
39963
+ role: 'button',
39964
+ tabIndex: 0,
39965
+ onKeyDown: function (e) {
39966
+ if (e.key === 'Enter' || e.key === ' ') handleRatingChange(star);
39967
+ }
39968
+ },
39969
+ '\u2605'
39970
+ );
39971
+ })
39972
+ );
39973
+ })()
39974
+ );
39975
+ }),
39976
+ context.useGlobalApplyFilterButton &&
39977
+ hasPendingChanges() &&
39978
+ React__default.createElement(
39979
+ 'div',
39980
+ { className: 'search__filters__actions' },
39981
+ React__default.createElement(
39982
+ 'button',
39983
+ {
39984
+ className: 'cta--secondary ',
39985
+ onClick: function () {
39986
+ handleResetPendingChanges();
39987
+ handleSetIsOpen();
39988
+ },
39989
+ disabled: isLoading
39990
+ },
39991
+ translations.SRP.CANCEL
39992
+ ),
39993
+ React__default.createElement(
39994
+ 'button',
39995
+ {
39996
+ className: 'cta',
39997
+ onClick: function () {
39998
+ return applyFilters();
39999
+ },
40000
+ disabled: isLoading
40001
+ },
40002
+ translations.SRP.APPLY
40003
+ )
40004
+ )
40005
+ )
40006
+ )
40007
+ )
40008
+ )
40009
+ );
40010
+ };
40011
+
39586
40012
  var SearchResultsContainer = function () {
39587
40013
  var _a;
39588
40014
  var dispatch = useDispatch();
@@ -39601,8 +40027,8 @@ var SearchResultsContainer = function () {
39601
40027
  flyInIsOpen = _b.flyInIsOpen;
39602
40028
  var isMobile = useMediaQuery('(max-width: 1200px)');
39603
40029
  var _c = useState(0),
39604
- searchTrigger = _c[0];
39605
- _c[1];
40030
+ searchTrigger = _c[0],
40031
+ setSearchTrigger = _c[1];
39606
40032
  var _d = useState(false),
39607
40033
  initialFiltersSet = _d[0],
39608
40034
  setInitialFiltersSet = _d[1];
@@ -39616,10 +40042,11 @@ var SearchResultsContainer = function () {
39616
40042
  itineraryOpen = _g[0],
39617
40043
  setItineraryOpen = _g[1];
39618
40044
  var panelRef = useRef(null);
39619
- var sortingOptions = [
39620
- { key: 'price-asc', label: translations.SRP.PRICE_ASC },
39621
- { key: 'price-desc', label: translations.SRP.PRICE_DESC },
39622
- { key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
40045
+ var sortByTypes = [
40046
+ { direction: 'asc', label: 'price' },
40047
+ { direction: 'desc', label: 'price' },
40048
+ { direction: 'asc', label: 'departure' },
40049
+ { direction: 'desc', label: 'departure' }
39623
40050
  ];
39624
40051
  var handleFlyInToggle = function (isOpen) {
39625
40052
  dispatch(setFlyInIsOpen(isOpen));
@@ -39707,7 +40134,7 @@ var SearchResultsContainer = function () {
39707
40134
  return searchRequest;
39708
40135
  };
39709
40136
  var buildSearchFromQueryParams = function (params) {
39710
- var _a, _b, _c, _d, _e;
40137
+ var _a;
39711
40138
  var from = getDateFromParams(params, 'fromDate');
39712
40139
  var to = getDateFromParams(params, 'toDate');
39713
40140
  var rooms = getRoomsFromParams(params, 'rooms');
@@ -39719,11 +40146,8 @@ var SearchResultsContainer = function () {
39719
40146
  var tagId = getNumberFromParams(params, 'tagId');
39720
40147
  // temp hardcoded params
39721
40148
  if (!from || !to) {
39722
- from = '2026-04-07';
39723
- to = '2026-04-13';
39724
- }
39725
- if (!country && !region && !oord && !city) {
39726
- region = 1;
40149
+ console.error('Missing fromDate or toDate in query params, using default values');
40150
+ return null;
39727
40151
  }
39728
40152
  if (typeof window !== 'undefined') {
39729
40153
  window.scrollTo(0, 0);
@@ -39764,34 +40188,14 @@ var SearchResultsContainer = function () {
39764
40188
  toDate: to,
39765
40189
  earliestFromOffset: 0,
39766
40190
  latestToOffset: 0,
39767
- includeFlights: true,
39768
- regimeCodes:
39769
- ((_c =
39770
- (_b = filters.find(function (f) {
39771
- return f.property === 'regime';
39772
- })) === null || _b === void 0
39773
- ? void 0
39774
- : _b.options) === null || _c === void 0
39775
- ? void 0
39776
- : _c
39777
- .filter(function (o) {
39778
- return o.isChecked;
39779
- })
39780
- .flatMap(function (o) {
39781
- return o.value.toString();
39782
- })) || [],
39783
- minPrice:
39784
- (_d = filters.find(function (f) {
39785
- return f.property === 'price';
39786
- })) === null || _d === void 0
39787
- ? void 0
39788
- : _d.selectedMin,
39789
- maxPrice:
39790
- (_e = filters.find(function (f) {
39791
- return f.property === 'price';
39792
- })) === null || _e === void 0
39793
- ? void 0
39794
- : _e.selectedMax,
40191
+ includeFlights: context.type === 'hotel-flight' ? true : false,
40192
+ // regimeCodes:
40193
+ // filters
40194
+ // .find((f) => f.property === 'regime')
40195
+ // ?.options?.filter((o) => o.isChecked)
40196
+ // .flatMap((o) => o.value.toString()) || [],
40197
+ // minPrice: filters.find((f) => f.property === 'price')?.selectedMin,
40198
+ // maxPrice: filters.find((f) => f.property === 'price')?.selectedMax,
39795
40199
  useExactDates: true,
39796
40200
  onlyCachedResults: false,
39797
40201
  includeAllAllotments: true,
@@ -39868,9 +40272,9 @@ var SearchResultsContainer = function () {
39868
40272
  // seperate Search
39869
40273
  useEffect(
39870
40274
  function () {
39871
- var runHotelFlightSearch = function () {
40275
+ var runHotelSearch = function () {
39872
40276
  return __awaiter(void 0, void 0, void 0, function () {
39873
- var config, params, entryId, entryLight, searchRequest, packageSearchResults, enrichedFilters, matching, err_1;
40277
+ var config, params, entryId, entryLight, searchRequest, rq, packageSearchResults, enrichedFilters, matching, err_1;
39874
40278
  var _a;
39875
40279
  return __generator(this, function (_b) {
39876
40280
  switch (_b.label) {
@@ -39899,7 +40303,11 @@ var SearchResultsContainer = function () {
39899
40303
  searchRequest = buildSearchFromEntry(entryLight);
39900
40304
  return [3 /*break*/, 4];
39901
40305
  case 3:
39902
- searchRequest = buildSearchFromQueryParams(params);
40306
+ rq = buildSearchFromQueryParams(params);
40307
+ if (!rq) {
40308
+ throw new Error('Invalid search parameters');
40309
+ }
40310
+ searchRequest = rq;
39903
40311
  _b.label = 4;
39904
40312
  case 4:
39905
40313
  return [4 /*yield*/, build.search(config, searchRequest)];
@@ -39939,8 +40347,11 @@ var SearchResultsContainer = function () {
39939
40347
  });
39940
40348
  };
39941
40349
  if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
39942
- if ((context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight') {
39943
- runHotelFlightSearch();
40350
+ if (
40351
+ (context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight' ||
40352
+ (context === null || context === void 0 ? void 0 : context.type) === 'hotel'
40353
+ ) {
40354
+ runHotelSearch();
39944
40355
  }
39945
40356
  }
39946
40357
  },
@@ -39989,7 +40400,7 @@ var SearchResultsContainer = function () {
39989
40400
  productCode: selectedItem.code,
39990
40401
  fromDate: selectedItem.fromDate,
39991
40402
  toDate: selectedItem.toDate,
39992
- includeFlights: true,
40403
+ includeFlights: context.type === 'hotel-flight' ? true : false,
39993
40404
  includeHotels: true,
39994
40405
  includePaxTypes: true,
39995
40406
  checkExternalAvailability: true,
@@ -40069,17 +40480,33 @@ var SearchResultsContainer = function () {
40069
40480
  }
40070
40481
  })
40071
40482
  ),
40072
- context.type === 'hotel-flight' &&
40483
+ (context.type === 'hotel-flight' || context.type === 'hotel' || context.type === 'roundTrip') &&
40073
40484
  React__default.createElement(
40074
40485
  React__default.Fragment,
40075
40486
  null,
40076
- React__default.createElement(Itinerary, {
40077
- isOpen: itineraryOpen,
40078
- handleSetIsOpen: function () {
40079
- return setItineraryOpen(!itineraryOpen);
40080
- },
40081
- isLoading: isLoading
40082
- }),
40487
+ context.type != 'hotel-flight' &&
40488
+ context.showFilters &&
40489
+ React__default.createElement(Filters, {
40490
+ filters: filters,
40491
+ isOpen: filtersOpen,
40492
+ handleSetIsOpen: function () {
40493
+ return setFiltersOpen(!filtersOpen);
40494
+ },
40495
+ handleApplyFilters: function () {
40496
+ return setSearchTrigger(function (prev) {
40497
+ return prev + 1;
40498
+ });
40499
+ },
40500
+ isLoading: isLoading
40501
+ }),
40502
+ context.type === 'hotel-flight' &&
40503
+ React__default.createElement(Itinerary, {
40504
+ isOpen: itineraryOpen,
40505
+ handleSetIsOpen: function () {
40506
+ return setItineraryOpen(!itineraryOpen);
40507
+ },
40508
+ isLoading: isLoading
40509
+ }),
40083
40510
  React__default.createElement(
40084
40511
  'div',
40085
40512
  { className: 'search__results' },
@@ -40090,7 +40517,8 @@ var SearchResultsContainer = function () {
40090
40517
  React__default.createElement(
40091
40518
  'div',
40092
40519
  { className: 'search__results__actions' },
40093
- context.showFilters &&
40520
+ context.type != 'hotel-flight' &&
40521
+ context.showFilters &&
40094
40522
  React__default.createElement(
40095
40523
  'div',
40096
40524
  {
@@ -40115,10 +40543,10 @@ var SearchResultsContainer = function () {
40115
40543
  translations.SRP.SHOW_ITINERARY
40116
40544
  )
40117
40545
  ),
40118
- sortingOptions &&
40119
- sortingOptions.length > 0 &&
40546
+ sortByTypes &&
40547
+ sortByTypes.length > 0 &&
40120
40548
  React__default.createElement(ItemPicker, {
40121
- items: sortingOptions,
40549
+ items: sortByTypes,
40122
40550
  selection: sortKey || undefined,
40123
40551
  label: translations.SRP.SORTBY,
40124
40552
  placeholder: translations.SRP.SORTBY,
@@ -40142,13 +40570,13 @@ var SearchResultsContainer = function () {
40142
40570
  )
40143
40571
  ),
40144
40572
  !isMobile &&
40145
- sortingOptions &&
40146
- sortingOptions.length > 0 &&
40573
+ sortByTypes &&
40574
+ sortByTypes.length > 0 &&
40147
40575
  React__default.createElement(
40148
40576
  'div',
40149
40577
  { className: 'search__result-row-filter' },
40150
40578
  React__default.createElement(ItemPicker, {
40151
- items: sortingOptions,
40579
+ items: sortByTypes,
40152
40580
  selection: sortKey || undefined,
40153
40581
  label: translations.SRP.SORTBY,
40154
40582
  placeholder: translations.SRP.SORTBY,