@qite/tide-booking-component 1.4.103 → 1.4.104
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.
- package/build/build-cjs/index.js +2167 -1400
- package/build/build-cjs/src/search-results/components/filters/filters.d.ts +2 -0
- package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +1 -0
- package/build/build-cjs/src/search-results/store/search-results-selectors.d.ts +424 -0
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +27 -8
- package/build/build-cjs/src/search-results/types.d.ts +14 -2
- package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +8 -6
- package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +3 -3
- package/build/build-cjs/src/shared/components/flyin/packaging-flights-flyin.d.ts +7 -0
- package/build/build-esm/index.js +2152 -1395
- package/build/build-esm/src/search-results/components/filters/filters.d.ts +2 -0
- package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +1 -0
- package/build/build-esm/src/search-results/store/search-results-selectors.d.ts +424 -0
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +27 -8
- package/build/build-esm/src/search-results/types.d.ts +14 -2
- package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +8 -6
- package/build/build-esm/src/shared/components/flyin/flyin.d.ts +3 -3
- package/build/build-esm/src/shared/components/flyin/packaging-flights-flyin.d.ts +7 -0
- package/package.json +1 -1
- package/src/booking-wizard/features/flight-options/index.tsx +6 -2
- package/src/search-results/components/filters/filters.tsx +8 -9
- package/src/search-results/components/hotel/hotel-accommodation-results.tsx +81 -24
- package/src/search-results/components/search-results-container/search-results-container.tsx +118 -102
- package/src/search-results/store/search-results-selectors.ts +73 -0
- package/src/search-results/store/search-results-slice.ts +94 -14
- package/src/search-results/types.ts +14 -2
- package/src/search-results/utils/search-results-utils.ts +310 -58
- package/src/shared/components/flyin/flyin.tsx +102 -19
- package/src/shared/components/flyin/packaging-flights-flyin.tsx +164 -0
- package/styles/components/_flyin.scss +16 -0
- package/styles/components/_search.scss +4 -1
package/build/build-esm/index.js
CHANGED
|
@@ -21721,7 +21721,11 @@ var FlightOptionsForm = function () {
|
|
|
21721
21721
|
setFlightGroups = _f[1];
|
|
21722
21722
|
var handleSubmit = function (e) {
|
|
21723
21723
|
if (settings.skipRouter) {
|
|
21724
|
-
|
|
21724
|
+
if (settings.roomOptions.isHidden) {
|
|
21725
|
+
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
21726
|
+
} else {
|
|
21727
|
+
dispatch(setCurrentStep(ROOM_OPTIONS_FORM_STEP));
|
|
21728
|
+
}
|
|
21725
21729
|
} else {
|
|
21726
21730
|
if (settings.roomOptions.isHidden) {
|
|
21727
21731
|
navigate(
|
|
@@ -33716,21 +33720,28 @@ var initialState$1 = {
|
|
|
33716
33720
|
packagingAccoSearchDetails: [],
|
|
33717
33721
|
selectedPackagingAccoResultCode: null,
|
|
33718
33722
|
packagingFlightResults: [],
|
|
33723
|
+
filteredPackagingFlightResults: [],
|
|
33719
33724
|
selectedPackagingFlight: null,
|
|
33725
|
+
selectedOutwardKey: null,
|
|
33726
|
+
selectedReturnKey: null,
|
|
33720
33727
|
selectedFlight: null,
|
|
33721
33728
|
selectedFlightDetails: null,
|
|
33722
33729
|
bookingPackageDetails: null,
|
|
33730
|
+
priceDetails: null,
|
|
33723
33731
|
isLoading: false,
|
|
33724
33732
|
flightsLoading: false,
|
|
33725
|
-
filters: [],
|
|
33726
33733
|
selectedSortType: null,
|
|
33734
|
+
selectedFlightSortType: null,
|
|
33735
|
+
initialFilters: [],
|
|
33736
|
+
filters: [],
|
|
33737
|
+
initialFlightFilters: [],
|
|
33738
|
+
flightFilters: [],
|
|
33727
33739
|
activeTab: 'compact',
|
|
33728
33740
|
currentPage: 1,
|
|
33741
|
+
transactionId: null,
|
|
33729
33742
|
flyInIsOpen: false,
|
|
33743
|
+
flyInType: null,
|
|
33730
33744
|
editablePackagingEntry: null,
|
|
33731
|
-
transactionId: null,
|
|
33732
|
-
accommodationFlyInStep: 'details',
|
|
33733
|
-
priceDetails: null,
|
|
33734
33745
|
itinerary: null
|
|
33735
33746
|
};
|
|
33736
33747
|
var searchResultsSlice = createSlice({
|
|
@@ -33761,6 +33772,9 @@ var searchResultsSlice = createSlice({
|
|
|
33761
33772
|
setPackagingFlightResults: function (state, action) {
|
|
33762
33773
|
state.packagingFlightResults = action.payload;
|
|
33763
33774
|
},
|
|
33775
|
+
setFilteredPackagingFlightResults: function (state, action) {
|
|
33776
|
+
state.filteredPackagingFlightResults = action.payload;
|
|
33777
|
+
},
|
|
33764
33778
|
setSelectedPackagingFlight: function (state, action) {
|
|
33765
33779
|
state.selectedPackagingFlight = action.payload;
|
|
33766
33780
|
},
|
|
@@ -33789,6 +33803,9 @@ var searchResultsSlice = createSlice({
|
|
|
33789
33803
|
setFlightsLoading: function (state, action) {
|
|
33790
33804
|
state.flightsLoading = action.payload;
|
|
33791
33805
|
},
|
|
33806
|
+
setInitialFilters: function (state, action) {
|
|
33807
|
+
state.initialFilters = action.payload;
|
|
33808
|
+
},
|
|
33792
33809
|
setFilters: function (state, action) {
|
|
33793
33810
|
var updatedFilters = action.payload;
|
|
33794
33811
|
updatedFilters.forEach(function (updatedFilter) {
|
|
@@ -33805,9 +33822,31 @@ var searchResultsSlice = createSlice({
|
|
|
33805
33822
|
resetFilters: function (state, action) {
|
|
33806
33823
|
state.filters = action.payload;
|
|
33807
33824
|
},
|
|
33825
|
+
setInitialFlightFilters: function (state, action) {
|
|
33826
|
+
state.initialFlightFilters = action.payload;
|
|
33827
|
+
},
|
|
33828
|
+
setFlightFilters: function (state, action) {
|
|
33829
|
+
var updatedFilters = action.payload;
|
|
33830
|
+
updatedFilters.forEach(function (updatedFilter) {
|
|
33831
|
+
var existingIndex = state.flightFilters.findIndex(function (f) {
|
|
33832
|
+
return f.property === updatedFilter.property;
|
|
33833
|
+
});
|
|
33834
|
+
if (existingIndex !== -1) {
|
|
33835
|
+
state.flightFilters[existingIndex] = updatedFilter;
|
|
33836
|
+
} else {
|
|
33837
|
+
state.flightFilters.push(updatedFilter); // Optional: Add new filters if not present
|
|
33838
|
+
}
|
|
33839
|
+
});
|
|
33840
|
+
},
|
|
33841
|
+
resetFlightFilters: function (state, action) {
|
|
33842
|
+
state.flightFilters = action.payload;
|
|
33843
|
+
},
|
|
33808
33844
|
setSortType: function (state, action) {
|
|
33809
33845
|
state.selectedSortType = action.payload;
|
|
33810
33846
|
},
|
|
33847
|
+
setFlightSortType: function (state, action) {
|
|
33848
|
+
state.selectedFlightSortType = action.payload;
|
|
33849
|
+
},
|
|
33811
33850
|
setActiveTab: function (state, action) {
|
|
33812
33851
|
state.activeTab = action.payload;
|
|
33813
33852
|
},
|
|
@@ -33831,14 +33870,24 @@ var searchResultsSlice = createSlice({
|
|
|
33831
33870
|
setTransactionId: function (state, action) {
|
|
33832
33871
|
state.transactionId = action.payload;
|
|
33833
33872
|
},
|
|
33834
|
-
|
|
33835
|
-
state.
|
|
33873
|
+
setFlyInType: function (state, action) {
|
|
33874
|
+
state.flyInType = action.payload;
|
|
33836
33875
|
},
|
|
33837
33876
|
setPriceDetails: function (state, action) {
|
|
33838
33877
|
state.priceDetails = action.payload;
|
|
33839
33878
|
},
|
|
33840
33879
|
setItinerary: function (state, action) {
|
|
33841
33880
|
state.itinerary = action.payload;
|
|
33881
|
+
},
|
|
33882
|
+
setSelectedOutwardKey: function (state, action) {
|
|
33883
|
+
state.selectedOutwardKey = action.payload;
|
|
33884
|
+
},
|
|
33885
|
+
setSelectedReturnKey: function (state, action) {
|
|
33886
|
+
state.selectedReturnKey = action.payload;
|
|
33887
|
+
},
|
|
33888
|
+
resetFlightSelection: function (state) {
|
|
33889
|
+
state.selectedOutwardKey = null;
|
|
33890
|
+
state.selectedReturnKey = null;
|
|
33842
33891
|
}
|
|
33843
33892
|
}
|
|
33844
33893
|
});
|
|
@@ -33847,6 +33896,7 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33847
33896
|
setSelectedSearchResult = _a.setSelectedSearchResult,
|
|
33848
33897
|
setPackagingAccoResults = _a.setPackagingAccoResults,
|
|
33849
33898
|
setFilteredPackagingAccoResults = _a.setFilteredPackagingAccoResults,
|
|
33899
|
+
setFilteredPackagingFlightResults = _a.setFilteredPackagingFlightResults,
|
|
33850
33900
|
setPackagingAccoSearchDetails = _a.setPackagingAccoSearchDetails,
|
|
33851
33901
|
setSelectedPackagingAccoResult = _a.setSelectedPackagingAccoResult,
|
|
33852
33902
|
setPackagingFlightResults = _a.setPackagingFlightResults,
|
|
@@ -33857,18 +33907,26 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33857
33907
|
_a.selectFlight;
|
|
33858
33908
|
var setIsLoading = _a.setIsLoading,
|
|
33859
33909
|
setFlightsLoading = _a.setFlightsLoading,
|
|
33910
|
+
setInitialFilters = _a.setInitialFilters,
|
|
33860
33911
|
setFilters = _a.setFilters,
|
|
33861
33912
|
resetFilters = _a.resetFilters,
|
|
33913
|
+
setInitialFlightFilters = _a.setInitialFlightFilters,
|
|
33914
|
+
setFlightFilters = _a.setFlightFilters,
|
|
33915
|
+
resetFlightFilters = _a.resetFlightFilters,
|
|
33862
33916
|
setSortType = _a.setSortType,
|
|
33917
|
+
setFlightSortType = _a.setFlightSortType,
|
|
33863
33918
|
setActiveTab = _a.setActiveTab;
|
|
33864
33919
|
_a.setCurrentPage;
|
|
33865
33920
|
_a.resetSearchState;
|
|
33866
33921
|
var setFlyInIsOpen = _a.setFlyInIsOpen,
|
|
33867
33922
|
setEditablePackagingEntry = _a.setEditablePackagingEntry,
|
|
33868
33923
|
setTransactionId = _a.setTransactionId,
|
|
33869
|
-
|
|
33924
|
+
setFlyInType = _a.setFlyInType,
|
|
33870
33925
|
setPriceDetails = _a.setPriceDetails,
|
|
33871
|
-
setItinerary = _a.setItinerary
|
|
33926
|
+
setItinerary = _a.setItinerary,
|
|
33927
|
+
setSelectedOutwardKey = _a.setSelectedOutwardKey,
|
|
33928
|
+
setSelectedReturnKey = _a.setSelectedReturnKey;
|
|
33929
|
+
_a.resetFlightSelection;
|
|
33872
33930
|
var searchResultsReducer = searchResultsSlice.reducer;
|
|
33873
33931
|
|
|
33874
33932
|
var ItemPicker = function (_a) {
|
|
@@ -43462,7 +43520,7 @@ var mapPackagingAccoResult = function (searchResult, cmsItem, languageCode, tran
|
|
|
43462
43520
|
contents: searchResult.contents
|
|
43463
43521
|
});
|
|
43464
43522
|
};
|
|
43465
|
-
var renderHotelResults = function (results, context, activeTab, translations) {
|
|
43523
|
+
var renderHotelResults = function (results, context, activeTab, translations, selectedPackagingAccoResult, isFlyIn) {
|
|
43466
43524
|
var renderedResults = results.map(function (result, index) {
|
|
43467
43525
|
var _a;
|
|
43468
43526
|
var key = ''.concat((_a = result.id) !== null && _a !== void 0 ? _a : result.code, '-').concat(index);
|
|
@@ -43477,13 +43535,18 @@ var renderHotelResults = function (results, context, activeTab, translations) {
|
|
|
43477
43535
|
return React__default.createElement(
|
|
43478
43536
|
'div',
|
|
43479
43537
|
{ className: 'search__results__cards '.concat(activeTab ? 'search__results__cards--'.concat(activeTab) : '') },
|
|
43538
|
+
selectedPackagingAccoResult &&
|
|
43539
|
+
!isFlyIn &&
|
|
43540
|
+
React__default.createElement(HotelCard, { key: selectedPackagingAccoResult.code, result: selectedPackagingAccoResult, translations: translations }),
|
|
43480
43541
|
renderedResults
|
|
43481
43542
|
);
|
|
43482
43543
|
};
|
|
43483
43544
|
var HotelAccommodationResults = function (_a) {
|
|
43484
43545
|
var _b, _c;
|
|
43485
|
-
var isLoading = _a.isLoading
|
|
43546
|
+
var isLoading = _a.isLoading,
|
|
43547
|
+
isFlyIn = _a.isFlyIn;
|
|
43486
43548
|
var context = useContext(SearchResultsConfigurationContext);
|
|
43549
|
+
var dispatch = useDispatch();
|
|
43487
43550
|
if (!context) {
|
|
43488
43551
|
return null;
|
|
43489
43552
|
}
|
|
@@ -43493,7 +43556,10 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43493
43556
|
}),
|
|
43494
43557
|
filteredResults = _d.filteredResults,
|
|
43495
43558
|
filteredPackagingAccoResults = _d.filteredPackagingAccoResults,
|
|
43559
|
+
packagingAccoResults = _d.packagingAccoResults,
|
|
43496
43560
|
activeTab = _d.activeTab;
|
|
43561
|
+
_d.flyInIsOpen;
|
|
43562
|
+
var selectedPackagingAccoResultCode = _d.selectedPackagingAccoResultCode;
|
|
43497
43563
|
var cmsMap = React__default.useMemo(
|
|
43498
43564
|
function () {
|
|
43499
43565
|
var _a;
|
|
@@ -43556,203 +43622,1180 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43556
43622
|
: firstPackagingResult.fromDate;
|
|
43557
43623
|
var firstResultDay = firstResultDate ? format$1(parseISO(firstResultDate), 'd') : null;
|
|
43558
43624
|
var firstResultMonth = firstResultDate ? format$1(parseISO(firstResultDate), 'MMM') : null;
|
|
43625
|
+
var selectedPackagingAccoResult = React__default.useMemo(
|
|
43626
|
+
function () {
|
|
43627
|
+
var selectedResult = packagingAccoResults.find(function (result) {
|
|
43628
|
+
return result.code === selectedPackagingAccoResultCode;
|
|
43629
|
+
});
|
|
43630
|
+
if (selectedResult) {
|
|
43631
|
+
return mapPackagingAccoResult(selectedResult, cmsMap.get(selectedResult.code), context.languageCode, translations);
|
|
43632
|
+
}
|
|
43633
|
+
},
|
|
43634
|
+
[packagingAccoResults, selectedPackagingAccoResultCode, cmsMap, context.languageCode, translations]
|
|
43635
|
+
);
|
|
43636
|
+
var visibleResults = React__default.useMemo(
|
|
43637
|
+
function () {
|
|
43638
|
+
var shouldShowAll =
|
|
43639
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) !== build.PortalQsmType.AccommodationAndFlight || isFlyIn;
|
|
43640
|
+
if (shouldShowAll) {
|
|
43641
|
+
return mappedResults;
|
|
43642
|
+
}
|
|
43643
|
+
if (selectedPackagingAccoResult) {
|
|
43644
|
+
return mappedResults
|
|
43645
|
+
.filter(function (result) {
|
|
43646
|
+
return result.code !== selectedPackagingAccoResult.code;
|
|
43647
|
+
})
|
|
43648
|
+
.slice(0, 2);
|
|
43649
|
+
}
|
|
43650
|
+
return mappedResults.slice(0, 3);
|
|
43651
|
+
},
|
|
43652
|
+
[context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType, mappedResults, isFlyIn, selectedPackagingAccoResult]
|
|
43653
|
+
);
|
|
43654
|
+
var handleShowMoreHotels = function (flyInType) {
|
|
43655
|
+
dispatch(setFlyInType(flyInType));
|
|
43656
|
+
dispatch(setFlyInIsOpen(true));
|
|
43657
|
+
};
|
|
43559
43658
|
return React__default.createElement(
|
|
43560
43659
|
React__default.Fragment,
|
|
43561
43660
|
null,
|
|
43562
|
-
|
|
43563
|
-
'div',
|
|
43564
|
-
{ className: 'search__results__label search__results__label--secondary' },
|
|
43661
|
+
!isFlyIn &&
|
|
43565
43662
|
React__default.createElement(
|
|
43566
43663
|
'div',
|
|
43567
|
-
{ className: '
|
|
43568
|
-
|
|
43569
|
-
|
|
43570
|
-
|
|
43571
|
-
|
|
43572
|
-
|
|
43573
|
-
|
|
43574
|
-
|
|
43575
|
-
|
|
43664
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
43665
|
+
React__default.createElement(
|
|
43666
|
+
'div',
|
|
43667
|
+
{ className: 'search__results__label__date' },
|
|
43668
|
+
firstResultDay && firstResultMonth
|
|
43669
|
+
? React__default.createElement(
|
|
43670
|
+
React__default.Fragment,
|
|
43671
|
+
null,
|
|
43672
|
+
React__default.createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
|
|
43673
|
+
React__default.createElement('p', null, firstResultMonth)
|
|
43674
|
+
)
|
|
43675
|
+
: React__default.createElement(Icon$1, { name: 'ui-bed', height: 16, fill: 'white' })
|
|
43676
|
+
),
|
|
43677
|
+
React__default.createElement(
|
|
43678
|
+
'div',
|
|
43679
|
+
{ className: 'search__results__label__text' },
|
|
43680
|
+
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.ACCOMMODATION))
|
|
43681
|
+
)
|
|
43576
43682
|
),
|
|
43577
|
-
React__default.createElement(
|
|
43578
|
-
'div',
|
|
43579
|
-
{ className: 'search__results__label__text' },
|
|
43580
|
-
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.ACCOMMODATION))
|
|
43581
|
-
)
|
|
43582
|
-
),
|
|
43583
43683
|
isLoading
|
|
43584
43684
|
? React__default.createElement(
|
|
43585
43685
|
React__default.Fragment,
|
|
43586
43686
|
null,
|
|
43587
43687
|
(_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default.createElement(Spinner, null)
|
|
43588
43688
|
)
|
|
43589
|
-
: renderHotelResults(
|
|
43590
|
-
|
|
43591
|
-
|
|
43592
|
-
};
|
|
43593
|
-
|
|
43594
|
-
var FlyIn = function (_a) {
|
|
43595
|
-
var title = _a.title,
|
|
43596
|
-
srpType = _a.srpType,
|
|
43597
|
-
isOpen = _a.isOpen,
|
|
43598
|
-
setIsOpen = _a.setIsOpen,
|
|
43599
|
-
_b = _a.className,
|
|
43600
|
-
className = _b === void 0 ? '' : _b,
|
|
43601
|
-
onPanelRef = _a.onPanelRef,
|
|
43602
|
-
detailsLoading = _a.detailsLoading,
|
|
43603
|
-
accommodationStep = _a.accommodationStep,
|
|
43604
|
-
isPackageEditFlow = _a.isPackageEditFlow,
|
|
43605
|
-
handleConfirm = _a.handleConfirm;
|
|
43606
|
-
var dispatch = useDispatch();
|
|
43607
|
-
var onCancelSearch = useFlightSearch().onCancelSearch;
|
|
43608
|
-
var panelRef = useRef(null);
|
|
43609
|
-
// expose DOM node if needed
|
|
43610
|
-
useEffect(
|
|
43611
|
-
function () {
|
|
43612
|
-
onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(panelRef.current);
|
|
43613
|
-
return function () {
|
|
43614
|
-
return onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(null);
|
|
43615
|
-
};
|
|
43616
|
-
},
|
|
43617
|
-
[onPanelRef]
|
|
43618
|
-
);
|
|
43619
|
-
useEffect(
|
|
43620
|
-
function () {
|
|
43621
|
-
// click outside detection
|
|
43622
|
-
var handleClickOutside = function (event) {
|
|
43623
|
-
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
43624
|
-
handleClose();
|
|
43625
|
-
}
|
|
43626
|
-
};
|
|
43627
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
43628
|
-
return function () {
|
|
43629
|
-
return document.removeEventListener('mousedown', handleClickOutside);
|
|
43630
|
-
};
|
|
43631
|
-
},
|
|
43632
|
-
[isOpen, setIsOpen]
|
|
43633
|
-
);
|
|
43634
|
-
// body scroll lock
|
|
43635
|
-
useEffect(
|
|
43636
|
-
function () {
|
|
43637
|
-
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
43638
|
-
return function () {
|
|
43639
|
-
document.body.style.overflow = '';
|
|
43640
|
-
};
|
|
43641
|
-
},
|
|
43642
|
-
[isOpen]
|
|
43643
|
-
);
|
|
43644
|
-
var handleClose = function () {
|
|
43645
|
-
if (isOpen && panelRef.current) {
|
|
43646
|
-
if (srpType === build.PortalQsmType.Flight) {
|
|
43647
|
-
dispatch(setSelectedFlight(null));
|
|
43648
|
-
dispatch(setSelectedFlightDetails(null));
|
|
43649
|
-
onCancelSearch();
|
|
43650
|
-
} else {
|
|
43651
|
-
dispatch(setSelectedSearchResult(null));
|
|
43652
|
-
dispatch(setSelectedPackagingAccoResult(null));
|
|
43653
|
-
}
|
|
43654
|
-
dispatch(setAccommodationFlyInStep('details'));
|
|
43655
|
-
setIsOpen(false);
|
|
43656
|
-
}
|
|
43657
|
-
};
|
|
43658
|
-
var handleGoBack = function () {
|
|
43659
|
-
dispatch(setAccommodationFlyInStep('results'));
|
|
43660
|
-
};
|
|
43661
|
-
return React__default.createElement(
|
|
43662
|
-
'div',
|
|
43663
|
-
{
|
|
43664
|
-
className: 'flyin '
|
|
43665
|
-
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
43666
|
-
.concat(className, ' ')
|
|
43667
|
-
.concat(isPackageEditFlow ? 'flyin--large' : '')
|
|
43668
|
-
},
|
|
43669
|
-
React__default.createElement(
|
|
43670
|
-
'div',
|
|
43671
|
-
{ className: 'flyin__panel '.concat(isOpen ? 'flyin__panel--active' : ''), ref: panelRef },
|
|
43689
|
+
: renderHotelResults(visibleResults, context, activeTab, translations, selectedPackagingAccoResult, isFlyIn),
|
|
43690
|
+
packagingAccoResults.length > 3 &&
|
|
43691
|
+
!isFlyIn &&
|
|
43672
43692
|
React__default.createElement(
|
|
43673
43693
|
'div',
|
|
43674
|
-
{ className: '
|
|
43694
|
+
{ className: 'search__results__cards__actions' },
|
|
43675
43695
|
React__default.createElement(
|
|
43676
|
-
'
|
|
43677
|
-
{
|
|
43678
|
-
|
|
43679
|
-
|
|
43680
|
-
|
|
43681
|
-
|
|
43682
|
-
|
|
43683
|
-
|
|
43684
|
-
|
|
43685
|
-
}
|
|
43686
|
-
},
|
|
43687
|
-
React__default.createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
43688
|
-
)
|
|
43689
|
-
),
|
|
43690
|
-
isPackageEditFlow &&
|
|
43691
|
-
accommodationStep === 'details' &&
|
|
43692
|
-
React__default.createElement(
|
|
43693
|
-
'div',
|
|
43694
|
-
{ className: 'flyin__content-title-row' },
|
|
43695
|
-
React__default.createElement(
|
|
43696
|
-
'div',
|
|
43697
|
-
{ onClick: handleGoBack, className: 'flyin__content-title__back' },
|
|
43698
|
-
React__default.createElement(Icon, { name: 'ui-chevron', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
43699
|
-
'Go Back'
|
|
43700
|
-
)
|
|
43701
|
-
)
|
|
43696
|
+
'button',
|
|
43697
|
+
{
|
|
43698
|
+
className: 'cta cta--secondary',
|
|
43699
|
+
onClick: function () {
|
|
43700
|
+
return handleShowMoreHotels('acco-results');
|
|
43701
|
+
}
|
|
43702
|
+
},
|
|
43703
|
+
translations.SRP.SHOW_MORE
|
|
43704
|
+
)
|
|
43702
43705
|
),
|
|
43703
|
-
|
|
43704
|
-
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43705
|
-
accommodationStep === 'results' &&
|
|
43706
|
-
React__default.createElement(
|
|
43707
|
-
'div',
|
|
43708
|
-
{ className: 'flyin__content' },
|
|
43709
|
-
React__default.createElement(HotelAccommodationResults, { isLoading: detailsLoading })
|
|
43710
|
-
),
|
|
43711
|
-
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43712
|
-
accommodationStep === 'details' &&
|
|
43713
|
-
React__default.createElement(AccommodationFlyIn, { isLoading: detailsLoading, handleConfirm: handleConfirm }),
|
|
43714
|
-
srpType === build.PortalQsmType.GroupTour &&
|
|
43715
|
-
React__default.createElement(GroupTourFlyIn, { isLoading: detailsLoading, isOpen: isOpen, setIsOpen: setIsOpen })
|
|
43716
|
-
)
|
|
43706
|
+
mappedResults.length === 0 && !isLoading && React__default.createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS)
|
|
43717
43707
|
);
|
|
43718
43708
|
};
|
|
43719
43709
|
|
|
43720
|
-
var
|
|
43721
|
-
|
|
43722
|
-
|
|
43723
|
-
|
|
43724
|
-
|
|
43725
|
-
|
|
43726
|
-
|
|
43727
|
-
|
|
43728
|
-
|
|
43710
|
+
var selectSearchResultsState = function (state) {
|
|
43711
|
+
return state.searchResults;
|
|
43712
|
+
};
|
|
43713
|
+
var selectPackagingFlightResults = createSelector([selectSearchResultsState], function (state) {
|
|
43714
|
+
return state.packagingFlightResults;
|
|
43715
|
+
});
|
|
43716
|
+
var selectFilteredPackagingFlightResults = createSelector([selectSearchResultsState], function (state) {
|
|
43717
|
+
return state.filteredPackagingFlightResults;
|
|
43718
|
+
});
|
|
43719
|
+
var selectSelectedOutwardKey = createSelector([selectSearchResultsState], function (state) {
|
|
43720
|
+
return state.selectedOutwardKey;
|
|
43721
|
+
});
|
|
43722
|
+
var selectSelectedReturnKey = createSelector([selectSearchResultsState], function (state) {
|
|
43723
|
+
return state.selectedReturnKey;
|
|
43724
|
+
});
|
|
43725
|
+
var selectUniqueOutwardFlights = createSelector([selectFilteredPackagingFlightResults], function (packagingFlightResults) {
|
|
43726
|
+
var map = new Map();
|
|
43727
|
+
packagingFlightResults.forEach(function (flight) {
|
|
43728
|
+
var key = getFlightKey(flight.outward.segments);
|
|
43729
|
+
if (!map.has(key)) {
|
|
43730
|
+
map.set(key, flight);
|
|
43731
|
+
}
|
|
43732
|
+
});
|
|
43733
|
+
return Array.from(map.values());
|
|
43734
|
+
});
|
|
43735
|
+
var selectUniqueReturnFlights = createSelector(
|
|
43736
|
+
[selectFilteredPackagingFlightResults, selectSelectedOutwardKey],
|
|
43737
|
+
function (packagingFlightResults, selectedOutwardKey) {
|
|
43738
|
+
if (!selectedOutwardKey) return [];
|
|
43739
|
+
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
43740
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
43741
|
+
});
|
|
43742
|
+
var map = new Map();
|
|
43743
|
+
matchingCombinations.forEach(function (flight) {
|
|
43744
|
+
var key = getFlightKey(flight.return.segments);
|
|
43745
|
+
if (!map.has(key)) {
|
|
43746
|
+
map.set(key, flight);
|
|
43729
43747
|
}
|
|
43730
|
-
}
|
|
43731
|
-
|
|
43732
|
-
|
|
43748
|
+
});
|
|
43749
|
+
return Array.from(map.values());
|
|
43750
|
+
}
|
|
43751
|
+
);
|
|
43752
|
+
var selectSelectedOutward = createSelector([selectPackagingFlightResults, selectSelectedOutwardKey], function (packagingFlightResults, selectedOutwardKey) {
|
|
43753
|
+
var _a;
|
|
43754
|
+
if (!selectedOutwardKey) return null;
|
|
43755
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
43756
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
43757
|
+
})) !== null && _a !== void 0
|
|
43758
|
+
? _a
|
|
43759
|
+
: null;
|
|
43760
|
+
});
|
|
43761
|
+
var selectSelectedReturn = createSelector([selectPackagingFlightResults, selectSelectedReturnKey], function (packagingFlightResults, selectedReturnKey) {
|
|
43762
|
+
var _a;
|
|
43763
|
+
if (!selectedReturnKey) return null;
|
|
43764
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
43765
|
+
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
43766
|
+
})) !== null && _a !== void 0
|
|
43767
|
+
? _a
|
|
43768
|
+
: null;
|
|
43769
|
+
});
|
|
43770
|
+
var selectSelectedCombinationFlight = createSelector(
|
|
43771
|
+
[selectPackagingFlightResults, selectSelectedOutwardKey, selectSelectedReturnKey],
|
|
43772
|
+
function (packagingFlightResults, selectedOutwardKey, selectedReturnKey) {
|
|
43773
|
+
var _a;
|
|
43774
|
+
if (!selectedOutwardKey || !selectedReturnKey) return null;
|
|
43775
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
43776
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
43777
|
+
})) !== null && _a !== void 0
|
|
43778
|
+
? _a
|
|
43779
|
+
: null;
|
|
43780
|
+
}
|
|
43781
|
+
);
|
|
43782
|
+
|
|
43783
|
+
var IndependentFlightOption = function (_a) {
|
|
43784
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
43785
|
+
var item = _a.item,
|
|
43786
|
+
onSelect = _a.onSelect,
|
|
43787
|
+
guid = _a.guid,
|
|
43788
|
+
selectedGuid = _a.selectedGuid,
|
|
43789
|
+
isOutward = _a.isOutward,
|
|
43790
|
+
showSelectedState = _a.showSelectedState,
|
|
43791
|
+
currentSelectedPrice = _a.currentSelectedPrice,
|
|
43792
|
+
price = _a.price;
|
|
43793
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
43794
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
43795
|
+
var translations = getTranslations(language);
|
|
43796
|
+
var _p = useState(false),
|
|
43797
|
+
detailsOpen = _p[0],
|
|
43798
|
+
setDetailsOpen = _p[1];
|
|
43799
|
+
var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
|
|
43733
43800
|
return React__default.createElement(
|
|
43734
43801
|
'div',
|
|
43735
|
-
{ className: '
|
|
43802
|
+
{ className: 'search__result-card', key: 'flight-'.concat(item.code) },
|
|
43736
43803
|
React__default.createElement(
|
|
43737
43804
|
'div',
|
|
43738
|
-
{ className: '
|
|
43805
|
+
{ className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
|
|
43739
43806
|
React__default.createElement(
|
|
43740
43807
|
'div',
|
|
43741
|
-
{ className: '
|
|
43742
|
-
React__default.createElement(
|
|
43743
|
-
'div',
|
|
43744
|
-
{ className: 'search__result-card__allotment__img-wrapper' },
|
|
43745
|
-
React__default.createElement('img', {
|
|
43746
|
-
src: 'https://cdn.pixabay.com/photo/2024/05/15/12/31/lake-8763490_1280.jpg',
|
|
43747
|
-
alt: 'river',
|
|
43748
|
-
className: 'search__result-card__allotment__img'
|
|
43749
|
-
})
|
|
43750
|
-
),
|
|
43808
|
+
{ className: 'flight__option' },
|
|
43751
43809
|
React__default.createElement(
|
|
43752
43810
|
'div',
|
|
43753
|
-
{ className: '
|
|
43811
|
+
{ className: 'flight__content' },
|
|
43754
43812
|
React__default.createElement(
|
|
43755
|
-
'
|
|
43813
|
+
'div',
|
|
43814
|
+
{ className: 'flight__flights' },
|
|
43815
|
+
React__default.createElement(
|
|
43816
|
+
'div',
|
|
43817
|
+
{ className: 'flight__flight' },
|
|
43818
|
+
React__default.createElement(
|
|
43819
|
+
'div',
|
|
43820
|
+
{ className: 'flight__flight__header' },
|
|
43821
|
+
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
43822
|
+
React__default.createElement(
|
|
43823
|
+
'div',
|
|
43824
|
+
{ className: 'flight__price' },
|
|
43825
|
+
price != null &&
|
|
43826
|
+
price > 0 &&
|
|
43827
|
+
(isOutward
|
|
43828
|
+
? React__default.createElement(
|
|
43829
|
+
'span',
|
|
43830
|
+
{ className: 'price' },
|
|
43831
|
+
translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
|
|
43832
|
+
'\u00A0',
|
|
43833
|
+
formatPrice$2(
|
|
43834
|
+
price,
|
|
43835
|
+
'EUR',
|
|
43836
|
+
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
43837
|
+
)
|
|
43838
|
+
)
|
|
43839
|
+
: priceDifference != null &&
|
|
43840
|
+
Math.abs(priceDifference) > 0 &&
|
|
43841
|
+
React__default.createElement(
|
|
43842
|
+
'span',
|
|
43843
|
+
{ className: 'price' },
|
|
43844
|
+
priceDifference > 0 ? '+' : '-',
|
|
43845
|
+
'\u00A0',
|
|
43846
|
+
formatPrice$2(
|
|
43847
|
+
Math.abs(priceDifference),
|
|
43848
|
+
'EUR',
|
|
43849
|
+
(_d = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
43850
|
+
)
|
|
43851
|
+
)),
|
|
43852
|
+
React__default.createElement(
|
|
43853
|
+
'button',
|
|
43854
|
+
{
|
|
43855
|
+
type: 'button',
|
|
43856
|
+
className: 'cta '.concat(selectedGuid === guid ? 'cta--selected' : 'cta--select'),
|
|
43857
|
+
onClick: function () {
|
|
43858
|
+
return onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
43859
|
+
}
|
|
43860
|
+
},
|
|
43861
|
+
selectedGuid === guid ? 'Selected' : 'Select'
|
|
43862
|
+
)
|
|
43863
|
+
)
|
|
43864
|
+
)
|
|
43865
|
+
),
|
|
43866
|
+
React__default.createElement(
|
|
43867
|
+
'div',
|
|
43868
|
+
{ className: 'flight__flight' },
|
|
43869
|
+
React__default.createElement(
|
|
43870
|
+
'div',
|
|
43871
|
+
{ className: 'flight__flight__container' },
|
|
43872
|
+
React__default.createElement(
|
|
43873
|
+
'div',
|
|
43874
|
+
{ className: 'flight__flight__wrapper' },
|
|
43875
|
+
React__default.createElement(
|
|
43876
|
+
'div',
|
|
43877
|
+
{ className: 'flight__logo__wrapper' },
|
|
43878
|
+
React__default.createElement('img', {
|
|
43879
|
+
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
43880
|
+
(_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
|
|
43881
|
+
'.png?height=256'
|
|
43882
|
+
),
|
|
43883
|
+
alt: '',
|
|
43884
|
+
className: 'flight__logo'
|
|
43885
|
+
}),
|
|
43886
|
+
React__default.createElement('span', null, (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName)
|
|
43887
|
+
),
|
|
43888
|
+
React__default.createElement(
|
|
43889
|
+
'div',
|
|
43890
|
+
{ className: 'flight__info' },
|
|
43891
|
+
React__default.createElement(
|
|
43892
|
+
'div',
|
|
43893
|
+
{ className: 'flight__info__times' },
|
|
43894
|
+
React__default.createElement(
|
|
43895
|
+
'strong',
|
|
43896
|
+
null,
|
|
43897
|
+
timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
|
|
43898
|
+
' ',
|
|
43899
|
+
(_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
|
|
43900
|
+
),
|
|
43901
|
+
React__default.createElement(
|
|
43902
|
+
'p',
|
|
43903
|
+
null,
|
|
43904
|
+
longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
|
|
43905
|
+
)
|
|
43906
|
+
),
|
|
43907
|
+
React__default.createElement(
|
|
43908
|
+
'div',
|
|
43909
|
+
{ className: 'flight__info__duration' },
|
|
43910
|
+
React__default.createElement('p', null, durationTicksInHoursString(item.durationInTicks)),
|
|
43911
|
+
React__default.createElement(
|
|
43912
|
+
'div',
|
|
43913
|
+
{ className: 'flight__info__duration__stops' },
|
|
43914
|
+
React__default.createElement('div', { className: 'flight__info__duration__stop' })
|
|
43915
|
+
),
|
|
43916
|
+
React__default.createElement(
|
|
43917
|
+
'span',
|
|
43918
|
+
null,
|
|
43919
|
+
getNumberOfStopsLabel(item, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
43920
|
+
)
|
|
43921
|
+
),
|
|
43922
|
+
React__default.createElement(
|
|
43923
|
+
'div',
|
|
43924
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
43925
|
+
React__default.createElement(
|
|
43926
|
+
'strong',
|
|
43927
|
+
null,
|
|
43928
|
+
timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
|
|
43929
|
+
' ',
|
|
43930
|
+
(_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
|
|
43931
|
+
),
|
|
43932
|
+
React__default.createElement(
|
|
43933
|
+
'p',
|
|
43934
|
+
null,
|
|
43935
|
+
longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
|
|
43936
|
+
)
|
|
43937
|
+
)
|
|
43938
|
+
)
|
|
43939
|
+
),
|
|
43940
|
+
React__default.createElement(
|
|
43941
|
+
'div',
|
|
43942
|
+
{ className: 'flight__detail__btn__wrapper' },
|
|
43943
|
+
React__default.createElement(
|
|
43944
|
+
'div',
|
|
43945
|
+
{
|
|
43946
|
+
className: 'flight__detail__btn '.concat(detailsOpen ? 'flight__detail__btn--active' : ''),
|
|
43947
|
+
onClick: function () {
|
|
43948
|
+
return setDetailsOpen(function (prev) {
|
|
43949
|
+
return !prev;
|
|
43950
|
+
});
|
|
43951
|
+
}
|
|
43952
|
+
},
|
|
43953
|
+
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
43954
|
+
)
|
|
43955
|
+
)
|
|
43956
|
+
),
|
|
43957
|
+
React__default.createElement(
|
|
43958
|
+
'div',
|
|
43959
|
+
{ className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
|
|
43960
|
+
(_o = getFlightSegments(item)) === null || _o === void 0
|
|
43961
|
+
? void 0
|
|
43962
|
+
: _o.map(function (segment, index) {
|
|
43963
|
+
return React__default.createElement(
|
|
43964
|
+
React__default.Fragment,
|
|
43965
|
+
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
43966
|
+
React__default.createElement(
|
|
43967
|
+
'div',
|
|
43968
|
+
{ className: 'flight__info' },
|
|
43969
|
+
React__default.createElement(
|
|
43970
|
+
'div',
|
|
43971
|
+
{ className: 'flight__info__times__wrapper' },
|
|
43972
|
+
React__default.createElement(
|
|
43973
|
+
'div',
|
|
43974
|
+
{ className: 'flight__info__times' },
|
|
43975
|
+
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
43976
|
+
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
43977
|
+
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
43978
|
+
),
|
|
43979
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
43980
|
+
),
|
|
43981
|
+
React__default.createElement(
|
|
43982
|
+
'div',
|
|
43983
|
+
{ className: 'flight__info__duration' },
|
|
43984
|
+
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
43985
|
+
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
43986
|
+
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
43987
|
+
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
43988
|
+
),
|
|
43989
|
+
React__default.createElement(
|
|
43990
|
+
'div',
|
|
43991
|
+
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
43992
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
43993
|
+
React__default.createElement(
|
|
43994
|
+
'div',
|
|
43995
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
43996
|
+
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
43997
|
+
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
43998
|
+
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
43999
|
+
)
|
|
44000
|
+
)
|
|
44001
|
+
),
|
|
44002
|
+
segment.transferTimeInTicks &&
|
|
44003
|
+
React__default.createElement(
|
|
44004
|
+
'div',
|
|
44005
|
+
{ className: 'flight__info' },
|
|
44006
|
+
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
44007
|
+
React__default.createElement(
|
|
44008
|
+
'div',
|
|
44009
|
+
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44010
|
+
React__default.createElement(
|
|
44011
|
+
'div',
|
|
44012
|
+
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44013
|
+
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44014
|
+
),
|
|
44015
|
+
React__default.createElement(
|
|
44016
|
+
'div',
|
|
44017
|
+
{ className: 'flight__info__duration__stoptime' },
|
|
44018
|
+
React__default.createElement('span', null, 'Stop time'),
|
|
44019
|
+
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44020
|
+
)
|
|
44021
|
+
),
|
|
44022
|
+
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44023
|
+
)
|
|
44024
|
+
);
|
|
44025
|
+
})
|
|
44026
|
+
)
|
|
44027
|
+
)
|
|
44028
|
+
)
|
|
44029
|
+
)
|
|
44030
|
+
)
|
|
44031
|
+
)
|
|
44032
|
+
);
|
|
44033
|
+
};
|
|
44034
|
+
|
|
44035
|
+
var MultiRangeFilter = function (_a) {
|
|
44036
|
+
var min = _a.min,
|
|
44037
|
+
max = _a.max,
|
|
44038
|
+
selectedMin = _a.selectedMin,
|
|
44039
|
+
selectedMax = _a.selectedMax,
|
|
44040
|
+
valueFormatter = _a.valueFormatter,
|
|
44041
|
+
onChange = _a.onChange;
|
|
44042
|
+
var _b = useState(false),
|
|
44043
|
+
isDragging = _b[0],
|
|
44044
|
+
setIsDragging = _b[1];
|
|
44045
|
+
var _c = useState(0),
|
|
44046
|
+
leftPercentage = _c[0],
|
|
44047
|
+
setLeftPercentage = _c[1];
|
|
44048
|
+
var _d = useState(0),
|
|
44049
|
+
rightPercentage = _d[0],
|
|
44050
|
+
setRightPercentage = _d[1];
|
|
44051
|
+
var _e = useState(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min),
|
|
44052
|
+
minVal = _e[0],
|
|
44053
|
+
setMinVal = _e[1];
|
|
44054
|
+
var _f = useState(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max),
|
|
44055
|
+
maxVal = _f[0],
|
|
44056
|
+
setMaxVal = _f[1];
|
|
44057
|
+
var minGap = 5;
|
|
44058
|
+
// Sync internal state with external selectedMin/selectedMax changes
|
|
44059
|
+
useEffect(
|
|
44060
|
+
function () {
|
|
44061
|
+
setMinVal(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min);
|
|
44062
|
+
setMaxVal(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max);
|
|
44063
|
+
},
|
|
44064
|
+
[min, max, selectedMin, selectedMax]
|
|
44065
|
+
);
|
|
44066
|
+
// Recalculate slider track whenever values change
|
|
44067
|
+
useEffect(
|
|
44068
|
+
function () {
|
|
44069
|
+
var range = max - min || 1;
|
|
44070
|
+
var minPercent = ((minVal - min) / range) * 100;
|
|
44071
|
+
var maxPercent = ((maxVal - min) / range) * 100;
|
|
44072
|
+
setLeftPercentage(minPercent);
|
|
44073
|
+
setRightPercentage(100 - maxPercent);
|
|
44074
|
+
},
|
|
44075
|
+
[minVal, maxVal, min, max]
|
|
44076
|
+
);
|
|
44077
|
+
var slideMin = function (e) {
|
|
44078
|
+
var value = parseInt(e.target.value, 10);
|
|
44079
|
+
// Ensure the thumbs don’t cross and enforce minGap
|
|
44080
|
+
if (value <= maxVal - minGap) {
|
|
44081
|
+
setMinVal(value);
|
|
44082
|
+
}
|
|
44083
|
+
};
|
|
44084
|
+
var slideMax = function (e) {
|
|
44085
|
+
var value = parseInt(e.target.value, 10);
|
|
44086
|
+
// Ensure the thumbs don’t cross and enforce minGap
|
|
44087
|
+
if (value >= minVal + minGap) {
|
|
44088
|
+
setMaxVal(value);
|
|
44089
|
+
}
|
|
44090
|
+
};
|
|
44091
|
+
var startDrag = function () {
|
|
44092
|
+
setIsDragging(true);
|
|
44093
|
+
};
|
|
44094
|
+
var stopDrag = function () {
|
|
44095
|
+
setIsDragging(false);
|
|
44096
|
+
// Notify parent with the final values
|
|
44097
|
+
onChange(minVal, maxVal);
|
|
44098
|
+
};
|
|
44099
|
+
return React__default.createElement(
|
|
44100
|
+
'div',
|
|
44101
|
+
{ className: 'double-slider-box' },
|
|
44102
|
+
React__default.createElement(
|
|
44103
|
+
'div',
|
|
44104
|
+
{ className: 'input-box' },
|
|
44105
|
+
React__default.createElement('div', { className: 'min-box' }, valueFormatter(minVal)),
|
|
44106
|
+
React__default.createElement('div', { className: 'max-box' }, valueFormatter(maxVal))
|
|
44107
|
+
),
|
|
44108
|
+
React__default.createElement(
|
|
44109
|
+
'div',
|
|
44110
|
+
{ className: 'range-slider' },
|
|
44111
|
+
React__default.createElement('div', {
|
|
44112
|
+
className: 'slider-track',
|
|
44113
|
+
style: { left: ''.concat(leftPercentage, '%'), right: ''.concat(rightPercentage, '%') }
|
|
44114
|
+
}),
|
|
44115
|
+
React__default.createElement('input', {
|
|
44116
|
+
type: 'range',
|
|
44117
|
+
min: min,
|
|
44118
|
+
max: max,
|
|
44119
|
+
value: minVal,
|
|
44120
|
+
onChange: slideMin,
|
|
44121
|
+
onMouseDown: startDrag,
|
|
44122
|
+
onMouseUp: stopDrag,
|
|
44123
|
+
onTouchStart: startDrag,
|
|
44124
|
+
onTouchEnd: stopDrag,
|
|
44125
|
+
className: 'min-val'
|
|
44126
|
+
}),
|
|
44127
|
+
React__default.createElement('input', {
|
|
44128
|
+
type: 'range',
|
|
44129
|
+
min: min,
|
|
44130
|
+
max: max,
|
|
44131
|
+
value: maxVal,
|
|
44132
|
+
onChange: slideMax,
|
|
44133
|
+
onMouseDown: startDrag,
|
|
44134
|
+
onMouseUp: stopDrag,
|
|
44135
|
+
onTouchStart: startDrag,
|
|
44136
|
+
onTouchEnd: stopDrag,
|
|
44137
|
+
className: 'max-val'
|
|
44138
|
+
}),
|
|
44139
|
+
isDragging && React__default.createElement('div', { className: 'min-tooltip' }, valueFormatter(minVal)),
|
|
44140
|
+
isDragging && React__default.createElement('div', { className: 'max-tooltip' }, valueFormatter(maxVal))
|
|
44141
|
+
)
|
|
44142
|
+
);
|
|
44143
|
+
};
|
|
44144
|
+
|
|
44145
|
+
var Filters = function (_a) {
|
|
44146
|
+
var _b;
|
|
44147
|
+
var initialFilters = _a.initialFilters,
|
|
44148
|
+
filters = _a.filters,
|
|
44149
|
+
isOpen = _a.isOpen,
|
|
44150
|
+
handleSetIsOpen = _a.handleSetIsOpen,
|
|
44151
|
+
isLoading = _a.isLoading,
|
|
44152
|
+
setFilters = _a.setFilters,
|
|
44153
|
+
resetFilters = _a.resetFilters;
|
|
44154
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44155
|
+
if (!context || !context.showFilters) {
|
|
44156
|
+
return null;
|
|
44157
|
+
}
|
|
44158
|
+
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44159
|
+
var _c = useState({}),
|
|
44160
|
+
visibleFilters = _c[0],
|
|
44161
|
+
setVisibleFilters = _c[1];
|
|
44162
|
+
var toggleFilterVisibility = function (filterId) {
|
|
44163
|
+
setVisibleFilters(function (prev) {
|
|
44164
|
+
var _a;
|
|
44165
|
+
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
44166
|
+
});
|
|
44167
|
+
};
|
|
44168
|
+
var handleCheckBoxFilter = function (filter, option) {
|
|
44169
|
+
var updated = filters.map(function (f) {
|
|
44170
|
+
var _a;
|
|
44171
|
+
if (f.property !== filter.property) return f;
|
|
44172
|
+
return __assign(__assign({}, f), {
|
|
44173
|
+
options:
|
|
44174
|
+
(_a = f.options) === null || _a === void 0
|
|
44175
|
+
? void 0
|
|
44176
|
+
: _a.map(function (opt) {
|
|
44177
|
+
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
44178
|
+
})
|
|
44179
|
+
});
|
|
44180
|
+
});
|
|
44181
|
+
setFilters(updated);
|
|
44182
|
+
};
|
|
44183
|
+
var handleSliderChange = function (filter, newMin, newMax) {
|
|
44184
|
+
var updated = filters.map(function (f) {
|
|
44185
|
+
if (f.property !== filter.property) return f;
|
|
44186
|
+
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
44187
|
+
});
|
|
44188
|
+
setFilters(updated);
|
|
44189
|
+
};
|
|
44190
|
+
var handleFullReset = function () {
|
|
44191
|
+
if (!isLoading) {
|
|
44192
|
+
resetFilters(initialFilters);
|
|
44193
|
+
}
|
|
44194
|
+
};
|
|
44195
|
+
return React__default.createElement(
|
|
44196
|
+
'div',
|
|
44197
|
+
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
44198
|
+
React__default.createElement('div', {
|
|
44199
|
+
className: 'search__filters--background',
|
|
44200
|
+
onClick: function () {
|
|
44201
|
+
return handleSetIsOpen();
|
|
44202
|
+
}
|
|
44203
|
+
}),
|
|
44204
|
+
React__default.createElement(
|
|
44205
|
+
'button',
|
|
44206
|
+
{
|
|
44207
|
+
className: 'search__filters--close',
|
|
44208
|
+
onClick: function () {
|
|
44209
|
+
return handleSetIsOpen();
|
|
44210
|
+
}
|
|
44211
|
+
},
|
|
44212
|
+
React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
44213
|
+
),
|
|
44214
|
+
React__default.createElement(
|
|
44215
|
+
'div',
|
|
44216
|
+
{ className: 'search__filters' },
|
|
44217
|
+
React__default.createElement(
|
|
44218
|
+
'div',
|
|
44219
|
+
{ className: 'search__filter-row search__filter__header' },
|
|
44220
|
+
React__default.createElement(
|
|
44221
|
+
'div',
|
|
44222
|
+
{ className: 'search__filter-row-flex-title' },
|
|
44223
|
+
React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
44224
|
+
),
|
|
44225
|
+
!isLoading &&
|
|
44226
|
+
React__default.createElement(
|
|
44227
|
+
'a',
|
|
44228
|
+
{
|
|
44229
|
+
className: 'search__filter-reset',
|
|
44230
|
+
onClick: function () {
|
|
44231
|
+
return handleFullReset();
|
|
44232
|
+
}
|
|
44233
|
+
},
|
|
44234
|
+
translations.SRP.RESET
|
|
44235
|
+
)
|
|
44236
|
+
),
|
|
44237
|
+
isLoading
|
|
44238
|
+
? React__default.createElement(Spinner, null)
|
|
44239
|
+
: React__default.createElement(
|
|
44240
|
+
React__default.Fragment,
|
|
44241
|
+
null,
|
|
44242
|
+
React__default.createElement(
|
|
44243
|
+
'div',
|
|
44244
|
+
{ className: 'search__filters__group-container' },
|
|
44245
|
+
filters.map(function (filter, index) {
|
|
44246
|
+
var _a, _b;
|
|
44247
|
+
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
44248
|
+
return React__default.createElement(
|
|
44249
|
+
'div',
|
|
44250
|
+
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
44251
|
+
React__default.createElement(
|
|
44252
|
+
'div',
|
|
44253
|
+
{
|
|
44254
|
+
className: 'search__filter-row search__filter-row--underline',
|
|
44255
|
+
onClick: function () {
|
|
44256
|
+
return toggleFilterVisibility(filter.property);
|
|
44257
|
+
},
|
|
44258
|
+
role: 'button',
|
|
44259
|
+
tabIndex: 0
|
|
44260
|
+
},
|
|
44261
|
+
React__default.createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
44262
|
+
React__default.createElement(
|
|
44263
|
+
'svg',
|
|
44264
|
+
{
|
|
44265
|
+
id: 'search-chevron-up-icon',
|
|
44266
|
+
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
44267
|
+
viewBox: '0 0 10 6.063',
|
|
44268
|
+
width: 10,
|
|
44269
|
+
height: 6.063
|
|
44270
|
+
},
|
|
44271
|
+
React__default.createElement('path', {
|
|
44272
|
+
id: 'Path_62',
|
|
44273
|
+
'data-name': 'Path 62',
|
|
44274
|
+
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
44275
|
+
transform: 'translate(-240 624)',
|
|
44276
|
+
fill: '#707070'
|
|
44277
|
+
})
|
|
44278
|
+
)
|
|
44279
|
+
),
|
|
44280
|
+
isVisible &&
|
|
44281
|
+
filter.type === 'checkbox' &&
|
|
44282
|
+
React__default.createElement(
|
|
44283
|
+
'div',
|
|
44284
|
+
{ className: 'search__filter-rows' },
|
|
44285
|
+
filter.options &&
|
|
44286
|
+
filter.options.map(function (option, optionIndex) {
|
|
44287
|
+
return React__default.createElement(
|
|
44288
|
+
'div',
|
|
44289
|
+
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
44290
|
+
React__default.createElement(
|
|
44291
|
+
'div',
|
|
44292
|
+
{ className: 'checkbox' },
|
|
44293
|
+
React__default.createElement(
|
|
44294
|
+
'label',
|
|
44295
|
+
{ className: 'checkbox__label' },
|
|
44296
|
+
React__default.createElement('input', {
|
|
44297
|
+
type: 'checkbox',
|
|
44298
|
+
className: 'checkbox__input checkbox__input--parent',
|
|
44299
|
+
checked: option.isChecked,
|
|
44300
|
+
onChange: function (e) {
|
|
44301
|
+
return handleCheckBoxFilter(filter, option);
|
|
44302
|
+
}
|
|
44303
|
+
}),
|
|
44304
|
+
React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
44305
|
+
)
|
|
44306
|
+
)
|
|
44307
|
+
);
|
|
44308
|
+
})
|
|
44309
|
+
),
|
|
44310
|
+
isVisible &&
|
|
44311
|
+
filter.type === 'toggle' &&
|
|
44312
|
+
React__default.createElement(
|
|
44313
|
+
'div',
|
|
44314
|
+
{ className: 'search__filter-rows' },
|
|
44315
|
+
(_b = filter.options) === null || _b === void 0
|
|
44316
|
+
? void 0
|
|
44317
|
+
: _b.map(function (option, optionIndex) {
|
|
44318
|
+
return React__default.createElement(
|
|
44319
|
+
'div',
|
|
44320
|
+
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
44321
|
+
React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
44322
|
+
React__default.createElement('div', { className: 'checkbox' }),
|
|
44323
|
+
React__default.createElement(
|
|
44324
|
+
'label',
|
|
44325
|
+
{ className: 'checkbox__label' },
|
|
44326
|
+
React__default.createElement('input', {
|
|
44327
|
+
type: 'checkbox',
|
|
44328
|
+
className: 'checkbox__input',
|
|
44329
|
+
checked: option.isChecked,
|
|
44330
|
+
onChange: function () {
|
|
44331
|
+
return handleCheckBoxFilter(filter, option);
|
|
44332
|
+
}
|
|
44333
|
+
})
|
|
44334
|
+
)
|
|
44335
|
+
);
|
|
44336
|
+
})
|
|
44337
|
+
),
|
|
44338
|
+
isVisible &&
|
|
44339
|
+
filter &&
|
|
44340
|
+
filter.type === 'slider' &&
|
|
44341
|
+
(function () {
|
|
44342
|
+
var _a, _b, _c, _d;
|
|
44343
|
+
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
44344
|
+
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
44345
|
+
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
44346
|
+
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
44347
|
+
return React__default.createElement(MultiRangeFilter, {
|
|
44348
|
+
min: min,
|
|
44349
|
+
max: max,
|
|
44350
|
+
selectedMin: selectedMin,
|
|
44351
|
+
selectedMax: selectedMax,
|
|
44352
|
+
valueFormatter: function (value) {
|
|
44353
|
+
return ''.concat(value);
|
|
44354
|
+
},
|
|
44355
|
+
onChange: function (newMin, newMax) {
|
|
44356
|
+
handleSliderChange(filter, newMin, newMax);
|
|
44357
|
+
}
|
|
44358
|
+
});
|
|
44359
|
+
})()
|
|
44360
|
+
);
|
|
44361
|
+
})
|
|
44362
|
+
)
|
|
44363
|
+
)
|
|
44364
|
+
)
|
|
44365
|
+
);
|
|
44366
|
+
};
|
|
44367
|
+
|
|
44368
|
+
var PackageingFlightsFlyIn = function (_a) {
|
|
44369
|
+
var _b;
|
|
44370
|
+
_a.isOpen;
|
|
44371
|
+
_a.setIsOpen;
|
|
44372
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44373
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44374
|
+
var translations = getTranslations(language);
|
|
44375
|
+
var dispatch = useDispatch();
|
|
44376
|
+
var _c = useSelector(function (state) {
|
|
44377
|
+
return state.searchResults;
|
|
44378
|
+
}),
|
|
44379
|
+
flightsLoading = _c.flightsLoading,
|
|
44380
|
+
initialFlightFilters = _c.initialFlightFilters,
|
|
44381
|
+
flightFilters = _c.flightFilters,
|
|
44382
|
+
flyInType = _c.flyInType,
|
|
44383
|
+
selectedFlightSortType = _c.selectedFlightSortType;
|
|
44384
|
+
var uniqueOutwardFlights = useSelector(selectUniqueOutwardFlights);
|
|
44385
|
+
var uniqueReturnFlights = useSelector(selectUniqueReturnFlights);
|
|
44386
|
+
var selectedOutward = useSelector(selectSelectedOutward);
|
|
44387
|
+
var selectedReturn = useSelector(selectSelectedReturn);
|
|
44388
|
+
var _d = useState(false),
|
|
44389
|
+
outwardStepComplete = _d[0],
|
|
44390
|
+
setOutwardStepComplete = _d[1];
|
|
44391
|
+
var handleConfirm = function () {
|
|
44392
|
+
if (!outwardStepComplete) {
|
|
44393
|
+
setOutwardStepComplete(true);
|
|
44394
|
+
dispatch(setFlyInType('flight-return-results'));
|
|
44395
|
+
return;
|
|
44396
|
+
} else {
|
|
44397
|
+
dispatch(setFlyInType(null));
|
|
44398
|
+
setOutwardStepComplete(false);
|
|
44399
|
+
dispatch(setFlyInIsOpen(false));
|
|
44400
|
+
}
|
|
44401
|
+
};
|
|
44402
|
+
var sortByTypes = [
|
|
44403
|
+
{ direction: 'asc', label: 'default' },
|
|
44404
|
+
{ direction: 'asc', label: 'price' },
|
|
44405
|
+
{ direction: 'desc', label: 'price' },
|
|
44406
|
+
{ direction: 'asc', label: 'departureTime' },
|
|
44407
|
+
{ direction: 'desc', label: 'departureTime' },
|
|
44408
|
+
{ direction: 'asc', label: 'durationInTicks' },
|
|
44409
|
+
{ direction: 'desc', label: 'durationInTicks' }
|
|
44410
|
+
];
|
|
44411
|
+
var handleSortChange = function (newSortKey, direction) {
|
|
44412
|
+
if (sortByTypes === undefined) return;
|
|
44413
|
+
var newSortByType = findSortByType(sortByTypes, newSortKey, direction !== null && direction !== void 0 ? direction : 'asc');
|
|
44414
|
+
if (newSortByType) {
|
|
44415
|
+
dispatch(setFlightSortType(newSortByType));
|
|
44416
|
+
}
|
|
44417
|
+
};
|
|
44418
|
+
return React__default.createElement(
|
|
44419
|
+
React__default.Fragment,
|
|
44420
|
+
null,
|
|
44421
|
+
React__default.createElement(
|
|
44422
|
+
'div',
|
|
44423
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
44424
|
+
flightsLoading
|
|
44425
|
+
? React__default.createElement(Spinner, null)
|
|
44426
|
+
: React__default.createElement(
|
|
44427
|
+
React__default.Fragment,
|
|
44428
|
+
null,
|
|
44429
|
+
React__default.createElement(Filters, {
|
|
44430
|
+
initialFilters: initialFlightFilters,
|
|
44431
|
+
filters: flightFilters,
|
|
44432
|
+
isOpen: false,
|
|
44433
|
+
handleSetIsOpen: function () {},
|
|
44434
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
44435
|
+
isLoading: flightsLoading,
|
|
44436
|
+
setFilters: function (filters) {
|
|
44437
|
+
return dispatch(setFlightFilters(filters));
|
|
44438
|
+
},
|
|
44439
|
+
resetFilters: function (filters) {
|
|
44440
|
+
return dispatch(resetFlightFilters(filters));
|
|
44441
|
+
}
|
|
44442
|
+
}),
|
|
44443
|
+
React__default.createElement(
|
|
44444
|
+
'div',
|
|
44445
|
+
{ className: 'search__results__wrapper' },
|
|
44446
|
+
React__default.createElement(
|
|
44447
|
+
'div',
|
|
44448
|
+
{ className: 'search__result-row' },
|
|
44449
|
+
React__default.createElement(
|
|
44450
|
+
'span',
|
|
44451
|
+
{ className: 'search__result-row-text' },
|
|
44452
|
+
(uniqueOutwardFlights === null || uniqueOutwardFlights === void 0 ? void 0 : uniqueOutwardFlights.length) && uniqueOutwardFlights.length,
|
|
44453
|
+
'\u00A0',
|
|
44454
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_2,
|
|
44455
|
+
'\u00A0',
|
|
44456
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3
|
|
44457
|
+
),
|
|
44458
|
+
sortByTypes &&
|
|
44459
|
+
sortByTypes.length > 0 &&
|
|
44460
|
+
React__default.createElement(
|
|
44461
|
+
'div',
|
|
44462
|
+
{ className: 'search__result-row-filter' },
|
|
44463
|
+
React__default.createElement(ItemPicker, {
|
|
44464
|
+
items: sortByTypes,
|
|
44465
|
+
selection: (selectedFlightSortType === null || selectedFlightSortType === void 0 ? void 0 : selectedFlightSortType.label) || undefined,
|
|
44466
|
+
selectedSortByType: selectedFlightSortType || undefined,
|
|
44467
|
+
label: translations.SRP.SORTBY,
|
|
44468
|
+
placeholder: translations.SRP.SORTBY,
|
|
44469
|
+
classModifier: '',
|
|
44470
|
+
valueFormatter: function (value, direction) {
|
|
44471
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
44472
|
+
},
|
|
44473
|
+
// onPick={handleSortChange}
|
|
44474
|
+
onPick: function (newSortKey, direction) {
|
|
44475
|
+
return handleSortChange(newSortKey, direction);
|
|
44476
|
+
}
|
|
44477
|
+
})
|
|
44478
|
+
)
|
|
44479
|
+
),
|
|
44480
|
+
React__default.createElement(
|
|
44481
|
+
'div',
|
|
44482
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44483
|
+
flyInType == 'flight-outward-results' &&
|
|
44484
|
+
uniqueOutwardFlights.map(function (result) {
|
|
44485
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
44486
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
44487
|
+
item: result.outward,
|
|
44488
|
+
onSelect: function () {
|
|
44489
|
+
return dispatch(setSelectedOutwardKey(getFlightKey(result.outward.segments)));
|
|
44490
|
+
},
|
|
44491
|
+
guid: result.outwardGuid,
|
|
44492
|
+
isOutward: true,
|
|
44493
|
+
price: result.price,
|
|
44494
|
+
currentSelectedPrice: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.price,
|
|
44495
|
+
selectedGuid: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.outwardGuid,
|
|
44496
|
+
showSelectedState: true
|
|
44497
|
+
});
|
|
44498
|
+
}),
|
|
44499
|
+
flyInType == 'flight-return-results' &&
|
|
44500
|
+
uniqueReturnFlights.map(function (result) {
|
|
44501
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
44502
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
44503
|
+
item: result.return,
|
|
44504
|
+
onSelect: function () {
|
|
44505
|
+
return dispatch(setSelectedReturnKey(getFlightKey(result.return.segments)));
|
|
44506
|
+
},
|
|
44507
|
+
guid: result.outwardGuid,
|
|
44508
|
+
isOutward: false,
|
|
44509
|
+
price: result.price,
|
|
44510
|
+
currentSelectedPrice: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.price,
|
|
44511
|
+
selectedGuid: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.outwardGuid,
|
|
44512
|
+
showSelectedState: true
|
|
44513
|
+
});
|
|
44514
|
+
})
|
|
44515
|
+
)
|
|
44516
|
+
)
|
|
44517
|
+
)
|
|
44518
|
+
),
|
|
44519
|
+
React__default.createElement(
|
|
44520
|
+
'div',
|
|
44521
|
+
{ className: 'flyin__footer' },
|
|
44522
|
+
React__default.createElement('div', { className: 'flyin__footer__price' }),
|
|
44523
|
+
React__default.createElement(
|
|
44524
|
+
'div',
|
|
44525
|
+
{ className: 'flyin__button-wrapper' },
|
|
44526
|
+
React__default.createElement(
|
|
44527
|
+
'button',
|
|
44528
|
+
{
|
|
44529
|
+
className: 'cta cta--select',
|
|
44530
|
+
onClick: function () {
|
|
44531
|
+
return handleConfirm();
|
|
44532
|
+
}
|
|
44533
|
+
},
|
|
44534
|
+
translations.QSM.CONFIRM
|
|
44535
|
+
)
|
|
44536
|
+
)
|
|
44537
|
+
)
|
|
44538
|
+
);
|
|
44539
|
+
};
|
|
44540
|
+
|
|
44541
|
+
var FlyIn = function (_a) {
|
|
44542
|
+
var _b;
|
|
44543
|
+
var srpType = _a.srpType,
|
|
44544
|
+
isOpen = _a.isOpen,
|
|
44545
|
+
setIsOpen = _a.setIsOpen,
|
|
44546
|
+
_c = _a.className,
|
|
44547
|
+
className = _c === void 0 ? '' : _c,
|
|
44548
|
+
onPanelRef = _a.onPanelRef,
|
|
44549
|
+
detailsLoading = _a.detailsLoading,
|
|
44550
|
+
flyInType = _a.flyInType,
|
|
44551
|
+
isPackageEditFlow = _a.isPackageEditFlow,
|
|
44552
|
+
handleConfirm = _a.handleConfirm,
|
|
44553
|
+
sortByTypes = _a.sortByTypes;
|
|
44554
|
+
var dispatch = useDispatch();
|
|
44555
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44556
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44557
|
+
var translations = getTranslations(language);
|
|
44558
|
+
var _d = useSelector(function (state) {
|
|
44559
|
+
return state.searchResults;
|
|
44560
|
+
}),
|
|
44561
|
+
isLoading = _d.isLoading,
|
|
44562
|
+
initialFilters = _d.initialFilters,
|
|
44563
|
+
filters = _d.filters,
|
|
44564
|
+
filteredPackagingAccoResults = _d.filteredPackagingAccoResults,
|
|
44565
|
+
selectedSortType = _d.selectedSortType;
|
|
44566
|
+
var onCancelSearch = useFlightSearch().onCancelSearch;
|
|
44567
|
+
var panelRef = useRef(null);
|
|
44568
|
+
// expose DOM node if needed
|
|
44569
|
+
useEffect(
|
|
44570
|
+
function () {
|
|
44571
|
+
onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(panelRef.current);
|
|
44572
|
+
return function () {
|
|
44573
|
+
return onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(null);
|
|
44574
|
+
};
|
|
44575
|
+
},
|
|
44576
|
+
[onPanelRef]
|
|
44577
|
+
);
|
|
44578
|
+
useEffect(
|
|
44579
|
+
function () {
|
|
44580
|
+
// click outside detection
|
|
44581
|
+
var handleClickOutside = function (event) {
|
|
44582
|
+
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
44583
|
+
handleClose();
|
|
44584
|
+
}
|
|
44585
|
+
};
|
|
44586
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
44587
|
+
return function () {
|
|
44588
|
+
return document.removeEventListener('mousedown', handleClickOutside);
|
|
44589
|
+
};
|
|
44590
|
+
},
|
|
44591
|
+
[isOpen, setIsOpen]
|
|
44592
|
+
);
|
|
44593
|
+
// body scroll lock
|
|
44594
|
+
useEffect(
|
|
44595
|
+
function () {
|
|
44596
|
+
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
44597
|
+
return function () {
|
|
44598
|
+
document.body.style.overflow = '';
|
|
44599
|
+
};
|
|
44600
|
+
},
|
|
44601
|
+
[isOpen]
|
|
44602
|
+
);
|
|
44603
|
+
var handleClose = function () {
|
|
44604
|
+
if (isOpen && panelRef.current) {
|
|
44605
|
+
if (srpType === build.PortalQsmType.Flight) {
|
|
44606
|
+
dispatch(setSelectedFlight(null));
|
|
44607
|
+
dispatch(setSelectedFlightDetails(null));
|
|
44608
|
+
onCancelSearch();
|
|
44609
|
+
} else {
|
|
44610
|
+
dispatch(setSelectedSearchResult(null));
|
|
44611
|
+
dispatch(setSelectedPackagingAccoResult(null));
|
|
44612
|
+
}
|
|
44613
|
+
dispatch(setFlyInType('acco-details'));
|
|
44614
|
+
setIsOpen(false);
|
|
44615
|
+
}
|
|
44616
|
+
};
|
|
44617
|
+
var handleGoBack = function () {
|
|
44618
|
+
dispatch(setFlyInType('acco-results'));
|
|
44619
|
+
};
|
|
44620
|
+
var handleSortChange = function (newSortKey, direction) {
|
|
44621
|
+
if (sortByTypes === undefined) return;
|
|
44622
|
+
var newSortByType = findSortByType(sortByTypes, newSortKey, direction !== null && direction !== void 0 ? direction : 'asc');
|
|
44623
|
+
if (newSortByType) {
|
|
44624
|
+
dispatch(setSortType(newSortByType));
|
|
44625
|
+
}
|
|
44626
|
+
};
|
|
44627
|
+
return React__default.createElement(
|
|
44628
|
+
'div',
|
|
44629
|
+
{
|
|
44630
|
+
className: 'flyin '
|
|
44631
|
+
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
44632
|
+
.concat(className, ' ')
|
|
44633
|
+
.concat(
|
|
44634
|
+
isPackageEditFlow || flyInType === 'flight-outward-results' || flyInType === 'flight-return-results' || flyInType === 'acco-results'
|
|
44635
|
+
? 'flyin--large'
|
|
44636
|
+
: ''
|
|
44637
|
+
)
|
|
44638
|
+
},
|
|
44639
|
+
React__default.createElement(
|
|
44640
|
+
'div',
|
|
44641
|
+
{ className: 'flyin__panel '.concat(isOpen ? 'flyin__panel--active' : ''), ref: panelRef },
|
|
44642
|
+
React__default.createElement(
|
|
44643
|
+
'div',
|
|
44644
|
+
{ className: 'flyin__content' },
|
|
44645
|
+
React__default.createElement(
|
|
44646
|
+
'div',
|
|
44647
|
+
{ className: 'flyin__content-title-row' },
|
|
44648
|
+
React__default.createElement(
|
|
44649
|
+
'h3',
|
|
44650
|
+
{ className: 'flyin__content-title' },
|
|
44651
|
+
srpType === build.PortalQsmType.Flight && 'Select your fare',
|
|
44652
|
+
srpType === build.PortalQsmType.Accommodation ||
|
|
44653
|
+
(srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
44654
|
+
(flyInType === 'acco-results' || flyInType === 'acco-details') &&
|
|
44655
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.ACCOMMODATION)),
|
|
44656
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
44657
|
+
flyInType === 'flight-outward-results' &&
|
|
44658
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.FLIGHTS_FORM.OUTWARD_FLIGHT),
|
|
44659
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
44660
|
+
flyInType === 'flight-return-results' &&
|
|
44661
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.FLIGHTS_FORM.RETURN_FLIGHT),
|
|
44662
|
+
srpType === build.PortalQsmType.AccommodationAndFlight && flyInType === 'flight-details' && 'Select your fare'
|
|
44663
|
+
),
|
|
44664
|
+
React__default.createElement(
|
|
44665
|
+
'span',
|
|
44666
|
+
{
|
|
44667
|
+
className: 'flyin__close',
|
|
44668
|
+
onClick: function () {
|
|
44669
|
+
return handleClose();
|
|
44670
|
+
}
|
|
44671
|
+
},
|
|
44672
|
+
React__default.createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
44673
|
+
)
|
|
44674
|
+
),
|
|
44675
|
+
isPackageEditFlow &&
|
|
44676
|
+
flyInType === 'acco-details' &&
|
|
44677
|
+
React__default.createElement(
|
|
44678
|
+
'div',
|
|
44679
|
+
{ className: 'flyin__content-title-row' },
|
|
44680
|
+
React__default.createElement(
|
|
44681
|
+
'div',
|
|
44682
|
+
{ onClick: handleGoBack, className: 'flyin__content-title__back' },
|
|
44683
|
+
React__default.createElement(Icon, { name: 'ui-chevron', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
44684
|
+
'Go Back'
|
|
44685
|
+
)
|
|
44686
|
+
)
|
|
44687
|
+
),
|
|
44688
|
+
srpType === build.PortalQsmType.Flight && React__default.createElement(FlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
44689
|
+
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
44690
|
+
flyInType === 'acco-results' &&
|
|
44691
|
+
React__default.createElement(
|
|
44692
|
+
'div',
|
|
44693
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
44694
|
+
React__default.createElement(Filters, {
|
|
44695
|
+
initialFilters: initialFilters,
|
|
44696
|
+
filters: filters,
|
|
44697
|
+
isOpen: false,
|
|
44698
|
+
handleSetIsOpen: function () {},
|
|
44699
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
44700
|
+
isLoading: isLoading,
|
|
44701
|
+
setFilters: function (filters) {
|
|
44702
|
+
return dispatch(setFilters(filters));
|
|
44703
|
+
},
|
|
44704
|
+
resetFilters: function (filters) {
|
|
44705
|
+
return dispatch(resetFilters(filters));
|
|
44706
|
+
}
|
|
44707
|
+
}),
|
|
44708
|
+
React__default.createElement(
|
|
44709
|
+
'div',
|
|
44710
|
+
{ className: 'search__results__wrapper' },
|
|
44711
|
+
React__default.createElement(
|
|
44712
|
+
'div',
|
|
44713
|
+
{ className: 'search__result-row' },
|
|
44714
|
+
React__default.createElement(
|
|
44715
|
+
'span',
|
|
44716
|
+
{ className: 'search__result-row-text' },
|
|
44717
|
+
!isLoading &&
|
|
44718
|
+
React__default.createElement(
|
|
44719
|
+
React__default.Fragment,
|
|
44720
|
+
null,
|
|
44721
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
44722
|
+
filteredPackagingAccoResults.length,
|
|
44723
|
+
'\u00A0',
|
|
44724
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
44725
|
+
)
|
|
44726
|
+
),
|
|
44727
|
+
sortByTypes &&
|
|
44728
|
+
sortByTypes.length > 0 &&
|
|
44729
|
+
React__default.createElement(
|
|
44730
|
+
'div',
|
|
44731
|
+
{ className: 'search__result-row-filter' },
|
|
44732
|
+
React__default.createElement(ItemPicker, {
|
|
44733
|
+
items: sortByTypes,
|
|
44734
|
+
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
44735
|
+
selectedSortByType: selectedSortType,
|
|
44736
|
+
label: translations.SRP.SORTBY,
|
|
44737
|
+
placeholder: translations.SRP.SORTBY,
|
|
44738
|
+
classModifier: 'travel-class-picker__items',
|
|
44739
|
+
valueFormatter: function (value, direction) {
|
|
44740
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
44741
|
+
},
|
|
44742
|
+
onPick: function (newSortKey, direction) {
|
|
44743
|
+
return handleSortChange(newSortKey, direction);
|
|
44744
|
+
}
|
|
44745
|
+
})
|
|
44746
|
+
)
|
|
44747
|
+
),
|
|
44748
|
+
React__default.createElement(HotelAccommodationResults, { isLoading: detailsLoading, isFlyIn: true })
|
|
44749
|
+
)
|
|
44750
|
+
),
|
|
44751
|
+
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
44752
|
+
flyInType === 'acco-details' &&
|
|
44753
|
+
React__default.createElement(AccommodationFlyIn, { isLoading: detailsLoading, handleConfirm: handleConfirm }),
|
|
44754
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
44755
|
+
(flyInType === 'flight-outward-results' || flyInType === 'flight-return-results') &&
|
|
44756
|
+
React__default.createElement(PackageingFlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
44757
|
+
srpType === build.PortalQsmType.GroupTour &&
|
|
44758
|
+
React__default.createElement(GroupTourFlyIn, { isLoading: detailsLoading, isOpen: isOpen, setIsOpen: setIsOpen })
|
|
44759
|
+
)
|
|
44760
|
+
);
|
|
44761
|
+
};
|
|
44762
|
+
|
|
44763
|
+
var RoundTripResults = function () {
|
|
44764
|
+
var activeTab = useSelector(function (state) {
|
|
44765
|
+
return state.searchResults;
|
|
44766
|
+
}).activeTab;
|
|
44767
|
+
var dispatch = useDispatch();
|
|
44768
|
+
useEffect(
|
|
44769
|
+
function () {
|
|
44770
|
+
if (activeTab === 'compact') {
|
|
44771
|
+
dispatch(setActiveTab('list'));
|
|
44772
|
+
}
|
|
44773
|
+
},
|
|
44774
|
+
[activeTab]
|
|
44775
|
+
);
|
|
44776
|
+
return React__default.createElement(
|
|
44777
|
+
'div',
|
|
44778
|
+
{ className: 'search__results__cards search__results__cards--'.concat(activeTab) },
|
|
44779
|
+
React__default.createElement(
|
|
44780
|
+
'div',
|
|
44781
|
+
{ className: 'search__result-card' },
|
|
44782
|
+
React__default.createElement(
|
|
44783
|
+
'div',
|
|
44784
|
+
{ className: 'search__result-card__allotment' },
|
|
44785
|
+
React__default.createElement(
|
|
44786
|
+
'div',
|
|
44787
|
+
{ className: 'search__result-card__allotment__img-wrapper' },
|
|
44788
|
+
React__default.createElement('img', {
|
|
44789
|
+
src: 'https://cdn.pixabay.com/photo/2024/05/15/12/31/lake-8763490_1280.jpg',
|
|
44790
|
+
alt: 'river',
|
|
44791
|
+
className: 'search__result-card__allotment__img'
|
|
44792
|
+
})
|
|
44793
|
+
),
|
|
44794
|
+
React__default.createElement(
|
|
44795
|
+
'div',
|
|
44796
|
+
{ className: 'search__result-card__allotment__title__wrapper' },
|
|
44797
|
+
React__default.createElement(
|
|
44798
|
+
'h3',
|
|
43756
44799
|
{ className: 'search__result-card__allotment__title' },
|
|
43757
44800
|
'Rondreis Noord-India: Rajasthan',
|
|
43758
44801
|
React__default.createElement(
|
|
@@ -44033,218 +45076,53 @@ var PairedFlightOption = function (_a) {
|
|
|
44033
45076
|
'div',
|
|
44034
45077
|
{ className: 'search__result-card', key: 'flight-'.concat(item.guid) },
|
|
44035
45078
|
React__default.createElement(
|
|
44036
|
-
'div',
|
|
44037
|
-
{ className: 'flight' },
|
|
44038
|
-
React__default.createElement(
|
|
44039
|
-
'div',
|
|
44040
|
-
{ className: 'flight__option' },
|
|
44041
|
-
React__default.createElement(
|
|
44042
|
-
'div',
|
|
44043
|
-
{ className: 'flight__content' },
|
|
44044
|
-
React__default.createElement(
|
|
44045
|
-
'div',
|
|
44046
|
-
{ className: 'flight__flights' },
|
|
44047
|
-
React__default.createElement(
|
|
44048
|
-
'div',
|
|
44049
|
-
{ className: 'flight__flight' },
|
|
44050
|
-
React__default.createElement(
|
|
44051
|
-
'div',
|
|
44052
|
-
{ className: 'flight__flight__header' },
|
|
44053
|
-
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
44054
|
-
React__default.createElement(
|
|
44055
|
-
'div',
|
|
44056
|
-
{ className: 'flight__price' },
|
|
44057
|
-
React__default.createElement(
|
|
44058
|
-
'span',
|
|
44059
|
-
{ className: 'price' },
|
|
44060
|
-
formatPrice$2(
|
|
44061
|
-
item.price,
|
|
44062
|
-
'EUR',
|
|
44063
|
-
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
44064
|
-
)
|
|
44065
|
-
),
|
|
44066
|
-
React__default.createElement(
|
|
44067
|
-
'button',
|
|
44068
|
-
{
|
|
44069
|
-
type: 'button',
|
|
44070
|
-
className: 'cta '.concat(
|
|
44071
|
-
(selectedFlight === null || selectedFlight === void 0 ? void 0 : selectedFlight.guid) === item.guid ? 'cta--selected' : 'cta--select'
|
|
44072
|
-
),
|
|
44073
|
-
onClick: function () {
|
|
44074
|
-
return handleSelect(item);
|
|
44075
|
-
}
|
|
44076
|
-
},
|
|
44077
|
-
(selectedFlight === null || selectedFlight === void 0 ? void 0 : selectedFlight.guid) === item.guid ? 'Selected' : 'Select'
|
|
44078
|
-
)
|
|
44079
|
-
)
|
|
44080
|
-
)
|
|
44081
|
-
),
|
|
44082
|
-
item.outward &&
|
|
44083
|
-
React__default.createElement(
|
|
44084
|
-
'div',
|
|
44085
|
-
{ className: 'flight__flight' },
|
|
44086
|
-
React__default.createElement(
|
|
44087
|
-
'div',
|
|
44088
|
-
{ className: 'flight__flight__container' },
|
|
44089
|
-
React__default.createElement(
|
|
44090
|
-
'div',
|
|
44091
|
-
{ className: 'flight__flight__wrapper' },
|
|
44092
|
-
React__default.createElement(
|
|
44093
|
-
'div',
|
|
44094
|
-
{ className: 'flight__logo__wrapper' },
|
|
44095
|
-
React__default.createElement('img', {
|
|
44096
|
-
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
44097
|
-
(_d = getDepartureSegment(item.outward)) === null || _d === void 0 ? void 0 : _d.marketingAirlineCode,
|
|
44098
|
-
'.png?height=256'
|
|
44099
|
-
),
|
|
44100
|
-
alt: '',
|
|
44101
|
-
className: 'flight__logo'
|
|
44102
|
-
}),
|
|
44103
|
-
React__default.createElement(
|
|
44104
|
-
'span',
|
|
44105
|
-
null,
|
|
44106
|
-
(_e = getDepartureSegment(item.outward)) === null || _e === void 0 ? void 0 : _e.marketingAirlineName
|
|
44107
|
-
)
|
|
44108
|
-
),
|
|
44109
|
-
React__default.createElement(
|
|
44110
|
-
'div',
|
|
44111
|
-
{ className: 'flight__info' },
|
|
44112
|
-
React__default.createElement(
|
|
44113
|
-
'div',
|
|
44114
|
-
{ className: 'flight__info__times' },
|
|
44115
|
-
React__default.createElement(
|
|
44116
|
-
'strong',
|
|
44117
|
-
null,
|
|
44118
|
-
timeFromDateTime((_f = getDepartureSegment(item.outward)) === null || _f === void 0 ? void 0 : _f.departureDateTime),
|
|
44119
|
-
' ',
|
|
44120
|
-
(_g = getDepartureSegment(item.outward)) === null || _g === void 0 ? void 0 : _g.departureAirportCode
|
|
44121
|
-
),
|
|
44122
|
-
React__default.createElement(
|
|
44123
|
-
'p',
|
|
44124
|
-
null,
|
|
44125
|
-
longFormatDate((_h = getDepartureSegment(item.outward)) === null || _h === void 0 ? void 0 : _h.departureDateTime, language)
|
|
44126
|
-
)
|
|
44127
|
-
),
|
|
44128
|
-
React__default.createElement(
|
|
44129
|
-
'div',
|
|
44130
|
-
{ className: 'flight__info__duration' },
|
|
44131
|
-
React__default.createElement('p', null, durationTicksInHoursString(item.outward.durationInTicks)),
|
|
44132
|
-
React__default.createElement(
|
|
44133
|
-
'div',
|
|
44134
|
-
{ className: 'flight__info__duration__stops' },
|
|
44135
|
-
React__default.createElement('div', { className: 'flight__info__duration__stop' })
|
|
44136
|
-
),
|
|
44137
|
-
React__default.createElement(
|
|
44138
|
-
'span',
|
|
44139
|
-
null,
|
|
44140
|
-
getNumberOfStopsLabel(item.outward, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
44141
|
-
)
|
|
44142
|
-
),
|
|
44143
|
-
React__default.createElement(
|
|
44144
|
-
'div',
|
|
44145
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44146
|
-
React__default.createElement(
|
|
44147
|
-
'strong',
|
|
44148
|
-
null,
|
|
44149
|
-
timeFromDateTime((_j = getArrivalSegment(item.outward)) === null || _j === void 0 ? void 0 : _j.arrivalDateTime),
|
|
44150
|
-
' ',
|
|
44151
|
-
(_k = getArrivalSegment(item.outward)) === null || _k === void 0 ? void 0 : _k.arrivalAirportCode
|
|
44152
|
-
),
|
|
44153
|
-
React__default.createElement(
|
|
44154
|
-
'p',
|
|
44155
|
-
null,
|
|
44156
|
-
longFormatDate((_l = getArrivalSegment(item.outward)) === null || _l === void 0 ? void 0 : _l.arrivalDateTime, language)
|
|
44157
|
-
)
|
|
44158
|
-
)
|
|
44159
|
-
)
|
|
44160
|
-
),
|
|
44161
|
-
React__default.createElement(
|
|
44162
|
-
'div',
|
|
44163
|
-
{ className: 'flight__detail__btn__wrapper' },
|
|
44164
|
-
React__default.createElement(
|
|
44165
|
-
'div',
|
|
44166
|
-
{
|
|
44167
|
-
className: 'flight__detail__btn '.concat(isOutwardOpen ? 'flight__detail__btn--active' : ''),
|
|
44168
|
-
onClick: function () {
|
|
44169
|
-
return setIsOutwardOpen(function (prev) {
|
|
44170
|
-
return !prev;
|
|
44171
|
-
});
|
|
44172
|
-
}
|
|
44173
|
-
},
|
|
44174
|
-
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44175
|
-
)
|
|
44176
|
-
)
|
|
44177
|
-
),
|
|
44178
|
-
React__default.createElement(
|
|
44179
|
-
'div',
|
|
44180
|
-
{ className: 'flight__detail '.concat(isOutwardOpen ? 'flight__detail--active' : '') },
|
|
44181
|
-
getFlightSegments(item.outward).map(function (segment, index) {
|
|
44182
|
-
return React__default.createElement(
|
|
44183
|
-
React__default.Fragment,
|
|
44184
|
-
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
44185
|
-
React__default.createElement(
|
|
44186
|
-
'div',
|
|
44187
|
-
{ className: 'flight__info' },
|
|
44188
|
-
React__default.createElement(
|
|
44189
|
-
'div',
|
|
44190
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44191
|
-
React__default.createElement(
|
|
44192
|
-
'div',
|
|
44193
|
-
{ className: 'flight__info__times' },
|
|
44194
|
-
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44195
|
-
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
44196
|
-
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44197
|
-
),
|
|
44198
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
44199
|
-
),
|
|
44200
|
-
React__default.createElement(
|
|
44201
|
-
'div',
|
|
44202
|
-
{ className: 'flight__info__duration' },
|
|
44203
|
-
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
44204
|
-
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
44205
|
-
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
44206
|
-
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
44207
|
-
),
|
|
44208
|
-
React__default.createElement(
|
|
44209
|
-
'div',
|
|
44210
|
-
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44211
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
44212
|
-
React__default.createElement(
|
|
44213
|
-
'div',
|
|
44214
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44215
|
-
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44216
|
-
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
44217
|
-
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44218
|
-
)
|
|
44219
|
-
)
|
|
45079
|
+
'div',
|
|
45080
|
+
{ className: 'flight' },
|
|
45081
|
+
React__default.createElement(
|
|
45082
|
+
'div',
|
|
45083
|
+
{ className: 'flight__option' },
|
|
45084
|
+
React__default.createElement(
|
|
45085
|
+
'div',
|
|
45086
|
+
{ className: 'flight__content' },
|
|
45087
|
+
React__default.createElement(
|
|
45088
|
+
'div',
|
|
45089
|
+
{ className: 'flight__flights' },
|
|
45090
|
+
React__default.createElement(
|
|
45091
|
+
'div',
|
|
45092
|
+
{ className: 'flight__flight' },
|
|
45093
|
+
React__default.createElement(
|
|
45094
|
+
'div',
|
|
45095
|
+
{ className: 'flight__flight__header' },
|
|
45096
|
+
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
45097
|
+
React__default.createElement(
|
|
45098
|
+
'div',
|
|
45099
|
+
{ className: 'flight__price' },
|
|
45100
|
+
React__default.createElement(
|
|
45101
|
+
'span',
|
|
45102
|
+
{ className: 'price' },
|
|
45103
|
+
formatPrice$2(
|
|
45104
|
+
item.price,
|
|
45105
|
+
'EUR',
|
|
45106
|
+
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
45107
|
+
)
|
|
45108
|
+
),
|
|
45109
|
+
React__default.createElement(
|
|
45110
|
+
'button',
|
|
45111
|
+
{
|
|
45112
|
+
type: 'button',
|
|
45113
|
+
className: 'cta '.concat(
|
|
45114
|
+
(selectedFlight === null || selectedFlight === void 0 ? void 0 : selectedFlight.guid) === item.guid ? 'cta--selected' : 'cta--select'
|
|
44220
45115
|
),
|
|
44221
|
-
|
|
44222
|
-
|
|
44223
|
-
|
|
44224
|
-
|
|
44225
|
-
|
|
44226
|
-
|
|
44227
|
-
'div',
|
|
44228
|
-
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44229
|
-
React__default.createElement(
|
|
44230
|
-
'div',
|
|
44231
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44232
|
-
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44233
|
-
),
|
|
44234
|
-
React__default.createElement(
|
|
44235
|
-
'div',
|
|
44236
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44237
|
-
React__default.createElement('span', null, 'Stop time'),
|
|
44238
|
-
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44239
|
-
)
|
|
44240
|
-
),
|
|
44241
|
-
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44242
|
-
)
|
|
44243
|
-
);
|
|
44244
|
-
})
|
|
45116
|
+
onClick: function () {
|
|
45117
|
+
return handleSelect(item);
|
|
45118
|
+
}
|
|
45119
|
+
},
|
|
45120
|
+
(selectedFlight === null || selectedFlight === void 0 ? void 0 : selectedFlight.guid) === item.guid ? 'Selected' : 'Select'
|
|
45121
|
+
)
|
|
44245
45122
|
)
|
|
44246
|
-
)
|
|
44247
|
-
|
|
45123
|
+
)
|
|
45124
|
+
),
|
|
45125
|
+
item.outward &&
|
|
44248
45126
|
React__default.createElement(
|
|
44249
45127
|
'div',
|
|
44250
45128
|
{ className: 'flight__flight' },
|
|
@@ -44259,7 +45137,7 @@ var PairedFlightOption = function (_a) {
|
|
|
44259
45137
|
{ className: 'flight__logo__wrapper' },
|
|
44260
45138
|
React__default.createElement('img', {
|
|
44261
45139
|
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
44262
|
-
(
|
|
45140
|
+
(_d = getDepartureSegment(item.outward)) === null || _d === void 0 ? void 0 : _d.marketingAirlineCode,
|
|
44263
45141
|
'.png?height=256'
|
|
44264
45142
|
),
|
|
44265
45143
|
alt: '',
|
|
@@ -44268,7 +45146,7 @@ var PairedFlightOption = function (_a) {
|
|
|
44268
45146
|
React__default.createElement(
|
|
44269
45147
|
'span',
|
|
44270
45148
|
null,
|
|
44271
|
-
(
|
|
45149
|
+
(_e = getDepartureSegment(item.outward)) === null || _e === void 0 ? void 0 : _e.marketingAirlineName
|
|
44272
45150
|
)
|
|
44273
45151
|
),
|
|
44274
45152
|
React__default.createElement(
|
|
@@ -44280,20 +45158,20 @@ var PairedFlightOption = function (_a) {
|
|
|
44280
45158
|
React__default.createElement(
|
|
44281
45159
|
'strong',
|
|
44282
45160
|
null,
|
|
44283
|
-
timeFromDateTime((
|
|
45161
|
+
timeFromDateTime((_f = getDepartureSegment(item.outward)) === null || _f === void 0 ? void 0 : _f.departureDateTime),
|
|
44284
45162
|
' ',
|
|
44285
|
-
(
|
|
45163
|
+
(_g = getDepartureSegment(item.outward)) === null || _g === void 0 ? void 0 : _g.departureAirportCode
|
|
44286
45164
|
),
|
|
44287
45165
|
React__default.createElement(
|
|
44288
45166
|
'p',
|
|
44289
45167
|
null,
|
|
44290
|
-
longFormatDate((
|
|
45168
|
+
longFormatDate((_h = getDepartureSegment(item.outward)) === null || _h === void 0 ? void 0 : _h.departureDateTime, language)
|
|
44291
45169
|
)
|
|
44292
45170
|
),
|
|
44293
45171
|
React__default.createElement(
|
|
44294
45172
|
'div',
|
|
44295
45173
|
{ className: 'flight__info__duration' },
|
|
44296
|
-
React__default.createElement('p', null, durationTicksInHoursString(item.
|
|
45174
|
+
React__default.createElement('p', null, durationTicksInHoursString(item.outward.durationInTicks)),
|
|
44297
45175
|
React__default.createElement(
|
|
44298
45176
|
'div',
|
|
44299
45177
|
{ className: 'flight__info__duration__stops' },
|
|
@@ -44302,7 +45180,7 @@ var PairedFlightOption = function (_a) {
|
|
|
44302
45180
|
React__default.createElement(
|
|
44303
45181
|
'span',
|
|
44304
45182
|
null,
|
|
44305
|
-
getNumberOfStopsLabel(item.
|
|
45183
|
+
getNumberOfStopsLabel(item.outward, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
44306
45184
|
)
|
|
44307
45185
|
),
|
|
44308
45186
|
React__default.createElement(
|
|
@@ -44311,14 +45189,14 @@ var PairedFlightOption = function (_a) {
|
|
|
44311
45189
|
React__default.createElement(
|
|
44312
45190
|
'strong',
|
|
44313
45191
|
null,
|
|
44314
|
-
timeFromDateTime((
|
|
45192
|
+
timeFromDateTime((_j = getArrivalSegment(item.outward)) === null || _j === void 0 ? void 0 : _j.arrivalDateTime),
|
|
44315
45193
|
' ',
|
|
44316
|
-
(
|
|
45194
|
+
(_k = getArrivalSegment(item.outward)) === null || _k === void 0 ? void 0 : _k.arrivalAirportCode
|
|
44317
45195
|
),
|
|
44318
45196
|
React__default.createElement(
|
|
44319
45197
|
'p',
|
|
44320
45198
|
null,
|
|
44321
|
-
longFormatDate((
|
|
45199
|
+
longFormatDate((_l = getArrivalSegment(item.outward)) === null || _l === void 0 ? void 0 : _l.arrivalDateTime, language)
|
|
44322
45200
|
)
|
|
44323
45201
|
)
|
|
44324
45202
|
)
|
|
@@ -44329,9 +45207,9 @@ var PairedFlightOption = function (_a) {
|
|
|
44329
45207
|
React__default.createElement(
|
|
44330
45208
|
'div',
|
|
44331
45209
|
{
|
|
44332
|
-
className: 'flight__detail__btn '.concat(
|
|
45210
|
+
className: 'flight__detail__btn '.concat(isOutwardOpen ? 'flight__detail__btn--active' : ''),
|
|
44333
45211
|
onClick: function () {
|
|
44334
|
-
return
|
|
45212
|
+
return setIsOutwardOpen(function (prev) {
|
|
44335
45213
|
return !prev;
|
|
44336
45214
|
});
|
|
44337
45215
|
}
|
|
@@ -44341,358 +45219,239 @@ var PairedFlightOption = function (_a) {
|
|
|
44341
45219
|
)
|
|
44342
45220
|
),
|
|
44343
45221
|
React__default.createElement(
|
|
44344
|
-
'div',
|
|
44345
|
-
{ className: 'flight__detail '.concat(
|
|
44346
|
-
getFlightSegments(item.
|
|
44347
|
-
return React__default.createElement(
|
|
44348
|
-
React__default.Fragment,
|
|
44349
|
-
{ key: '
|
|
44350
|
-
React__default.createElement(
|
|
44351
|
-
'div',
|
|
44352
|
-
{ className: 'flight__info' },
|
|
44353
|
-
React__default.createElement(
|
|
44354
|
-
'div',
|
|
44355
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44356
|
-
React__default.createElement(
|
|
44357
|
-
'div',
|
|
44358
|
-
{ className: 'flight__info__times' },
|
|
44359
|
-
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44360
|
-
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
44361
|
-
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44362
|
-
),
|
|
44363
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
44364
|
-
),
|
|
44365
|
-
React__default.createElement(
|
|
44366
|
-
'div',
|
|
44367
|
-
{ className: 'flight__info__duration' },
|
|
44368
|
-
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
44369
|
-
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
44370
|
-
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
44371
|
-
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
44372
|
-
),
|
|
44373
|
-
React__default.createElement(
|
|
44374
|
-
'div',
|
|
44375
|
-
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44376
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
44377
|
-
React__default.createElement(
|
|
44378
|
-
'div',
|
|
44379
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44380
|
-
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44381
|
-
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
44382
|
-
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44383
|
-
)
|
|
44384
|
-
)
|
|
44385
|
-
),
|
|
44386
|
-
segment.transferTimeInTicks &&
|
|
44387
|
-
React__default.createElement(
|
|
44388
|
-
'div',
|
|
44389
|
-
{ className: 'flight__info' },
|
|
44390
|
-
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
44391
|
-
React__default.createElement(
|
|
44392
|
-
'div',
|
|
44393
|
-
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44394
|
-
React__default.createElement(
|
|
44395
|
-
'div',
|
|
44396
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44397
|
-
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44398
|
-
),
|
|
44399
|
-
React__default.createElement(
|
|
44400
|
-
'div',
|
|
44401
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44402
|
-
React__default.createElement('span', null, 'Stop time'),
|
|
44403
|
-
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44404
|
-
)
|
|
44405
|
-
),
|
|
44406
|
-
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44407
|
-
)
|
|
44408
|
-
);
|
|
44409
|
-
})
|
|
44410
|
-
)
|
|
44411
|
-
)
|
|
44412
|
-
)
|
|
44413
|
-
)
|
|
44414
|
-
)
|
|
44415
|
-
)
|
|
44416
|
-
);
|
|
44417
|
-
};
|
|
44418
|
-
|
|
44419
|
-
var PairedFlightSelection = function (_a) {
|
|
44420
|
-
var _b;
|
|
44421
|
-
var searchResults = _a.searchResults;
|
|
44422
|
-
var context = useContext(SearchResultsConfigurationContext);
|
|
44423
|
-
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44424
|
-
return React__default.createElement(
|
|
44425
|
-
React__default.Fragment,
|
|
44426
|
-
null,
|
|
44427
|
-
React__default.createElement(
|
|
44428
|
-
'div',
|
|
44429
|
-
{ className: 'search__results__label search__results__label--secondary' },
|
|
44430
|
-
React__default.createElement(
|
|
44431
|
-
'div',
|
|
44432
|
-
{ className: 'search__results__label__date' },
|
|
44433
|
-
React__default.createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
44434
|
-
),
|
|
44435
|
-
React__default.createElement(
|
|
44436
|
-
'div',
|
|
44437
|
-
{ className: 'search__results__label__text' },
|
|
44438
|
-
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, ' ', translations.SIDEBAR.FLIGHT))
|
|
44439
|
-
)
|
|
44440
|
-
),
|
|
44441
|
-
React__default.createElement(
|
|
44442
|
-
'div',
|
|
44443
|
-
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44444
|
-
searchResults.map(function (result) {
|
|
44445
|
-
return React__default.createElement(PairedFlightOption, { key: 'flight-'.concat(result.guid), item: result });
|
|
44446
|
-
})
|
|
44447
|
-
)
|
|
44448
|
-
);
|
|
44449
|
-
};
|
|
44450
|
-
|
|
44451
|
-
var IndependentFlightOption = function (_a) {
|
|
44452
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
44453
|
-
var item = _a.item,
|
|
44454
|
-
onSelect = _a.onSelect,
|
|
44455
|
-
guid = _a.guid,
|
|
44456
|
-
selectedGuid = _a.selectedGuid,
|
|
44457
|
-
isOutward = _a.isOutward,
|
|
44458
|
-
showSelectedState = _a.showSelectedState,
|
|
44459
|
-
currentSelectedPrice = _a.currentSelectedPrice,
|
|
44460
|
-
price = _a.price;
|
|
44461
|
-
var context = useContext(SearchResultsConfigurationContext);
|
|
44462
|
-
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44463
|
-
var translations = getTranslations(language);
|
|
44464
|
-
var _p = useState(false),
|
|
44465
|
-
detailsOpen = _p[0],
|
|
44466
|
-
setDetailsOpen = _p[1];
|
|
44467
|
-
var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
|
|
44468
|
-
return React__default.createElement(
|
|
44469
|
-
'div',
|
|
44470
|
-
{ className: 'search__result-card', key: 'flight-'.concat(item.code) },
|
|
44471
|
-
React__default.createElement(
|
|
44472
|
-
'div',
|
|
44473
|
-
{ className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
|
|
44474
|
-
React__default.createElement(
|
|
44475
|
-
'div',
|
|
44476
|
-
{ className: 'flight__option' },
|
|
44477
|
-
React__default.createElement(
|
|
44478
|
-
'div',
|
|
44479
|
-
{ className: 'flight__content' },
|
|
44480
|
-
React__default.createElement(
|
|
44481
|
-
'div',
|
|
44482
|
-
{ className: 'flight__flights' },
|
|
44483
|
-
React__default.createElement(
|
|
44484
|
-
'div',
|
|
44485
|
-
{ className: 'flight__flight' },
|
|
44486
|
-
React__default.createElement(
|
|
44487
|
-
'div',
|
|
44488
|
-
{ className: 'flight__flight__header' },
|
|
44489
|
-
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
44490
|
-
React__default.createElement(
|
|
44491
|
-
'div',
|
|
44492
|
-
{ className: 'flight__price' },
|
|
44493
|
-
price != null &&
|
|
44494
|
-
price > 0 &&
|
|
44495
|
-
(isOutward
|
|
44496
|
-
? React__default.createElement(
|
|
44497
|
-
'span',
|
|
44498
|
-
{ className: 'price' },
|
|
44499
|
-
translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
|
|
44500
|
-
'\u00A0',
|
|
44501
|
-
formatPrice$2(
|
|
44502
|
-
price,
|
|
44503
|
-
'EUR',
|
|
44504
|
-
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
45222
|
+
'div',
|
|
45223
|
+
{ className: 'flight__detail '.concat(isOutwardOpen ? 'flight__detail--active' : '') },
|
|
45224
|
+
getFlightSegments(item.outward).map(function (segment, index) {
|
|
45225
|
+
return React__default.createElement(
|
|
45226
|
+
React__default.Fragment,
|
|
45227
|
+
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
45228
|
+
React__default.createElement(
|
|
45229
|
+
'div',
|
|
45230
|
+
{ className: 'flight__info' },
|
|
45231
|
+
React__default.createElement(
|
|
45232
|
+
'div',
|
|
45233
|
+
{ className: 'flight__info__times__wrapper' },
|
|
45234
|
+
React__default.createElement(
|
|
45235
|
+
'div',
|
|
45236
|
+
{ className: 'flight__info__times' },
|
|
45237
|
+
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
45238
|
+
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
45239
|
+
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
45240
|
+
),
|
|
45241
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
45242
|
+
),
|
|
45243
|
+
React__default.createElement(
|
|
45244
|
+
'div',
|
|
45245
|
+
{ className: 'flight__info__duration' },
|
|
45246
|
+
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
45247
|
+
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
45248
|
+
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
45249
|
+
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
45250
|
+
),
|
|
45251
|
+
React__default.createElement(
|
|
45252
|
+
'div',
|
|
45253
|
+
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
45254
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
45255
|
+
React__default.createElement(
|
|
45256
|
+
'div',
|
|
45257
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
45258
|
+
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
45259
|
+
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
45260
|
+
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44505
45261
|
)
|
|
44506
45262
|
)
|
|
44507
|
-
|
|
44508
|
-
|
|
45263
|
+
),
|
|
45264
|
+
segment.transferTimeInTicks &&
|
|
44509
45265
|
React__default.createElement(
|
|
44510
|
-
'
|
|
44511
|
-
{ className: '
|
|
44512
|
-
|
|
44513
|
-
|
|
44514
|
-
|
|
44515
|
-
|
|
44516
|
-
|
|
44517
|
-
|
|
44518
|
-
|
|
44519
|
-
|
|
44520
|
-
|
|
44521
|
-
|
|
44522
|
-
|
|
44523
|
-
|
|
44524
|
-
|
|
44525
|
-
|
|
44526
|
-
|
|
44527
|
-
|
|
44528
|
-
|
|
44529
|
-
|
|
44530
|
-
|
|
45266
|
+
'div',
|
|
45267
|
+
{ className: 'flight__info' },
|
|
45268
|
+
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
45269
|
+
React__default.createElement(
|
|
45270
|
+
'div',
|
|
45271
|
+
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
45272
|
+
React__default.createElement(
|
|
45273
|
+
'div',
|
|
45274
|
+
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
45275
|
+
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
45276
|
+
),
|
|
45277
|
+
React__default.createElement(
|
|
45278
|
+
'div',
|
|
45279
|
+
{ className: 'flight__info__duration__stoptime' },
|
|
45280
|
+
React__default.createElement('span', null, 'Stop time'),
|
|
45281
|
+
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
45282
|
+
)
|
|
45283
|
+
),
|
|
45284
|
+
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
45285
|
+
)
|
|
45286
|
+
);
|
|
45287
|
+
})
|
|
44531
45288
|
)
|
|
44532
|
-
)
|
|
44533
|
-
|
|
44534
|
-
React__default.createElement(
|
|
44535
|
-
'div',
|
|
44536
|
-
{ className: 'flight__flight' },
|
|
45289
|
+
),
|
|
45290
|
+
item.return &&
|
|
44537
45291
|
React__default.createElement(
|
|
44538
45292
|
'div',
|
|
44539
|
-
{ className: '
|
|
45293
|
+
{ className: 'flight__flight' },
|
|
44540
45294
|
React__default.createElement(
|
|
44541
45295
|
'div',
|
|
44542
|
-
{ className: '
|
|
44543
|
-
React__default.createElement(
|
|
44544
|
-
'div',
|
|
44545
|
-
{ className: 'flight__logo__wrapper' },
|
|
44546
|
-
React__default.createElement('img', {
|
|
44547
|
-
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
44548
|
-
(_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
|
|
44549
|
-
'.png?height=256'
|
|
44550
|
-
),
|
|
44551
|
-
alt: '',
|
|
44552
|
-
className: 'flight__logo'
|
|
44553
|
-
}),
|
|
44554
|
-
React__default.createElement('span', null, (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName)
|
|
44555
|
-
),
|
|
45296
|
+
{ className: 'flight__flight__container' },
|
|
44556
45297
|
React__default.createElement(
|
|
44557
45298
|
'div',
|
|
44558
|
-
{ className: '
|
|
45299
|
+
{ className: 'flight__flight__wrapper' },
|
|
44559
45300
|
React__default.createElement(
|
|
44560
45301
|
'div',
|
|
44561
|
-
{ className: '
|
|
44562
|
-
React__default.createElement(
|
|
44563
|
-
'
|
|
44564
|
-
|
|
44565
|
-
|
|
44566
|
-
|
|
44567
|
-
|
|
44568
|
-
|
|
45302
|
+
{ className: 'flight__logo__wrapper' },
|
|
45303
|
+
React__default.createElement('img', {
|
|
45304
|
+
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
45305
|
+
(_m = getDepartureSegment(item.return)) === null || _m === void 0 ? void 0 : _m.marketingAirlineCode,
|
|
45306
|
+
'.png?height=256'
|
|
45307
|
+
),
|
|
45308
|
+
alt: '',
|
|
45309
|
+
className: 'flight__logo'
|
|
45310
|
+
}),
|
|
44569
45311
|
React__default.createElement(
|
|
44570
|
-
'
|
|
45312
|
+
'span',
|
|
44571
45313
|
null,
|
|
44572
|
-
|
|
45314
|
+
(_o = getDepartureSegment(item.return)) === null || _o === void 0 ? void 0 : _o.marketingAirlineName
|
|
44573
45315
|
)
|
|
44574
45316
|
),
|
|
44575
45317
|
React__default.createElement(
|
|
44576
45318
|
'div',
|
|
44577
|
-
{ className: '
|
|
44578
|
-
React__default.createElement('p', null, durationTicksInHoursString(item.durationInTicks)),
|
|
45319
|
+
{ className: 'flight__info' },
|
|
44579
45320
|
React__default.createElement(
|
|
44580
45321
|
'div',
|
|
44581
|
-
{ className: '
|
|
44582
|
-
React__default.createElement(
|
|
45322
|
+
{ className: 'flight__info__times' },
|
|
45323
|
+
React__default.createElement(
|
|
45324
|
+
'strong',
|
|
45325
|
+
null,
|
|
45326
|
+
timeFromDateTime((_p = getDepartureSegment(item.return)) === null || _p === void 0 ? void 0 : _p.departureDateTime),
|
|
45327
|
+
' ',
|
|
45328
|
+
(_q = getDepartureSegment(item.return)) === null || _q === void 0 ? void 0 : _q.departureAirportCode
|
|
45329
|
+
),
|
|
45330
|
+
React__default.createElement(
|
|
45331
|
+
'p',
|
|
45332
|
+
null,
|
|
45333
|
+
longFormatDate((_r = getDepartureSegment(item.return)) === null || _r === void 0 ? void 0 : _r.departureDateTime, language)
|
|
45334
|
+
)
|
|
44583
45335
|
),
|
|
44584
45336
|
React__default.createElement(
|
|
44585
|
-
'
|
|
44586
|
-
|
|
44587
|
-
|
|
44588
|
-
|
|
44589
|
-
|
|
44590
|
-
|
|
44591
|
-
|
|
44592
|
-
|
|
44593
|
-
|
|
44594
|
-
|
|
44595
|
-
|
|
44596
|
-
|
|
44597
|
-
|
|
44598
|
-
(_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
|
|
45337
|
+
'div',
|
|
45338
|
+
{ className: 'flight__info__duration' },
|
|
45339
|
+
React__default.createElement('p', null, durationTicksInHoursString(item.return.durationInTicks)),
|
|
45340
|
+
React__default.createElement(
|
|
45341
|
+
'div',
|
|
45342
|
+
{ className: 'flight__info__duration__stops' },
|
|
45343
|
+
React__default.createElement('div', { className: 'flight__info__duration__stop' })
|
|
45344
|
+
),
|
|
45345
|
+
React__default.createElement(
|
|
45346
|
+
'span',
|
|
45347
|
+
null,
|
|
45348
|
+
getNumberOfStopsLabel(item.return, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
45349
|
+
)
|
|
44599
45350
|
),
|
|
44600
45351
|
React__default.createElement(
|
|
44601
|
-
'
|
|
44602
|
-
|
|
44603
|
-
|
|
45352
|
+
'div',
|
|
45353
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
45354
|
+
React__default.createElement(
|
|
45355
|
+
'strong',
|
|
45356
|
+
null,
|
|
45357
|
+
timeFromDateTime((_s = getArrivalSegment(item.return)) === null || _s === void 0 ? void 0 : _s.arrivalDateTime),
|
|
45358
|
+
' ',
|
|
45359
|
+
(_t = getArrivalSegment(item.return)) === null || _t === void 0 ? void 0 : _t.arrivalAirportCode
|
|
45360
|
+
),
|
|
45361
|
+
React__default.createElement(
|
|
45362
|
+
'p',
|
|
45363
|
+
null,
|
|
45364
|
+
longFormatDate((_u = getArrivalSegment(item.return)) === null || _u === void 0 ? void 0 : _u.arrivalDateTime, language)
|
|
45365
|
+
)
|
|
44604
45366
|
)
|
|
44605
45367
|
)
|
|
45368
|
+
),
|
|
45369
|
+
React__default.createElement(
|
|
45370
|
+
'div',
|
|
45371
|
+
{ className: 'flight__detail__btn__wrapper' },
|
|
45372
|
+
React__default.createElement(
|
|
45373
|
+
'div',
|
|
45374
|
+
{
|
|
45375
|
+
className: 'flight__detail__btn '.concat(isReturnOpen ? 'flight__detail__btn--active' : ''),
|
|
45376
|
+
onClick: function () {
|
|
45377
|
+
return setIsReturnOpen(function (prev) {
|
|
45378
|
+
return !prev;
|
|
45379
|
+
});
|
|
45380
|
+
}
|
|
45381
|
+
},
|
|
45382
|
+
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
45383
|
+
)
|
|
44606
45384
|
)
|
|
44607
45385
|
),
|
|
44608
45386
|
React__default.createElement(
|
|
44609
45387
|
'div',
|
|
44610
|
-
{ className: '
|
|
44611
|
-
|
|
44612
|
-
|
|
44613
|
-
|
|
44614
|
-
|
|
44615
|
-
|
|
44616
|
-
|
|
44617
|
-
|
|
44618
|
-
|
|
44619
|
-
|
|
44620
|
-
|
|
44621
|
-
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44622
|
-
)
|
|
44623
|
-
)
|
|
44624
|
-
),
|
|
44625
|
-
React__default.createElement(
|
|
44626
|
-
'div',
|
|
44627
|
-
{ className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
|
|
44628
|
-
(_o = getFlightSegments(item)) === null || _o === void 0
|
|
44629
|
-
? void 0
|
|
44630
|
-
: _o.map(function (segment, index) {
|
|
44631
|
-
return React__default.createElement(
|
|
44632
|
-
React__default.Fragment,
|
|
44633
|
-
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
44634
|
-
React__default.createElement(
|
|
44635
|
-
'div',
|
|
44636
|
-
{ className: 'flight__info' },
|
|
44637
|
-
React__default.createElement(
|
|
44638
|
-
'div',
|
|
44639
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44640
|
-
React__default.createElement(
|
|
44641
|
-
'div',
|
|
44642
|
-
{ className: 'flight__info__times' },
|
|
44643
|
-
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44644
|
-
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
44645
|
-
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44646
|
-
),
|
|
44647
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
44648
|
-
),
|
|
45388
|
+
{ className: 'flight__detail '.concat(isReturnOpen ? 'flight__detail--active' : '') },
|
|
45389
|
+
getFlightSegments(item.return).map(function (segment, index) {
|
|
45390
|
+
return React__default.createElement(
|
|
45391
|
+
React__default.Fragment,
|
|
45392
|
+
{ key: 'return-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
45393
|
+
React__default.createElement(
|
|
45394
|
+
'div',
|
|
45395
|
+
{ className: 'flight__info' },
|
|
45396
|
+
React__default.createElement(
|
|
45397
|
+
'div',
|
|
45398
|
+
{ className: 'flight__info__times__wrapper' },
|
|
44649
45399
|
React__default.createElement(
|
|
44650
45400
|
'div',
|
|
44651
|
-
{ className: '
|
|
44652
|
-
React__default.createElement('p', null,
|
|
44653
|
-
React__default.createElement('
|
|
44654
|
-
React__default.createElement('
|
|
44655
|
-
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
45401
|
+
{ className: 'flight__info__times' },
|
|
45402
|
+
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
45403
|
+
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
45404
|
+
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44656
45405
|
),
|
|
45406
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
45407
|
+
),
|
|
45408
|
+
React__default.createElement(
|
|
45409
|
+
'div',
|
|
45410
|
+
{ className: 'flight__info__duration' },
|
|
45411
|
+
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
45412
|
+
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
45413
|
+
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
45414
|
+
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
45415
|
+
),
|
|
45416
|
+
React__default.createElement(
|
|
45417
|
+
'div',
|
|
45418
|
+
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
45419
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
44657
45420
|
React__default.createElement(
|
|
44658
45421
|
'div',
|
|
44659
|
-
{ className: '
|
|
44660
|
-
React__default.createElement('
|
|
44661
|
-
React__default.createElement(
|
|
44662
|
-
|
|
44663
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44664
|
-
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44665
|
-
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
44666
|
-
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44667
|
-
)
|
|
45422
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
45423
|
+
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
45424
|
+
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
45425
|
+
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44668
45426
|
)
|
|
44669
|
-
)
|
|
44670
|
-
|
|
45427
|
+
)
|
|
45428
|
+
),
|
|
45429
|
+
segment.transferTimeInTicks &&
|
|
45430
|
+
React__default.createElement(
|
|
45431
|
+
'div',
|
|
45432
|
+
{ className: 'flight__info' },
|
|
45433
|
+
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
44671
45434
|
React__default.createElement(
|
|
44672
45435
|
'div',
|
|
44673
|
-
{ className: '
|
|
44674
|
-
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
45436
|
+
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44675
45437
|
React__default.createElement(
|
|
44676
45438
|
'div',
|
|
44677
|
-
{ className: '
|
|
44678
|
-
React__default.createElement(
|
|
44679
|
-
'div',
|
|
44680
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44681
|
-
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44682
|
-
),
|
|
44683
|
-
React__default.createElement(
|
|
44684
|
-
'div',
|
|
44685
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44686
|
-
React__default.createElement('span', null, 'Stop time'),
|
|
44687
|
-
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44688
|
-
)
|
|
45439
|
+
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
45440
|
+
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44689
45441
|
),
|
|
44690
|
-
React__default.createElement(
|
|
44691
|
-
|
|
44692
|
-
|
|
44693
|
-
|
|
45442
|
+
React__default.createElement(
|
|
45443
|
+
'div',
|
|
45444
|
+
{ className: 'flight__info__duration__stoptime' },
|
|
45445
|
+
React__default.createElement('span', null, 'Stop time'),
|
|
45446
|
+
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
45447
|
+
)
|
|
45448
|
+
),
|
|
45449
|
+
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
45450
|
+
)
|
|
45451
|
+
);
|
|
45452
|
+
})
|
|
45453
|
+
)
|
|
44694
45454
|
)
|
|
44695
|
-
)
|
|
44696
45455
|
)
|
|
44697
45456
|
)
|
|
44698
45457
|
)
|
|
@@ -44700,6 +45459,38 @@ var IndependentFlightOption = function (_a) {
|
|
|
44700
45459
|
);
|
|
44701
45460
|
};
|
|
44702
45461
|
|
|
45462
|
+
var PairedFlightSelection = function (_a) {
|
|
45463
|
+
var _b;
|
|
45464
|
+
var searchResults = _a.searchResults;
|
|
45465
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
45466
|
+
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
45467
|
+
return React__default.createElement(
|
|
45468
|
+
React__default.Fragment,
|
|
45469
|
+
null,
|
|
45470
|
+
React__default.createElement(
|
|
45471
|
+
'div',
|
|
45472
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
45473
|
+
React__default.createElement(
|
|
45474
|
+
'div',
|
|
45475
|
+
{ className: 'search__results__label__date' },
|
|
45476
|
+
React__default.createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
45477
|
+
),
|
|
45478
|
+
React__default.createElement(
|
|
45479
|
+
'div',
|
|
45480
|
+
{ className: 'search__results__label__text' },
|
|
45481
|
+
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, ' ', translations.SIDEBAR.FLIGHT))
|
|
45482
|
+
)
|
|
45483
|
+
),
|
|
45484
|
+
React__default.createElement(
|
|
45485
|
+
'div',
|
|
45486
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
45487
|
+
searchResults.map(function (result) {
|
|
45488
|
+
return React__default.createElement(PairedFlightOption, { key: 'flight-'.concat(result.guid), item: result });
|
|
45489
|
+
})
|
|
45490
|
+
)
|
|
45491
|
+
);
|
|
45492
|
+
};
|
|
45493
|
+
|
|
44703
45494
|
var IndependentFlightSelection = function (_a) {
|
|
44704
45495
|
var _b;
|
|
44705
45496
|
var searchResults = _a.searchResults;
|
|
@@ -44810,189 +45601,79 @@ var IndependentFlightSelection = function (_a) {
|
|
|
44810
45601
|
)
|
|
44811
45602
|
),
|
|
44812
45603
|
React__default.createElement(
|
|
44813
|
-
'div',
|
|
44814
|
-
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44815
|
-
selectedOutwardKey && selectedOutward
|
|
44816
|
-
? React__default.createElement(IndependentFlightOption, {
|
|
44817
|
-
key: 'flight-'.concat(selectedOutwardKey),
|
|
44818
|
-
item: selectedOutward.outward,
|
|
44819
|
-
guid: selectedOutward.guid,
|
|
44820
|
-
onSelect: function () {
|
|
44821
|
-
return setSelectedOutwardKey(null);
|
|
44822
|
-
},
|
|
44823
|
-
selectedGuid: selectedOutward.guid,
|
|
44824
|
-
isOutward: true
|
|
44825
|
-
})
|
|
44826
|
-
: uniqueOutwardFlights.map(function (result) {
|
|
44827
|
-
return React__default.createElement(IndependentFlightOption, {
|
|
44828
|
-
key: 'flight-'.concat(result.guid),
|
|
44829
|
-
item: result.outward,
|
|
44830
|
-
onSelect: function () {
|
|
44831
|
-
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
44832
|
-
},
|
|
44833
|
-
guid: result.guid,
|
|
44834
|
-
isOutward: true
|
|
44835
|
-
});
|
|
44836
|
-
})
|
|
44837
|
-
),
|
|
44838
|
-
React__default.createElement(
|
|
44839
|
-
'div',
|
|
44840
|
-
{ className: 'search__results__label search__results__label--secondary' },
|
|
44841
|
-
React__default.createElement(
|
|
44842
|
-
'div',
|
|
44843
|
-
{ className: 'search__results__label__date' },
|
|
44844
|
-
React__default.createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
44845
|
-
),
|
|
44846
|
-
React__default.createElement(
|
|
44847
|
-
'div',
|
|
44848
|
-
{ className: 'search__results__label__text' },
|
|
44849
|
-
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, ' ', translations.SRP.RETURN))
|
|
44850
|
-
)
|
|
44851
|
-
),
|
|
44852
|
-
React__default.createElement(
|
|
44853
|
-
'div',
|
|
44854
|
-
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44855
|
-
selectedReturnKey && selectedReturn
|
|
44856
|
-
? React__default.createElement(IndependentFlightOption, {
|
|
44857
|
-
key: 'flight-'.concat(selectedReturnKey),
|
|
44858
|
-
item: selectedReturn.return,
|
|
44859
|
-
guid: selectedReturn.guid,
|
|
44860
|
-
selectedGuid: selectedReturn.guid,
|
|
44861
|
-
isOutward: false
|
|
44862
|
-
})
|
|
44863
|
-
: uniqueReturnFlights.map(function (result) {
|
|
44864
|
-
return React__default.createElement(IndependentFlightOption, {
|
|
44865
|
-
key: 'flight-'.concat(result.guid),
|
|
44866
|
-
item: result.return,
|
|
44867
|
-
onSelect: function () {
|
|
44868
|
-
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
44869
|
-
},
|
|
44870
|
-
guid: result.guid,
|
|
44871
|
-
isOutward: false
|
|
44872
|
-
});
|
|
44873
|
-
})
|
|
44874
|
-
)
|
|
44875
|
-
);
|
|
44876
|
-
};
|
|
44877
|
-
|
|
44878
|
-
var FlightSelection = function (_a) {
|
|
44879
|
-
var searchResults = _a.searchResults,
|
|
44880
|
-
flightSelectionType = _a.flightSelectionType;
|
|
44881
|
-
return flightSelectionType === 'paired'
|
|
44882
|
-
? React__default.createElement(PairedFlightSelection, { searchResults: searchResults })
|
|
44883
|
-
: React__default.createElement(IndependentFlightSelection, { searchResults: searchResults });
|
|
44884
|
-
};
|
|
44885
|
-
|
|
44886
|
-
var MultiRangeFilter = function (_a) {
|
|
44887
|
-
var min = _a.min,
|
|
44888
|
-
max = _a.max,
|
|
44889
|
-
selectedMin = _a.selectedMin,
|
|
44890
|
-
selectedMax = _a.selectedMax,
|
|
44891
|
-
valueFormatter = _a.valueFormatter,
|
|
44892
|
-
onChange = _a.onChange;
|
|
44893
|
-
var _b = useState(false),
|
|
44894
|
-
isDragging = _b[0],
|
|
44895
|
-
setIsDragging = _b[1];
|
|
44896
|
-
var _c = useState(0),
|
|
44897
|
-
leftPercentage = _c[0],
|
|
44898
|
-
setLeftPercentage = _c[1];
|
|
44899
|
-
var _d = useState(0),
|
|
44900
|
-
rightPercentage = _d[0],
|
|
44901
|
-
setRightPercentage = _d[1];
|
|
44902
|
-
var _e = useState(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min),
|
|
44903
|
-
minVal = _e[0],
|
|
44904
|
-
setMinVal = _e[1];
|
|
44905
|
-
var _f = useState(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max),
|
|
44906
|
-
maxVal = _f[0],
|
|
44907
|
-
setMaxVal = _f[1];
|
|
44908
|
-
var minGap = 5;
|
|
44909
|
-
// Sync internal state with external selectedMin/selectedMax changes
|
|
44910
|
-
useEffect(
|
|
44911
|
-
function () {
|
|
44912
|
-
setMinVal(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min);
|
|
44913
|
-
setMaxVal(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max);
|
|
44914
|
-
},
|
|
44915
|
-
[min, max, selectedMin, selectedMax]
|
|
44916
|
-
);
|
|
44917
|
-
// Recalculate slider track whenever values change
|
|
44918
|
-
useEffect(
|
|
44919
|
-
function () {
|
|
44920
|
-
var range = max - min || 1;
|
|
44921
|
-
var minPercent = ((minVal - min) / range) * 100;
|
|
44922
|
-
var maxPercent = ((maxVal - min) / range) * 100;
|
|
44923
|
-
setLeftPercentage(minPercent);
|
|
44924
|
-
setRightPercentage(100 - maxPercent);
|
|
44925
|
-
},
|
|
44926
|
-
[minVal, maxVal, min, max]
|
|
44927
|
-
);
|
|
44928
|
-
var slideMin = function (e) {
|
|
44929
|
-
var value = parseInt(e.target.value, 10);
|
|
44930
|
-
// Ensure the thumbs don’t cross and enforce minGap
|
|
44931
|
-
if (value <= maxVal - minGap) {
|
|
44932
|
-
setMinVal(value);
|
|
44933
|
-
}
|
|
44934
|
-
};
|
|
44935
|
-
var slideMax = function (e) {
|
|
44936
|
-
var value = parseInt(e.target.value, 10);
|
|
44937
|
-
// Ensure the thumbs don’t cross and enforce minGap
|
|
44938
|
-
if (value >= minVal + minGap) {
|
|
44939
|
-
setMaxVal(value);
|
|
44940
|
-
}
|
|
44941
|
-
};
|
|
44942
|
-
var startDrag = function () {
|
|
44943
|
-
setIsDragging(true);
|
|
44944
|
-
};
|
|
44945
|
-
var stopDrag = function () {
|
|
44946
|
-
setIsDragging(false);
|
|
44947
|
-
// Notify parent with the final values
|
|
44948
|
-
onChange(minVal, maxVal);
|
|
44949
|
-
};
|
|
44950
|
-
return React__default.createElement(
|
|
44951
|
-
'div',
|
|
44952
|
-
{ className: 'double-slider-box' },
|
|
45604
|
+
'div',
|
|
45605
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
45606
|
+
selectedOutwardKey && selectedOutward
|
|
45607
|
+
? React__default.createElement(IndependentFlightOption, {
|
|
45608
|
+
key: 'flight-'.concat(selectedOutwardKey),
|
|
45609
|
+
item: selectedOutward.outward,
|
|
45610
|
+
guid: selectedOutward.guid,
|
|
45611
|
+
onSelect: function () {
|
|
45612
|
+
return setSelectedOutwardKey(null);
|
|
45613
|
+
},
|
|
45614
|
+
selectedGuid: selectedOutward.guid,
|
|
45615
|
+
isOutward: true
|
|
45616
|
+
})
|
|
45617
|
+
: uniqueOutwardFlights.map(function (result) {
|
|
45618
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
45619
|
+
key: 'flight-'.concat(result.guid),
|
|
45620
|
+
item: result.outward,
|
|
45621
|
+
onSelect: function () {
|
|
45622
|
+
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
45623
|
+
},
|
|
45624
|
+
guid: result.guid,
|
|
45625
|
+
isOutward: true
|
|
45626
|
+
});
|
|
45627
|
+
})
|
|
45628
|
+
),
|
|
44953
45629
|
React__default.createElement(
|
|
44954
45630
|
'div',
|
|
44955
|
-
{ className: '
|
|
44956
|
-
React__default.createElement(
|
|
44957
|
-
|
|
45631
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
45632
|
+
React__default.createElement(
|
|
45633
|
+
'div',
|
|
45634
|
+
{ className: 'search__results__label__date' },
|
|
45635
|
+
React__default.createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
45636
|
+
),
|
|
45637
|
+
React__default.createElement(
|
|
45638
|
+
'div',
|
|
45639
|
+
{ className: 'search__results__label__text' },
|
|
45640
|
+
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, ' ', translations.SRP.RETURN))
|
|
45641
|
+
)
|
|
44958
45642
|
),
|
|
44959
45643
|
React__default.createElement(
|
|
44960
45644
|
'div',
|
|
44961
|
-
{ className: '
|
|
44962
|
-
|
|
44963
|
-
|
|
44964
|
-
|
|
44965
|
-
|
|
44966
|
-
|
|
44967
|
-
|
|
44968
|
-
|
|
44969
|
-
|
|
44970
|
-
|
|
44971
|
-
|
|
44972
|
-
|
|
44973
|
-
|
|
44974
|
-
|
|
44975
|
-
|
|
44976
|
-
|
|
44977
|
-
|
|
44978
|
-
|
|
44979
|
-
|
|
44980
|
-
|
|
44981
|
-
max: max,
|
|
44982
|
-
value: maxVal,
|
|
44983
|
-
onChange: slideMax,
|
|
44984
|
-
onMouseDown: startDrag,
|
|
44985
|
-
onMouseUp: stopDrag,
|
|
44986
|
-
onTouchStart: startDrag,
|
|
44987
|
-
onTouchEnd: stopDrag,
|
|
44988
|
-
className: 'max-val'
|
|
44989
|
-
}),
|
|
44990
|
-
isDragging && React__default.createElement('div', { className: 'min-tooltip' }, valueFormatter(minVal)),
|
|
44991
|
-
isDragging && React__default.createElement('div', { className: 'max-tooltip' }, valueFormatter(maxVal))
|
|
45645
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
45646
|
+
selectedReturnKey && selectedReturn
|
|
45647
|
+
? React__default.createElement(IndependentFlightOption, {
|
|
45648
|
+
key: 'flight-'.concat(selectedReturnKey),
|
|
45649
|
+
item: selectedReturn.return,
|
|
45650
|
+
guid: selectedReturn.guid,
|
|
45651
|
+
selectedGuid: selectedReturn.guid,
|
|
45652
|
+
isOutward: false
|
|
45653
|
+
})
|
|
45654
|
+
: uniqueReturnFlights.map(function (result) {
|
|
45655
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
45656
|
+
key: 'flight-'.concat(result.guid),
|
|
45657
|
+
item: result.return,
|
|
45658
|
+
onSelect: function () {
|
|
45659
|
+
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
45660
|
+
},
|
|
45661
|
+
guid: result.guid,
|
|
45662
|
+
isOutward: false
|
|
45663
|
+
});
|
|
45664
|
+
})
|
|
44992
45665
|
)
|
|
44993
45666
|
);
|
|
44994
45667
|
};
|
|
44995
45668
|
|
|
45669
|
+
var FlightSelection = function (_a) {
|
|
45670
|
+
var searchResults = _a.searchResults,
|
|
45671
|
+
flightSelectionType = _a.flightSelectionType;
|
|
45672
|
+
return flightSelectionType === 'paired'
|
|
45673
|
+
? React__default.createElement(PairedFlightSelection, { searchResults: searchResults })
|
|
45674
|
+
: React__default.createElement(IndependentFlightSelection, { searchResults: searchResults });
|
|
45675
|
+
};
|
|
45676
|
+
|
|
44996
45677
|
var FlightFilters = function (_a) {
|
|
44997
45678
|
var _b;
|
|
44998
45679
|
var isOpen = _a.isOpen,
|
|
@@ -45994,311 +46675,89 @@ var FlightResultsContainer = function (_a) {
|
|
|
45994
46675
|
placeholder: translations.SRP.SORTBY,
|
|
45995
46676
|
classModifier: 'travel-class-picker__items',
|
|
45996
46677
|
valueFormatter: function (value, direction) {
|
|
45997
|
-
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
45998
|
-
},
|
|
45999
|
-
onPick: handleSortChange
|
|
46000
|
-
})
|
|
46001
|
-
),
|
|
46002
|
-
React__default.createElement(
|
|
46003
|
-
'div',
|
|
46004
|
-
{ className: 'search__result-row' },
|
|
46005
|
-
React__default.createElement(
|
|
46006
|
-
'span',
|
|
46007
|
-
{ className: 'search__result-row-text' },
|
|
46008
|
-
!flightsLoading &&
|
|
46009
|
-
React__default.createElement(
|
|
46010
|
-
React__default.Fragment,
|
|
46011
|
-
null,
|
|
46012
|
-
(results === null || results === void 0 ? void 0 : results.length) &&
|
|
46013
|
-
React__default.createElement(React__default.Fragment, null, results.length, ' ', translations.SRP.TOTAL_RESULTS_LABEL)
|
|
46014
|
-
)
|
|
46015
|
-
),
|
|
46016
|
-
!isMobile &&
|
|
46017
|
-
React__default.createElement(
|
|
46018
|
-
React__default.Fragment,
|
|
46019
|
-
null,
|
|
46020
|
-
React__default.createElement(
|
|
46021
|
-
'div',
|
|
46022
|
-
{ className: 'search__result-row-filter' },
|
|
46023
|
-
React__default.createElement(ItemPicker, {
|
|
46024
|
-
items: selectionTypes,
|
|
46025
|
-
selection:
|
|
46026
|
-
((_c = selectionTypes.find(function (type) {
|
|
46027
|
-
return type.id === flightSelectionType;
|
|
46028
|
-
})) === null || _c === void 0
|
|
46029
|
-
? void 0
|
|
46030
|
-
: _c.label) || undefined,
|
|
46031
|
-
label: 'Selection Type',
|
|
46032
|
-
placeholder: 'Selection Type',
|
|
46033
|
-
classModifier: 'travel-class-picker__items',
|
|
46034
|
-
valueFormatter: function (value) {
|
|
46035
|
-
return value;
|
|
46036
|
-
},
|
|
46037
|
-
onPick: function (value) {
|
|
46038
|
-
var _a;
|
|
46039
|
-
return setFlightSelectionType(
|
|
46040
|
-
((_a = selectionTypes.find(function (type) {
|
|
46041
|
-
return type.label === value;
|
|
46042
|
-
})) === null || _a === void 0
|
|
46043
|
-
? void 0
|
|
46044
|
-
: _a.id) || 'independent'
|
|
46045
|
-
);
|
|
46046
|
-
}
|
|
46047
|
-
})
|
|
46048
|
-
),
|
|
46049
|
-
sortByTypes &&
|
|
46050
|
-
sortByTypes.length > 0 &&
|
|
46051
|
-
React__default.createElement(
|
|
46052
|
-
'div',
|
|
46053
|
-
{ className: 'search__result-row-filter' },
|
|
46054
|
-
React__default.createElement(ItemPicker, {
|
|
46055
|
-
items: sortByTypes,
|
|
46056
|
-
selection: (selectedSortByType === null || selectedSortByType === void 0 ? void 0 : selectedSortByType.label) || undefined,
|
|
46057
|
-
selectedSortByType: selectedSortByType || undefined,
|
|
46058
|
-
label: translations.SRP.SORTBY,
|
|
46059
|
-
placeholder: translations.SRP.SORTBY,
|
|
46060
|
-
classModifier: 'travel-class-picker__items',
|
|
46061
|
-
valueFormatter: function (value, direction) {
|
|
46062
|
-
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
46063
|
-
},
|
|
46064
|
-
onPick: handleSortChange
|
|
46065
|
-
})
|
|
46066
|
-
)
|
|
46067
|
-
)
|
|
46068
|
-
),
|
|
46069
|
-
React__default.createElement(
|
|
46070
|
-
'div',
|
|
46071
|
-
{ className: 'search__results__wrapper' },
|
|
46072
|
-
flightsLoading && React__default.createElement(Spinner, null),
|
|
46073
|
-
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) == build.PortalQsmType.Flight &&
|
|
46074
|
-
(context === null || context === void 0 ? void 0 : context.showFlightAccommodationResults) &&
|
|
46075
|
-
results &&
|
|
46076
|
-
results.length > 0 &&
|
|
46077
|
-
React__default.createElement(FlightSelection, { searchResults: results, flightSelectionType: flightSelectionType })
|
|
46078
|
-
)
|
|
46079
|
-
)
|
|
46080
|
-
)
|
|
46081
|
-
);
|
|
46082
|
-
};
|
|
46083
|
-
|
|
46084
|
-
var Filters = function (_a) {
|
|
46085
|
-
var _b;
|
|
46086
|
-
var initialFilters = _a.initialFilters,
|
|
46087
|
-
filters = _a.filters,
|
|
46088
|
-
isOpen = _a.isOpen,
|
|
46089
|
-
handleSetIsOpen = _a.handleSetIsOpen,
|
|
46090
|
-
isLoading = _a.isLoading;
|
|
46091
|
-
var context = useContext(SearchResultsConfigurationContext);
|
|
46092
|
-
if (!context || !context.showFilters) {
|
|
46093
|
-
return null;
|
|
46094
|
-
}
|
|
46095
|
-
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
46096
|
-
var _c = useState({}),
|
|
46097
|
-
visibleFilters = _c[0],
|
|
46098
|
-
setVisibleFilters = _c[1];
|
|
46099
|
-
var dispatch = useDispatch();
|
|
46100
|
-
var toggleFilterVisibility = function (filterId) {
|
|
46101
|
-
setVisibleFilters(function (prev) {
|
|
46102
|
-
var _a;
|
|
46103
|
-
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
46104
|
-
});
|
|
46105
|
-
};
|
|
46106
|
-
var handleCheckBoxFilter = function (filter, option) {
|
|
46107
|
-
var updated = filters.map(function (f) {
|
|
46108
|
-
var _a;
|
|
46109
|
-
if (f.property !== filter.property) return f;
|
|
46110
|
-
return __assign(__assign({}, f), {
|
|
46111
|
-
options:
|
|
46112
|
-
(_a = f.options) === null || _a === void 0
|
|
46113
|
-
? void 0
|
|
46114
|
-
: _a.map(function (opt) {
|
|
46115
|
-
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
46116
|
-
})
|
|
46117
|
-
});
|
|
46118
|
-
});
|
|
46119
|
-
dispatch(setFilters(updated));
|
|
46120
|
-
};
|
|
46121
|
-
var handleSliderChange = function (filter, newMin, newMax) {
|
|
46122
|
-
var updated = filters.map(function (f) {
|
|
46123
|
-
if (f.property !== filter.property) return f;
|
|
46124
|
-
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
46125
|
-
});
|
|
46126
|
-
dispatch(setFilters(updated));
|
|
46127
|
-
};
|
|
46128
|
-
var handleFullReset = function () {
|
|
46129
|
-
if (!isLoading) {
|
|
46130
|
-
dispatch(resetFilters(initialFilters));
|
|
46131
|
-
}
|
|
46132
|
-
};
|
|
46133
|
-
return React__default.createElement(
|
|
46134
|
-
'div',
|
|
46135
|
-
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
46136
|
-
React__default.createElement('div', {
|
|
46137
|
-
className: 'search__filters--background',
|
|
46138
|
-
onClick: function () {
|
|
46139
|
-
return handleSetIsOpen();
|
|
46140
|
-
}
|
|
46141
|
-
}),
|
|
46142
|
-
React__default.createElement(
|
|
46143
|
-
'button',
|
|
46144
|
-
{
|
|
46145
|
-
className: 'search__filters--close',
|
|
46146
|
-
onClick: function () {
|
|
46147
|
-
return handleSetIsOpen();
|
|
46148
|
-
}
|
|
46149
|
-
},
|
|
46150
|
-
React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
46151
|
-
),
|
|
46152
|
-
React__default.createElement(
|
|
46153
|
-
'div',
|
|
46154
|
-
{ className: 'search__filters' },
|
|
46155
|
-
React__default.createElement(
|
|
46156
|
-
'div',
|
|
46157
|
-
{ className: 'search__filter-row search__filter__header' },
|
|
46678
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
46679
|
+
},
|
|
46680
|
+
onPick: handleSortChange
|
|
46681
|
+
})
|
|
46682
|
+
),
|
|
46158
46683
|
React__default.createElement(
|
|
46159
46684
|
'div',
|
|
46160
|
-
{ className: '
|
|
46161
|
-
React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
46162
|
-
),
|
|
46163
|
-
!isLoading &&
|
|
46685
|
+
{ className: 'search__result-row' },
|
|
46164
46686
|
React__default.createElement(
|
|
46165
|
-
'
|
|
46166
|
-
{
|
|
46167
|
-
|
|
46168
|
-
|
|
46169
|
-
|
|
46170
|
-
|
|
46171
|
-
|
|
46172
|
-
|
|
46173
|
-
|
|
46174
|
-
|
|
46175
|
-
|
|
46176
|
-
? React__default.createElement(Spinner, null)
|
|
46177
|
-
: React__default.createElement(
|
|
46178
|
-
React__default.Fragment,
|
|
46179
|
-
null,
|
|
46687
|
+
'span',
|
|
46688
|
+
{ className: 'search__result-row-text' },
|
|
46689
|
+
!flightsLoading &&
|
|
46690
|
+
React__default.createElement(
|
|
46691
|
+
React__default.Fragment,
|
|
46692
|
+
null,
|
|
46693
|
+
(results === null || results === void 0 ? void 0 : results.length) &&
|
|
46694
|
+
React__default.createElement(React__default.Fragment, null, results.length, ' ', translations.SRP.TOTAL_RESULTS_LABEL)
|
|
46695
|
+
)
|
|
46696
|
+
),
|
|
46697
|
+
!isMobile &&
|
|
46180
46698
|
React__default.createElement(
|
|
46181
|
-
|
|
46182
|
-
|
|
46183
|
-
|
|
46184
|
-
|
|
46185
|
-
|
|
46186
|
-
|
|
46699
|
+
React__default.Fragment,
|
|
46700
|
+
null,
|
|
46701
|
+
React__default.createElement(
|
|
46702
|
+
'div',
|
|
46703
|
+
{ className: 'search__result-row-filter' },
|
|
46704
|
+
React__default.createElement(ItemPicker, {
|
|
46705
|
+
items: selectionTypes,
|
|
46706
|
+
selection:
|
|
46707
|
+
((_c = selectionTypes.find(function (type) {
|
|
46708
|
+
return type.id === flightSelectionType;
|
|
46709
|
+
})) === null || _c === void 0
|
|
46710
|
+
? void 0
|
|
46711
|
+
: _c.label) || undefined,
|
|
46712
|
+
label: 'Selection Type',
|
|
46713
|
+
placeholder: 'Selection Type',
|
|
46714
|
+
classModifier: 'travel-class-picker__items',
|
|
46715
|
+
valueFormatter: function (value) {
|
|
46716
|
+
return value;
|
|
46717
|
+
},
|
|
46718
|
+
onPick: function (value) {
|
|
46719
|
+
var _a;
|
|
46720
|
+
return setFlightSelectionType(
|
|
46721
|
+
((_a = selectionTypes.find(function (type) {
|
|
46722
|
+
return type.label === value;
|
|
46723
|
+
})) === null || _a === void 0
|
|
46724
|
+
? void 0
|
|
46725
|
+
: _a.id) || 'independent'
|
|
46726
|
+
);
|
|
46727
|
+
}
|
|
46728
|
+
})
|
|
46729
|
+
),
|
|
46730
|
+
sortByTypes &&
|
|
46731
|
+
sortByTypes.length > 0 &&
|
|
46732
|
+
React__default.createElement(
|
|
46187
46733
|
'div',
|
|
46188
|
-
{
|
|
46189
|
-
React__default.createElement(
|
|
46190
|
-
|
|
46191
|
-
|
|
46192
|
-
|
|
46193
|
-
|
|
46194
|
-
|
|
46195
|
-
|
|
46196
|
-
|
|
46197
|
-
|
|
46734
|
+
{ className: 'search__result-row-filter' },
|
|
46735
|
+
React__default.createElement(ItemPicker, {
|
|
46736
|
+
items: sortByTypes,
|
|
46737
|
+
selection: (selectedSortByType === null || selectedSortByType === void 0 ? void 0 : selectedSortByType.label) || undefined,
|
|
46738
|
+
selectedSortByType: selectedSortByType || undefined,
|
|
46739
|
+
label: translations.SRP.SORTBY,
|
|
46740
|
+
placeholder: translations.SRP.SORTBY,
|
|
46741
|
+
classModifier: 'travel-class-picker__items',
|
|
46742
|
+
valueFormatter: function (value, direction) {
|
|
46743
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
46198
46744
|
},
|
|
46199
|
-
|
|
46200
|
-
|
|
46201
|
-
|
|
46202
|
-
{
|
|
46203
|
-
id: 'search-chevron-up-icon',
|
|
46204
|
-
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
46205
|
-
viewBox: '0 0 10 6.063',
|
|
46206
|
-
width: 10,
|
|
46207
|
-
height: 6.063
|
|
46208
|
-
},
|
|
46209
|
-
React__default.createElement('path', {
|
|
46210
|
-
id: 'Path_62',
|
|
46211
|
-
'data-name': 'Path 62',
|
|
46212
|
-
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
46213
|
-
transform: 'translate(-240 624)',
|
|
46214
|
-
fill: '#707070'
|
|
46215
|
-
})
|
|
46216
|
-
)
|
|
46217
|
-
),
|
|
46218
|
-
isVisible &&
|
|
46219
|
-
filter.type === 'checkbox' &&
|
|
46220
|
-
React__default.createElement(
|
|
46221
|
-
'div',
|
|
46222
|
-
{ className: 'search__filter-rows' },
|
|
46223
|
-
filter.options &&
|
|
46224
|
-
filter.options.map(function (option, optionIndex) {
|
|
46225
|
-
return React__default.createElement(
|
|
46226
|
-
'div',
|
|
46227
|
-
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
46228
|
-
React__default.createElement(
|
|
46229
|
-
'div',
|
|
46230
|
-
{ className: 'checkbox' },
|
|
46231
|
-
React__default.createElement(
|
|
46232
|
-
'label',
|
|
46233
|
-
{ className: 'checkbox__label' },
|
|
46234
|
-
React__default.createElement('input', {
|
|
46235
|
-
type: 'checkbox',
|
|
46236
|
-
className: 'checkbox__input checkbox__input--parent',
|
|
46237
|
-
checked: option.isChecked,
|
|
46238
|
-
onChange: function (e) {
|
|
46239
|
-
return handleCheckBoxFilter(filter, option);
|
|
46240
|
-
}
|
|
46241
|
-
}),
|
|
46242
|
-
React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
46243
|
-
)
|
|
46244
|
-
)
|
|
46245
|
-
);
|
|
46246
|
-
})
|
|
46247
|
-
),
|
|
46248
|
-
isVisible &&
|
|
46249
|
-
filter.type === 'toggle' &&
|
|
46250
|
-
React__default.createElement(
|
|
46251
|
-
'div',
|
|
46252
|
-
{ className: 'search__filter-rows' },
|
|
46253
|
-
(_b = filter.options) === null || _b === void 0
|
|
46254
|
-
? void 0
|
|
46255
|
-
: _b.map(function (option, optionIndex) {
|
|
46256
|
-
return React__default.createElement(
|
|
46257
|
-
'div',
|
|
46258
|
-
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
46259
|
-
React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
46260
|
-
React__default.createElement('div', { className: 'checkbox' }),
|
|
46261
|
-
React__default.createElement(
|
|
46262
|
-
'label',
|
|
46263
|
-
{ className: 'checkbox__label' },
|
|
46264
|
-
React__default.createElement('input', {
|
|
46265
|
-
type: 'checkbox',
|
|
46266
|
-
className: 'checkbox__input',
|
|
46267
|
-
checked: option.isChecked,
|
|
46268
|
-
onChange: function () {
|
|
46269
|
-
return handleCheckBoxFilter(filter, option);
|
|
46270
|
-
}
|
|
46271
|
-
})
|
|
46272
|
-
)
|
|
46273
|
-
);
|
|
46274
|
-
})
|
|
46275
|
-
),
|
|
46276
|
-
isVisible &&
|
|
46277
|
-
filter &&
|
|
46278
|
-
filter.type === 'slider' &&
|
|
46279
|
-
(function () {
|
|
46280
|
-
var _a, _b, _c, _d;
|
|
46281
|
-
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
46282
|
-
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
46283
|
-
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
46284
|
-
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
46285
|
-
return React__default.createElement(MultiRangeFilter, {
|
|
46286
|
-
min: min,
|
|
46287
|
-
max: max,
|
|
46288
|
-
selectedMin: selectedMin,
|
|
46289
|
-
selectedMax: selectedMax,
|
|
46290
|
-
valueFormatter: function (value) {
|
|
46291
|
-
return ''.concat(value);
|
|
46292
|
-
},
|
|
46293
|
-
onChange: function (newMin, newMax) {
|
|
46294
|
-
handleSliderChange(filter, newMin, newMax);
|
|
46295
|
-
}
|
|
46296
|
-
});
|
|
46297
|
-
})()
|
|
46298
|
-
);
|
|
46299
|
-
})
|
|
46745
|
+
onPick: handleSortChange
|
|
46746
|
+
})
|
|
46747
|
+
)
|
|
46300
46748
|
)
|
|
46301
|
-
|
|
46749
|
+
),
|
|
46750
|
+
React__default.createElement(
|
|
46751
|
+
'div',
|
|
46752
|
+
{ className: 'search__results__wrapper' },
|
|
46753
|
+
flightsLoading && React__default.createElement(Spinner, null),
|
|
46754
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) == build.PortalQsmType.Flight &&
|
|
46755
|
+
(context === null || context === void 0 ? void 0 : context.showFlightAccommodationResults) &&
|
|
46756
|
+
results &&
|
|
46757
|
+
results.length > 0 &&
|
|
46758
|
+
React__default.createElement(FlightSelection, { searchResults: results, flightSelectionType: flightSelectionType })
|
|
46759
|
+
)
|
|
46760
|
+
)
|
|
46302
46761
|
)
|
|
46303
46762
|
);
|
|
46304
46763
|
};
|
|
@@ -46620,80 +47079,245 @@ var enrichFiltersWithResults = function (results, filters, tags) {
|
|
|
46620
47079
|
return updatedFilter;
|
|
46621
47080
|
});
|
|
46622
47081
|
};
|
|
46623
|
-
var enrichFiltersWithPackageAccoResults = function (results,
|
|
46624
|
-
|
|
46625
|
-
|
|
46626
|
-
|
|
46627
|
-
|
|
46628
|
-
|
|
46629
|
-
|
|
46630
|
-
|
|
46631
|
-
|
|
46632
|
-
|
|
46633
|
-
|
|
46634
|
-
|
|
46635
|
-
|
|
46636
|
-
|
|
46637
|
-
|
|
46638
|
-
|
|
46639
|
-
|
|
46640
|
-
|
|
46641
|
-
|
|
46642
|
-
|
|
46643
|
-
|
|
46644
|
-
|
|
46645
|
-
results.forEach(function (r) {
|
|
46646
|
-
var rooms = flatMap(r.rooms);
|
|
46647
|
-
if (rooms) {
|
|
46648
|
-
rooms.map(function (room) {
|
|
46649
|
-
room.options.map(function (option) {
|
|
46650
|
-
if (option.accommodationCode) {
|
|
46651
|
-
map_4.set(option.accommodationCode, {
|
|
46652
|
-
name: option.accommodationName,
|
|
46653
|
-
code: option.accommodationCode
|
|
46654
|
-
});
|
|
46655
|
-
}
|
|
47082
|
+
var enrichFiltersWithPackageAccoResults = function (results, tags) {
|
|
47083
|
+
var filters = [];
|
|
47084
|
+
if (!results || results.length === 0) {
|
|
47085
|
+
return filters;
|
|
47086
|
+
}
|
|
47087
|
+
var regimeFilter = {
|
|
47088
|
+
property: 'regime',
|
|
47089
|
+
label: 'Regime',
|
|
47090
|
+
type: 'checkbox',
|
|
47091
|
+
options: [],
|
|
47092
|
+
isFrontendFilter: true
|
|
47093
|
+
};
|
|
47094
|
+
var map = new Map();
|
|
47095
|
+
results.forEach(function (r) {
|
|
47096
|
+
var rooms = flatMap(r.rooms);
|
|
47097
|
+
if (rooms) {
|
|
47098
|
+
rooms.map(function (room) {
|
|
47099
|
+
room.options.map(function (option) {
|
|
47100
|
+
if (option.regimeCode) {
|
|
47101
|
+
map.set(option.regimeCode, {
|
|
47102
|
+
name: option.regimeName,
|
|
47103
|
+
code: option.regimeCode
|
|
46656
47104
|
});
|
|
46657
|
-
}
|
|
46658
|
-
}
|
|
47105
|
+
}
|
|
47106
|
+
});
|
|
46659
47107
|
});
|
|
46660
|
-
|
|
46661
|
-
|
|
46662
|
-
|
|
46663
|
-
|
|
46664
|
-
|
|
46665
|
-
|
|
46666
|
-
|
|
47108
|
+
}
|
|
47109
|
+
});
|
|
47110
|
+
regimeFilter.options = Array.from(map.values()).map(function (regime) {
|
|
47111
|
+
var _a;
|
|
47112
|
+
return {
|
|
47113
|
+
label: (_a = regime.name) !== null && _a !== void 0 ? _a : regime.code,
|
|
47114
|
+
value: regime.code,
|
|
47115
|
+
isChecked: false
|
|
47116
|
+
};
|
|
47117
|
+
});
|
|
47118
|
+
filters.push(regimeFilter);
|
|
47119
|
+
var priceFilter = {
|
|
47120
|
+
property: 'price',
|
|
47121
|
+
label: 'Prijs',
|
|
47122
|
+
type: 'slider',
|
|
47123
|
+
isFrontendFilter: true
|
|
47124
|
+
};
|
|
47125
|
+
var prices = results
|
|
47126
|
+
.map(function (r) {
|
|
47127
|
+
var _a;
|
|
47128
|
+
return (_a = r.price) !== null && _a !== void 0 ? _a : 0;
|
|
47129
|
+
})
|
|
47130
|
+
.filter(function (p) {
|
|
47131
|
+
return p > 0;
|
|
47132
|
+
});
|
|
47133
|
+
priceFilter.min = Math.floor(Math.min.apply(Math, prices));
|
|
47134
|
+
priceFilter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
47135
|
+
filters.push(priceFilter);
|
|
47136
|
+
return filters;
|
|
47137
|
+
};
|
|
47138
|
+
var enrichFiltersWithPackageFlightResults = function (results, tags, translations) {
|
|
47139
|
+
var filters = [];
|
|
47140
|
+
if (!results || results.length === 0) {
|
|
47141
|
+
return filters;
|
|
47142
|
+
}
|
|
47143
|
+
// Airlines
|
|
47144
|
+
var airlinesFilter = {
|
|
47145
|
+
label: 'Airlines',
|
|
47146
|
+
property: 'airline',
|
|
47147
|
+
type: 'checkbox',
|
|
47148
|
+
isFrontendFilter: true,
|
|
47149
|
+
options: []
|
|
47150
|
+
};
|
|
47151
|
+
var airlinesFilterMap = new Map();
|
|
47152
|
+
results.map(function (r) {
|
|
47153
|
+
var airlineCode = r.airlineCode;
|
|
47154
|
+
var airlineName = r.airlineName;
|
|
47155
|
+
if (airlineCode && airlineName) {
|
|
47156
|
+
airlinesFilterMap.set(airlineCode, {
|
|
47157
|
+
name: airlineName,
|
|
47158
|
+
code: airlineCode
|
|
46667
47159
|
});
|
|
46668
47160
|
}
|
|
46669
|
-
|
|
46670
|
-
|
|
46671
|
-
|
|
46672
|
-
|
|
46673
|
-
|
|
46674
|
-
|
|
46675
|
-
|
|
46676
|
-
|
|
46677
|
-
|
|
46678
|
-
|
|
46679
|
-
|
|
46680
|
-
|
|
46681
|
-
|
|
46682
|
-
|
|
46683
|
-
|
|
46684
|
-
|
|
47161
|
+
});
|
|
47162
|
+
airlinesFilter.options = Array.from(airlinesFilterMap.values()).map(function (airline) {
|
|
47163
|
+
var _a;
|
|
47164
|
+
return {
|
|
47165
|
+
label: (_a = airline.name) !== null && _a !== void 0 ? _a : airline.code,
|
|
47166
|
+
value: airline.code,
|
|
47167
|
+
isChecked: false
|
|
47168
|
+
};
|
|
47169
|
+
});
|
|
47170
|
+
filters.push(airlinesFilter);
|
|
47171
|
+
// Number of stops
|
|
47172
|
+
var stopsFilter = {
|
|
47173
|
+
label: 'Number of Stops',
|
|
47174
|
+
property: 'numberOfStops',
|
|
47175
|
+
type: 'checkbox',
|
|
47176
|
+
isFrontendFilter: true,
|
|
47177
|
+
options: []
|
|
47178
|
+
};
|
|
47179
|
+
var stopsMap = new Map();
|
|
47180
|
+
results.map(function (result) {
|
|
47181
|
+
var numberOfStops = getNumberOfStops(result.outward);
|
|
47182
|
+
if (!stopsMap.has(numberOfStops)) {
|
|
47183
|
+
stopsMap.set(numberOfStops, { numberOfStops: numberOfStops });
|
|
47184
|
+
}
|
|
47185
|
+
});
|
|
47186
|
+
stopsFilter.options = Array.from(stopsMap.values()).map(function (stop) {
|
|
47187
|
+
return {
|
|
47188
|
+
label: ''.concat(stop.numberOfStops == 0 ? 'direct' : stop.numberOfStops + ' Stop'.concat(stop.numberOfStops !== 1 ? 's' : '')),
|
|
47189
|
+
value: stop.numberOfStops,
|
|
47190
|
+
isChecked: false
|
|
47191
|
+
};
|
|
47192
|
+
});
|
|
47193
|
+
filters.push(stopsFilter);
|
|
47194
|
+
// Departure range
|
|
47195
|
+
var departureRangeFilter = {
|
|
47196
|
+
label: 'Departure Range',
|
|
47197
|
+
property: 'departureRange',
|
|
47198
|
+
type: 'checkbox',
|
|
47199
|
+
isFrontendFilter: true,
|
|
47200
|
+
options: []
|
|
47201
|
+
};
|
|
47202
|
+
var departureRangeMap = new Map();
|
|
47203
|
+
results.map(function (result) {
|
|
47204
|
+
var _a;
|
|
47205
|
+
var departureRange = rangeFromDateTimeInMinutes((_a = getDepartureSegment(result.outward)) === null || _a === void 0 ? void 0 : _a.departureDateTime);
|
|
47206
|
+
if (!departureRangeMap.has(departureRange)) {
|
|
47207
|
+
departureRangeMap.set(departureRange, departureRange);
|
|
47208
|
+
}
|
|
47209
|
+
});
|
|
47210
|
+
departureRangeFilter.options = orderBy(Array.from(departureRangeMap.values()), ['id'], ['asc']).map(function (range) {
|
|
47211
|
+
return {
|
|
47212
|
+
label: getDepartureRangeName(translations, range),
|
|
47213
|
+
value: range,
|
|
47214
|
+
isChecked: false
|
|
47215
|
+
};
|
|
47216
|
+
});
|
|
47217
|
+
filters.push(departureRangeFilter);
|
|
47218
|
+
// Departure Airport
|
|
47219
|
+
var departureAirportFilter = {
|
|
47220
|
+
label: 'Departure Airport',
|
|
47221
|
+
property: 'departureAirport',
|
|
47222
|
+
type: 'checkbox',
|
|
47223
|
+
isFrontendFilter: true,
|
|
47224
|
+
options: []
|
|
47225
|
+
};
|
|
47226
|
+
var departureAirportsMap = new Map();
|
|
47227
|
+
results.map(function (result) {
|
|
47228
|
+
var departureSegment = getDepartureSegment(result.outward);
|
|
47229
|
+
var departureAirport = departureSegment === null || departureSegment === void 0 ? void 0 : departureSegment.departureAirportCode;
|
|
47230
|
+
if (departureAirport && !departureAirportsMap.has(departureAirport)) {
|
|
47231
|
+
departureAirportsMap.set(departureAirport, {
|
|
47232
|
+
name: (departureSegment === null || departureSegment === void 0 ? void 0 : departureSegment.departureAirportName) + ' (' + departureAirport + ')',
|
|
47233
|
+
code: departureAirport
|
|
46685
47234
|
});
|
|
46686
|
-
|
|
46687
|
-
|
|
46688
|
-
|
|
46689
|
-
|
|
46690
|
-
|
|
46691
|
-
|
|
46692
|
-
|
|
47235
|
+
}
|
|
47236
|
+
});
|
|
47237
|
+
departureAirportFilter.options = Array.from(departureAirportsMap.values()).map(function (airport) {
|
|
47238
|
+
var _a;
|
|
47239
|
+
return {
|
|
47240
|
+
label: (_a = airport.name) !== null && _a !== void 0 ? _a : airport.code,
|
|
47241
|
+
value: airport.code,
|
|
47242
|
+
isChecked: false
|
|
47243
|
+
};
|
|
47244
|
+
});
|
|
47245
|
+
filters.push(departureAirportFilter);
|
|
47246
|
+
// Arrival Airport
|
|
47247
|
+
var arrivalAirportFilter = {
|
|
47248
|
+
label: 'Arrival Airport',
|
|
47249
|
+
property: 'arrivalAirport',
|
|
47250
|
+
type: 'checkbox',
|
|
47251
|
+
isFrontendFilter: true,
|
|
47252
|
+
options: []
|
|
47253
|
+
};
|
|
47254
|
+
var arrivalAirportsMap = new Map();
|
|
47255
|
+
results.map(function (result) {
|
|
47256
|
+
var arrivalSegment = getArrivalSegment(result.outward);
|
|
47257
|
+
var arrivalAirport = arrivalSegment === null || arrivalSegment === void 0 ? void 0 : arrivalSegment.arrivalAirportCode;
|
|
47258
|
+
if (arrivalAirport && !arrivalAirportsMap.has(arrivalAirport)) {
|
|
47259
|
+
arrivalAirportsMap.set(arrivalAirport, {
|
|
47260
|
+
name: (arrivalSegment === null || arrivalSegment === void 0 ? void 0 : arrivalSegment.arrivalAirportName) + ' (' + arrivalAirport + ')',
|
|
47261
|
+
code: arrivalAirport
|
|
46693
47262
|
});
|
|
46694
47263
|
}
|
|
46695
|
-
return updatedFilter;
|
|
46696
47264
|
});
|
|
47265
|
+
arrivalAirportFilter.options = Array.from(arrivalAirportsMap.values()).map(function (airport) {
|
|
47266
|
+
var _a;
|
|
47267
|
+
return {
|
|
47268
|
+
label: (_a = airport.name) !== null && _a !== void 0 ? _a : airport.code,
|
|
47269
|
+
value: airport.code,
|
|
47270
|
+
isChecked: false
|
|
47271
|
+
};
|
|
47272
|
+
});
|
|
47273
|
+
filters.push(arrivalAirportFilter);
|
|
47274
|
+
// Price
|
|
47275
|
+
var priceFilter = {
|
|
47276
|
+
label: 'Price',
|
|
47277
|
+
property: 'price',
|
|
47278
|
+
type: 'slider',
|
|
47279
|
+
isFrontendFilter: true
|
|
47280
|
+
};
|
|
47281
|
+
var prices = results
|
|
47282
|
+
.map(function (r) {
|
|
47283
|
+
var _a;
|
|
47284
|
+
return (_a = r.price) !== null && _a !== void 0 ? _a : 0;
|
|
47285
|
+
})
|
|
47286
|
+
.filter(function (p) {
|
|
47287
|
+
return p > 0;
|
|
47288
|
+
});
|
|
47289
|
+
if (prices.length > 0) {
|
|
47290
|
+
priceFilter.min = Math.floor(Math.min.apply(Math, prices));
|
|
47291
|
+
priceFilter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
47292
|
+
}
|
|
47293
|
+
filters.push(priceFilter);
|
|
47294
|
+
// Travel duration
|
|
47295
|
+
var travelDurationFilter = {
|
|
47296
|
+
label: 'Travel Duration',
|
|
47297
|
+
property: 'travelDuration',
|
|
47298
|
+
type: 'slider',
|
|
47299
|
+
isFrontendFilter: true
|
|
47300
|
+
};
|
|
47301
|
+
var minTravelTimeDuration = Math.min.apply(
|
|
47302
|
+
Math,
|
|
47303
|
+
results.map(function (result) {
|
|
47304
|
+
return result.outward.durationInTicks;
|
|
47305
|
+
})
|
|
47306
|
+
);
|
|
47307
|
+
var maxTravelTimeDuration = Math.max.apply(
|
|
47308
|
+
Math,
|
|
47309
|
+
results.map(function (result) {
|
|
47310
|
+
return result.outward.durationInTicks;
|
|
47311
|
+
})
|
|
47312
|
+
);
|
|
47313
|
+
var minTravelTimeValue = durationInTicksInMinutes(minTravelTimeDuration);
|
|
47314
|
+
var maxTravelTimeValue = durationInTicksInMinutes(maxTravelTimeDuration);
|
|
47315
|
+
if (minTravelTimeValue != null && maxTravelTimeValue != null) {
|
|
47316
|
+
travelDurationFilter.min = minTravelTimeValue;
|
|
47317
|
+
travelDurationFilter.max = maxTravelTimeValue;
|
|
47318
|
+
}
|
|
47319
|
+
filters.push(travelDurationFilter);
|
|
47320
|
+
return filters;
|
|
46697
47321
|
};
|
|
46698
47322
|
var applyFilters = function (results, filters, sortBy) {
|
|
46699
47323
|
var filtered = results.filter(function (r) {
|
|
@@ -46835,6 +47459,147 @@ var applyFiltersToPackageAccoResults = function (results, filters, sortBy) {
|
|
|
46835
47459
|
return 0;
|
|
46836
47460
|
});
|
|
46837
47461
|
};
|
|
47462
|
+
var applyFiltersToPackageFlightResults = function (results, filters, sortBy) {
|
|
47463
|
+
var filtered = results.filter(function (result) {
|
|
47464
|
+
return filters.every(function (filter) {
|
|
47465
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
47466
|
+
if (!filter.isFrontendFilter) return true;
|
|
47467
|
+
// Airline
|
|
47468
|
+
if (filter.property === 'airline') {
|
|
47469
|
+
var selected =
|
|
47470
|
+
(_a = filter.options) === null || _a === void 0
|
|
47471
|
+
? void 0
|
|
47472
|
+
: _a
|
|
47473
|
+
.filter(function (o) {
|
|
47474
|
+
return o.isChecked;
|
|
47475
|
+
})
|
|
47476
|
+
.map(function (o) {
|
|
47477
|
+
return o.value;
|
|
47478
|
+
});
|
|
47479
|
+
if (!selected || selected.length === 0) return true;
|
|
47480
|
+
return selected.includes(result.airlineCode);
|
|
47481
|
+
}
|
|
47482
|
+
// Stops
|
|
47483
|
+
if (filter.property === 'numberOfStops') {
|
|
47484
|
+
var selected =
|
|
47485
|
+
(_b = filter.options) === null || _b === void 0
|
|
47486
|
+
? void 0
|
|
47487
|
+
: _b
|
|
47488
|
+
.filter(function (o) {
|
|
47489
|
+
return o.isChecked;
|
|
47490
|
+
})
|
|
47491
|
+
.map(function (o) {
|
|
47492
|
+
return o.value;
|
|
47493
|
+
});
|
|
47494
|
+
if (!selected || selected.length === 0) return true;
|
|
47495
|
+
return selected.includes(getNumberOfStops(result.outward)) && selected.includes(getNumberOfStops(result.return));
|
|
47496
|
+
}
|
|
47497
|
+
// Departure range
|
|
47498
|
+
if (filter.property === 'departureRange') {
|
|
47499
|
+
var selected =
|
|
47500
|
+
(_c = filter.options) === null || _c === void 0
|
|
47501
|
+
? void 0
|
|
47502
|
+
: _c
|
|
47503
|
+
.filter(function (o) {
|
|
47504
|
+
return o.isChecked;
|
|
47505
|
+
})
|
|
47506
|
+
.map(function (o) {
|
|
47507
|
+
return o.value;
|
|
47508
|
+
});
|
|
47509
|
+
if (!selected || selected.length === 0) return true;
|
|
47510
|
+
return selected.includes(
|
|
47511
|
+
rangeFromDateTimeInMinutes((_d = getDepartureSegment(result.outward)) === null || _d === void 0 ? void 0 : _d.departureDateTime)
|
|
47512
|
+
);
|
|
47513
|
+
}
|
|
47514
|
+
// Departure airport
|
|
47515
|
+
if (filter.property === 'departureAirport') {
|
|
47516
|
+
var selected =
|
|
47517
|
+
(_e = filter.options) === null || _e === void 0
|
|
47518
|
+
? void 0
|
|
47519
|
+
: _e
|
|
47520
|
+
.filter(function (o) {
|
|
47521
|
+
return o.isChecked;
|
|
47522
|
+
})
|
|
47523
|
+
.map(function (o) {
|
|
47524
|
+
return o.value;
|
|
47525
|
+
});
|
|
47526
|
+
if (!selected || selected.length === 0) return true;
|
|
47527
|
+
var departureAirportCode = (_f = getDepartureSegment(result.outward)) === null || _f === void 0 ? void 0 : _f.departureAirportCode;
|
|
47528
|
+
if (!departureAirportCode) return false;
|
|
47529
|
+
return selected.includes(departureAirportCode);
|
|
47530
|
+
}
|
|
47531
|
+
// Arrival airport
|
|
47532
|
+
if (filter.property === 'arrivalAirport') {
|
|
47533
|
+
var selected =
|
|
47534
|
+
(_g = filter.options) === null || _g === void 0
|
|
47535
|
+
? void 0
|
|
47536
|
+
: _g
|
|
47537
|
+
.filter(function (o) {
|
|
47538
|
+
return o.isChecked;
|
|
47539
|
+
})
|
|
47540
|
+
.map(function (o) {
|
|
47541
|
+
return o.value;
|
|
47542
|
+
});
|
|
47543
|
+
if (!selected || selected.length === 0) return true;
|
|
47544
|
+
var arrivalAirportCode = (_h = getArrivalSegment(result.outward)) === null || _h === void 0 ? void 0 : _h.arrivalAirportCode;
|
|
47545
|
+
if (!arrivalAirportCode) return false;
|
|
47546
|
+
return selected.includes(arrivalAirportCode);
|
|
47547
|
+
}
|
|
47548
|
+
// PRICE
|
|
47549
|
+
if (filter.property === 'price') {
|
|
47550
|
+
if (filter.selectedMin != null && result.price < filter.selectedMin) return false;
|
|
47551
|
+
if (filter.selectedMax != null && result.price > filter.selectedMax) return false;
|
|
47552
|
+
return true;
|
|
47553
|
+
}
|
|
47554
|
+
// Travel times
|
|
47555
|
+
if (filter.property === 'travelDuration') {
|
|
47556
|
+
if (
|
|
47557
|
+
filter.selectedMin != null &&
|
|
47558
|
+
durationInTicksInMinutes((_j = result.outward) === null || _j === void 0 ? void 0 : _j.durationInTicks) < filter.selectedMin
|
|
47559
|
+
)
|
|
47560
|
+
return false;
|
|
47561
|
+
if (
|
|
47562
|
+
filter.selectedMax != null &&
|
|
47563
|
+
durationInTicksInMinutes((_k = result.outward) === null || _k === void 0 ? void 0 : _k.durationInTicks) > filter.selectedMax
|
|
47564
|
+
)
|
|
47565
|
+
return false;
|
|
47566
|
+
return true;
|
|
47567
|
+
}
|
|
47568
|
+
return true;
|
|
47569
|
+
});
|
|
47570
|
+
});
|
|
47571
|
+
// SORTING
|
|
47572
|
+
if (!sortBy || sortBy.label === 'default') {
|
|
47573
|
+
return filtered;
|
|
47574
|
+
}
|
|
47575
|
+
if (sortBy.label === 'departureTime') {
|
|
47576
|
+
return orderBy(
|
|
47577
|
+
results,
|
|
47578
|
+
[
|
|
47579
|
+
function (result) {
|
|
47580
|
+
var _a;
|
|
47581
|
+
return (_a = getDepartureSegment(result.outward)) === null || _a === void 0 ? void 0 : _a.departureDateTime;
|
|
47582
|
+
}
|
|
47583
|
+
],
|
|
47584
|
+
[sortBy.direction] // or "desc"
|
|
47585
|
+
);
|
|
47586
|
+
} else if (sortBy.label === 'durationInTicks') {
|
|
47587
|
+
return orderBy(
|
|
47588
|
+
results,
|
|
47589
|
+
[
|
|
47590
|
+
function (result) {
|
|
47591
|
+
var _a, _b;
|
|
47592
|
+
return durationInTicksInMinutes(
|
|
47593
|
+
(_b = (_a = result.outward) === null || _a === void 0 ? void 0 : _a.durationInTicks) !== null && _b !== void 0 ? _b : 0
|
|
47594
|
+
);
|
|
47595
|
+
}
|
|
47596
|
+
],
|
|
47597
|
+
[sortBy.direction] // or "desc"
|
|
47598
|
+
);
|
|
47599
|
+
} else {
|
|
47600
|
+
return orderBy(results, [sortBy.label], [sortBy.direction]);
|
|
47601
|
+
}
|
|
47602
|
+
};
|
|
46838
47603
|
|
|
46839
47604
|
var getSelectedOptionsPerRoom = function (details) {
|
|
46840
47605
|
var _a;
|
|
@@ -47043,28 +47808,30 @@ var SearchResultsContainer = function () {
|
|
|
47043
47808
|
results = _c.results,
|
|
47044
47809
|
filteredResults = _c.filteredResults,
|
|
47045
47810
|
packagingAccoResults = _c.packagingAccoResults,
|
|
47046
|
-
filteredPackagingAccoResults = _c.filteredPackagingAccoResults
|
|
47047
|
-
|
|
47048
|
-
var isLoading = _c.isLoading,
|
|
47811
|
+
filteredPackagingAccoResults = _c.filteredPackagingAccoResults,
|
|
47812
|
+
isLoading = _c.isLoading,
|
|
47049
47813
|
flightsLoading = _c.flightsLoading,
|
|
47814
|
+
initialFilters = _c.initialFilters,
|
|
47050
47815
|
filters = _c.filters,
|
|
47816
|
+
flightFilters = _c.flightFilters,
|
|
47051
47817
|
selectedSortType = _c.selectedSortType,
|
|
47818
|
+
selectedFlightSortType = _c.selectedFlightSortType,
|
|
47052
47819
|
selectedSearchResult = _c.selectedSearchResult,
|
|
47053
47820
|
selectedPackagingAccoResultCode = _c.selectedPackagingAccoResultCode,
|
|
47054
47821
|
flyInIsOpen = _c.flyInIsOpen,
|
|
47055
47822
|
packagingAccoSearchDetails = _c.packagingAccoSearchDetails,
|
|
47056
47823
|
editablePackagingEntry = _c.editablePackagingEntry,
|
|
47057
47824
|
transactionId = _c.transactionId,
|
|
47058
|
-
|
|
47825
|
+
flyInType = _c.flyInType,
|
|
47059
47826
|
itinerary = _c.itinerary,
|
|
47060
47827
|
packagingFlightResults = _c.packagingFlightResults;
|
|
47061
47828
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
47062
47829
|
var _d = useState(false),
|
|
47063
47830
|
initialFiltersSet = _d[0],
|
|
47064
47831
|
setInitialFiltersSet = _d[1];
|
|
47065
|
-
var _e = useState(
|
|
47066
|
-
|
|
47067
|
-
|
|
47832
|
+
var _e = useState(false),
|
|
47833
|
+
initialFlightFiltersSet = _e[0],
|
|
47834
|
+
setInitialFlightFiltersSet = _e[1];
|
|
47068
47835
|
var _f = useState(false),
|
|
47069
47836
|
filtersOpen = _f[0],
|
|
47070
47837
|
setFiltersOpen = _f[1];
|
|
@@ -47084,9 +47851,6 @@ var SearchResultsContainer = function () {
|
|
|
47084
47851
|
selectedAccommodationSeed = _l[0],
|
|
47085
47852
|
setSelectedAccommodationSeed = _l[1];
|
|
47086
47853
|
var skipInitialPackagingAccoDetailsRef = useRef(false);
|
|
47087
|
-
var _m = useState(false),
|
|
47088
|
-
showAllOutwardFlights = _m[0],
|
|
47089
|
-
setShowAllOutwardFlights = _m[1];
|
|
47090
47854
|
var panelRef = useRef(null);
|
|
47091
47855
|
var sortByTypes = [
|
|
47092
47856
|
{ direction: 'asc', label: 'default' },
|
|
@@ -47403,7 +48167,7 @@ var SearchResultsContainer = function () {
|
|
|
47403
48167
|
if (!seed) return [2 /*return*/];
|
|
47404
48168
|
setDetailsIsLoading(true);
|
|
47405
48169
|
setSelectedAccommodationSeed(seed);
|
|
47406
|
-
dispatch(
|
|
48170
|
+
dispatch(setFlyInType('acco-results'));
|
|
47407
48171
|
handleFlyInToggle(true);
|
|
47408
48172
|
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47409
48173
|
case 1:
|
|
@@ -47561,7 +48325,7 @@ var SearchResultsContainer = function () {
|
|
|
47561
48325
|
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47562
48326
|
if (!initialFiltersSet) {
|
|
47563
48327
|
dispatch(resetFilters(enrichedFilters));
|
|
47564
|
-
setInitialFilters(enrichedFilters);
|
|
48328
|
+
dispatch(setInitialFilters(enrichedFilters));
|
|
47565
48329
|
setInitialFiltersSet(true);
|
|
47566
48330
|
}
|
|
47567
48331
|
dispatch(setResults(packageSearchResults));
|
|
@@ -47636,11 +48400,7 @@ var SearchResultsContainer = function () {
|
|
|
47636
48400
|
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47637
48401
|
case 1:
|
|
47638
48402
|
packageAccoSearchResults = _d.sent();
|
|
47639
|
-
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47640
|
-
packageAccoSearchResults,
|
|
47641
|
-
context.filters,
|
|
47642
|
-
(_a = context.tags) !== null && _a !== void 0 ? _a : []
|
|
47643
|
-
);
|
|
48403
|
+
enrichedFilters = enrichFiltersWithPackageAccoResults(packageAccoSearchResults, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47644
48404
|
if (!initialFiltersSet) {
|
|
47645
48405
|
dispatch(resetFilters(enrichedFilters));
|
|
47646
48406
|
setInitialFilters(enrichedFilters);
|
|
@@ -47686,11 +48446,12 @@ var SearchResultsContainer = function () {
|
|
|
47686
48446
|
};
|
|
47687
48447
|
var runFlightSearch = function (currentTransactionId, seed) {
|
|
47688
48448
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47689
|
-
var config, searchRequest, packageFlightSearchResults, firstResult, err_4;
|
|
47690
|
-
|
|
47691
|
-
|
|
48449
|
+
var config, searchRequest, packageFlightSearchResults, enrichedFilters, initialFilteredResults, firstResult, err_4;
|
|
48450
|
+
var _a;
|
|
48451
|
+
return __generator(this, function (_b) {
|
|
48452
|
+
switch (_b.label) {
|
|
47692
48453
|
case 0:
|
|
47693
|
-
|
|
48454
|
+
_b.trys.push([0, 2, , 3]);
|
|
47694
48455
|
if (!context) return [2 /*return*/];
|
|
47695
48456
|
dispatch(setFlightsLoading(true));
|
|
47696
48457
|
config = {
|
|
@@ -47701,17 +48462,31 @@ var SearchResultsContainer = function () {
|
|
|
47701
48462
|
searchRequest.agentId = context.agentId;
|
|
47702
48463
|
return [4 /*yield*/, build.searchPackagingFlights(config, searchRequest)];
|
|
47703
48464
|
case 1:
|
|
47704
|
-
packageFlightSearchResults =
|
|
48465
|
+
packageFlightSearchResults = _b.sent();
|
|
48466
|
+
enrichedFilters = enrichFiltersWithPackageFlightResults(
|
|
48467
|
+
packageFlightSearchResults,
|
|
48468
|
+
(_a = context.tags) !== null && _a !== void 0 ? _a : [],
|
|
48469
|
+
translations
|
|
48470
|
+
);
|
|
48471
|
+
if (!initialFlightFiltersSet) {
|
|
48472
|
+
dispatch(resetFlightFilters(enrichedFilters));
|
|
48473
|
+
dispatch(setInitialFlightFilters(enrichedFilters));
|
|
48474
|
+
setInitialFlightFiltersSet(true);
|
|
48475
|
+
}
|
|
47705
48476
|
dispatch(setPackagingFlightResults(packageFlightSearchResults));
|
|
47706
|
-
|
|
47707
|
-
|
|
47708
|
-
|
|
47709
|
-
|
|
48477
|
+
initialFilteredResults = applyFiltersToPackageFlightResults(packageFlightSearchResults, filters, null);
|
|
48478
|
+
dispatch(setFilteredPackagingFlightResults(initialFilteredResults));
|
|
48479
|
+
if (initialFilteredResults.length > 0) {
|
|
48480
|
+
firstResult = first(packageFlightSearchResults);
|
|
48481
|
+
if (firstResult) {
|
|
48482
|
+
dispatch(setSelectedOutwardKey(getFlightKey(firstResult.outward.segments)));
|
|
48483
|
+
dispatch(setSelectedReturnKey(getFlightKey(firstResult.return.segments)));
|
|
48484
|
+
}
|
|
47710
48485
|
}
|
|
47711
48486
|
dispatch(setFlightsLoading(false));
|
|
47712
48487
|
return [3 /*break*/, 3];
|
|
47713
48488
|
case 2:
|
|
47714
|
-
err_4 =
|
|
48489
|
+
err_4 = _b.sent();
|
|
47715
48490
|
console.error('FlightSearch failed', err_4);
|
|
47716
48491
|
dispatch(setFlightsLoading(false));
|
|
47717
48492
|
return [3 /*break*/, 3];
|
|
@@ -47933,6 +48708,7 @@ var SearchResultsContainer = function () {
|
|
|
47933
48708
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour
|
|
47934
48709
|
) {
|
|
47935
48710
|
handleFlyInToggle(true);
|
|
48711
|
+
dispatch(setFlyInType('acco-details'));
|
|
47936
48712
|
}
|
|
47937
48713
|
_f.label = 1;
|
|
47938
48714
|
case 1:
|
|
@@ -48024,13 +48800,15 @@ var SearchResultsContainer = function () {
|
|
|
48024
48800
|
if (selectedPackagingAccoResultCode) {
|
|
48025
48801
|
fetchPackagingAccoSearchDetails();
|
|
48026
48802
|
}
|
|
48027
|
-
dispatch(setAccommodationFlyInStep('details'));
|
|
48028
48803
|
},
|
|
48029
48804
|
[selectedSearchResult, selectedPackagingAccoResultCode]
|
|
48030
48805
|
);
|
|
48031
48806
|
useEffect(
|
|
48032
48807
|
function () {
|
|
48033
|
-
if (
|
|
48808
|
+
if (
|
|
48809
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
48810
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight
|
|
48811
|
+
) {
|
|
48034
48812
|
var filteredPackageAccoResults = applyFiltersToPackageAccoResults(packagingAccoResults, filters, selectedSortType);
|
|
48035
48813
|
dispatch(setFilteredPackagingAccoResults(filteredPackageAccoResults));
|
|
48036
48814
|
} else {
|
|
@@ -48040,6 +48818,15 @@ var SearchResultsContainer = function () {
|
|
|
48040
48818
|
},
|
|
48041
48819
|
[filters, results, packagingAccoResults, selectedSortType]
|
|
48042
48820
|
);
|
|
48821
|
+
useEffect(
|
|
48822
|
+
function () {
|
|
48823
|
+
if ((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight) {
|
|
48824
|
+
var filteredPackageFlightResults = applyFiltersToPackageFlightResults(packagingFlightResults, flightFilters, selectedFlightSortType);
|
|
48825
|
+
dispatch(setFilteredPackagingFlightResults(filteredPackageFlightResults));
|
|
48826
|
+
}
|
|
48827
|
+
},
|
|
48828
|
+
[flightFilters, packagingFlightResults, selectedFlightSortType]
|
|
48829
|
+
);
|
|
48043
48830
|
useEffect(
|
|
48044
48831
|
function () {
|
|
48045
48832
|
setInitialFiltersSet(false);
|
|
@@ -48114,7 +48901,6 @@ var SearchResultsContainer = function () {
|
|
|
48114
48901
|
return [4 /*yield*/, build.getItinerary(config, request)];
|
|
48115
48902
|
case 2:
|
|
48116
48903
|
itinerary_1 = _c.sent();
|
|
48117
|
-
console.log('Fetched itinerary', itinerary_1);
|
|
48118
48904
|
dispatch(setItinerary(itinerary_1));
|
|
48119
48905
|
setItineraryIsLoading(false);
|
|
48120
48906
|
return [3 /*break*/, 4];
|
|
@@ -48135,37 +48921,22 @@ var SearchResultsContainer = function () {
|
|
|
48135
48921
|
[editablePackagingEntry]
|
|
48136
48922
|
);
|
|
48137
48923
|
// Flight selection
|
|
48138
|
-
|
|
48139
|
-
|
|
48140
|
-
|
|
48141
|
-
var
|
|
48142
|
-
|
|
48143
|
-
|
|
48144
|
-
var
|
|
48145
|
-
|
|
48146
|
-
|
|
48147
|
-
packagingFlightResults.forEach(function (flight) {
|
|
48148
|
-
var key = getFlightKey(flight.outward.segments);
|
|
48149
|
-
if (!map.has(key)) {
|
|
48150
|
-
map.set(key, flight);
|
|
48151
|
-
}
|
|
48152
|
-
});
|
|
48153
|
-
return Array.from(map.values());
|
|
48154
|
-
},
|
|
48155
|
-
[packagingFlightResults]
|
|
48156
|
-
);
|
|
48157
|
-
var _q = useState([]),
|
|
48158
|
-
uniqueReturnFlights = _q[0],
|
|
48159
|
-
setUniqueReturnFlights = _q[1];
|
|
48924
|
+
// const [selectedOutwardKey, setSelectedOutwardKey] = useState<string | null>(null);
|
|
48925
|
+
// const [selectedReturnKey, setSelectedReturnKey] = useState<string | null>(null);
|
|
48926
|
+
var selectedOutwardKey = useSelector(selectSelectedOutwardKey);
|
|
48927
|
+
var selectedReturnKey = useSelector(selectSelectedReturnKey);
|
|
48928
|
+
var uniqueOutwardFlights = useSelector(selectUniqueOutwardFlights);
|
|
48929
|
+
var uniqueReturnFlights = useSelector(selectUniqueReturnFlights);
|
|
48930
|
+
var selectedOutward = useSelector(selectSelectedOutward);
|
|
48931
|
+
var selectedReturn = useSelector(selectSelectedReturn);
|
|
48932
|
+
var selectedCombinationFlight = useSelector(selectSelectedCombinationFlight);
|
|
48160
48933
|
useEffect(
|
|
48161
48934
|
function () {
|
|
48162
48935
|
var _a;
|
|
48163
48936
|
if (!selectedOutwardKey) {
|
|
48164
|
-
|
|
48165
|
-
setSelectedReturnKey(null);
|
|
48937
|
+
dispatch(setSelectedReturnKey(null));
|
|
48166
48938
|
return;
|
|
48167
48939
|
}
|
|
48168
|
-
// Filter combinations that match selected outward fare
|
|
48169
48940
|
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
48170
48941
|
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48171
48942
|
});
|
|
@@ -48177,44 +48948,26 @@ var SearchResultsContainer = function () {
|
|
|
48177
48948
|
}
|
|
48178
48949
|
});
|
|
48179
48950
|
var returns = Array.from(returnMap.values());
|
|
48180
|
-
|
|
48181
|
-
var firstReturnKey = returns.length > 0 ? getFlightKey(
|
|
48182
|
-
if (
|
|
48183
|
-
|
|
48951
|
+
var segments = (_a = first(returns)) === null || _a === void 0 ? void 0 : _a.return.segments;
|
|
48952
|
+
var firstReturnKey = returns.length > 0 && segments ? getFlightKey(segments) : null;
|
|
48953
|
+
if (
|
|
48954
|
+
!returns.some(function (x) {
|
|
48955
|
+
return getFlightKey(x.return.segments) === selectedReturnKey;
|
|
48956
|
+
})
|
|
48957
|
+
) {
|
|
48958
|
+
dispatch(setSelectedReturnKey(firstReturnKey));
|
|
48184
48959
|
}
|
|
48185
48960
|
},
|
|
48186
|
-
[selectedOutwardKey, packagingFlightResults]
|
|
48187
|
-
);
|
|
48188
|
-
var selectedOutward = React__default.useMemo(
|
|
48189
|
-
function () {
|
|
48190
|
-
if (!selectedOutwardKey) return null;
|
|
48191
|
-
return (
|
|
48192
|
-
packagingFlightResults.find(function (flight) {
|
|
48193
|
-
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48194
|
-
}) || null
|
|
48195
|
-
);
|
|
48196
|
-
},
|
|
48197
|
-
[packagingFlightResults, selectedOutwardKey]
|
|
48198
|
-
);
|
|
48199
|
-
var selectedReturn = React__default.useMemo(
|
|
48200
|
-
function () {
|
|
48201
|
-
if (!selectedReturnKey) return null;
|
|
48202
|
-
return (
|
|
48203
|
-
packagingFlightResults.find(function (flight) {
|
|
48204
|
-
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48205
|
-
}) || null
|
|
48206
|
-
);
|
|
48207
|
-
},
|
|
48208
|
-
[packagingFlightResults, selectedReturnKey]
|
|
48961
|
+
[selectedOutwardKey, packagingFlightResults, selectedReturnKey, dispatch]
|
|
48209
48962
|
);
|
|
48210
|
-
var
|
|
48963
|
+
var visibleOutwardFlights = React__default.useMemo(
|
|
48211
48964
|
function () {
|
|
48212
|
-
|
|
48213
|
-
|
|
48214
|
-
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48965
|
+
var withoutSelected = uniqueOutwardFlights.filter(function (x) {
|
|
48966
|
+
return getFlightKey(x.outward.segments) !== selectedOutwardKey;
|
|
48215
48967
|
});
|
|
48968
|
+
return withoutSelected.slice(0, 3);
|
|
48216
48969
|
},
|
|
48217
|
-
[
|
|
48970
|
+
[uniqueOutwardFlights, selectedOutwardKey]
|
|
48218
48971
|
);
|
|
48219
48972
|
// TODO: get details for selected combination flight and show in fly-in
|
|
48220
48973
|
// useEffect(() => {
|
|
@@ -48223,6 +48976,7 @@ var SearchResultsContainer = function () {
|
|
|
48223
48976
|
// // onFlightSearch(selectedCombinationFlight); // Trigger search to update accommodation options based on selected flight
|
|
48224
48977
|
// dispatch(setFlyInIsOpen(true));
|
|
48225
48978
|
// }, [selectedCombinationFlight, dispatch]);
|
|
48979
|
+
// Build packagingEntry
|
|
48226
48980
|
useEffect(
|
|
48227
48981
|
function () {
|
|
48228
48982
|
var _a, _b, _c, _d;
|
|
@@ -48521,12 +49275,10 @@ var SearchResultsContainer = function () {
|
|
|
48521
49275
|
lines: []
|
|
48522
49276
|
};
|
|
48523
49277
|
};
|
|
48524
|
-
var
|
|
48525
|
-
|
|
48526
|
-
|
|
48527
|
-
|
|
48528
|
-
[showAllOutwardFlights, uniqueOutwardFlights]
|
|
48529
|
-
);
|
|
49278
|
+
var handleShowMoreFlights = function (flyInType) {
|
|
49279
|
+
dispatch(setFlyInType(flyInType));
|
|
49280
|
+
dispatch(setFlyInIsOpen(true));
|
|
49281
|
+
};
|
|
48530
49282
|
return React__default.createElement(
|
|
48531
49283
|
'div',
|
|
48532
49284
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -48543,7 +49295,6 @@ var SearchResultsContainer = function () {
|
|
|
48543
49295
|
{ tideConnection: context.tideConnection },
|
|
48544
49296
|
React__default.createElement(FlightResultsContainer, { isMobile: isMobile }),
|
|
48545
49297
|
React__default.createElement(FlyIn, {
|
|
48546
|
-
title: 'Select your fare',
|
|
48547
49298
|
srpType: context.searchConfiguration.qsmType,
|
|
48548
49299
|
isOpen: flyInIsOpen,
|
|
48549
49300
|
setIsOpen: handleFlyInToggle,
|
|
@@ -48570,7 +49321,13 @@ var SearchResultsContainer = function () {
|
|
|
48570
49321
|
return setFiltersOpen(!filtersOpen);
|
|
48571
49322
|
},
|
|
48572
49323
|
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
48573
|
-
isLoading: isLoading
|
|
49324
|
+
isLoading: isLoading,
|
|
49325
|
+
setFilters: function (filters) {
|
|
49326
|
+
return dispatch(setFilters(filters));
|
|
49327
|
+
},
|
|
49328
|
+
resetFilters: function (filters) {
|
|
49329
|
+
return dispatch(resetFilters(filters));
|
|
49330
|
+
}
|
|
48574
49331
|
}),
|
|
48575
49332
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48576
49333
|
React__default.createElement(Itinerary, {
|
|
@@ -48637,53 +49394,53 @@ var SearchResultsContainer = function () {
|
|
|
48637
49394
|
}
|
|
48638
49395
|
})
|
|
48639
49396
|
),
|
|
48640
|
-
|
|
48641
|
-
'div',
|
|
48642
|
-
{ className: 'search__result-row' },
|
|
49397
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.AccommodationAndFlight &&
|
|
48643
49398
|
React__default.createElement(
|
|
48644
|
-
'
|
|
48645
|
-
{ className: 'search__result-row
|
|
48646
|
-
|
|
48647
|
-
|
|
49399
|
+
'div',
|
|
49400
|
+
{ className: 'search__result-row' },
|
|
49401
|
+
React__default.createElement(
|
|
49402
|
+
'span',
|
|
49403
|
+
{ className: 'search__result-row-text' },
|
|
49404
|
+
!isLoading &&
|
|
49405
|
+
React__default.createElement(
|
|
49406
|
+
React__default.Fragment,
|
|
49407
|
+
null,
|
|
49408
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation &&
|
|
49409
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
49410
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length),
|
|
49411
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.Accommodation &&
|
|
49412
|
+
(filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults.length) &&
|
|
49413
|
+
filteredResults.length,
|
|
49414
|
+
'\u00A0',
|
|
49415
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
49416
|
+
)
|
|
49417
|
+
),
|
|
49418
|
+
!context.packagingEntry &&
|
|
49419
|
+
!isMobile &&
|
|
49420
|
+
sortByTypes &&
|
|
49421
|
+
sortByTypes.length > 0 &&
|
|
48648
49422
|
React__default.createElement(
|
|
48649
|
-
|
|
48650
|
-
|
|
48651
|
-
|
|
48652
|
-
|
|
48653
|
-
(
|
|
48654
|
-
|
|
48655
|
-
|
|
48656
|
-
|
|
48657
|
-
|
|
48658
|
-
|
|
49423
|
+
'div',
|
|
49424
|
+
{ className: 'search__result-row-filter' },
|
|
49425
|
+
React__default.createElement(ItemPicker, {
|
|
49426
|
+
items: sortByTypes,
|
|
49427
|
+
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
49428
|
+
selectedSortByType: selectedSortType,
|
|
49429
|
+
label: translations.SRP.SORTBY,
|
|
49430
|
+
placeholder: translations.SRP.SORTBY,
|
|
49431
|
+
classModifier: 'travel-class-picker__items',
|
|
49432
|
+
valueFormatter: function (value, direction) {
|
|
49433
|
+
return getSortingName(
|
|
49434
|
+
translations,
|
|
49435
|
+
findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc')
|
|
49436
|
+
);
|
|
49437
|
+
},
|
|
49438
|
+
onPick: function (newSortKey, direction) {
|
|
49439
|
+
return handleSortChange(newSortKey, direction);
|
|
49440
|
+
}
|
|
49441
|
+
})
|
|
48659
49442
|
)
|
|
48660
49443
|
),
|
|
48661
|
-
!context.packagingEntry &&
|
|
48662
|
-
!isMobile &&
|
|
48663
|
-
sortByTypes &&
|
|
48664
|
-
sortByTypes.length > 0 &&
|
|
48665
|
-
React__default.createElement(
|
|
48666
|
-
'div',
|
|
48667
|
-
{ className: 'search__result-row-filter' },
|
|
48668
|
-
React__default.createElement(ItemPicker, {
|
|
48669
|
-
items: sortByTypes,
|
|
48670
|
-
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
48671
|
-
selectedSortByType: selectedSortType,
|
|
48672
|
-
label: translations.SRP.SORTBY,
|
|
48673
|
-
placeholder: translations.SRP.SORTBY,
|
|
48674
|
-
classModifier: 'travel-class-picker__items',
|
|
48675
|
-
valueFormatter: function (value, direction) {
|
|
48676
|
-
return getSortingName(
|
|
48677
|
-
translations,
|
|
48678
|
-
findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc')
|
|
48679
|
-
);
|
|
48680
|
-
},
|
|
48681
|
-
onPick: function (newSortKey, direction) {
|
|
48682
|
-
return handleSortChange(newSortKey, direction);
|
|
48683
|
-
}
|
|
48684
|
-
})
|
|
48685
|
-
)
|
|
48686
|
-
),
|
|
48687
49444
|
React__default.createElement(
|
|
48688
49445
|
'div',
|
|
48689
49446
|
{ className: 'search__results__wrapper' },
|
|
@@ -48737,7 +49494,7 @@ var SearchResultsContainer = function () {
|
|
|
48737
49494
|
item: selectedOutward.outward,
|
|
48738
49495
|
guid: selectedOutward.outwardGuid,
|
|
48739
49496
|
onSelect: function () {
|
|
48740
|
-
return setSelectedOutwardKey(null);
|
|
49497
|
+
return dispatch(setSelectedOutwardKey(null));
|
|
48741
49498
|
},
|
|
48742
49499
|
selectedGuid: selectedOutward.outwardGuid,
|
|
48743
49500
|
isOutward: true,
|
|
@@ -48749,7 +49506,7 @@ var SearchResultsContainer = function () {
|
|
|
48749
49506
|
key: 'flight-'.concat(result.outwardGuid),
|
|
48750
49507
|
item: result.outward,
|
|
48751
49508
|
onSelect: function () {
|
|
48752
|
-
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
49509
|
+
return dispatch(setSelectedOutwardKey(getFlightKey(result.outward.segments)));
|
|
48753
49510
|
},
|
|
48754
49511
|
guid: result.outwardGuid,
|
|
48755
49512
|
isOutward: true,
|
|
@@ -48768,10 +49525,10 @@ var SearchResultsContainer = function () {
|
|
|
48768
49525
|
{
|
|
48769
49526
|
className: 'cta cta--secondary',
|
|
48770
49527
|
onClick: function () {
|
|
48771
|
-
return
|
|
49528
|
+
return handleShowMoreFlights('flight-outward-results');
|
|
48772
49529
|
}
|
|
48773
49530
|
},
|
|
48774
|
-
|
|
49531
|
+
translations.SRP.SHOW_MORE
|
|
48775
49532
|
)
|
|
48776
49533
|
)
|
|
48777
49534
|
)
|
|
@@ -48826,7 +49583,7 @@ var SearchResultsContainer = function () {
|
|
|
48826
49583
|
key: 'flight-'.concat(result.outwardGuid),
|
|
48827
49584
|
item: result.return,
|
|
48828
49585
|
onSelect: function () {
|
|
48829
|
-
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
49586
|
+
return dispatch(setSelectedReturnKey(getFlightKey(result.return.segments)));
|
|
48830
49587
|
},
|
|
48831
49588
|
guid: result.outwardGuid,
|
|
48832
49589
|
isOutward: false,
|
|
@@ -48843,7 +49600,6 @@ var SearchResultsContainer = function () {
|
|
|
48843
49600
|
)
|
|
48844
49601
|
),
|
|
48845
49602
|
React__default.createElement(FlyIn, {
|
|
48846
|
-
title: ''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.ACCOMMODATION),
|
|
48847
49603
|
srpType: context.searchConfiguration.qsmType,
|
|
48848
49604
|
isOpen: flyInIsOpen,
|
|
48849
49605
|
setIsOpen: handleFlyInToggle,
|
|
@@ -48854,8 +49610,9 @@ var SearchResultsContainer = function () {
|
|
|
48854
49610
|
return (panelRef.current = el);
|
|
48855
49611
|
},
|
|
48856
49612
|
detailsLoading: detailsIsLoading,
|
|
48857
|
-
|
|
48858
|
-
isPackageEditFlow: !!context.packagingEntry
|
|
49613
|
+
flyInType: flyInType,
|
|
49614
|
+
isPackageEditFlow: !!context.packagingEntry,
|
|
49615
|
+
sortByTypes: sortByTypes
|
|
48859
49616
|
})
|
|
48860
49617
|
)
|
|
48861
49618
|
)
|