@qite/tide-booking-component 1.4.101 → 1.4.102
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 +821 -403
- package/build/build-cjs/src/index.d.ts +3 -1
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +8 -1
- package/build/build-cjs/src/search-results/types.d.ts +3 -1
- package/build/build-cjs/src/search-results/utils/flight-utils.d.ts +1 -0
- package/build/build-esm/index.js +821 -397
- package/build/build-esm/src/index.d.ts +3 -1
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +8 -1
- package/build/build-esm/src/search-results/types.d.ts +3 -1
- package/build/build-esm/src/search-results/utils/flight-utils.d.ts +1 -0
- package/package.json +2 -2
- package/src/index.ts +3 -1
- package/src/search-results/components/flight/flight-selection/independent-flight-option.tsx +1 -7
- package/src/search-results/components/flight/flight-selection/independent-flight-selection.tsx +2 -6
- package/src/search-results/components/itinerary/index.tsx +0 -2
- package/src/search-results/components/search-results-container/search-results-container.tsx +641 -77
- package/src/search-results/store/search-results-slice.ts +20 -1
- package/src/search-results/types.ts +3 -1
- package/src/search-results/utils/flight-utils.ts +5 -0
- package/src/shared/components/flyin/accommodation-flyin.tsx +4 -2
package/build/build-esm/index.js
CHANGED
|
@@ -13449,6 +13449,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13449
13449
|
var ENDPOINT = '/api/web/packaging';
|
|
13450
13450
|
var ENDPOINT_START_TRANSACTION = ENDPOINT + '/start';
|
|
13451
13451
|
var ENDPOINT_ACCOMMODATIONS = ENDPOINT + '/accommodations';
|
|
13452
|
+
var ENDPOINT_FLIGHTS = ENDPOINT + '/flights';
|
|
13452
13453
|
var ENDPOINT_PRICE_DETAILS = ENDPOINT + '/price-details';
|
|
13453
13454
|
var ENDPOINT_ITINERARY = ENDPOINT + '/itinerary';
|
|
13454
13455
|
var ENDPOINT_ENTRY = function (magicLinkCode) {
|
|
@@ -13465,6 +13466,12 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13465
13466
|
var body = JSON.stringify(request);
|
|
13466
13467
|
return post(url, apiKey, body, config.token, signal, true);
|
|
13467
13468
|
};
|
|
13469
|
+
var searchPackagingFlights = function (config, request, signal) {
|
|
13470
|
+
var url = '' + config.host + ENDPOINT_FLIGHTS;
|
|
13471
|
+
var apiKey = config.apiKey;
|
|
13472
|
+
var body = JSON.stringify(request);
|
|
13473
|
+
return post(url, apiKey, body, config.token, signal, true);
|
|
13474
|
+
};
|
|
13468
13475
|
var getEntry = function (config, magicLinkCode, signal) {
|
|
13469
13476
|
var apiKey = config.apiKey;
|
|
13470
13477
|
var url = '' + config.host + ENDPOINT_ENTRY(magicLinkCode);
|
|
@@ -13556,6 +13563,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13556
13563
|
exports.searchLocations = searchLocations;
|
|
13557
13564
|
exports.searchOords = searchOords;
|
|
13558
13565
|
exports.searchPackagingAccommodations = searchPackagingAccommodations;
|
|
13566
|
+
exports.searchPackagingFlights = searchPackagingFlights;
|
|
13559
13567
|
exports.searchRegions = searchRegions;
|
|
13560
13568
|
exports.searchWithErrorMapping = searchWithErrorMapping;
|
|
13561
13569
|
exports.setCustomEntryStatus = setCustomEntryStatus;
|
|
@@ -20494,7 +20502,7 @@ var getFlightDetails = function (flight) {
|
|
|
20494
20502
|
arrivalDate: lastLine.arrivalDate,
|
|
20495
20503
|
arrivalTime: lastLine.arrivalTime,
|
|
20496
20504
|
arrivalAirport: lastLine.arrivalAirportDescription,
|
|
20497
|
-
travelDuration: formatDuration
|
|
20505
|
+
travelDuration: formatDuration(flight.flightMetaData.durationInTicks),
|
|
20498
20506
|
travelDurationMinutes: minutesFromTicks(flight.flightMetaData.durationInTicks),
|
|
20499
20507
|
changeDurationMinutes: getTotalChangeDuration(flight),
|
|
20500
20508
|
numberOfStops: flight.flightMetaData.flightLines.length - 1,
|
|
@@ -20510,7 +20518,7 @@ var getFlightDetails = function (flight) {
|
|
|
20510
20518
|
arrivalTime: x.arrivalTime,
|
|
20511
20519
|
arrivalAirport: x.arrivalAirportDescription,
|
|
20512
20520
|
number: ''.concat(x.airlineCode, ' ').concat(x.number),
|
|
20513
|
-
travelDuration: formatDuration
|
|
20521
|
+
travelDuration: formatDuration(x.durationInTicks),
|
|
20514
20522
|
waitDuration: waitDurations.length - 1 <= i ? waitDurations[i] : undefined
|
|
20515
20523
|
};
|
|
20516
20524
|
})
|
|
@@ -20586,7 +20594,7 @@ var minutesFromTicks = function (ticks) {
|
|
|
20586
20594
|
var totalSeconds = ticks / 10000000;
|
|
20587
20595
|
return Math.floor(totalSeconds / 60);
|
|
20588
20596
|
};
|
|
20589
|
-
var formatDuration
|
|
20597
|
+
var formatDuration = function (ticks) {
|
|
20590
20598
|
if (!ticks) return '';
|
|
20591
20599
|
var totalSeconds = ticks / 10000000;
|
|
20592
20600
|
var hh = Math.floor(totalSeconds / 3600);
|
|
@@ -33675,10 +33683,13 @@ var initialState$1 = {
|
|
|
33675
33683
|
filteredPackagingAccoResults: [],
|
|
33676
33684
|
packagingAccoSearchDetails: [],
|
|
33677
33685
|
selectedPackagingAccoResultCode: null,
|
|
33686
|
+
packagingFlightResults: [],
|
|
33687
|
+
selectedPackagingFlight: null,
|
|
33678
33688
|
selectedFlight: null,
|
|
33679
33689
|
selectedFlightDetails: null,
|
|
33680
33690
|
bookingPackageDetails: null,
|
|
33681
33691
|
isLoading: false,
|
|
33692
|
+
flightsLoading: false,
|
|
33682
33693
|
filters: [],
|
|
33683
33694
|
selectedSortType: null,
|
|
33684
33695
|
activeTab: 'compact',
|
|
@@ -33715,6 +33726,12 @@ var searchResultsSlice = createSlice({
|
|
|
33715
33726
|
setSelectedPackagingAccoResult: function (state, action) {
|
|
33716
33727
|
state.selectedPackagingAccoResultCode = action.payload;
|
|
33717
33728
|
},
|
|
33729
|
+
setPackagingFlightResults: function (state, action) {
|
|
33730
|
+
state.packagingFlightResults = action.payload;
|
|
33731
|
+
},
|
|
33732
|
+
setSelectedPackagingFlight: function (state, action) {
|
|
33733
|
+
state.selectedPackagingFlight = action.payload;
|
|
33734
|
+
},
|
|
33718
33735
|
setSelectedFlight: function (state, action) {
|
|
33719
33736
|
state.selectedFlight = action.payload;
|
|
33720
33737
|
},
|
|
@@ -33737,6 +33754,9 @@ var searchResultsSlice = createSlice({
|
|
|
33737
33754
|
setIsLoading: function (state, action) {
|
|
33738
33755
|
state.isLoading = action.payload;
|
|
33739
33756
|
},
|
|
33757
|
+
setFlightsLoading: function (state, action) {
|
|
33758
|
+
state.flightsLoading = action.payload;
|
|
33759
|
+
},
|
|
33740
33760
|
setFilters: function (state, action) {
|
|
33741
33761
|
var updatedFilters = action.payload;
|
|
33742
33762
|
updatedFilters.forEach(function (updatedFilter) {
|
|
@@ -33797,11 +33817,14 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33797
33817
|
setFilteredPackagingAccoResults = _a.setFilteredPackagingAccoResults,
|
|
33798
33818
|
setPackagingAccoSearchDetails = _a.setPackagingAccoSearchDetails,
|
|
33799
33819
|
setSelectedPackagingAccoResult = _a.setSelectedPackagingAccoResult,
|
|
33820
|
+
setPackagingFlightResults = _a.setPackagingFlightResults,
|
|
33821
|
+
setSelectedPackagingFlight = _a.setSelectedPackagingFlight,
|
|
33800
33822
|
setSelectedFlight = _a.setSelectedFlight,
|
|
33801
33823
|
setSelectedFlightDetails = _a.setSelectedFlightDetails,
|
|
33802
|
-
setBookingPackageDetails = _a.setBookingPackageDetails
|
|
33803
|
-
|
|
33804
|
-
|
|
33824
|
+
setBookingPackageDetails = _a.setBookingPackageDetails;
|
|
33825
|
+
_a.selectFlight;
|
|
33826
|
+
var setIsLoading = _a.setIsLoading,
|
|
33827
|
+
setFlightsLoading = _a.setFlightsLoading,
|
|
33805
33828
|
setFilters = _a.setFilters,
|
|
33806
33829
|
resetFilters = _a.resetFilters,
|
|
33807
33830
|
setSortType = _a.setSortType,
|
|
@@ -35171,8 +35194,6 @@ var Itinerary = function (_a) {
|
|
|
35171
35194
|
segments: segments
|
|
35172
35195
|
};
|
|
35173
35196
|
});
|
|
35174
|
-
console.log('otherSegments', otherSegments);
|
|
35175
|
-
console.log('groupedOtherSegments', groupedOtherSegments);
|
|
35176
35197
|
var numberOfPax = ((_p = packagingEntry.pax) === null || _p === void 0 ? void 0 : _p.length) || 1;
|
|
35177
35198
|
var totalPrice = (priceDetails === null || priceDetails === void 0 ? void 0 : priceDetails.total) || packagingEntry.price || 0;
|
|
35178
35199
|
var pricePerPerson = totalPrice / numberOfPax;
|
|
@@ -36750,6 +36771,14 @@ var Icon = function (_a) {
|
|
|
36750
36771
|
}
|
|
36751
36772
|
};
|
|
36752
36773
|
|
|
36774
|
+
var getFlightKey = function (segments) {
|
|
36775
|
+
if (!segments || segments.length === 0) return '';
|
|
36776
|
+
return segments
|
|
36777
|
+
.map(function (s) {
|
|
36778
|
+
return ''.concat(s.marketingAirlineCode).concat(s.flightNumber, '_').concat(s.departureDateTime);
|
|
36779
|
+
})
|
|
36780
|
+
.join('_');
|
|
36781
|
+
};
|
|
36753
36782
|
// export const getAirportName = (airport: TideAirport | undefined, language: string): string => {
|
|
36754
36783
|
// if (!airport || !airport.name) {
|
|
36755
36784
|
// return "";
|
|
@@ -38288,13 +38317,11 @@ var FlightsFlyIn = function (_a) {
|
|
|
38288
38317
|
};
|
|
38289
38318
|
|
|
38290
38319
|
var formatPrice$1 = function (price, currencyCode) {
|
|
38291
|
-
if (currencyCode === void 0) {
|
|
38292
|
-
currencyCode = 'EUR';
|
|
38293
|
-
}
|
|
38294
38320
|
if (typeof price !== 'number') return '';
|
|
38321
|
+
var safeCurrency = currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR';
|
|
38295
38322
|
return new Intl.NumberFormat('nl-BE', {
|
|
38296
38323
|
style: 'currency',
|
|
38297
|
-
currency:
|
|
38324
|
+
currency: safeCurrency
|
|
38298
38325
|
}).format(price);
|
|
38299
38326
|
};
|
|
38300
38327
|
var AccommodationFlyIn = function (_a) {
|
|
@@ -43945,259 +43972,6 @@ var RoundTripResults = function () {
|
|
|
43945
43972
|
);
|
|
43946
43973
|
};
|
|
43947
43974
|
|
|
43948
|
-
var ticksToMinutes = function (ticks) {
|
|
43949
|
-
return Math.floor(ticks / 600000000);
|
|
43950
|
-
};
|
|
43951
|
-
var formatDuration = function (ticks) {
|
|
43952
|
-
var minutes = ticksToMinutes(ticks);
|
|
43953
|
-
var h = Math.floor(minutes / 60);
|
|
43954
|
-
var m = minutes % 60;
|
|
43955
|
-
return ''.concat(h, 'h ').concat(m, 'm');
|
|
43956
|
-
};
|
|
43957
|
-
var FlightResults = function (_a) {
|
|
43958
|
-
var _b;
|
|
43959
|
-
var flights = _a.flights,
|
|
43960
|
-
isDeparture = _a.isDeparture;
|
|
43961
|
-
var context = useContext(SearchResultsConfigurationContext);
|
|
43962
|
-
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
43963
|
-
var dispatch = useDispatch();
|
|
43964
|
-
var _c = useState(null),
|
|
43965
|
-
activeDetailId = _c[0],
|
|
43966
|
-
setActiveDetailId = _c[1];
|
|
43967
|
-
var handleDetailClick = function (flightOptionId) {
|
|
43968
|
-
setActiveDetailId(function (prev) {
|
|
43969
|
-
return prev === flightOptionId ? null : flightOptionId;
|
|
43970
|
-
});
|
|
43971
|
-
};
|
|
43972
|
-
var firstResult = flights === null || flights === void 0 ? void 0 : flights[0];
|
|
43973
|
-
var firstResultDate = (firstResult === null || firstResult === void 0 ? void 0 : firstResult.startDateTime) ? parseISO(firstResult.startDateTime) : null;
|
|
43974
|
-
return React__default.createElement(
|
|
43975
|
-
React__default.Fragment,
|
|
43976
|
-
null,
|
|
43977
|
-
React__default.createElement(
|
|
43978
|
-
'div',
|
|
43979
|
-
{ className: 'search__results__label' },
|
|
43980
|
-
React__default.createElement(
|
|
43981
|
-
'div',
|
|
43982
|
-
{ className: 'search__results__label__date' },
|
|
43983
|
-
firstResultDate &&
|
|
43984
|
-
React__default.createElement(
|
|
43985
|
-
React__default.Fragment,
|
|
43986
|
-
null,
|
|
43987
|
-
React__default.createElement('p', { className: 'search__results__label__date-date' }, format$1(firstResultDate, 'd')),
|
|
43988
|
-
React__default.createElement('p', null, format$1(firstResultDate, 'MMM'))
|
|
43989
|
-
)
|
|
43990
|
-
),
|
|
43991
|
-
React__default.createElement(
|
|
43992
|
-
'div',
|
|
43993
|
-
{ className: 'search__results__label__text' },
|
|
43994
|
-
React__default.createElement(
|
|
43995
|
-
'h3',
|
|
43996
|
-
null,
|
|
43997
|
-
translations.SRP.SELECT,
|
|
43998
|
-
' ',
|
|
43999
|
-
React__default.createElement('strong', null, isDeparture ? translations.SRP.DEPARTURE : translations.SRP.RETURN)
|
|
44000
|
-
)
|
|
44001
|
-
)
|
|
44002
|
-
),
|
|
44003
|
-
flights &&
|
|
44004
|
-
flights.length > 0 &&
|
|
44005
|
-
React__default.createElement(
|
|
44006
|
-
'div',
|
|
44007
|
-
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44008
|
-
flights.map(function (flight, index) {
|
|
44009
|
-
var lines = flight.flightMetaData.flightLines;
|
|
44010
|
-
var firstLine = lines[0];
|
|
44011
|
-
var lastLine = lines[lines.length - 1];
|
|
44012
|
-
var stops = lines.length - 1;
|
|
44013
|
-
return React__default.createElement(
|
|
44014
|
-
'div',
|
|
44015
|
-
{ className: 'flight', key: 'flight-'.concat(flight.flightId, '-').concat(index) },
|
|
44016
|
-
React__default.createElement(
|
|
44017
|
-
'div',
|
|
44018
|
-
{ className: 'flight__option' },
|
|
44019
|
-
React__default.createElement(
|
|
44020
|
-
'div',
|
|
44021
|
-
{ className: 'flight__content' },
|
|
44022
|
-
React__default.createElement(
|
|
44023
|
-
'div',
|
|
44024
|
-
{ className: 'flight__flights' },
|
|
44025
|
-
React__default.createElement(
|
|
44026
|
-
'div',
|
|
44027
|
-
{ className: 'flight__flight' },
|
|
44028
|
-
React__default.createElement(
|
|
44029
|
-
'div',
|
|
44030
|
-
{ className: 'flight__flight__header' },
|
|
44031
|
-
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
44032
|
-
React__default.createElement(
|
|
44033
|
-
'div',
|
|
44034
|
-
{ className: 'flight__price' },
|
|
44035
|
-
React__default.createElement('span', { className: 'price' }, '\u20AC ', flight.price.toFixed(2)),
|
|
44036
|
-
React__default.createElement(
|
|
44037
|
-
'button',
|
|
44038
|
-
{
|
|
44039
|
-
type: 'button',
|
|
44040
|
-
className: 'cta '.concat(flight.isSelected ? 'cta--selected' : 'cta--select'),
|
|
44041
|
-
onClick: function () {
|
|
44042
|
-
return dispatch(selectFlight({ flightOptionId: flight.flightOptionId, isDeparture: !!isDeparture }));
|
|
44043
|
-
}
|
|
44044
|
-
},
|
|
44045
|
-
flight.isSelected ? 'Selected' : 'Select'
|
|
44046
|
-
)
|
|
44047
|
-
)
|
|
44048
|
-
)
|
|
44049
|
-
),
|
|
44050
|
-
React__default.createElement(
|
|
44051
|
-
'div',
|
|
44052
|
-
{ className: 'flight__flight' },
|
|
44053
|
-
React__default.createElement(
|
|
44054
|
-
'div',
|
|
44055
|
-
{ className: 'flight__flight__container' },
|
|
44056
|
-
React__default.createElement(
|
|
44057
|
-
'div',
|
|
44058
|
-
{ className: 'flight__flight__wrapper' },
|
|
44059
|
-
React__default.createElement(
|
|
44060
|
-
'div',
|
|
44061
|
-
{ className: 'flight__logo__wrapper' },
|
|
44062
|
-
React__default.createElement('img', {
|
|
44063
|
-
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(firstLine.airlineCode, '.png?height=256'),
|
|
44064
|
-
alt: flight.airlineDescription,
|
|
44065
|
-
className: 'flight__logo'
|
|
44066
|
-
}),
|
|
44067
|
-
React__default.createElement('span', null, flight.airlineDescription)
|
|
44068
|
-
),
|
|
44069
|
-
React__default.createElement(
|
|
44070
|
-
'div',
|
|
44071
|
-
{ className: 'flight__info' },
|
|
44072
|
-
React__default.createElement(
|
|
44073
|
-
'div',
|
|
44074
|
-
{ className: 'flight__info__times' },
|
|
44075
|
-
React__default.createElement('strong', null, firstLine.departureTime, ' ', firstLine.departureAirport),
|
|
44076
|
-
React__default.createElement('p', null, format$1(parseISO(firstLine.departureDate), 'EEE dd MMM yyyy'))
|
|
44077
|
-
),
|
|
44078
|
-
React__default.createElement(
|
|
44079
|
-
'div',
|
|
44080
|
-
{ className: 'flight__info__duration' },
|
|
44081
|
-
React__default.createElement('p', null, formatDuration(flight.flightMetaData.durationInTicks)),
|
|
44082
|
-
React__default.createElement(
|
|
44083
|
-
'div',
|
|
44084
|
-
{ className: 'flight__info__duration__stops' },
|
|
44085
|
-
stops > 0 && React__default.createElement('div', { className: 'flight__info__duration__stop' })
|
|
44086
|
-
),
|
|
44087
|
-
React__default.createElement(
|
|
44088
|
-
'span',
|
|
44089
|
-
null,
|
|
44090
|
-
stops === 0
|
|
44091
|
-
? translations.SRP.DIRECT
|
|
44092
|
-
: ''
|
|
44093
|
-
.concat(stops, ' ')
|
|
44094
|
-
.concat(translations.SRP.STOP)
|
|
44095
|
-
.concat(stops > 1 ? 's' : '')
|
|
44096
|
-
)
|
|
44097
|
-
),
|
|
44098
|
-
React__default.createElement(
|
|
44099
|
-
'div',
|
|
44100
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44101
|
-
React__default.createElement('strong', null, lastLine.arrivalTime, ' ', lastLine.arrivalAirport),
|
|
44102
|
-
React__default.createElement('p', null, format$1(parseISO(lastLine.arrivalDate), 'EEE dd MMM yyyy'))
|
|
44103
|
-
)
|
|
44104
|
-
)
|
|
44105
|
-
),
|
|
44106
|
-
React__default.createElement(
|
|
44107
|
-
'div',
|
|
44108
|
-
{ className: 'flight__detail__btn__wrapper' },
|
|
44109
|
-
React__default.createElement(
|
|
44110
|
-
'div',
|
|
44111
|
-
{
|
|
44112
|
-
className: 'flight__detail__btn '.concat(activeDetailId === flight.flightOptionId ? 'flight__detail__btn--active' : ''),
|
|
44113
|
-
onClick: function () {
|
|
44114
|
-
return handleDetailClick(flight.flightOptionId);
|
|
44115
|
-
}
|
|
44116
|
-
},
|
|
44117
|
-
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44118
|
-
)
|
|
44119
|
-
)
|
|
44120
|
-
),
|
|
44121
|
-
React__default.createElement(
|
|
44122
|
-
'div',
|
|
44123
|
-
{ className: 'flight__detail '.concat(activeDetailId === flight.flightOptionId ? 'flight__detail--active' : '') },
|
|
44124
|
-
lines.map(function (line, index) {
|
|
44125
|
-
var nextLine = lines[index + 1];
|
|
44126
|
-
return React__default.createElement(
|
|
44127
|
-
React__default.Fragment,
|
|
44128
|
-
{ key: index },
|
|
44129
|
-
React__default.createElement(
|
|
44130
|
-
'div',
|
|
44131
|
-
{ className: 'flight__info' },
|
|
44132
|
-
React__default.createElement(
|
|
44133
|
-
'div',
|
|
44134
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44135
|
-
React__default.createElement(
|
|
44136
|
-
'div',
|
|
44137
|
-
{ className: 'flight__info__times' },
|
|
44138
|
-
React__default.createElement('p', null, line.departureTime),
|
|
44139
|
-
React__default.createElement('strong', null, line.departureAirport),
|
|
44140
|
-
React__default.createElement('p', null, format$1(parseISO(line.departureDate), 'EEE dd MMM yyyy'))
|
|
44141
|
-
),
|
|
44142
|
-
React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 })
|
|
44143
|
-
),
|
|
44144
|
-
React__default.createElement(
|
|
44145
|
-
'div',
|
|
44146
|
-
{ className: 'flight__info__duration' },
|
|
44147
|
-
React__default.createElement('p', null, formatDuration(line.durationInTicks)),
|
|
44148
|
-
React__default.createElement('span', null, line.airline, ' ', line.number)
|
|
44149
|
-
),
|
|
44150
|
-
React__default.createElement(
|
|
44151
|
-
'div',
|
|
44152
|
-
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44153
|
-
React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 }),
|
|
44154
|
-
React__default.createElement(
|
|
44155
|
-
'div',
|
|
44156
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44157
|
-
React__default.createElement('p', null, line.arrivalTime),
|
|
44158
|
-
React__default.createElement('strong', null, line.arrivalAirport),
|
|
44159
|
-
React__default.createElement('p', null, format$1(parseISO(line.arrivalDate), 'EEE dd MMM yyyy'))
|
|
44160
|
-
)
|
|
44161
|
-
)
|
|
44162
|
-
),
|
|
44163
|
-
nextLine &&
|
|
44164
|
-
React__default.createElement(
|
|
44165
|
-
'div',
|
|
44166
|
-
{ className: 'flight__info' },
|
|
44167
|
-
React__default.createElement(
|
|
44168
|
-
'div',
|
|
44169
|
-
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44170
|
-
React__default.createElement(
|
|
44171
|
-
'div',
|
|
44172
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44173
|
-
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44174
|
-
),
|
|
44175
|
-
React__default.createElement(
|
|
44176
|
-
'div',
|
|
44177
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44178
|
-
React__default.createElement('span', null, translations.SRP.STOP_TIME),
|
|
44179
|
-
React__default.createElement(
|
|
44180
|
-
'strong',
|
|
44181
|
-
null,
|
|
44182
|
-
formatDuration(parseISO(nextLine.departureDate).getTime() - parseISO(line.arrivalDate).getTime())
|
|
44183
|
-
)
|
|
44184
|
-
)
|
|
44185
|
-
)
|
|
44186
|
-
)
|
|
44187
|
-
);
|
|
44188
|
-
})
|
|
44189
|
-
)
|
|
44190
|
-
)
|
|
44191
|
-
),
|
|
44192
|
-
React__default.createElement('div', { className: 'flight__rate' })
|
|
44193
|
-
)
|
|
44194
|
-
)
|
|
44195
|
-
);
|
|
44196
|
-
})
|
|
44197
|
-
)
|
|
44198
|
-
);
|
|
44199
|
-
};
|
|
44200
|
-
|
|
44201
43975
|
var PairedFlightOption = function (_a) {
|
|
44202
43976
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
44203
43977
|
var item = _a.item;
|
|
@@ -44646,7 +44420,6 @@ var IndependentFlightOption = function (_a) {
|
|
|
44646
44420
|
guid = _a.guid,
|
|
44647
44421
|
selectedGuid = _a.selectedGuid;
|
|
44648
44422
|
_a.isOutward;
|
|
44649
|
-
useDispatch();
|
|
44650
44423
|
var context = useContext(SearchResultsConfigurationContext);
|
|
44651
44424
|
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44652
44425
|
var translations = getTranslations(language);
|
|
@@ -44861,14 +44634,6 @@ var IndependentFlightOption = function (_a) {
|
|
|
44861
44634
|
);
|
|
44862
44635
|
};
|
|
44863
44636
|
|
|
44864
|
-
var getFlightKey = function (segments) {
|
|
44865
|
-
if (!segments || segments.length === 0) return '';
|
|
44866
|
-
return segments
|
|
44867
|
-
.map(function (s) {
|
|
44868
|
-
return ''.concat(s.marketingAirlineCode).concat(s.flightNumber, '_').concat(s.departureDateTime);
|
|
44869
|
-
})
|
|
44870
|
-
.join('_');
|
|
44871
|
-
};
|
|
44872
44637
|
var IndependentFlightSelection = function (_a) {
|
|
44873
44638
|
var _b;
|
|
44874
44639
|
var searchResults = _a.searchResults;
|
|
@@ -47212,9 +46977,9 @@ var SearchResultsContainer = function () {
|
|
|
47212
46977
|
results = _c.results,
|
|
47213
46978
|
filteredResults = _c.filteredResults,
|
|
47214
46979
|
packagingAccoResults = _c.packagingAccoResults,
|
|
47215
|
-
filteredPackagingAccoResults = _c.filteredPackagingAccoResults
|
|
47216
|
-
|
|
47217
|
-
|
|
46980
|
+
filteredPackagingAccoResults = _c.filteredPackagingAccoResults;
|
|
46981
|
+
_c.bookingPackageDetails;
|
|
46982
|
+
var isLoading = _c.isLoading,
|
|
47218
46983
|
filters = _c.filters,
|
|
47219
46984
|
selectedSortType = _c.selectedSortType,
|
|
47220
46985
|
selectedSearchResult = _c.selectedSearchResult,
|
|
@@ -47224,7 +46989,8 @@ var SearchResultsContainer = function () {
|
|
|
47224
46989
|
editablePackagingEntry = _c.editablePackagingEntry,
|
|
47225
46990
|
transactionId = _c.transactionId,
|
|
47226
46991
|
accommodationFlyInStep = _c.accommodationFlyInStep,
|
|
47227
|
-
itinerary = _c.itinerary
|
|
46992
|
+
itinerary = _c.itinerary,
|
|
46993
|
+
packagingFlightResults = _c.packagingFlightResults;
|
|
47228
46994
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
47229
46995
|
var _d = useState(false),
|
|
47230
46996
|
initialFiltersSet = _d[0],
|
|
@@ -47250,6 +47016,7 @@ var SearchResultsContainer = function () {
|
|
|
47250
47016
|
var _l = useState(null),
|
|
47251
47017
|
selectedAccommodationSeed = _l[0],
|
|
47252
47018
|
setSelectedAccommodationSeed = _l[1];
|
|
47019
|
+
var skipInitialPackagingAccoDetailsRef = useRef(false);
|
|
47253
47020
|
var panelRef = useRef(null);
|
|
47254
47021
|
var sortByTypes = [
|
|
47255
47022
|
{ direction: 'asc', label: 'default' },
|
|
@@ -47361,7 +47128,7 @@ var SearchResultsContainer = function () {
|
|
|
47361
47128
|
};
|
|
47362
47129
|
};
|
|
47363
47130
|
var buildPackagingAccommodationRequestFromSeed = function (seed, currentTransactionId) {
|
|
47364
|
-
var _a, _b, _c, _d;
|
|
47131
|
+
var _a, _b, _c, _d, _e, _f;
|
|
47365
47132
|
var country = seed.country;
|
|
47366
47133
|
var region = seed.region;
|
|
47367
47134
|
var oord = seed.oord;
|
|
@@ -47397,11 +47164,15 @@ var SearchResultsContainer = function () {
|
|
|
47397
47164
|
}
|
|
47398
47165
|
return {
|
|
47399
47166
|
transactionId: currentTransactionId,
|
|
47400
|
-
officeId:
|
|
47401
|
-
|
|
47402
|
-
|
|
47167
|
+
officeId:
|
|
47168
|
+
(_c = (_b = context === null || context === void 0 ? void 0 : context.tideConnection) === null || _b === void 0 ? void 0 : _b.officeId) !== null &&
|
|
47169
|
+
_c !== void 0
|
|
47170
|
+
? _c
|
|
47171
|
+
: 1,
|
|
47172
|
+
agentId: (_d = context === null || context === void 0 ? void 0 : context.agentId) !== null && _d !== void 0 ? _d : null,
|
|
47173
|
+
catalogueId: (_e = context.searchConfiguration.defaultCatalogueId) !== null && _e !== void 0 ? _e : 0,
|
|
47403
47174
|
searchConfigurationId: context.searchConfiguration.id,
|
|
47404
|
-
language: (
|
|
47175
|
+
language: (_f = context.languageCode) !== null && _f !== void 0 ? _f : 'en-GB',
|
|
47405
47176
|
serviceType: ACCOMMODATION_SERVICE_TYPE,
|
|
47406
47177
|
fromDate: seed.fromDate,
|
|
47407
47178
|
toDate: seed.toDate,
|
|
@@ -47419,6 +47190,74 @@ var SearchResultsContainer = function () {
|
|
|
47419
47190
|
tagIds: tagId ? [tagId] : []
|
|
47420
47191
|
};
|
|
47421
47192
|
};
|
|
47193
|
+
var buildPackagingFlightRequestFromSeed = function (seed, currentTransactionId) {
|
|
47194
|
+
var _a, _b, _c, _d;
|
|
47195
|
+
if (typeof window !== 'undefined') {
|
|
47196
|
+
window.scrollTo(0, 0);
|
|
47197
|
+
}
|
|
47198
|
+
var adults = seed.rooms
|
|
47199
|
+
.flatMap(function (x) {
|
|
47200
|
+
return x.pax;
|
|
47201
|
+
})
|
|
47202
|
+
.filter(function (x) {
|
|
47203
|
+
return x.age >= 18;
|
|
47204
|
+
}).length;
|
|
47205
|
+
var kids = seed.rooms
|
|
47206
|
+
.flatMap(function (x) {
|
|
47207
|
+
return x.pax;
|
|
47208
|
+
})
|
|
47209
|
+
.filter(function (x) {
|
|
47210
|
+
return x.age >= 2 && x.age < 18;
|
|
47211
|
+
}).length;
|
|
47212
|
+
var babies = seed.rooms
|
|
47213
|
+
.flatMap(function (x) {
|
|
47214
|
+
return x.pax;
|
|
47215
|
+
})
|
|
47216
|
+
.filter(function (x) {
|
|
47217
|
+
return x.age < 2;
|
|
47218
|
+
}).length;
|
|
47219
|
+
return {
|
|
47220
|
+
transactionId: currentTransactionId,
|
|
47221
|
+
officeId:
|
|
47222
|
+
(_b = (_a = context === null || context === void 0 ? void 0 : context.tideConnection) === null || _a === void 0 ? void 0 : _a.officeId) !== null &&
|
|
47223
|
+
_b !== void 0
|
|
47224
|
+
? _b
|
|
47225
|
+
: 1,
|
|
47226
|
+
catalogueId:
|
|
47227
|
+
(_d = first((_c = context === null || context === void 0 ? void 0 : context.tideConnection) === null || _c === void 0 ? void 0 : _c.catalogueIds)) !==
|
|
47228
|
+
null && _d !== void 0
|
|
47229
|
+
? _d
|
|
47230
|
+
: 0,
|
|
47231
|
+
departureAirportCode: seed.departureAirport,
|
|
47232
|
+
arrivalAirportCode: seed.destinationAirport,
|
|
47233
|
+
returnAirportCode: seed.returnAirport,
|
|
47234
|
+
luggageIncluded: null,
|
|
47235
|
+
maxStops: null,
|
|
47236
|
+
travelClass: seed.travelClass,
|
|
47237
|
+
pax: concat(
|
|
47238
|
+
Array.from({ length: adults !== null && adults !== void 0 ? adults : 0 }, function (_, index) {
|
|
47239
|
+
return {
|
|
47240
|
+
id: index,
|
|
47241
|
+
age: 31
|
|
47242
|
+
};
|
|
47243
|
+
}),
|
|
47244
|
+
Array.from({ length: kids !== null && kids !== void 0 ? kids : 0 }, function (_, index) {
|
|
47245
|
+
return {
|
|
47246
|
+
id: index + (adults !== null && adults !== void 0 ? adults : 0),
|
|
47247
|
+
age: 8
|
|
47248
|
+
};
|
|
47249
|
+
}),
|
|
47250
|
+
Array.from({ length: babies !== null && babies !== void 0 ? babies : 0 }, function (_, index) {
|
|
47251
|
+
return {
|
|
47252
|
+
id: index + (adults !== null && adults !== void 0 ? adults : 0) + (kids !== null && kids !== void 0 ? kids : 0),
|
|
47253
|
+
age: 1
|
|
47254
|
+
};
|
|
47255
|
+
})
|
|
47256
|
+
),
|
|
47257
|
+
outward: seed.fromDate ? { date: dateToDateStruct(new Date(seed.fromDate)) } : null,
|
|
47258
|
+
return: seed.toDate ? { date: dateToDateStruct(new Date(seed.toDate)) } : null
|
|
47259
|
+
};
|
|
47260
|
+
};
|
|
47422
47261
|
var buildSearchSeedFromQueryParams = function (params) {
|
|
47423
47262
|
var from = getDateFromParams(params, 'fromDate');
|
|
47424
47263
|
var to = getDateFromParams(params, 'toDate');
|
|
@@ -47431,6 +47270,8 @@ var SearchResultsContainer = function () {
|
|
|
47431
47270
|
var tagId = getNumberFromParams(params, 'tagId');
|
|
47432
47271
|
var destinationAirport = getStringFromParams(params, 'destinationAirport');
|
|
47433
47272
|
var departureAirport = getStringFromParams(params, 'departureAirport');
|
|
47273
|
+
var travelClass = getStringFromParams(params, 'travelClass');
|
|
47274
|
+
var nationality = getStringFromParams(params, 'nationality');
|
|
47434
47275
|
if (!from || !to) {
|
|
47435
47276
|
return null;
|
|
47436
47277
|
}
|
|
@@ -47446,9 +47287,66 @@ var SearchResultsContainer = function () {
|
|
|
47446
47287
|
tagId: tagId,
|
|
47447
47288
|
destinationAirport: destinationAirport,
|
|
47448
47289
|
departureAirport: departureAirport,
|
|
47290
|
+
travelClass: travelClass,
|
|
47291
|
+
nationality: nationality,
|
|
47449
47292
|
rooms: getRequestRooms(rooms)
|
|
47450
47293
|
};
|
|
47451
47294
|
};
|
|
47295
|
+
var buildSearchSeedFromAccommodationSegments = function (entry, segments) {
|
|
47296
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
47297
|
+
if (!(segments === null || segments === void 0 ? void 0 : segments.length)) return null;
|
|
47298
|
+
var sortedSegments = __spreadArray([], segments, true).sort(function (a, b) {
|
|
47299
|
+
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
47300
|
+
});
|
|
47301
|
+
var firstSegment = first(sortedSegments);
|
|
47302
|
+
var lastSegment = last(sortedSegments);
|
|
47303
|
+
if (!firstSegment || !lastSegment) return null;
|
|
47304
|
+
return {
|
|
47305
|
+
fromDate: toDateOnlyString(firstSegment.from),
|
|
47306
|
+
toDate: toDateOnlyString(lastSegment.to),
|
|
47307
|
+
country: (_b = (_a = firstSegment.country) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
|
|
47308
|
+
region: (_d = (_c = firstSegment.region) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null,
|
|
47309
|
+
oord: (_f = (_e = firstSegment.oord) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null,
|
|
47310
|
+
location: (_h = (_g = firstSegment.location) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : null,
|
|
47311
|
+
hotel: parseHotelId(firstSegment),
|
|
47312
|
+
hotelCode: (_j = firstSegment.productCode) !== null && _j !== void 0 ? _j : null,
|
|
47313
|
+
tagId: null,
|
|
47314
|
+
destinationAirport: getDestinationAirportFromEntry((_k = entry.lines) !== null && _k !== void 0 ? _k : []),
|
|
47315
|
+
departureAirport: getDepartureAirportFromEntry((_l = entry.lines) !== null && _l !== void 0 ? _l : []),
|
|
47316
|
+
rooms: getRequestRoomsFromPackagingSegments(entry, sortedSegments)
|
|
47317
|
+
};
|
|
47318
|
+
};
|
|
47319
|
+
var handleEditAccommodation = function (segments) {
|
|
47320
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47321
|
+
var sourceEntry, seed, currentTransactionId;
|
|
47322
|
+
return __generator(this, function (_a) {
|
|
47323
|
+
switch (_a.label) {
|
|
47324
|
+
case 0:
|
|
47325
|
+
sourceEntry =
|
|
47326
|
+
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
47327
|
+
? editablePackagingEntry
|
|
47328
|
+
: context === null || context === void 0
|
|
47329
|
+
? void 0
|
|
47330
|
+
: context.packagingEntry;
|
|
47331
|
+
if (!sourceEntry) return [2 /*return*/];
|
|
47332
|
+
seed = buildSearchSeedFromAccommodationSegments(sourceEntry, segments);
|
|
47333
|
+
if (!seed) return [2 /*return*/];
|
|
47334
|
+
setDetailsIsLoading(true);
|
|
47335
|
+
setSelectedAccommodationSeed(seed);
|
|
47336
|
+
dispatch(setAccommodationFlyInStep('results'));
|
|
47337
|
+
handleFlyInToggle(true);
|
|
47338
|
+
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47339
|
+
case 1:
|
|
47340
|
+
currentTransactionId = _a.sent();
|
|
47341
|
+
return [4 /*yield*/, runAccommodationFlow(seed, currentTransactionId !== null && currentTransactionId !== void 0 ? currentTransactionId : '')];
|
|
47342
|
+
case 2:
|
|
47343
|
+
_a.sent();
|
|
47344
|
+
setDetailsIsLoading(false);
|
|
47345
|
+
return [2 /*return*/];
|
|
47346
|
+
}
|
|
47347
|
+
});
|
|
47348
|
+
});
|
|
47349
|
+
};
|
|
47452
47350
|
var handleConfirmHotelSwap = function () {
|
|
47453
47351
|
var updatedEntry = swapHotelInPackagingEntry();
|
|
47454
47352
|
if (!updatedEntry) return;
|
|
@@ -47549,6 +47447,25 @@ var SearchResultsContainer = function () {
|
|
|
47549
47447
|
},
|
|
47550
47448
|
[filtersOpen]
|
|
47551
47449
|
);
|
|
47450
|
+
var getOrCreateTransactionId = function () {
|
|
47451
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47452
|
+
var _a;
|
|
47453
|
+
return __generator(this, function (_b) {
|
|
47454
|
+
switch (_b.label) {
|
|
47455
|
+
case 0:
|
|
47456
|
+
if ((_a = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _a === void 0 ? void 0 : _a.transactionId) {
|
|
47457
|
+
return [2 /*return*/, context.packagingEntry.transactionId];
|
|
47458
|
+
}
|
|
47459
|
+
if (transactionId) {
|
|
47460
|
+
return [2 /*return*/, transactionId];
|
|
47461
|
+
}
|
|
47462
|
+
return [4 /*yield*/, runStartTransaction()];
|
|
47463
|
+
case 1:
|
|
47464
|
+
return [2 /*return*/, _b.sent()];
|
|
47465
|
+
}
|
|
47466
|
+
});
|
|
47467
|
+
});
|
|
47468
|
+
};
|
|
47552
47469
|
var runSearch = function () {
|
|
47553
47470
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47554
47471
|
var config, seed, searchRequest, packageSearchResults, enrichedFilters, initialFilteredResults, err_1;
|
|
@@ -47630,11 +47547,11 @@ var SearchResultsContainer = function () {
|
|
|
47630
47547
|
var runHotelSearch = function (currentTransactionId, seed) {
|
|
47631
47548
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47632
47549
|
var config, searchRequest, packageAccoSearchResults, enrichedFilters, initialFilteredResults, err_3;
|
|
47633
|
-
var _a;
|
|
47634
|
-
return __generator(this, function (
|
|
47635
|
-
switch (
|
|
47550
|
+
var _a, _b, _c;
|
|
47551
|
+
return __generator(this, function (_d) {
|
|
47552
|
+
switch (_d.label) {
|
|
47636
47553
|
case 0:
|
|
47637
|
-
|
|
47554
|
+
_d.trys.push([0, 2, , 3]);
|
|
47638
47555
|
if (!context) return [2 /*return*/];
|
|
47639
47556
|
dispatch(setIsLoading(true));
|
|
47640
47557
|
config = {
|
|
@@ -47646,7 +47563,7 @@ var SearchResultsContainer = function () {
|
|
|
47646
47563
|
searchRequest.agentId = context.agentId;
|
|
47647
47564
|
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47648
47565
|
case 1:
|
|
47649
|
-
packageAccoSearchResults =
|
|
47566
|
+
packageAccoSearchResults = _d.sent();
|
|
47650
47567
|
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47651
47568
|
packageAccoSearchResults,
|
|
47652
47569
|
context.filters,
|
|
@@ -47660,11 +47577,19 @@ var SearchResultsContainer = function () {
|
|
|
47660
47577
|
dispatch(setPackagingAccoResults(packageAccoSearchResults));
|
|
47661
47578
|
initialFilteredResults = applyFiltersToPackageAccoResults(packageAccoSearchResults, filters, null);
|
|
47662
47579
|
dispatch(setFilteredPackagingAccoResults(initialFilteredResults));
|
|
47580
|
+
if (initialFilteredResults.length > 0) {
|
|
47581
|
+
skipInitialPackagingAccoDetailsRef.current = true;
|
|
47582
|
+
dispatch(
|
|
47583
|
+
setSelectedPackagingAccoResult(
|
|
47584
|
+
(_c = (_b = first(initialFilteredResults)) === null || _b === void 0 ? void 0 : _b.code) !== null && _c !== void 0 ? _c : null
|
|
47585
|
+
)
|
|
47586
|
+
);
|
|
47587
|
+
}
|
|
47663
47588
|
dispatch(setIsLoading(false));
|
|
47664
47589
|
return [3 /*break*/, 3];
|
|
47665
47590
|
case 2:
|
|
47666
|
-
err_3 =
|
|
47667
|
-
console.error('
|
|
47591
|
+
err_3 = _d.sent();
|
|
47592
|
+
console.error('HotelSearch failed', err_3);
|
|
47668
47593
|
dispatch(setIsLoading(false));
|
|
47669
47594
|
return [3 /*break*/, 3];
|
|
47670
47595
|
case 3:
|
|
@@ -47673,31 +47598,61 @@ var SearchResultsContainer = function () {
|
|
|
47673
47598
|
});
|
|
47674
47599
|
});
|
|
47675
47600
|
};
|
|
47676
|
-
var runAccommodationFlow = function (seed) {
|
|
47601
|
+
var runAccommodationFlow = function (seed, currentTransactionId) {
|
|
47677
47602
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47678
|
-
|
|
47679
|
-
|
|
47680
|
-
return __generator(this, function (_b) {
|
|
47681
|
-
switch (_b.label) {
|
|
47603
|
+
return __generator(this, function (_a) {
|
|
47604
|
+
switch (_a.label) {
|
|
47682
47605
|
case 0:
|
|
47683
47606
|
if (!context || context.showMockup) return [2 /*return*/];
|
|
47684
|
-
currentTransactionId
|
|
47685
|
-
((_a = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _a === void 0 ? void 0 : _a.transactionId) ||
|
|
47686
|
-
transactionId;
|
|
47687
|
-
if (!!currentTransactionId) return [3 /*break*/, 2];
|
|
47688
|
-
dispatch(setIsLoading(true));
|
|
47689
|
-
return [4 /*yield*/, runStartTransaction()];
|
|
47607
|
+
return [4 /*yield*/, runHotelSearch(currentTransactionId, seed)];
|
|
47690
47608
|
case 1:
|
|
47691
|
-
|
|
47692
|
-
|
|
47609
|
+
_a.sent();
|
|
47610
|
+
return [2 /*return*/];
|
|
47611
|
+
}
|
|
47612
|
+
});
|
|
47613
|
+
});
|
|
47614
|
+
};
|
|
47615
|
+
var runFlightSearch = function (currentTransactionId, seed) {
|
|
47616
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47617
|
+
var config, searchRequest, packageFlightSearchResults, err_4;
|
|
47618
|
+
return __generator(this, function (_a) {
|
|
47619
|
+
switch (_a.label) {
|
|
47620
|
+
case 0:
|
|
47621
|
+
_a.trys.push([0, 2, , 3]);
|
|
47622
|
+
if (!context) return [2 /*return*/];
|
|
47623
|
+
dispatch(setFlightsLoading(true));
|
|
47624
|
+
config = {
|
|
47625
|
+
host: context.tideConnection.host,
|
|
47626
|
+
apiKey: context.tideConnection.apiKey
|
|
47627
|
+
};
|
|
47628
|
+
searchRequest = buildPackagingFlightRequestFromSeed(seed, currentTransactionId);
|
|
47629
|
+
searchRequest.agentId = context.agentId;
|
|
47630
|
+
return [4 /*yield*/, build.searchPackagingFlights(config, searchRequest)];
|
|
47631
|
+
case 1:
|
|
47632
|
+
packageFlightSearchResults = _a.sent();
|
|
47633
|
+
dispatch(setPackagingFlightResults(packageFlightSearchResults));
|
|
47634
|
+
dispatch(setFlightsLoading(false));
|
|
47635
|
+
return [3 /*break*/, 3];
|
|
47693
47636
|
case 2:
|
|
47694
|
-
|
|
47695
|
-
|
|
47696
|
-
|
|
47697
|
-
|
|
47698
|
-
return [4 /*yield*/, runHotelSearch(currentTransactionId, seed)];
|
|
47637
|
+
err_4 = _a.sent();
|
|
47638
|
+
console.error('FlightSearch failed', err_4);
|
|
47639
|
+
dispatch(setFlightsLoading(false));
|
|
47640
|
+
return [3 /*break*/, 3];
|
|
47699
47641
|
case 3:
|
|
47700
|
-
|
|
47642
|
+
return [2 /*return*/];
|
|
47643
|
+
}
|
|
47644
|
+
});
|
|
47645
|
+
});
|
|
47646
|
+
};
|
|
47647
|
+
var runFlightFlow = function (seed, currentTransactionId) {
|
|
47648
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47649
|
+
return __generator(this, function (_a) {
|
|
47650
|
+
switch (_a.label) {
|
|
47651
|
+
case 0:
|
|
47652
|
+
if (!context || context.showMockup) return [2 /*return*/];
|
|
47653
|
+
return [4 /*yield*/, runFlightSearch(currentTransactionId, seed)];
|
|
47654
|
+
case 1:
|
|
47655
|
+
_a.sent();
|
|
47701
47656
|
return [2 /*return*/];
|
|
47702
47657
|
}
|
|
47703
47658
|
});
|
|
@@ -47714,20 +47669,60 @@ var SearchResultsContainer = function () {
|
|
|
47714
47669
|
runSearch();
|
|
47715
47670
|
}
|
|
47716
47671
|
if ((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation) {
|
|
47717
|
-
var
|
|
47718
|
-
if (
|
|
47719
|
-
|
|
47672
|
+
var seed_1 = activeSearchSeed;
|
|
47673
|
+
if (seed_1) {
|
|
47674
|
+
(function () {
|
|
47675
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47676
|
+
var transactionId;
|
|
47677
|
+
return __generator(this, function (_a) {
|
|
47678
|
+
switch (_a.label) {
|
|
47679
|
+
case 0:
|
|
47680
|
+
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47681
|
+
case 1:
|
|
47682
|
+
transactionId = _a.sent();
|
|
47683
|
+
if (!transactionId) return [2 /*return*/];
|
|
47684
|
+
return [4 /*yield*/, runAccommodationFlow(seed_1, transactionId)];
|
|
47685
|
+
case 2:
|
|
47686
|
+
_a.sent();
|
|
47687
|
+
return [2 /*return*/];
|
|
47688
|
+
}
|
|
47689
|
+
});
|
|
47690
|
+
});
|
|
47691
|
+
})();
|
|
47720
47692
|
}
|
|
47721
47693
|
}
|
|
47722
47694
|
if (
|
|
47723
47695
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight &&
|
|
47724
47696
|
context.searchConfiguration.enableManualPackaging &&
|
|
47725
|
-
context.searchConfiguration.allowAccommodations &&
|
|
47726
47697
|
!(context === null || context === void 0 ? void 0 : context.packagingEntry)
|
|
47727
47698
|
) {
|
|
47728
|
-
var
|
|
47729
|
-
if (
|
|
47730
|
-
|
|
47699
|
+
var seed_2 = activeSearchSeed;
|
|
47700
|
+
if (seed_2) {
|
|
47701
|
+
(function () {
|
|
47702
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47703
|
+
var sharedTransactionId, tasks;
|
|
47704
|
+
return __generator(this, function (_a) {
|
|
47705
|
+
switch (_a.label) {
|
|
47706
|
+
case 0:
|
|
47707
|
+
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47708
|
+
case 1:
|
|
47709
|
+
sharedTransactionId = _a.sent();
|
|
47710
|
+
if (!sharedTransactionId) return [2 /*return*/];
|
|
47711
|
+
tasks = [];
|
|
47712
|
+
if (context.searchConfiguration.allowAccommodations) {
|
|
47713
|
+
tasks.push(runAccommodationFlow(seed_2, sharedTransactionId));
|
|
47714
|
+
}
|
|
47715
|
+
if (context.searchConfiguration.allowFlights) {
|
|
47716
|
+
tasks.push(runFlightFlow(seed_2, sharedTransactionId));
|
|
47717
|
+
}
|
|
47718
|
+
return [4 /*yield*/, Promise.all(tasks)];
|
|
47719
|
+
case 2:
|
|
47720
|
+
_a.sent();
|
|
47721
|
+
return [2 /*return*/];
|
|
47722
|
+
}
|
|
47723
|
+
});
|
|
47724
|
+
});
|
|
47725
|
+
})();
|
|
47731
47726
|
}
|
|
47732
47727
|
}
|
|
47733
47728
|
},
|
|
@@ -47743,6 +47738,7 @@ var SearchResultsContainer = function () {
|
|
|
47743
47738
|
);
|
|
47744
47739
|
useEffect(
|
|
47745
47740
|
function () {
|
|
47741
|
+
console.log('packaging entry from context', context === null || context === void 0 ? void 0 : context.packagingEntry);
|
|
47746
47742
|
if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
|
|
47747
47743
|
console.log('original packaging entry from context', context.packagingEntry);
|
|
47748
47744
|
dispatch(setEditablePackagingEntry(structuredClone(context.packagingEntry)));
|
|
@@ -47756,7 +47752,7 @@ var SearchResultsContainer = function () {
|
|
|
47756
47752
|
function () {
|
|
47757
47753
|
var fetchDetails = function () {
|
|
47758
47754
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47759
|
-
var config, selectedItem, requestRooms, seed, detailsRequest, detailsResponse,
|
|
47755
|
+
var config, selectedItem, requestRooms, seed, detailsRequest, detailsResponse, err_5;
|
|
47760
47756
|
var _a;
|
|
47761
47757
|
return __generator(this, function (_b) {
|
|
47762
47758
|
switch (_b.label) {
|
|
@@ -47819,8 +47815,8 @@ var SearchResultsContainer = function () {
|
|
|
47819
47815
|
setDetailsIsLoading(false);
|
|
47820
47816
|
return [3 /*break*/, 4];
|
|
47821
47817
|
case 3:
|
|
47822
|
-
|
|
47823
|
-
console.error('Failed to fetch package details',
|
|
47818
|
+
err_5 = _b.sent();
|
|
47819
|
+
console.error('Failed to fetch package details', err_5);
|
|
47824
47820
|
setDetailsIsLoading(false);
|
|
47825
47821
|
return [3 /*break*/, 4];
|
|
47826
47822
|
case 4:
|
|
@@ -47845,12 +47841,16 @@ var SearchResultsContainer = function () {
|
|
|
47845
47841
|
destinationIsAirport,
|
|
47846
47842
|
detailSearchRequest,
|
|
47847
47843
|
packageAccoSearchDetails,
|
|
47848
|
-
|
|
47844
|
+
err_6;
|
|
47849
47845
|
var _a, _b, _c, _d, _e;
|
|
47850
47846
|
return __generator(this, function (_f) {
|
|
47851
47847
|
switch (_f.label) {
|
|
47852
47848
|
case 0:
|
|
47853
47849
|
if (!selectedPackagingAccoResultCode || !context) return [2 /*return*/];
|
|
47850
|
+
if (skipInitialPackagingAccoDetailsRef.current) {
|
|
47851
|
+
skipInitialPackagingAccoDetailsRef.current = false;
|
|
47852
|
+
return [2 /*return*/];
|
|
47853
|
+
}
|
|
47854
47854
|
setDetailsIsLoading(true);
|
|
47855
47855
|
if (
|
|
47856
47856
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
@@ -47933,8 +47933,8 @@ var SearchResultsContainer = function () {
|
|
|
47933
47933
|
setDetailsIsLoading(false);
|
|
47934
47934
|
return [3 /*break*/, 4];
|
|
47935
47935
|
case 3:
|
|
47936
|
-
|
|
47937
|
-
console.error('Failed to fetch package details',
|
|
47936
|
+
err_6 = _f.sent();
|
|
47937
|
+
console.error('Failed to fetch package details', err_6);
|
|
47938
47938
|
setDetailsIsLoading(false);
|
|
47939
47939
|
return [3 /*break*/, 4];
|
|
47940
47940
|
case 4:
|
|
@@ -47971,67 +47971,15 @@ var SearchResultsContainer = function () {
|
|
|
47971
47971
|
},
|
|
47972
47972
|
[activeSearchSeed]
|
|
47973
47973
|
);
|
|
47974
|
-
var handleEditAccommodation = function (segments) {
|
|
47975
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
47976
|
-
var sourceEntry, seed;
|
|
47977
|
-
return __generator(this, function (_a) {
|
|
47978
|
-
switch (_a.label) {
|
|
47979
|
-
case 0:
|
|
47980
|
-
sourceEntry =
|
|
47981
|
-
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
47982
|
-
? editablePackagingEntry
|
|
47983
|
-
: context === null || context === void 0
|
|
47984
|
-
? void 0
|
|
47985
|
-
: context.packagingEntry;
|
|
47986
|
-
if (!sourceEntry) return [2 /*return*/];
|
|
47987
|
-
seed = buildSearchSeedFromAccommodationSegments(sourceEntry, segments);
|
|
47988
|
-
if (!seed) return [2 /*return*/];
|
|
47989
|
-
setDetailsIsLoading(true);
|
|
47990
|
-
setSelectedAccommodationSeed(seed);
|
|
47991
|
-
dispatch(setAccommodationFlyInStep('results'));
|
|
47992
|
-
handleFlyInToggle(true);
|
|
47993
|
-
return [4 /*yield*/, runAccommodationFlow(seed)];
|
|
47994
|
-
case 1:
|
|
47995
|
-
_a.sent();
|
|
47996
|
-
setDetailsIsLoading(false);
|
|
47997
|
-
return [2 /*return*/];
|
|
47998
|
-
}
|
|
47999
|
-
});
|
|
48000
|
-
});
|
|
48001
|
-
};
|
|
48002
|
-
var buildSearchSeedFromAccommodationSegments = function (entry, segments) {
|
|
48003
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
48004
|
-
if (!(segments === null || segments === void 0 ? void 0 : segments.length)) return null;
|
|
48005
|
-
var sortedSegments = __spreadArray([], segments, true).sort(function (a, b) {
|
|
48006
|
-
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
48007
|
-
});
|
|
48008
|
-
var firstSegment = first(sortedSegments);
|
|
48009
|
-
var lastSegment = last(sortedSegments);
|
|
48010
|
-
if (!firstSegment || !lastSegment) return null;
|
|
48011
|
-
return {
|
|
48012
|
-
fromDate: toDateOnlyString(firstSegment.from),
|
|
48013
|
-
toDate: toDateOnlyString(lastSegment.to),
|
|
48014
|
-
country: (_b = (_a = firstSegment.country) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
|
|
48015
|
-
region: (_d = (_c = firstSegment.region) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null,
|
|
48016
|
-
oord: (_f = (_e = firstSegment.oord) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null,
|
|
48017
|
-
location: (_h = (_g = firstSegment.location) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : null,
|
|
48018
|
-
hotel: parseHotelId(firstSegment),
|
|
48019
|
-
hotelCode: (_j = firstSegment.productCode) !== null && _j !== void 0 ? _j : null,
|
|
48020
|
-
tagId: null,
|
|
48021
|
-
destinationAirport: getDestinationAirportFromEntry((_k = entry.lines) !== null && _k !== void 0 ? _k : []),
|
|
48022
|
-
departureAirport: getDepartureAirportFromEntry((_l = entry.lines) !== null && _l !== void 0 ? _l : []),
|
|
48023
|
-
rooms: getRequestRoomsFromPackagingSegments(entry, sortedSegments)
|
|
48024
|
-
};
|
|
48025
|
-
};
|
|
48026
47974
|
useEffect(
|
|
48027
47975
|
function () {
|
|
48028
47976
|
var fetchPriceDetails = function () {
|
|
48029
47977
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
48030
|
-
var config, priceDetails,
|
|
47978
|
+
var config, priceDetails, err_7;
|
|
48031
47979
|
return __generator(this, function (_a) {
|
|
48032
47980
|
switch (_a.label) {
|
|
48033
47981
|
case 0:
|
|
48034
|
-
if (!context || !editablePackagingEntry) return [2 /*return*/];
|
|
47982
|
+
if (!context || !editablePackagingEntry || isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
|
|
48035
47983
|
setPricesAreLoading(true);
|
|
48036
47984
|
_a.label = 1;
|
|
48037
47985
|
case 1:
|
|
@@ -48047,8 +47995,8 @@ var SearchResultsContainer = function () {
|
|
|
48047
47995
|
setPricesAreLoading(false);
|
|
48048
47996
|
return [3 /*break*/, 4];
|
|
48049
47997
|
case 3:
|
|
48050
|
-
|
|
48051
|
-
console.error('Error fetching price details',
|
|
47998
|
+
err_7 = _a.sent();
|
|
47999
|
+
console.error('Error fetching price details', err_7);
|
|
48052
48000
|
setPricesAreLoading(false);
|
|
48053
48001
|
return [3 /*break*/, 4];
|
|
48054
48002
|
case 4:
|
|
@@ -48059,12 +48007,12 @@ var SearchResultsContainer = function () {
|
|
|
48059
48007
|
};
|
|
48060
48008
|
var fetchItinerary = function () {
|
|
48061
48009
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
48062
|
-
var config, itinerary_1,
|
|
48010
|
+
var config, itinerary_1, err_8;
|
|
48063
48011
|
return __generator(this, function (_a) {
|
|
48064
48012
|
switch (_a.label) {
|
|
48065
48013
|
case 0:
|
|
48066
48014
|
console.log('Fetching itinerary for entry', editablePackagingEntry);
|
|
48067
|
-
if (!context || !editablePackagingEntry) return [2 /*return*/];
|
|
48015
|
+
if (!context || !editablePackagingEntry || isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
|
|
48068
48016
|
setItineraryIsLoading(true);
|
|
48069
48017
|
_a.label = 1;
|
|
48070
48018
|
case 1:
|
|
@@ -48081,8 +48029,8 @@ var SearchResultsContainer = function () {
|
|
|
48081
48029
|
setItineraryIsLoading(false);
|
|
48082
48030
|
return [3 /*break*/, 4];
|
|
48083
48031
|
case 3:
|
|
48084
|
-
|
|
48085
|
-
console.error('Error fetching itinerary',
|
|
48032
|
+
err_8 = _a.sent();
|
|
48033
|
+
console.error('Error fetching itinerary', err_8);
|
|
48086
48034
|
setItineraryIsLoading(false);
|
|
48087
48035
|
return [3 /*break*/, 4];
|
|
48088
48036
|
case 4:
|
|
@@ -48096,6 +48044,392 @@ var SearchResultsContainer = function () {
|
|
|
48096
48044
|
},
|
|
48097
48045
|
[editablePackagingEntry]
|
|
48098
48046
|
);
|
|
48047
|
+
// Flight selection
|
|
48048
|
+
var _m = useState(null),
|
|
48049
|
+
selectedOutwardKey = _m[0],
|
|
48050
|
+
setSelectedOutwardKey = _m[1];
|
|
48051
|
+
var _o = useState(null),
|
|
48052
|
+
selectedReturnKey = _o[0],
|
|
48053
|
+
setSelectedReturnKey = _o[1];
|
|
48054
|
+
var uniqueOutwardFlights = React__default.useMemo(
|
|
48055
|
+
function () {
|
|
48056
|
+
var map = new Map();
|
|
48057
|
+
packagingFlightResults.forEach(function (flight) {
|
|
48058
|
+
var key = getFlightKey(flight.outward.segments);
|
|
48059
|
+
if (!map.has(key)) {
|
|
48060
|
+
map.set(key, flight);
|
|
48061
|
+
}
|
|
48062
|
+
});
|
|
48063
|
+
return Array.from(map.values());
|
|
48064
|
+
},
|
|
48065
|
+
[packagingFlightResults]
|
|
48066
|
+
);
|
|
48067
|
+
var _p = useState([]),
|
|
48068
|
+
uniqueReturnFlights = _p[0],
|
|
48069
|
+
setUniqueReturnFlights = _p[1];
|
|
48070
|
+
useEffect(
|
|
48071
|
+
function () {
|
|
48072
|
+
if (!selectedOutwardKey) {
|
|
48073
|
+
setUniqueReturnFlights([]);
|
|
48074
|
+
setSelectedReturnKey(null);
|
|
48075
|
+
return;
|
|
48076
|
+
}
|
|
48077
|
+
// Filter combinations that match selected outward fare
|
|
48078
|
+
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
48079
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48080
|
+
});
|
|
48081
|
+
var returnMap = new Map();
|
|
48082
|
+
matchingCombinations.forEach(function (flight) {
|
|
48083
|
+
var key = getFlightKey(flight.return.segments);
|
|
48084
|
+
if (!returnMap.has(key)) {
|
|
48085
|
+
returnMap.set(key, flight);
|
|
48086
|
+
}
|
|
48087
|
+
});
|
|
48088
|
+
var returns = Array.from(returnMap.values());
|
|
48089
|
+
setUniqueReturnFlights(returns);
|
|
48090
|
+
},
|
|
48091
|
+
[selectedOutwardKey, packagingFlightResults]
|
|
48092
|
+
);
|
|
48093
|
+
var selectedOutward = React__default.useMemo(
|
|
48094
|
+
function () {
|
|
48095
|
+
if (!selectedOutwardKey) return null;
|
|
48096
|
+
return (
|
|
48097
|
+
packagingFlightResults.find(function (flight) {
|
|
48098
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48099
|
+
}) || null
|
|
48100
|
+
);
|
|
48101
|
+
},
|
|
48102
|
+
[packagingFlightResults, selectedOutwardKey]
|
|
48103
|
+
);
|
|
48104
|
+
var selectedReturn = React__default.useMemo(
|
|
48105
|
+
function () {
|
|
48106
|
+
if (!selectedReturnKey) return null;
|
|
48107
|
+
return (
|
|
48108
|
+
packagingFlightResults.find(function (flight) {
|
|
48109
|
+
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48110
|
+
}) || null
|
|
48111
|
+
);
|
|
48112
|
+
},
|
|
48113
|
+
[packagingFlightResults, selectedReturnKey]
|
|
48114
|
+
);
|
|
48115
|
+
var selectedCombinationFlight = React__default.useMemo(
|
|
48116
|
+
function () {
|
|
48117
|
+
if (!selectedOutwardKey || !selectedReturnKey) return undefined;
|
|
48118
|
+
return packagingFlightResults.find(function (flight) {
|
|
48119
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48120
|
+
});
|
|
48121
|
+
},
|
|
48122
|
+
[packagingFlightResults, selectedOutwardKey, selectedReturnKey]
|
|
48123
|
+
);
|
|
48124
|
+
// TODO: get details for selected combination flight and show in fly-in
|
|
48125
|
+
// useEffect(() => {
|
|
48126
|
+
// if (!selectedCombinationFlight) return;
|
|
48127
|
+
// dispatch(setSelectedPackagingFlight(selectedCombinationFlight));
|
|
48128
|
+
// // onFlightSearch(selectedCombinationFlight); // Trigger search to update accommodation options based on selected flight
|
|
48129
|
+
// dispatch(setFlyInIsOpen(true));
|
|
48130
|
+
// }, [selectedCombinationFlight, dispatch]);
|
|
48131
|
+
useEffect(
|
|
48132
|
+
function () {
|
|
48133
|
+
var _a, _b, _c, _d;
|
|
48134
|
+
if (!context) return;
|
|
48135
|
+
var seed = activeSearchSeed;
|
|
48136
|
+
if (!seed) return;
|
|
48137
|
+
var nextEntry = buildOrUpdatePackagingEntryPartial({
|
|
48138
|
+
sourceEntry:
|
|
48139
|
+
(_a = editablePackagingEntry !== null && editablePackagingEntry !== void 0 ? editablePackagingEntry : context.packagingEntry) !== null &&
|
|
48140
|
+
_a !== void 0
|
|
48141
|
+
? _a
|
|
48142
|
+
: null,
|
|
48143
|
+
selectedHotelCode: selectedPackagingAccoResultCode,
|
|
48144
|
+
accommodationResults: packagingAccoResults,
|
|
48145
|
+
selectedFlight: selectedCombinationFlight !== null && selectedCombinationFlight !== void 0 ? selectedCombinationFlight : null,
|
|
48146
|
+
seed: seed,
|
|
48147
|
+
transactionId:
|
|
48148
|
+
(_c =
|
|
48149
|
+
transactionId !== null && transactionId !== void 0
|
|
48150
|
+
? transactionId
|
|
48151
|
+
: (_b = context.packagingEntry) === null || _b === void 0
|
|
48152
|
+
? void 0
|
|
48153
|
+
: _b.transactionId) !== null && _c !== void 0
|
|
48154
|
+
? _c
|
|
48155
|
+
: '',
|
|
48156
|
+
language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
48157
|
+
});
|
|
48158
|
+
console.log('Built next packaging entry', nextEntry);
|
|
48159
|
+
if (!nextEntry) return;
|
|
48160
|
+
dispatch(setEditablePackagingEntry(nextEntry));
|
|
48161
|
+
if (selectedCombinationFlight) {
|
|
48162
|
+
dispatch(setSelectedPackagingFlight(selectedCombinationFlight));
|
|
48163
|
+
}
|
|
48164
|
+
},
|
|
48165
|
+
[
|
|
48166
|
+
context,
|
|
48167
|
+
activeSearchSeed,
|
|
48168
|
+
selectedPackagingAccoResultCode,
|
|
48169
|
+
packagingAccoResults,
|
|
48170
|
+
packagingAccoSearchDetails,
|
|
48171
|
+
selectedCombinationFlight,
|
|
48172
|
+
transactionId,
|
|
48173
|
+
dispatch
|
|
48174
|
+
]
|
|
48175
|
+
);
|
|
48176
|
+
var removeAccommodationLines = function (lines) {
|
|
48177
|
+
return lines.filter(function (line) {
|
|
48178
|
+
return line.serviceType !== ACCOMMODATION_SERVICE_TYPE;
|
|
48179
|
+
});
|
|
48180
|
+
};
|
|
48181
|
+
var removeFlightLines = function (lines) {
|
|
48182
|
+
return lines.filter(function (line) {
|
|
48183
|
+
return line.serviceType !== FLIGHT_SERVICE_TYPE;
|
|
48184
|
+
});
|
|
48185
|
+
};
|
|
48186
|
+
var buildAccommodationLinesFromSelection = function (selectedHotel, seed) {
|
|
48187
|
+
if (!selectedHotel) return [];
|
|
48188
|
+
var parentGuid = crypto.randomUUID();
|
|
48189
|
+
return selectedHotel.rooms
|
|
48190
|
+
.filter(function (room) {
|
|
48191
|
+
return room.options.some(function (o) {
|
|
48192
|
+
return o.isSelected;
|
|
48193
|
+
});
|
|
48194
|
+
})
|
|
48195
|
+
.map(function (room, index) {
|
|
48196
|
+
var _a, _b, _c, _d, _e;
|
|
48197
|
+
var option = room.options.find(function (o) {
|
|
48198
|
+
return o.isSelected;
|
|
48199
|
+
});
|
|
48200
|
+
var pax =
|
|
48201
|
+
(_b =
|
|
48202
|
+
(_a = seed.rooms) === null || _a === void 0
|
|
48203
|
+
? void 0
|
|
48204
|
+
: _a.flatMap(function (room, roomIndex) {
|
|
48205
|
+
return room.pax.map(function (p, paxIndex) {
|
|
48206
|
+
return {
|
|
48207
|
+
paxId: p.id,
|
|
48208
|
+
room: roomIndex,
|
|
48209
|
+
order: paxIndex
|
|
48210
|
+
};
|
|
48211
|
+
});
|
|
48212
|
+
})) !== null && _b !== void 0
|
|
48213
|
+
? _b
|
|
48214
|
+
: [];
|
|
48215
|
+
return {
|
|
48216
|
+
guid: (_c = option.guid) !== null && _c !== void 0 ? _c : crypto.randomUUID(),
|
|
48217
|
+
moment: '',
|
|
48218
|
+
parentGuid: index === 0 ? null : parentGuid,
|
|
48219
|
+
order: index,
|
|
48220
|
+
isChanged: true,
|
|
48221
|
+
from: selectedHotel.fromDate,
|
|
48222
|
+
to: selectedHotel.toDate,
|
|
48223
|
+
serviceType: ACCOMMODATION_SERVICE_TYPE,
|
|
48224
|
+
productName: selectedHotel.name,
|
|
48225
|
+
productCode: selectedHotel.code,
|
|
48226
|
+
accommodationName: option.accommodationName,
|
|
48227
|
+
accommodationCode: option.accommodationCode,
|
|
48228
|
+
regimeName: option.regimeName,
|
|
48229
|
+
regimeCode: option.regimeCode,
|
|
48230
|
+
country: selectedHotel.countryId ? { id: selectedHotel.countryId, name: selectedHotel.countryName, localizations: [] } : null,
|
|
48231
|
+
region: selectedHotel.regionId ? { id: selectedHotel.regionId, name: selectedHotel.regionName, localizations: [] } : null,
|
|
48232
|
+
oord: selectedHotel.oordId ? { id: selectedHotel.oordId, name: selectedHotel.oordName, localizations: [] } : null,
|
|
48233
|
+
location: selectedHotel.locationId ? { id: selectedHotel.locationId, name: selectedHotel.locationName, localizations: [] } : null,
|
|
48234
|
+
longitude: (_d = selectedHotel.longitude) !== null && _d !== void 0 ? _d : null,
|
|
48235
|
+
latitude: (_e = selectedHotel.latitude) !== null && _e !== void 0 ? _e : null,
|
|
48236
|
+
pax: pax,
|
|
48237
|
+
flightInformation: null
|
|
48238
|
+
};
|
|
48239
|
+
});
|
|
48240
|
+
};
|
|
48241
|
+
var toDateOnlyUtcString = function (value) {
|
|
48242
|
+
var date = new Date(value);
|
|
48243
|
+
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate())).toISOString();
|
|
48244
|
+
};
|
|
48245
|
+
var toTimeOnlyString = function (value) {
|
|
48246
|
+
var date = new Date(value);
|
|
48247
|
+
var hh = String(date.getUTCHours()).padStart(2, '0');
|
|
48248
|
+
var mm = String(date.getUTCMinutes()).padStart(2, '0');
|
|
48249
|
+
var ss = String(date.getUTCSeconds()).padStart(2, '0');
|
|
48250
|
+
return ''.concat(hh, ':').concat(mm, ':').concat(ss);
|
|
48251
|
+
};
|
|
48252
|
+
var mapFlightSegmentsToFlightLines = function (segments) {
|
|
48253
|
+
return segments.map(function (segment) {
|
|
48254
|
+
var _a;
|
|
48255
|
+
return {
|
|
48256
|
+
airlineCode: segment.marketingAirlineCode,
|
|
48257
|
+
airlineDescription: segment.marketingAirlineName,
|
|
48258
|
+
operatingAirlineCode: segment.operatingAirlineCode,
|
|
48259
|
+
operatingAirlineDescription: segment.operatingAirlineName,
|
|
48260
|
+
flightNumber: segment.flightNumber,
|
|
48261
|
+
operatingFlightNumber: (_a = segment.operatingFlightNumber) !== null && _a !== void 0 ? _a : null,
|
|
48262
|
+
departureDate: toDateOnlyUtcString(segment.departureDateTime),
|
|
48263
|
+
departureTime: toTimeOnlyString(segment.departureDateTime),
|
|
48264
|
+
departureAirportCode: segment.departureAirportCode,
|
|
48265
|
+
departureAirportDescription: segment.departureAirportName,
|
|
48266
|
+
arrivalDate: toDateOnlyUtcString(segment.arrivalDateTime),
|
|
48267
|
+
arrivalTime: toTimeOnlyString(segment.arrivalDateTime),
|
|
48268
|
+
arrivalAirportCode: segment.arrivalAirportCode,
|
|
48269
|
+
arrivalAirportDescription: segment.arrivalAirportName,
|
|
48270
|
+
durationInTicks: segment.durationInTicks
|
|
48271
|
+
};
|
|
48272
|
+
});
|
|
48273
|
+
};
|
|
48274
|
+
var buildFlightLabel = function (segments) {
|
|
48275
|
+
var firstSegment = first(segments);
|
|
48276
|
+
var lastSegment = last(segments);
|
|
48277
|
+
if (!firstSegment || !lastSegment) {
|
|
48278
|
+
return { productName: 'Flight', productCode: 'FLIGHT' };
|
|
48279
|
+
}
|
|
48280
|
+
return {
|
|
48281
|
+
productName: ''
|
|
48282
|
+
.concat(firstSegment.departureAirportName, ' - ')
|
|
48283
|
+
.concat(lastSegment.arrivalAirportName, ' (')
|
|
48284
|
+
.concat(firstSegment.marketingAirlineName, ')'),
|
|
48285
|
+
productCode: ''.concat(firstSegment.departureAirportCode, ' ').concat(lastSegment.arrivalAirportCode, '/').concat(firstSegment.marketingAirlineCode)
|
|
48286
|
+
};
|
|
48287
|
+
};
|
|
48288
|
+
var buildFlightLinesFromSelection = function (selectedFlight) {
|
|
48289
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
48290
|
+
if (!selectedFlight) return [];
|
|
48291
|
+
var outwardSegments = (_b = (_a = selectedFlight.outward) === null || _a === void 0 ? void 0 : _a.segments) !== null && _b !== void 0 ? _b : [];
|
|
48292
|
+
var returnSegments = (_d = (_c = selectedFlight.return) === null || _c === void 0 ? void 0 : _c.segments) !== null && _d !== void 0 ? _d : [];
|
|
48293
|
+
if (!outwardSegments.length || !returnSegments.length) return [];
|
|
48294
|
+
var outwardLabel = buildFlightLabel(outwardSegments);
|
|
48295
|
+
var returnLabel = buildFlightLabel(returnSegments);
|
|
48296
|
+
var outwardFirst = first(outwardSegments);
|
|
48297
|
+
var outwardLast = last(outwardSegments);
|
|
48298
|
+
var returnFirst = first(returnSegments);
|
|
48299
|
+
var returnLast = last(returnSegments);
|
|
48300
|
+
var outwardLine = {
|
|
48301
|
+
guid: selectedFlight.outwardGuid,
|
|
48302
|
+
parentGuid: null,
|
|
48303
|
+
order: 0,
|
|
48304
|
+
isChanged: true,
|
|
48305
|
+
from: (_e = outwardFirst === null || outwardFirst === void 0 ? void 0 : outwardFirst.departureDateTime.toString()) !== null && _e !== void 0 ? _e : '',
|
|
48306
|
+
to: (_f = outwardLast === null || outwardLast === void 0 ? void 0 : outwardLast.arrivalDateTime.toString()) !== null && _f !== void 0 ? _f : '',
|
|
48307
|
+
serviceType: FLIGHT_SERVICE_TYPE,
|
|
48308
|
+
productName: outwardLabel.productName,
|
|
48309
|
+
productCode: outwardLabel.productCode,
|
|
48310
|
+
accommodationName:
|
|
48311
|
+
(_g = outwardFirst === null || outwardFirst === void 0 ? void 0 : outwardFirst.metaData) === null || _g === void 0 ? void 0 : _g.farePriceClassName,
|
|
48312
|
+
accommodationCode:
|
|
48313
|
+
(_h = outwardFirst === null || outwardFirst === void 0 ? void 0 : outwardFirst.metaData) === null || _h === void 0 ? void 0 : _h.fareCode,
|
|
48314
|
+
regimeName: null,
|
|
48315
|
+
regimeCode: null,
|
|
48316
|
+
country: null,
|
|
48317
|
+
region: null,
|
|
48318
|
+
oord: null,
|
|
48319
|
+
location: null,
|
|
48320
|
+
longitude: null,
|
|
48321
|
+
latitude: null,
|
|
48322
|
+
// pax: allPaxAssignments,
|
|
48323
|
+
flightInformation: {
|
|
48324
|
+
pnr: '',
|
|
48325
|
+
flightLines: mapFlightSegmentsToFlightLines(outwardSegments)
|
|
48326
|
+
}
|
|
48327
|
+
};
|
|
48328
|
+
var returnLine = {
|
|
48329
|
+
guid: selectedFlight.returnGuid,
|
|
48330
|
+
parentGuid: selectedFlight.outwardGuid,
|
|
48331
|
+
order: 1,
|
|
48332
|
+
isChanged: true,
|
|
48333
|
+
from: (_j = returnFirst === null || returnFirst === void 0 ? void 0 : returnFirst.departureDateTime.toString()) !== null && _j !== void 0 ? _j : '',
|
|
48334
|
+
to: (_k = returnLast === null || returnLast === void 0 ? void 0 : returnLast.departureDateTime.toString()) !== null && _k !== void 0 ? _k : '',
|
|
48335
|
+
serviceType: FLIGHT_SERVICE_TYPE,
|
|
48336
|
+
productName: returnLabel.productName,
|
|
48337
|
+
productCode: returnLabel.productCode,
|
|
48338
|
+
accommodationName:
|
|
48339
|
+
(_l = returnFirst === null || returnFirst === void 0 ? void 0 : returnFirst.metaData) === null || _l === void 0 ? void 0 : _l.farePriceClassName,
|
|
48340
|
+
accommodationCode: (_m = returnFirst === null || returnFirst === void 0 ? void 0 : returnFirst.metaData) === null || _m === void 0 ? void 0 : _m.fareCode,
|
|
48341
|
+
regimeName: null,
|
|
48342
|
+
regimeCode: null,
|
|
48343
|
+
country: null,
|
|
48344
|
+
region: null,
|
|
48345
|
+
oord: null,
|
|
48346
|
+
location: null,
|
|
48347
|
+
longitude: null,
|
|
48348
|
+
latitude: null,
|
|
48349
|
+
// pax: allPaxAssignments,
|
|
48350
|
+
flightInformation: {
|
|
48351
|
+
pnr: '',
|
|
48352
|
+
flightLines: mapFlightSegmentsToFlightLines(returnSegments)
|
|
48353
|
+
}
|
|
48354
|
+
};
|
|
48355
|
+
return [outwardLine, returnLine];
|
|
48356
|
+
};
|
|
48357
|
+
var buildOrUpdatePackagingEntryPartial = function (_a) {
|
|
48358
|
+
var _b, _c;
|
|
48359
|
+
var sourceEntry = _a.sourceEntry,
|
|
48360
|
+
selectedHotelCode = _a.selectedHotelCode,
|
|
48361
|
+
accommodationResults = _a.accommodationResults,
|
|
48362
|
+
selectedFlight = _a.selectedFlight,
|
|
48363
|
+
seed = _a.seed,
|
|
48364
|
+
transactionId = _a.transactionId,
|
|
48365
|
+
language = _a.language;
|
|
48366
|
+
if (!((_b = seed === null || seed === void 0 ? void 0 : seed.rooms) === null || _b === void 0 ? void 0 : _b.length)) return null;
|
|
48367
|
+
var entry = buildBasePackagingEntry(sourceEntry, seed, transactionId, language);
|
|
48368
|
+
var nextLines = __spreadArray([], (_c = entry.lines) !== null && _c !== void 0 ? _c : [], true);
|
|
48369
|
+
var selectedHotel = selectedHotelCode
|
|
48370
|
+
? accommodationResults.find(function (r) {
|
|
48371
|
+
return r.code === selectedHotelCode;
|
|
48372
|
+
})
|
|
48373
|
+
: null;
|
|
48374
|
+
console.log('Selected hotel for packaging entry', selectedHotel);
|
|
48375
|
+
// Update accommodation only when enough data exists
|
|
48376
|
+
if (selectedHotel) {
|
|
48377
|
+
var accommodationLines = buildAccommodationLinesFromSelection(selectedHotel, seed);
|
|
48378
|
+
if (accommodationLines.length) {
|
|
48379
|
+
nextLines = removeAccommodationLines(nextLines);
|
|
48380
|
+
nextLines = __spreadArray(__spreadArray([], nextLines, true), accommodationLines, true);
|
|
48381
|
+
}
|
|
48382
|
+
}
|
|
48383
|
+
// Update flights only when full selected combination exists
|
|
48384
|
+
if (selectedFlight) {
|
|
48385
|
+
var flightLines = buildFlightLinesFromSelection(selectedFlight);
|
|
48386
|
+
console.log('selectedFlight', selectedFlight);
|
|
48387
|
+
console.log('Built flight lines from selection', flightLines);
|
|
48388
|
+
if (flightLines.length) {
|
|
48389
|
+
nextLines = removeFlightLines(nextLines);
|
|
48390
|
+
nextLines = __spreadArray(__spreadArray([], nextLines, true), flightLines, true);
|
|
48391
|
+
}
|
|
48392
|
+
}
|
|
48393
|
+
nextLines = nextLines.map(function (line, index) {
|
|
48394
|
+
return __assign(__assign({}, line), { order: index });
|
|
48395
|
+
});
|
|
48396
|
+
return __assign(__assign({}, entry), { language: language, transactionId: transactionId, pax: entry.pax, lines: nextLines });
|
|
48397
|
+
};
|
|
48398
|
+
var buildBasePackagingEntry = function (sourceEntry, seed, transactionId, language) {
|
|
48399
|
+
var _a, _b;
|
|
48400
|
+
if (sourceEntry) {
|
|
48401
|
+
return structuredClone(sourceEntry);
|
|
48402
|
+
}
|
|
48403
|
+
var paxId = 1;
|
|
48404
|
+
var pax =
|
|
48405
|
+
(_b =
|
|
48406
|
+
(_a = seed.rooms) === null || _a === void 0
|
|
48407
|
+
? void 0
|
|
48408
|
+
: _a.flatMap(function (room, roomIndex) {
|
|
48409
|
+
return room.pax.map(function (_, paxIndex) {
|
|
48410
|
+
return {
|
|
48411
|
+
id: paxId++,
|
|
48412
|
+
firstName: '',
|
|
48413
|
+
lastName: '',
|
|
48414
|
+
dateOfBirth: null,
|
|
48415
|
+
isMainBooker: roomIndex === 0 && paxIndex === 0
|
|
48416
|
+
};
|
|
48417
|
+
});
|
|
48418
|
+
})) !== null && _b !== void 0
|
|
48419
|
+
? _b
|
|
48420
|
+
: [];
|
|
48421
|
+
return {
|
|
48422
|
+
language: language,
|
|
48423
|
+
transactionId: transactionId,
|
|
48424
|
+
dossierNumber: '',
|
|
48425
|
+
status: 0,
|
|
48426
|
+
bookingDate: null,
|
|
48427
|
+
price: 0,
|
|
48428
|
+
depositAmount: 0,
|
|
48429
|
+
pax: pax,
|
|
48430
|
+
lines: []
|
|
48431
|
+
};
|
|
48432
|
+
};
|
|
48099
48433
|
return React__default.createElement(
|
|
48100
48434
|
'div',
|
|
48101
48435
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -48213,13 +48547,11 @@ var SearchResultsContainer = function () {
|
|
|
48213
48547
|
'span',
|
|
48214
48548
|
{ className: 'search__result-row-text' },
|
|
48215
48549
|
!isLoading &&
|
|
48216
|
-
|
|
48550
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.AccommodationAndFlight &&
|
|
48217
48551
|
React__default.createElement(
|
|
48218
48552
|
React__default.Fragment,
|
|
48219
48553
|
null,
|
|
48220
|
-
|
|
48221
|
-
context.searchConfiguration.enableManualPackaging) ||
|
|
48222
|
-
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation) &&
|
|
48554
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation &&
|
|
48223
48555
|
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
48224
48556
|
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length),
|
|
48225
48557
|
context.searchConfiguration.qsmType !== build.PortalQsmType.Accommodation &&
|
|
@@ -48268,22 +48600,113 @@ var SearchResultsContainer = function () {
|
|
|
48268
48600
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48269
48601
|
!context.packagingEntry &&
|
|
48270
48602
|
context.showFlightResults &&
|
|
48271
|
-
|
|
48272
|
-
|
|
48273
|
-
|
|
48274
|
-
|
|
48275
|
-
|
|
48603
|
+
// bookingPackageDetails?.outwardFlights &&
|
|
48604
|
+
// <FlightResults flights={bookingPackageDetails?.outwardFlights} isDeparture={true} />
|
|
48605
|
+
React__default.createElement(
|
|
48606
|
+
React__default.Fragment,
|
|
48607
|
+
null,
|
|
48608
|
+
React__default.createElement(
|
|
48609
|
+
'div',
|
|
48610
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
48611
|
+
React__default.createElement(
|
|
48612
|
+
'div',
|
|
48613
|
+
{ className: 'search__results__label__date' },
|
|
48614
|
+
React__default.createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
48615
|
+
),
|
|
48616
|
+
React__default.createElement(
|
|
48617
|
+
'div',
|
|
48618
|
+
{ className: 'search__results__label__text' },
|
|
48619
|
+
React__default.createElement(
|
|
48620
|
+
'h3',
|
|
48621
|
+
null,
|
|
48622
|
+
translations.SRP.SELECT,
|
|
48623
|
+
' ',
|
|
48624
|
+
React__default.createElement('strong', null, ' ', translations.SRP.DEPARTURE)
|
|
48625
|
+
)
|
|
48626
|
+
)
|
|
48627
|
+
),
|
|
48628
|
+
React__default.createElement(
|
|
48629
|
+
'div',
|
|
48630
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
48631
|
+
selectedOutwardKey && selectedOutward
|
|
48632
|
+
? React__default.createElement(IndependentFlightOption, {
|
|
48633
|
+
key: 'flight-'.concat(selectedOutwardKey),
|
|
48634
|
+
item: selectedOutward.outward,
|
|
48635
|
+
guid: selectedOutward.outwardGuid,
|
|
48636
|
+
onSelect: function () {
|
|
48637
|
+
return setSelectedOutwardKey(null);
|
|
48638
|
+
},
|
|
48639
|
+
selectedGuid: selectedOutward.outwardGuid,
|
|
48640
|
+
isOutward: true
|
|
48641
|
+
})
|
|
48642
|
+
: uniqueOutwardFlights.map(function (result) {
|
|
48643
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
48644
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
48645
|
+
item: result.outward,
|
|
48646
|
+
onSelect: function () {
|
|
48647
|
+
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
48648
|
+
},
|
|
48649
|
+
guid: result.outwardGuid,
|
|
48650
|
+
isOutward: true
|
|
48651
|
+
});
|
|
48652
|
+
})
|
|
48653
|
+
)
|
|
48654
|
+
),
|
|
48276
48655
|
context.showHotelAccommodationResults &&
|
|
48277
48656
|
!context.packagingEntry &&
|
|
48278
48657
|
React__default.createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
48279
48658
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48280
48659
|
!context.packagingEntry &&
|
|
48281
48660
|
context.showFlightResults &&
|
|
48282
|
-
|
|
48283
|
-
|
|
48284
|
-
|
|
48285
|
-
|
|
48286
|
-
|
|
48661
|
+
// bookingPackageDetails?.returnFlights &&
|
|
48662
|
+
// <FlightResults flights={bookingPackageDetails?.returnFlights} isDeparture={false} />
|
|
48663
|
+
React__default.createElement(
|
|
48664
|
+
React__default.Fragment,
|
|
48665
|
+
null,
|
|
48666
|
+
React__default.createElement(
|
|
48667
|
+
'div',
|
|
48668
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
48669
|
+
React__default.createElement(
|
|
48670
|
+
'div',
|
|
48671
|
+
{ className: 'search__results__label__date' },
|
|
48672
|
+
React__default.createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
48673
|
+
),
|
|
48674
|
+
React__default.createElement(
|
|
48675
|
+
'div',
|
|
48676
|
+
{ className: 'search__results__label__text' },
|
|
48677
|
+
React__default.createElement(
|
|
48678
|
+
'h3',
|
|
48679
|
+
null,
|
|
48680
|
+
translations.SRP.SELECT,
|
|
48681
|
+
' ',
|
|
48682
|
+
React__default.createElement('strong', null, ' ', translations.SRP.RETURN)
|
|
48683
|
+
)
|
|
48684
|
+
)
|
|
48685
|
+
),
|
|
48686
|
+
React__default.createElement(
|
|
48687
|
+
'div',
|
|
48688
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
48689
|
+
selectedReturnKey && selectedReturn
|
|
48690
|
+
? React__default.createElement(IndependentFlightOption, {
|
|
48691
|
+
key: 'flight-'.concat(selectedReturnKey),
|
|
48692
|
+
item: selectedReturn.return,
|
|
48693
|
+
guid: selectedReturn.outwardGuid,
|
|
48694
|
+
selectedGuid: selectedReturn.outwardGuid,
|
|
48695
|
+
isOutward: false
|
|
48696
|
+
})
|
|
48697
|
+
: uniqueReturnFlights.map(function (result) {
|
|
48698
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
48699
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
48700
|
+
item: result.return,
|
|
48701
|
+
onSelect: function () {
|
|
48702
|
+
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
48703
|
+
},
|
|
48704
|
+
guid: result.outwardGuid,
|
|
48705
|
+
isOutward: false
|
|
48706
|
+
});
|
|
48707
|
+
})
|
|
48708
|
+
)
|
|
48709
|
+
),
|
|
48287
48710
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48288
48711
|
context.packagingEntry &&
|
|
48289
48712
|
itinerary &&
|
|
@@ -55734,5 +56157,6 @@ export {
|
|
|
55734
56157
|
PhotoGallery,
|
|
55735
56158
|
QSM,
|
|
55736
56159
|
SearchResults,
|
|
55737
|
-
Slider
|
|
56160
|
+
Slider,
|
|
56161
|
+
Spinner
|
|
55738
56162
|
};
|