@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-cjs/index.js
CHANGED
|
@@ -13417,6 +13417,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13417
13417
|
var ENDPOINT = '/api/web/packaging';
|
|
13418
13418
|
var ENDPOINT_START_TRANSACTION = ENDPOINT + '/start';
|
|
13419
13419
|
var ENDPOINT_ACCOMMODATIONS = ENDPOINT + '/accommodations';
|
|
13420
|
+
var ENDPOINT_FLIGHTS = ENDPOINT + '/flights';
|
|
13420
13421
|
var ENDPOINT_PRICE_DETAILS = ENDPOINT + '/price-details';
|
|
13421
13422
|
var ENDPOINT_ITINERARY = ENDPOINT + '/itinerary';
|
|
13422
13423
|
var ENDPOINT_ENTRY = function (magicLinkCode) {
|
|
@@ -13433,6 +13434,12 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13433
13434
|
var body = JSON.stringify(request);
|
|
13434
13435
|
return post(url, apiKey, body, config.token, signal, true);
|
|
13435
13436
|
};
|
|
13437
|
+
var searchPackagingFlights = function (config, request, signal) {
|
|
13438
|
+
var url = '' + config.host + ENDPOINT_FLIGHTS;
|
|
13439
|
+
var apiKey = config.apiKey;
|
|
13440
|
+
var body = JSON.stringify(request);
|
|
13441
|
+
return post(url, apiKey, body, config.token, signal, true);
|
|
13442
|
+
};
|
|
13436
13443
|
var getEntry = function (config, magicLinkCode, signal) {
|
|
13437
13444
|
var apiKey = config.apiKey;
|
|
13438
13445
|
var url = '' + config.host + ENDPOINT_ENTRY(magicLinkCode);
|
|
@@ -13524,6 +13531,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13524
13531
|
exports.searchLocations = searchLocations;
|
|
13525
13532
|
exports.searchOords = searchOords;
|
|
13526
13533
|
exports.searchPackagingAccommodations = searchPackagingAccommodations;
|
|
13534
|
+
exports.searchPackagingFlights = searchPackagingFlights;
|
|
13527
13535
|
exports.searchRegions = searchRegions;
|
|
13528
13536
|
exports.searchWithErrorMapping = searchWithErrorMapping;
|
|
13529
13537
|
exports.setCustomEntryStatus = setCustomEntryStatus;
|
|
@@ -20511,7 +20519,7 @@ var getFlightDetails = function (flight) {
|
|
|
20511
20519
|
arrivalDate: lastLine.arrivalDate,
|
|
20512
20520
|
arrivalTime: lastLine.arrivalTime,
|
|
20513
20521
|
arrivalAirport: lastLine.arrivalAirportDescription,
|
|
20514
|
-
travelDuration: formatDuration
|
|
20522
|
+
travelDuration: formatDuration(flight.flightMetaData.durationInTicks),
|
|
20515
20523
|
travelDurationMinutes: minutesFromTicks(flight.flightMetaData.durationInTicks),
|
|
20516
20524
|
changeDurationMinutes: getTotalChangeDuration(flight),
|
|
20517
20525
|
numberOfStops: flight.flightMetaData.flightLines.length - 1,
|
|
@@ -20527,7 +20535,7 @@ var getFlightDetails = function (flight) {
|
|
|
20527
20535
|
arrivalTime: x.arrivalTime,
|
|
20528
20536
|
arrivalAirport: x.arrivalAirportDescription,
|
|
20529
20537
|
number: ''.concat(x.airlineCode, ' ').concat(x.number),
|
|
20530
|
-
travelDuration: formatDuration
|
|
20538
|
+
travelDuration: formatDuration(x.durationInTicks),
|
|
20531
20539
|
waitDuration: waitDurations.length - 1 <= i ? waitDurations[i] : undefined
|
|
20532
20540
|
};
|
|
20533
20541
|
})
|
|
@@ -20603,7 +20611,7 @@ var minutesFromTicks = function (ticks) {
|
|
|
20603
20611
|
var totalSeconds = ticks / 10000000;
|
|
20604
20612
|
return Math.floor(totalSeconds / 60);
|
|
20605
20613
|
};
|
|
20606
|
-
var formatDuration
|
|
20614
|
+
var formatDuration = function (ticks) {
|
|
20607
20615
|
if (!ticks) return '';
|
|
20608
20616
|
var totalSeconds = ticks / 10000000;
|
|
20609
20617
|
var hh = Math.floor(totalSeconds / 3600);
|
|
@@ -33816,10 +33824,13 @@ var initialState$1 = {
|
|
|
33816
33824
|
filteredPackagingAccoResults: [],
|
|
33817
33825
|
packagingAccoSearchDetails: [],
|
|
33818
33826
|
selectedPackagingAccoResultCode: null,
|
|
33827
|
+
packagingFlightResults: [],
|
|
33828
|
+
selectedPackagingFlight: null,
|
|
33819
33829
|
selectedFlight: null,
|
|
33820
33830
|
selectedFlightDetails: null,
|
|
33821
33831
|
bookingPackageDetails: null,
|
|
33822
33832
|
isLoading: false,
|
|
33833
|
+
flightsLoading: false,
|
|
33823
33834
|
filters: [],
|
|
33824
33835
|
selectedSortType: null,
|
|
33825
33836
|
activeTab: 'compact',
|
|
@@ -33856,6 +33867,12 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33856
33867
|
setSelectedPackagingAccoResult: function (state, action) {
|
|
33857
33868
|
state.selectedPackagingAccoResultCode = action.payload;
|
|
33858
33869
|
},
|
|
33870
|
+
setPackagingFlightResults: function (state, action) {
|
|
33871
|
+
state.packagingFlightResults = action.payload;
|
|
33872
|
+
},
|
|
33873
|
+
setSelectedPackagingFlight: function (state, action) {
|
|
33874
|
+
state.selectedPackagingFlight = action.payload;
|
|
33875
|
+
},
|
|
33859
33876
|
setSelectedFlight: function (state, action) {
|
|
33860
33877
|
state.selectedFlight = action.payload;
|
|
33861
33878
|
},
|
|
@@ -33878,6 +33895,9 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33878
33895
|
setIsLoading: function (state, action) {
|
|
33879
33896
|
state.isLoading = action.payload;
|
|
33880
33897
|
},
|
|
33898
|
+
setFlightsLoading: function (state, action) {
|
|
33899
|
+
state.flightsLoading = action.payload;
|
|
33900
|
+
},
|
|
33881
33901
|
setFilters: function (state, action) {
|
|
33882
33902
|
var updatedFilters = action.payload;
|
|
33883
33903
|
updatedFilters.forEach(function (updatedFilter) {
|
|
@@ -33938,11 +33958,14 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33938
33958
|
setFilteredPackagingAccoResults = _a.setFilteredPackagingAccoResults,
|
|
33939
33959
|
setPackagingAccoSearchDetails = _a.setPackagingAccoSearchDetails,
|
|
33940
33960
|
setSelectedPackagingAccoResult = _a.setSelectedPackagingAccoResult,
|
|
33961
|
+
setPackagingFlightResults = _a.setPackagingFlightResults,
|
|
33962
|
+
setSelectedPackagingFlight = _a.setSelectedPackagingFlight,
|
|
33941
33963
|
setSelectedFlight = _a.setSelectedFlight,
|
|
33942
33964
|
setSelectedFlightDetails = _a.setSelectedFlightDetails,
|
|
33943
|
-
setBookingPackageDetails = _a.setBookingPackageDetails
|
|
33944
|
-
|
|
33945
|
-
|
|
33965
|
+
setBookingPackageDetails = _a.setBookingPackageDetails;
|
|
33966
|
+
_a.selectFlight;
|
|
33967
|
+
var setIsLoading = _a.setIsLoading,
|
|
33968
|
+
setFlightsLoading = _a.setFlightsLoading,
|
|
33946
33969
|
setFilters = _a.setFilters,
|
|
33947
33970
|
resetFilters = _a.resetFilters,
|
|
33948
33971
|
setSortType = _a.setSortType,
|
|
@@ -35314,8 +35337,6 @@ var Itinerary = function (_a) {
|
|
|
35314
35337
|
segments: segments
|
|
35315
35338
|
};
|
|
35316
35339
|
});
|
|
35317
|
-
console.log('otherSegments', otherSegments);
|
|
35318
|
-
console.log('groupedOtherSegments', groupedOtherSegments);
|
|
35319
35340
|
var numberOfPax = ((_p = packagingEntry.pax) === null || _p === void 0 ? void 0 : _p.length) || 1;
|
|
35320
35341
|
var totalPrice = (priceDetails === null || priceDetails === void 0 ? void 0 : priceDetails.total) || packagingEntry.price || 0;
|
|
35321
35342
|
var pricePerPerson = totalPrice / numberOfPax;
|
|
@@ -36899,6 +36920,14 @@ var Icon = function (_a) {
|
|
|
36899
36920
|
}
|
|
36900
36921
|
};
|
|
36901
36922
|
|
|
36923
|
+
var getFlightKey = function (segments) {
|
|
36924
|
+
if (!segments || segments.length === 0) return '';
|
|
36925
|
+
return segments
|
|
36926
|
+
.map(function (s) {
|
|
36927
|
+
return ''.concat(s.marketingAirlineCode).concat(s.flightNumber, '_').concat(s.departureDateTime);
|
|
36928
|
+
})
|
|
36929
|
+
.join('_');
|
|
36930
|
+
};
|
|
36902
36931
|
// export const getAirportName = (airport: TideAirport | undefined, language: string): string => {
|
|
36903
36932
|
// if (!airport || !airport.name) {
|
|
36904
36933
|
// return "";
|
|
@@ -38459,13 +38488,11 @@ var FlightsFlyIn = function (_a) {
|
|
|
38459
38488
|
};
|
|
38460
38489
|
|
|
38461
38490
|
var formatPrice$1 = function (price, currencyCode) {
|
|
38462
|
-
if (currencyCode === void 0) {
|
|
38463
|
-
currencyCode = 'EUR';
|
|
38464
|
-
}
|
|
38465
38491
|
if (typeof price !== 'number') return '';
|
|
38492
|
+
var safeCurrency = currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR';
|
|
38466
38493
|
return new Intl.NumberFormat('nl-BE', {
|
|
38467
38494
|
style: 'currency',
|
|
38468
|
-
currency:
|
|
38495
|
+
currency: safeCurrency
|
|
38469
38496
|
}).format(price);
|
|
38470
38497
|
};
|
|
38471
38498
|
var AccommodationFlyIn = function (_a) {
|
|
@@ -44138,266 +44165,6 @@ var RoundTripResults = function () {
|
|
|
44138
44165
|
);
|
|
44139
44166
|
};
|
|
44140
44167
|
|
|
44141
|
-
var ticksToMinutes = function (ticks) {
|
|
44142
|
-
return Math.floor(ticks / 600000000);
|
|
44143
|
-
};
|
|
44144
|
-
var formatDuration = function (ticks) {
|
|
44145
|
-
var minutes = ticksToMinutes(ticks);
|
|
44146
|
-
var h = Math.floor(minutes / 60);
|
|
44147
|
-
var m = minutes % 60;
|
|
44148
|
-
return ''.concat(h, 'h ').concat(m, 'm');
|
|
44149
|
-
};
|
|
44150
|
-
var FlightResults = function (_a) {
|
|
44151
|
-
var _b;
|
|
44152
|
-
var flights = _a.flights,
|
|
44153
|
-
isDeparture = _a.isDeparture;
|
|
44154
|
-
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44155
|
-
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44156
|
-
var dispatch = reactRedux.useDispatch();
|
|
44157
|
-
var _c = React.useState(null),
|
|
44158
|
-
activeDetailId = _c[0],
|
|
44159
|
-
setActiveDetailId = _c[1];
|
|
44160
|
-
var handleDetailClick = function (flightOptionId) {
|
|
44161
|
-
setActiveDetailId(function (prev) {
|
|
44162
|
-
return prev === flightOptionId ? null : flightOptionId;
|
|
44163
|
-
});
|
|
44164
|
-
};
|
|
44165
|
-
var firstResult = flights === null || flights === void 0 ? void 0 : flights[0];
|
|
44166
|
-
var firstResultDate = (firstResult === null || firstResult === void 0 ? void 0 : firstResult.startDateTime)
|
|
44167
|
-
? dateFns.parseISO(firstResult.startDateTime)
|
|
44168
|
-
: null;
|
|
44169
|
-
return React__default['default'].createElement(
|
|
44170
|
-
React__default['default'].Fragment,
|
|
44171
|
-
null,
|
|
44172
|
-
React__default['default'].createElement(
|
|
44173
|
-
'div',
|
|
44174
|
-
{ className: 'search__results__label' },
|
|
44175
|
-
React__default['default'].createElement(
|
|
44176
|
-
'div',
|
|
44177
|
-
{ className: 'search__results__label__date' },
|
|
44178
|
-
firstResultDate &&
|
|
44179
|
-
React__default['default'].createElement(
|
|
44180
|
-
React__default['default'].Fragment,
|
|
44181
|
-
null,
|
|
44182
|
-
React__default['default'].createElement('p', { className: 'search__results__label__date-date' }, dateFns.format(firstResultDate, 'd')),
|
|
44183
|
-
React__default['default'].createElement('p', null, dateFns.format(firstResultDate, 'MMM'))
|
|
44184
|
-
)
|
|
44185
|
-
),
|
|
44186
|
-
React__default['default'].createElement(
|
|
44187
|
-
'div',
|
|
44188
|
-
{ className: 'search__results__label__text' },
|
|
44189
|
-
React__default['default'].createElement(
|
|
44190
|
-
'h3',
|
|
44191
|
-
null,
|
|
44192
|
-
translations.SRP.SELECT,
|
|
44193
|
-
' ',
|
|
44194
|
-
React__default['default'].createElement('strong', null, isDeparture ? translations.SRP.DEPARTURE : translations.SRP.RETURN)
|
|
44195
|
-
)
|
|
44196
|
-
)
|
|
44197
|
-
),
|
|
44198
|
-
flights &&
|
|
44199
|
-
flights.length > 0 &&
|
|
44200
|
-
React__default['default'].createElement(
|
|
44201
|
-
'div',
|
|
44202
|
-
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44203
|
-
flights.map(function (flight, index) {
|
|
44204
|
-
var lines = flight.flightMetaData.flightLines;
|
|
44205
|
-
var firstLine = lines[0];
|
|
44206
|
-
var lastLine = lines[lines.length - 1];
|
|
44207
|
-
var stops = lines.length - 1;
|
|
44208
|
-
return React__default['default'].createElement(
|
|
44209
|
-
'div',
|
|
44210
|
-
{ className: 'flight', key: 'flight-'.concat(flight.flightId, '-').concat(index) },
|
|
44211
|
-
React__default['default'].createElement(
|
|
44212
|
-
'div',
|
|
44213
|
-
{ className: 'flight__option' },
|
|
44214
|
-
React__default['default'].createElement(
|
|
44215
|
-
'div',
|
|
44216
|
-
{ className: 'flight__content' },
|
|
44217
|
-
React__default['default'].createElement(
|
|
44218
|
-
'div',
|
|
44219
|
-
{ className: 'flight__flights' },
|
|
44220
|
-
React__default['default'].createElement(
|
|
44221
|
-
'div',
|
|
44222
|
-
{ className: 'flight__flight' },
|
|
44223
|
-
React__default['default'].createElement(
|
|
44224
|
-
'div',
|
|
44225
|
-
{ className: 'flight__flight__header' },
|
|
44226
|
-
React__default['default'].createElement('div', { className: 'flight__status__container' }),
|
|
44227
|
-
React__default['default'].createElement(
|
|
44228
|
-
'div',
|
|
44229
|
-
{ className: 'flight__price' },
|
|
44230
|
-
React__default['default'].createElement('span', { className: 'price' }, '\u20AC ', flight.price.toFixed(2)),
|
|
44231
|
-
React__default['default'].createElement(
|
|
44232
|
-
'button',
|
|
44233
|
-
{
|
|
44234
|
-
type: 'button',
|
|
44235
|
-
className: 'cta '.concat(flight.isSelected ? 'cta--selected' : 'cta--select'),
|
|
44236
|
-
onClick: function () {
|
|
44237
|
-
return dispatch(selectFlight({ flightOptionId: flight.flightOptionId, isDeparture: !!isDeparture }));
|
|
44238
|
-
}
|
|
44239
|
-
},
|
|
44240
|
-
flight.isSelected ? 'Selected' : 'Select'
|
|
44241
|
-
)
|
|
44242
|
-
)
|
|
44243
|
-
)
|
|
44244
|
-
),
|
|
44245
|
-
React__default['default'].createElement(
|
|
44246
|
-
'div',
|
|
44247
|
-
{ className: 'flight__flight' },
|
|
44248
|
-
React__default['default'].createElement(
|
|
44249
|
-
'div',
|
|
44250
|
-
{ className: 'flight__flight__container' },
|
|
44251
|
-
React__default['default'].createElement(
|
|
44252
|
-
'div',
|
|
44253
|
-
{ className: 'flight__flight__wrapper' },
|
|
44254
|
-
React__default['default'].createElement(
|
|
44255
|
-
'div',
|
|
44256
|
-
{ className: 'flight__logo__wrapper' },
|
|
44257
|
-
React__default['default'].createElement('img', {
|
|
44258
|
-
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(firstLine.airlineCode, '.png?height=256'),
|
|
44259
|
-
alt: flight.airlineDescription,
|
|
44260
|
-
className: 'flight__logo'
|
|
44261
|
-
}),
|
|
44262
|
-
React__default['default'].createElement('span', null, flight.airlineDescription)
|
|
44263
|
-
),
|
|
44264
|
-
React__default['default'].createElement(
|
|
44265
|
-
'div',
|
|
44266
|
-
{ className: 'flight__info' },
|
|
44267
|
-
React__default['default'].createElement(
|
|
44268
|
-
'div',
|
|
44269
|
-
{ className: 'flight__info__times' },
|
|
44270
|
-
React__default['default'].createElement('strong', null, firstLine.departureTime, ' ', firstLine.departureAirport),
|
|
44271
|
-
React__default['default'].createElement('p', null, dateFns.format(dateFns.parseISO(firstLine.departureDate), 'EEE dd MMM yyyy'))
|
|
44272
|
-
),
|
|
44273
|
-
React__default['default'].createElement(
|
|
44274
|
-
'div',
|
|
44275
|
-
{ className: 'flight__info__duration' },
|
|
44276
|
-
React__default['default'].createElement('p', null, formatDuration(flight.flightMetaData.durationInTicks)),
|
|
44277
|
-
React__default['default'].createElement(
|
|
44278
|
-
'div',
|
|
44279
|
-
{ className: 'flight__info__duration__stops' },
|
|
44280
|
-
stops > 0 && React__default['default'].createElement('div', { className: 'flight__info__duration__stop' })
|
|
44281
|
-
),
|
|
44282
|
-
React__default['default'].createElement(
|
|
44283
|
-
'span',
|
|
44284
|
-
null,
|
|
44285
|
-
stops === 0
|
|
44286
|
-
? translations.SRP.DIRECT
|
|
44287
|
-
: ''
|
|
44288
|
-
.concat(stops, ' ')
|
|
44289
|
-
.concat(translations.SRP.STOP)
|
|
44290
|
-
.concat(stops > 1 ? 's' : '')
|
|
44291
|
-
)
|
|
44292
|
-
),
|
|
44293
|
-
React__default['default'].createElement(
|
|
44294
|
-
'div',
|
|
44295
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44296
|
-
React__default['default'].createElement('strong', null, lastLine.arrivalTime, ' ', lastLine.arrivalAirport),
|
|
44297
|
-
React__default['default'].createElement('p', null, dateFns.format(dateFns.parseISO(lastLine.arrivalDate), 'EEE dd MMM yyyy'))
|
|
44298
|
-
)
|
|
44299
|
-
)
|
|
44300
|
-
),
|
|
44301
|
-
React__default['default'].createElement(
|
|
44302
|
-
'div',
|
|
44303
|
-
{ className: 'flight__detail__btn__wrapper' },
|
|
44304
|
-
React__default['default'].createElement(
|
|
44305
|
-
'div',
|
|
44306
|
-
{
|
|
44307
|
-
className: 'flight__detail__btn '.concat(activeDetailId === flight.flightOptionId ? 'flight__detail__btn--active' : ''),
|
|
44308
|
-
onClick: function () {
|
|
44309
|
-
return handleDetailClick(flight.flightOptionId);
|
|
44310
|
-
}
|
|
44311
|
-
},
|
|
44312
|
-
React__default['default'].createElement(Icon$1, {
|
|
44313
|
-
name: 'ui-chevron',
|
|
44314
|
-
className: 'flight__detail__btn__arrow',
|
|
44315
|
-
width: 16,
|
|
44316
|
-
height: 16
|
|
44317
|
-
})
|
|
44318
|
-
)
|
|
44319
|
-
)
|
|
44320
|
-
),
|
|
44321
|
-
React__default['default'].createElement(
|
|
44322
|
-
'div',
|
|
44323
|
-
{ className: 'flight__detail '.concat(activeDetailId === flight.flightOptionId ? 'flight__detail--active' : '') },
|
|
44324
|
-
lines.map(function (line, index) {
|
|
44325
|
-
var nextLine = lines[index + 1];
|
|
44326
|
-
return React__default['default'].createElement(
|
|
44327
|
-
React__default['default'].Fragment,
|
|
44328
|
-
{ key: index },
|
|
44329
|
-
React__default['default'].createElement(
|
|
44330
|
-
'div',
|
|
44331
|
-
{ className: 'flight__info' },
|
|
44332
|
-
React__default['default'].createElement(
|
|
44333
|
-
'div',
|
|
44334
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44335
|
-
React__default['default'].createElement(
|
|
44336
|
-
'div',
|
|
44337
|
-
{ className: 'flight__info__times' },
|
|
44338
|
-
React__default['default'].createElement('p', null, line.departureTime),
|
|
44339
|
-
React__default['default'].createElement('strong', null, line.departureAirport),
|
|
44340
|
-
React__default['default'].createElement('p', null, dateFns.format(dateFns.parseISO(line.departureDate), 'EEE dd MMM yyyy'))
|
|
44341
|
-
),
|
|
44342
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 })
|
|
44343
|
-
),
|
|
44344
|
-
React__default['default'].createElement(
|
|
44345
|
-
'div',
|
|
44346
|
-
{ className: 'flight__info__duration' },
|
|
44347
|
-
React__default['default'].createElement('p', null, formatDuration(line.durationInTicks)),
|
|
44348
|
-
React__default['default'].createElement('span', null, line.airline, ' ', line.number)
|
|
44349
|
-
),
|
|
44350
|
-
React__default['default'].createElement(
|
|
44351
|
-
'div',
|
|
44352
|
-
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44353
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 }),
|
|
44354
|
-
React__default['default'].createElement(
|
|
44355
|
-
'div',
|
|
44356
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44357
|
-
React__default['default'].createElement('p', null, line.arrivalTime),
|
|
44358
|
-
React__default['default'].createElement('strong', null, line.arrivalAirport),
|
|
44359
|
-
React__default['default'].createElement('p', null, dateFns.format(dateFns.parseISO(line.arrivalDate), 'EEE dd MMM yyyy'))
|
|
44360
|
-
)
|
|
44361
|
-
)
|
|
44362
|
-
),
|
|
44363
|
-
nextLine &&
|
|
44364
|
-
React__default['default'].createElement(
|
|
44365
|
-
'div',
|
|
44366
|
-
{ className: 'flight__info' },
|
|
44367
|
-
React__default['default'].createElement(
|
|
44368
|
-
'div',
|
|
44369
|
-
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44370
|
-
React__default['default'].createElement(
|
|
44371
|
-
'div',
|
|
44372
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44373
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44374
|
-
),
|
|
44375
|
-
React__default['default'].createElement(
|
|
44376
|
-
'div',
|
|
44377
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44378
|
-
React__default['default'].createElement('span', null, translations.SRP.STOP_TIME),
|
|
44379
|
-
React__default['default'].createElement(
|
|
44380
|
-
'strong',
|
|
44381
|
-
null,
|
|
44382
|
-
formatDuration(dateFns.parseISO(nextLine.departureDate).getTime() - dateFns.parseISO(line.arrivalDate).getTime())
|
|
44383
|
-
)
|
|
44384
|
-
)
|
|
44385
|
-
)
|
|
44386
|
-
)
|
|
44387
|
-
);
|
|
44388
|
-
})
|
|
44389
|
-
)
|
|
44390
|
-
)
|
|
44391
|
-
),
|
|
44392
|
-
React__default['default'].createElement('div', { className: 'flight__rate' })
|
|
44393
|
-
)
|
|
44394
|
-
)
|
|
44395
|
-
);
|
|
44396
|
-
})
|
|
44397
|
-
)
|
|
44398
|
-
);
|
|
44399
|
-
};
|
|
44400
|
-
|
|
44401
44168
|
var PairedFlightOption = function (_a) {
|
|
44402
44169
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
44403
44170
|
var item = _a.item;
|
|
@@ -44868,7 +44635,6 @@ var IndependentFlightOption = function (_a) {
|
|
|
44868
44635
|
guid = _a.guid,
|
|
44869
44636
|
selectedGuid = _a.selectedGuid;
|
|
44870
44637
|
_a.isOutward;
|
|
44871
|
-
reactRedux.useDispatch();
|
|
44872
44638
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44873
44639
|
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44874
44640
|
var translations = getTranslations(language);
|
|
@@ -45095,14 +44861,6 @@ var IndependentFlightOption = function (_a) {
|
|
|
45095
44861
|
);
|
|
45096
44862
|
};
|
|
45097
44863
|
|
|
45098
|
-
var getFlightKey = function (segments) {
|
|
45099
|
-
if (!segments || segments.length === 0) return '';
|
|
45100
|
-
return segments
|
|
45101
|
-
.map(function (s) {
|
|
45102
|
-
return ''.concat(s.marketingAirlineCode).concat(s.flightNumber, '_').concat(s.departureDateTime);
|
|
45103
|
-
})
|
|
45104
|
-
.join('_');
|
|
45105
|
-
};
|
|
45106
44864
|
var IndependentFlightSelection = function (_a) {
|
|
45107
44865
|
var _b;
|
|
45108
44866
|
var searchResults = _a.searchResults;
|
|
@@ -47458,9 +47216,9 @@ var SearchResultsContainer = function () {
|
|
|
47458
47216
|
results = _c.results,
|
|
47459
47217
|
filteredResults = _c.filteredResults,
|
|
47460
47218
|
packagingAccoResults = _c.packagingAccoResults,
|
|
47461
|
-
filteredPackagingAccoResults = _c.filteredPackagingAccoResults
|
|
47462
|
-
|
|
47463
|
-
|
|
47219
|
+
filteredPackagingAccoResults = _c.filteredPackagingAccoResults;
|
|
47220
|
+
_c.bookingPackageDetails;
|
|
47221
|
+
var isLoading = _c.isLoading,
|
|
47464
47222
|
filters = _c.filters,
|
|
47465
47223
|
selectedSortType = _c.selectedSortType,
|
|
47466
47224
|
selectedSearchResult = _c.selectedSearchResult,
|
|
@@ -47470,7 +47228,8 @@ var SearchResultsContainer = function () {
|
|
|
47470
47228
|
editablePackagingEntry = _c.editablePackagingEntry,
|
|
47471
47229
|
transactionId = _c.transactionId,
|
|
47472
47230
|
accommodationFlyInStep = _c.accommodationFlyInStep,
|
|
47473
|
-
itinerary = _c.itinerary
|
|
47231
|
+
itinerary = _c.itinerary,
|
|
47232
|
+
packagingFlightResults = _c.packagingFlightResults;
|
|
47474
47233
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
47475
47234
|
var _d = React.useState(false),
|
|
47476
47235
|
initialFiltersSet = _d[0],
|
|
@@ -47496,6 +47255,7 @@ var SearchResultsContainer = function () {
|
|
|
47496
47255
|
var _l = React.useState(null),
|
|
47497
47256
|
selectedAccommodationSeed = _l[0],
|
|
47498
47257
|
setSelectedAccommodationSeed = _l[1];
|
|
47258
|
+
var skipInitialPackagingAccoDetailsRef = React.useRef(false);
|
|
47499
47259
|
var panelRef = React.useRef(null);
|
|
47500
47260
|
var sortByTypes = [
|
|
47501
47261
|
{ direction: 'asc', label: 'default' },
|
|
@@ -47607,7 +47367,7 @@ var SearchResultsContainer = function () {
|
|
|
47607
47367
|
};
|
|
47608
47368
|
};
|
|
47609
47369
|
var buildPackagingAccommodationRequestFromSeed = function (seed, currentTransactionId) {
|
|
47610
|
-
var _a, _b, _c, _d;
|
|
47370
|
+
var _a, _b, _c, _d, _e, _f;
|
|
47611
47371
|
var country = seed.country;
|
|
47612
47372
|
var region = seed.region;
|
|
47613
47373
|
var oord = seed.oord;
|
|
@@ -47643,11 +47403,15 @@ var SearchResultsContainer = function () {
|
|
|
47643
47403
|
}
|
|
47644
47404
|
return {
|
|
47645
47405
|
transactionId: currentTransactionId,
|
|
47646
|
-
officeId:
|
|
47647
|
-
|
|
47648
|
-
|
|
47406
|
+
officeId:
|
|
47407
|
+
(_c = (_b = context === null || context === void 0 ? void 0 : context.tideConnection) === null || _b === void 0 ? void 0 : _b.officeId) !== null &&
|
|
47408
|
+
_c !== void 0
|
|
47409
|
+
? _c
|
|
47410
|
+
: 1,
|
|
47411
|
+
agentId: (_d = context === null || context === void 0 ? void 0 : context.agentId) !== null && _d !== void 0 ? _d : null,
|
|
47412
|
+
catalogueId: (_e = context.searchConfiguration.defaultCatalogueId) !== null && _e !== void 0 ? _e : 0,
|
|
47649
47413
|
searchConfigurationId: context.searchConfiguration.id,
|
|
47650
|
-
language: (
|
|
47414
|
+
language: (_f = context.languageCode) !== null && _f !== void 0 ? _f : 'en-GB',
|
|
47651
47415
|
serviceType: ACCOMMODATION_SERVICE_TYPE,
|
|
47652
47416
|
fromDate: seed.fromDate,
|
|
47653
47417
|
toDate: seed.toDate,
|
|
@@ -47665,6 +47429,75 @@ var SearchResultsContainer = function () {
|
|
|
47665
47429
|
tagIds: tagId ? [tagId] : []
|
|
47666
47430
|
};
|
|
47667
47431
|
};
|
|
47432
|
+
var buildPackagingFlightRequestFromSeed = function (seed, currentTransactionId) {
|
|
47433
|
+
var _a, _b, _c, _d;
|
|
47434
|
+
if (typeof window !== 'undefined') {
|
|
47435
|
+
window.scrollTo(0, 0);
|
|
47436
|
+
}
|
|
47437
|
+
var adults = seed.rooms
|
|
47438
|
+
.flatMap(function (x) {
|
|
47439
|
+
return x.pax;
|
|
47440
|
+
})
|
|
47441
|
+
.filter(function (x) {
|
|
47442
|
+
return x.age >= 18;
|
|
47443
|
+
}).length;
|
|
47444
|
+
var kids = seed.rooms
|
|
47445
|
+
.flatMap(function (x) {
|
|
47446
|
+
return x.pax;
|
|
47447
|
+
})
|
|
47448
|
+
.filter(function (x) {
|
|
47449
|
+
return x.age >= 2 && x.age < 18;
|
|
47450
|
+
}).length;
|
|
47451
|
+
var babies = seed.rooms
|
|
47452
|
+
.flatMap(function (x) {
|
|
47453
|
+
return x.pax;
|
|
47454
|
+
})
|
|
47455
|
+
.filter(function (x) {
|
|
47456
|
+
return x.age < 2;
|
|
47457
|
+
}).length;
|
|
47458
|
+
return {
|
|
47459
|
+
transactionId: currentTransactionId,
|
|
47460
|
+
officeId:
|
|
47461
|
+
(_b = (_a = context === null || context === void 0 ? void 0 : context.tideConnection) === null || _a === void 0 ? void 0 : _a.officeId) !== null &&
|
|
47462
|
+
_b !== void 0
|
|
47463
|
+
? _b
|
|
47464
|
+
: 1,
|
|
47465
|
+
catalogueId:
|
|
47466
|
+
(_d = lodash.first(
|
|
47467
|
+
(_c = context === null || context === void 0 ? void 0 : context.tideConnection) === null || _c === void 0 ? void 0 : _c.catalogueIds
|
|
47468
|
+
)) !== null && _d !== void 0
|
|
47469
|
+
? _d
|
|
47470
|
+
: 0,
|
|
47471
|
+
departureAirportCode: seed.departureAirport,
|
|
47472
|
+
arrivalAirportCode: seed.destinationAirport,
|
|
47473
|
+
returnAirportCode: seed.returnAirport,
|
|
47474
|
+
luggageIncluded: null,
|
|
47475
|
+
maxStops: null,
|
|
47476
|
+
travelClass: seed.travelClass,
|
|
47477
|
+
pax: lodash.concat(
|
|
47478
|
+
Array.from({ length: adults !== null && adults !== void 0 ? adults : 0 }, function (_, index) {
|
|
47479
|
+
return {
|
|
47480
|
+
id: index,
|
|
47481
|
+
age: 31
|
|
47482
|
+
};
|
|
47483
|
+
}),
|
|
47484
|
+
Array.from({ length: kids !== null && kids !== void 0 ? kids : 0 }, function (_, index) {
|
|
47485
|
+
return {
|
|
47486
|
+
id: index + (adults !== null && adults !== void 0 ? adults : 0),
|
|
47487
|
+
age: 8
|
|
47488
|
+
};
|
|
47489
|
+
}),
|
|
47490
|
+
Array.from({ length: babies !== null && babies !== void 0 ? babies : 0 }, function (_, index) {
|
|
47491
|
+
return {
|
|
47492
|
+
id: index + (adults !== null && adults !== void 0 ? adults : 0) + (kids !== null && kids !== void 0 ? kids : 0),
|
|
47493
|
+
age: 1
|
|
47494
|
+
};
|
|
47495
|
+
})
|
|
47496
|
+
),
|
|
47497
|
+
outward: seed.fromDate ? { date: dateToDateStruct(new Date(seed.fromDate)) } : null,
|
|
47498
|
+
return: seed.toDate ? { date: dateToDateStruct(new Date(seed.toDate)) } : null
|
|
47499
|
+
};
|
|
47500
|
+
};
|
|
47668
47501
|
var buildSearchSeedFromQueryParams = function (params) {
|
|
47669
47502
|
var from = getDateFromParams(params, 'fromDate');
|
|
47670
47503
|
var to = getDateFromParams(params, 'toDate');
|
|
@@ -47677,6 +47510,8 @@ var SearchResultsContainer = function () {
|
|
|
47677
47510
|
var tagId = getNumberFromParams(params, 'tagId');
|
|
47678
47511
|
var destinationAirport = getStringFromParams(params, 'destinationAirport');
|
|
47679
47512
|
var departureAirport = getStringFromParams(params, 'departureAirport');
|
|
47513
|
+
var travelClass = getStringFromParams(params, 'travelClass');
|
|
47514
|
+
var nationality = getStringFromParams(params, 'nationality');
|
|
47680
47515
|
if (!from || !to) {
|
|
47681
47516
|
return null;
|
|
47682
47517
|
}
|
|
@@ -47692,9 +47527,66 @@ var SearchResultsContainer = function () {
|
|
|
47692
47527
|
tagId: tagId,
|
|
47693
47528
|
destinationAirport: destinationAirport,
|
|
47694
47529
|
departureAirport: departureAirport,
|
|
47530
|
+
travelClass: travelClass,
|
|
47531
|
+
nationality: nationality,
|
|
47695
47532
|
rooms: getRequestRooms(rooms)
|
|
47696
47533
|
};
|
|
47697
47534
|
};
|
|
47535
|
+
var buildSearchSeedFromAccommodationSegments = function (entry, segments) {
|
|
47536
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
47537
|
+
if (!(segments === null || segments === void 0 ? void 0 : segments.length)) return null;
|
|
47538
|
+
var sortedSegments = __spreadArray([], segments, true).sort(function (a, b) {
|
|
47539
|
+
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
47540
|
+
});
|
|
47541
|
+
var firstSegment = lodash.first(sortedSegments);
|
|
47542
|
+
var lastSegment = lodash.last(sortedSegments);
|
|
47543
|
+
if (!firstSegment || !lastSegment) return null;
|
|
47544
|
+
return {
|
|
47545
|
+
fromDate: toDateOnlyString(firstSegment.from),
|
|
47546
|
+
toDate: toDateOnlyString(lastSegment.to),
|
|
47547
|
+
country: (_b = (_a = firstSegment.country) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
|
|
47548
|
+
region: (_d = (_c = firstSegment.region) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null,
|
|
47549
|
+
oord: (_f = (_e = firstSegment.oord) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null,
|
|
47550
|
+
location: (_h = (_g = firstSegment.location) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : null,
|
|
47551
|
+
hotel: parseHotelId(firstSegment),
|
|
47552
|
+
hotelCode: (_j = firstSegment.productCode) !== null && _j !== void 0 ? _j : null,
|
|
47553
|
+
tagId: null,
|
|
47554
|
+
destinationAirport: getDestinationAirportFromEntry((_k = entry.lines) !== null && _k !== void 0 ? _k : []),
|
|
47555
|
+
departureAirport: getDepartureAirportFromEntry((_l = entry.lines) !== null && _l !== void 0 ? _l : []),
|
|
47556
|
+
rooms: getRequestRoomsFromPackagingSegments(entry, sortedSegments)
|
|
47557
|
+
};
|
|
47558
|
+
};
|
|
47559
|
+
var handleEditAccommodation = function (segments) {
|
|
47560
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47561
|
+
var sourceEntry, seed, currentTransactionId;
|
|
47562
|
+
return __generator(this, function (_a) {
|
|
47563
|
+
switch (_a.label) {
|
|
47564
|
+
case 0:
|
|
47565
|
+
sourceEntry =
|
|
47566
|
+
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
47567
|
+
? editablePackagingEntry
|
|
47568
|
+
: context === null || context === void 0
|
|
47569
|
+
? void 0
|
|
47570
|
+
: context.packagingEntry;
|
|
47571
|
+
if (!sourceEntry) return [2 /*return*/];
|
|
47572
|
+
seed = buildSearchSeedFromAccommodationSegments(sourceEntry, segments);
|
|
47573
|
+
if (!seed) return [2 /*return*/];
|
|
47574
|
+
setDetailsIsLoading(true);
|
|
47575
|
+
setSelectedAccommodationSeed(seed);
|
|
47576
|
+
dispatch(setAccommodationFlyInStep('results'));
|
|
47577
|
+
handleFlyInToggle(true);
|
|
47578
|
+
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47579
|
+
case 1:
|
|
47580
|
+
currentTransactionId = _a.sent();
|
|
47581
|
+
return [4 /*yield*/, runAccommodationFlow(seed, currentTransactionId !== null && currentTransactionId !== void 0 ? currentTransactionId : '')];
|
|
47582
|
+
case 2:
|
|
47583
|
+
_a.sent();
|
|
47584
|
+
setDetailsIsLoading(false);
|
|
47585
|
+
return [2 /*return*/];
|
|
47586
|
+
}
|
|
47587
|
+
});
|
|
47588
|
+
});
|
|
47589
|
+
};
|
|
47698
47590
|
var handleConfirmHotelSwap = function () {
|
|
47699
47591
|
var updatedEntry = swapHotelInPackagingEntry();
|
|
47700
47592
|
if (!updatedEntry) return;
|
|
@@ -47795,6 +47687,25 @@ var SearchResultsContainer = function () {
|
|
|
47795
47687
|
},
|
|
47796
47688
|
[filtersOpen]
|
|
47797
47689
|
);
|
|
47690
|
+
var getOrCreateTransactionId = function () {
|
|
47691
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47692
|
+
var _a;
|
|
47693
|
+
return __generator(this, function (_b) {
|
|
47694
|
+
switch (_b.label) {
|
|
47695
|
+
case 0:
|
|
47696
|
+
if ((_a = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _a === void 0 ? void 0 : _a.transactionId) {
|
|
47697
|
+
return [2 /*return*/, context.packagingEntry.transactionId];
|
|
47698
|
+
}
|
|
47699
|
+
if (transactionId) {
|
|
47700
|
+
return [2 /*return*/, transactionId];
|
|
47701
|
+
}
|
|
47702
|
+
return [4 /*yield*/, runStartTransaction()];
|
|
47703
|
+
case 1:
|
|
47704
|
+
return [2 /*return*/, _b.sent()];
|
|
47705
|
+
}
|
|
47706
|
+
});
|
|
47707
|
+
});
|
|
47708
|
+
};
|
|
47798
47709
|
var runSearch = function () {
|
|
47799
47710
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47800
47711
|
var config, seed, searchRequest, packageSearchResults, enrichedFilters, initialFilteredResults, err_1;
|
|
@@ -47876,11 +47787,11 @@ var SearchResultsContainer = function () {
|
|
|
47876
47787
|
var runHotelSearch = function (currentTransactionId, seed) {
|
|
47877
47788
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47878
47789
|
var config, searchRequest, packageAccoSearchResults, enrichedFilters, initialFilteredResults, err_3;
|
|
47879
|
-
var _a;
|
|
47880
|
-
return __generator(this, function (
|
|
47881
|
-
switch (
|
|
47790
|
+
var _a, _b, _c;
|
|
47791
|
+
return __generator(this, function (_d) {
|
|
47792
|
+
switch (_d.label) {
|
|
47882
47793
|
case 0:
|
|
47883
|
-
|
|
47794
|
+
_d.trys.push([0, 2, , 3]);
|
|
47884
47795
|
if (!context) return [2 /*return*/];
|
|
47885
47796
|
dispatch(setIsLoading(true));
|
|
47886
47797
|
config = {
|
|
@@ -47892,7 +47803,7 @@ var SearchResultsContainer = function () {
|
|
|
47892
47803
|
searchRequest.agentId = context.agentId;
|
|
47893
47804
|
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47894
47805
|
case 1:
|
|
47895
|
-
packageAccoSearchResults =
|
|
47806
|
+
packageAccoSearchResults = _d.sent();
|
|
47896
47807
|
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47897
47808
|
packageAccoSearchResults,
|
|
47898
47809
|
context.filters,
|
|
@@ -47906,11 +47817,19 @@ var SearchResultsContainer = function () {
|
|
|
47906
47817
|
dispatch(setPackagingAccoResults(packageAccoSearchResults));
|
|
47907
47818
|
initialFilteredResults = applyFiltersToPackageAccoResults(packageAccoSearchResults, filters, null);
|
|
47908
47819
|
dispatch(setFilteredPackagingAccoResults(initialFilteredResults));
|
|
47820
|
+
if (initialFilteredResults.length > 0) {
|
|
47821
|
+
skipInitialPackagingAccoDetailsRef.current = true;
|
|
47822
|
+
dispatch(
|
|
47823
|
+
setSelectedPackagingAccoResult(
|
|
47824
|
+
(_c = (_b = lodash.first(initialFilteredResults)) === null || _b === void 0 ? void 0 : _b.code) !== null && _c !== void 0 ? _c : null
|
|
47825
|
+
)
|
|
47826
|
+
);
|
|
47827
|
+
}
|
|
47909
47828
|
dispatch(setIsLoading(false));
|
|
47910
47829
|
return [3 /*break*/, 3];
|
|
47911
47830
|
case 2:
|
|
47912
|
-
err_3 =
|
|
47913
|
-
console.error('
|
|
47831
|
+
err_3 = _d.sent();
|
|
47832
|
+
console.error('HotelSearch failed', err_3);
|
|
47914
47833
|
dispatch(setIsLoading(false));
|
|
47915
47834
|
return [3 /*break*/, 3];
|
|
47916
47835
|
case 3:
|
|
@@ -47919,31 +47838,61 @@ var SearchResultsContainer = function () {
|
|
|
47919
47838
|
});
|
|
47920
47839
|
});
|
|
47921
47840
|
};
|
|
47922
|
-
var runAccommodationFlow = function (seed) {
|
|
47841
|
+
var runAccommodationFlow = function (seed, currentTransactionId) {
|
|
47923
47842
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47924
|
-
|
|
47925
|
-
|
|
47926
|
-
return __generator(this, function (_b) {
|
|
47927
|
-
switch (_b.label) {
|
|
47843
|
+
return __generator(this, function (_a) {
|
|
47844
|
+
switch (_a.label) {
|
|
47928
47845
|
case 0:
|
|
47929
47846
|
if (!context || context.showMockup) return [2 /*return*/];
|
|
47930
|
-
currentTransactionId
|
|
47931
|
-
((_a = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _a === void 0 ? void 0 : _a.transactionId) ||
|
|
47932
|
-
transactionId;
|
|
47933
|
-
if (!!currentTransactionId) return [3 /*break*/, 2];
|
|
47934
|
-
dispatch(setIsLoading(true));
|
|
47935
|
-
return [4 /*yield*/, runStartTransaction()];
|
|
47847
|
+
return [4 /*yield*/, runHotelSearch(currentTransactionId, seed)];
|
|
47936
47848
|
case 1:
|
|
47937
|
-
|
|
47938
|
-
|
|
47849
|
+
_a.sent();
|
|
47850
|
+
return [2 /*return*/];
|
|
47851
|
+
}
|
|
47852
|
+
});
|
|
47853
|
+
});
|
|
47854
|
+
};
|
|
47855
|
+
var runFlightSearch = function (currentTransactionId, seed) {
|
|
47856
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47857
|
+
var config, searchRequest, packageFlightSearchResults, err_4;
|
|
47858
|
+
return __generator(this, function (_a) {
|
|
47859
|
+
switch (_a.label) {
|
|
47860
|
+
case 0:
|
|
47861
|
+
_a.trys.push([0, 2, , 3]);
|
|
47862
|
+
if (!context) return [2 /*return*/];
|
|
47863
|
+
dispatch(setFlightsLoading(true));
|
|
47864
|
+
config = {
|
|
47865
|
+
host: context.tideConnection.host,
|
|
47866
|
+
apiKey: context.tideConnection.apiKey
|
|
47867
|
+
};
|
|
47868
|
+
searchRequest = buildPackagingFlightRequestFromSeed(seed, currentTransactionId);
|
|
47869
|
+
searchRequest.agentId = context.agentId;
|
|
47870
|
+
return [4 /*yield*/, build.searchPackagingFlights(config, searchRequest)];
|
|
47871
|
+
case 1:
|
|
47872
|
+
packageFlightSearchResults = _a.sent();
|
|
47873
|
+
dispatch(setPackagingFlightResults(packageFlightSearchResults));
|
|
47874
|
+
dispatch(setFlightsLoading(false));
|
|
47875
|
+
return [3 /*break*/, 3];
|
|
47939
47876
|
case 2:
|
|
47940
|
-
|
|
47941
|
-
|
|
47942
|
-
|
|
47943
|
-
|
|
47944
|
-
return [4 /*yield*/, runHotelSearch(currentTransactionId, seed)];
|
|
47877
|
+
err_4 = _a.sent();
|
|
47878
|
+
console.error('FlightSearch failed', err_4);
|
|
47879
|
+
dispatch(setFlightsLoading(false));
|
|
47880
|
+
return [3 /*break*/, 3];
|
|
47945
47881
|
case 3:
|
|
47946
|
-
|
|
47882
|
+
return [2 /*return*/];
|
|
47883
|
+
}
|
|
47884
|
+
});
|
|
47885
|
+
});
|
|
47886
|
+
};
|
|
47887
|
+
var runFlightFlow = function (seed, currentTransactionId) {
|
|
47888
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47889
|
+
return __generator(this, function (_a) {
|
|
47890
|
+
switch (_a.label) {
|
|
47891
|
+
case 0:
|
|
47892
|
+
if (!context || context.showMockup) return [2 /*return*/];
|
|
47893
|
+
return [4 /*yield*/, runFlightSearch(currentTransactionId, seed)];
|
|
47894
|
+
case 1:
|
|
47895
|
+
_a.sent();
|
|
47947
47896
|
return [2 /*return*/];
|
|
47948
47897
|
}
|
|
47949
47898
|
});
|
|
@@ -47960,20 +47909,60 @@ var SearchResultsContainer = function () {
|
|
|
47960
47909
|
runSearch();
|
|
47961
47910
|
}
|
|
47962
47911
|
if ((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation) {
|
|
47963
|
-
var
|
|
47964
|
-
if (
|
|
47965
|
-
|
|
47912
|
+
var seed_1 = activeSearchSeed;
|
|
47913
|
+
if (seed_1) {
|
|
47914
|
+
(function () {
|
|
47915
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47916
|
+
var transactionId;
|
|
47917
|
+
return __generator(this, function (_a) {
|
|
47918
|
+
switch (_a.label) {
|
|
47919
|
+
case 0:
|
|
47920
|
+
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47921
|
+
case 1:
|
|
47922
|
+
transactionId = _a.sent();
|
|
47923
|
+
if (!transactionId) return [2 /*return*/];
|
|
47924
|
+
return [4 /*yield*/, runAccommodationFlow(seed_1, transactionId)];
|
|
47925
|
+
case 2:
|
|
47926
|
+
_a.sent();
|
|
47927
|
+
return [2 /*return*/];
|
|
47928
|
+
}
|
|
47929
|
+
});
|
|
47930
|
+
});
|
|
47931
|
+
})();
|
|
47966
47932
|
}
|
|
47967
47933
|
}
|
|
47968
47934
|
if (
|
|
47969
47935
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight &&
|
|
47970
47936
|
context.searchConfiguration.enableManualPackaging &&
|
|
47971
|
-
context.searchConfiguration.allowAccommodations &&
|
|
47972
47937
|
!(context === null || context === void 0 ? void 0 : context.packagingEntry)
|
|
47973
47938
|
) {
|
|
47974
|
-
var
|
|
47975
|
-
if (
|
|
47976
|
-
|
|
47939
|
+
var seed_2 = activeSearchSeed;
|
|
47940
|
+
if (seed_2) {
|
|
47941
|
+
(function () {
|
|
47942
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47943
|
+
var sharedTransactionId, tasks;
|
|
47944
|
+
return __generator(this, function (_a) {
|
|
47945
|
+
switch (_a.label) {
|
|
47946
|
+
case 0:
|
|
47947
|
+
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47948
|
+
case 1:
|
|
47949
|
+
sharedTransactionId = _a.sent();
|
|
47950
|
+
if (!sharedTransactionId) return [2 /*return*/];
|
|
47951
|
+
tasks = [];
|
|
47952
|
+
if (context.searchConfiguration.allowAccommodations) {
|
|
47953
|
+
tasks.push(runAccommodationFlow(seed_2, sharedTransactionId));
|
|
47954
|
+
}
|
|
47955
|
+
if (context.searchConfiguration.allowFlights) {
|
|
47956
|
+
tasks.push(runFlightFlow(seed_2, sharedTransactionId));
|
|
47957
|
+
}
|
|
47958
|
+
return [4 /*yield*/, Promise.all(tasks)];
|
|
47959
|
+
case 2:
|
|
47960
|
+
_a.sent();
|
|
47961
|
+
return [2 /*return*/];
|
|
47962
|
+
}
|
|
47963
|
+
});
|
|
47964
|
+
});
|
|
47965
|
+
})();
|
|
47977
47966
|
}
|
|
47978
47967
|
}
|
|
47979
47968
|
},
|
|
@@ -47989,6 +47978,7 @@ var SearchResultsContainer = function () {
|
|
|
47989
47978
|
);
|
|
47990
47979
|
React.useEffect(
|
|
47991
47980
|
function () {
|
|
47981
|
+
console.log('packaging entry from context', context === null || context === void 0 ? void 0 : context.packagingEntry);
|
|
47992
47982
|
if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
|
|
47993
47983
|
console.log('original packaging entry from context', context.packagingEntry);
|
|
47994
47984
|
dispatch(setEditablePackagingEntry(structuredClone(context.packagingEntry)));
|
|
@@ -48002,7 +47992,7 @@ var SearchResultsContainer = function () {
|
|
|
48002
47992
|
function () {
|
|
48003
47993
|
var fetchDetails = function () {
|
|
48004
47994
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
48005
|
-
var config, selectedItem, requestRooms, seed, detailsRequest, detailsResponse,
|
|
47995
|
+
var config, selectedItem, requestRooms, seed, detailsRequest, detailsResponse, err_5;
|
|
48006
47996
|
var _a;
|
|
48007
47997
|
return __generator(this, function (_b) {
|
|
48008
47998
|
switch (_b.label) {
|
|
@@ -48065,8 +48055,8 @@ var SearchResultsContainer = function () {
|
|
|
48065
48055
|
setDetailsIsLoading(false);
|
|
48066
48056
|
return [3 /*break*/, 4];
|
|
48067
48057
|
case 3:
|
|
48068
|
-
|
|
48069
|
-
console.error('Failed to fetch package details',
|
|
48058
|
+
err_5 = _b.sent();
|
|
48059
|
+
console.error('Failed to fetch package details', err_5);
|
|
48070
48060
|
setDetailsIsLoading(false);
|
|
48071
48061
|
return [3 /*break*/, 4];
|
|
48072
48062
|
case 4:
|
|
@@ -48091,12 +48081,16 @@ var SearchResultsContainer = function () {
|
|
|
48091
48081
|
destinationIsAirport,
|
|
48092
48082
|
detailSearchRequest,
|
|
48093
48083
|
packageAccoSearchDetails,
|
|
48094
|
-
|
|
48084
|
+
err_6;
|
|
48095
48085
|
var _a, _b, _c, _d, _e;
|
|
48096
48086
|
return __generator(this, function (_f) {
|
|
48097
48087
|
switch (_f.label) {
|
|
48098
48088
|
case 0:
|
|
48099
48089
|
if (!selectedPackagingAccoResultCode || !context) return [2 /*return*/];
|
|
48090
|
+
if (skipInitialPackagingAccoDetailsRef.current) {
|
|
48091
|
+
skipInitialPackagingAccoDetailsRef.current = false;
|
|
48092
|
+
return [2 /*return*/];
|
|
48093
|
+
}
|
|
48100
48094
|
setDetailsIsLoading(true);
|
|
48101
48095
|
if (
|
|
48102
48096
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
@@ -48179,8 +48173,8 @@ var SearchResultsContainer = function () {
|
|
|
48179
48173
|
setDetailsIsLoading(false);
|
|
48180
48174
|
return [3 /*break*/, 4];
|
|
48181
48175
|
case 3:
|
|
48182
|
-
|
|
48183
|
-
console.error('Failed to fetch package details',
|
|
48176
|
+
err_6 = _f.sent();
|
|
48177
|
+
console.error('Failed to fetch package details', err_6);
|
|
48184
48178
|
setDetailsIsLoading(false);
|
|
48185
48179
|
return [3 /*break*/, 4];
|
|
48186
48180
|
case 4:
|
|
@@ -48217,67 +48211,15 @@ var SearchResultsContainer = function () {
|
|
|
48217
48211
|
},
|
|
48218
48212
|
[activeSearchSeed]
|
|
48219
48213
|
);
|
|
48220
|
-
var handleEditAccommodation = function (segments) {
|
|
48221
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
48222
|
-
var sourceEntry, seed;
|
|
48223
|
-
return __generator(this, function (_a) {
|
|
48224
|
-
switch (_a.label) {
|
|
48225
|
-
case 0:
|
|
48226
|
-
sourceEntry =
|
|
48227
|
-
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
48228
|
-
? editablePackagingEntry
|
|
48229
|
-
: context === null || context === void 0
|
|
48230
|
-
? void 0
|
|
48231
|
-
: context.packagingEntry;
|
|
48232
|
-
if (!sourceEntry) return [2 /*return*/];
|
|
48233
|
-
seed = buildSearchSeedFromAccommodationSegments(sourceEntry, segments);
|
|
48234
|
-
if (!seed) return [2 /*return*/];
|
|
48235
|
-
setDetailsIsLoading(true);
|
|
48236
|
-
setSelectedAccommodationSeed(seed);
|
|
48237
|
-
dispatch(setAccommodationFlyInStep('results'));
|
|
48238
|
-
handleFlyInToggle(true);
|
|
48239
|
-
return [4 /*yield*/, runAccommodationFlow(seed)];
|
|
48240
|
-
case 1:
|
|
48241
|
-
_a.sent();
|
|
48242
|
-
setDetailsIsLoading(false);
|
|
48243
|
-
return [2 /*return*/];
|
|
48244
|
-
}
|
|
48245
|
-
});
|
|
48246
|
-
});
|
|
48247
|
-
};
|
|
48248
|
-
var buildSearchSeedFromAccommodationSegments = function (entry, segments) {
|
|
48249
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
48250
|
-
if (!(segments === null || segments === void 0 ? void 0 : segments.length)) return null;
|
|
48251
|
-
var sortedSegments = __spreadArray([], segments, true).sort(function (a, b) {
|
|
48252
|
-
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
48253
|
-
});
|
|
48254
|
-
var firstSegment = lodash.first(sortedSegments);
|
|
48255
|
-
var lastSegment = lodash.last(sortedSegments);
|
|
48256
|
-
if (!firstSegment || !lastSegment) return null;
|
|
48257
|
-
return {
|
|
48258
|
-
fromDate: toDateOnlyString(firstSegment.from),
|
|
48259
|
-
toDate: toDateOnlyString(lastSegment.to),
|
|
48260
|
-
country: (_b = (_a = firstSegment.country) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
|
|
48261
|
-
region: (_d = (_c = firstSegment.region) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null,
|
|
48262
|
-
oord: (_f = (_e = firstSegment.oord) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null,
|
|
48263
|
-
location: (_h = (_g = firstSegment.location) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : null,
|
|
48264
|
-
hotel: parseHotelId(firstSegment),
|
|
48265
|
-
hotelCode: (_j = firstSegment.productCode) !== null && _j !== void 0 ? _j : null,
|
|
48266
|
-
tagId: null,
|
|
48267
|
-
destinationAirport: getDestinationAirportFromEntry((_k = entry.lines) !== null && _k !== void 0 ? _k : []),
|
|
48268
|
-
departureAirport: getDepartureAirportFromEntry((_l = entry.lines) !== null && _l !== void 0 ? _l : []),
|
|
48269
|
-
rooms: getRequestRoomsFromPackagingSegments(entry, sortedSegments)
|
|
48270
|
-
};
|
|
48271
|
-
};
|
|
48272
48214
|
React.useEffect(
|
|
48273
48215
|
function () {
|
|
48274
48216
|
var fetchPriceDetails = function () {
|
|
48275
48217
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
48276
|
-
var config, priceDetails,
|
|
48218
|
+
var config, priceDetails, err_7;
|
|
48277
48219
|
return __generator(this, function (_a) {
|
|
48278
48220
|
switch (_a.label) {
|
|
48279
48221
|
case 0:
|
|
48280
|
-
if (!context || !editablePackagingEntry) return [2 /*return*/];
|
|
48222
|
+
if (!context || !editablePackagingEntry || lodash.isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
|
|
48281
48223
|
setPricesAreLoading(true);
|
|
48282
48224
|
_a.label = 1;
|
|
48283
48225
|
case 1:
|
|
@@ -48293,8 +48235,8 @@ var SearchResultsContainer = function () {
|
|
|
48293
48235
|
setPricesAreLoading(false);
|
|
48294
48236
|
return [3 /*break*/, 4];
|
|
48295
48237
|
case 3:
|
|
48296
|
-
|
|
48297
|
-
console.error('Error fetching price details',
|
|
48238
|
+
err_7 = _a.sent();
|
|
48239
|
+
console.error('Error fetching price details', err_7);
|
|
48298
48240
|
setPricesAreLoading(false);
|
|
48299
48241
|
return [3 /*break*/, 4];
|
|
48300
48242
|
case 4:
|
|
@@ -48305,12 +48247,12 @@ var SearchResultsContainer = function () {
|
|
|
48305
48247
|
};
|
|
48306
48248
|
var fetchItinerary = function () {
|
|
48307
48249
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
48308
|
-
var config, itinerary_1,
|
|
48250
|
+
var config, itinerary_1, err_8;
|
|
48309
48251
|
return __generator(this, function (_a) {
|
|
48310
48252
|
switch (_a.label) {
|
|
48311
48253
|
case 0:
|
|
48312
48254
|
console.log('Fetching itinerary for entry', editablePackagingEntry);
|
|
48313
|
-
if (!context || !editablePackagingEntry) return [2 /*return*/];
|
|
48255
|
+
if (!context || !editablePackagingEntry || lodash.isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
|
|
48314
48256
|
setItineraryIsLoading(true);
|
|
48315
48257
|
_a.label = 1;
|
|
48316
48258
|
case 1:
|
|
@@ -48327,8 +48269,8 @@ var SearchResultsContainer = function () {
|
|
|
48327
48269
|
setItineraryIsLoading(false);
|
|
48328
48270
|
return [3 /*break*/, 4];
|
|
48329
48271
|
case 3:
|
|
48330
|
-
|
|
48331
|
-
console.error('Error fetching itinerary',
|
|
48272
|
+
err_8 = _a.sent();
|
|
48273
|
+
console.error('Error fetching itinerary', err_8);
|
|
48332
48274
|
setItineraryIsLoading(false);
|
|
48333
48275
|
return [3 /*break*/, 4];
|
|
48334
48276
|
case 4:
|
|
@@ -48342,6 +48284,392 @@ var SearchResultsContainer = function () {
|
|
|
48342
48284
|
},
|
|
48343
48285
|
[editablePackagingEntry]
|
|
48344
48286
|
);
|
|
48287
|
+
// Flight selection
|
|
48288
|
+
var _m = React.useState(null),
|
|
48289
|
+
selectedOutwardKey = _m[0],
|
|
48290
|
+
setSelectedOutwardKey = _m[1];
|
|
48291
|
+
var _o = React.useState(null),
|
|
48292
|
+
selectedReturnKey = _o[0],
|
|
48293
|
+
setSelectedReturnKey = _o[1];
|
|
48294
|
+
var uniqueOutwardFlights = React__default['default'].useMemo(
|
|
48295
|
+
function () {
|
|
48296
|
+
var map = new Map();
|
|
48297
|
+
packagingFlightResults.forEach(function (flight) {
|
|
48298
|
+
var key = getFlightKey(flight.outward.segments);
|
|
48299
|
+
if (!map.has(key)) {
|
|
48300
|
+
map.set(key, flight);
|
|
48301
|
+
}
|
|
48302
|
+
});
|
|
48303
|
+
return Array.from(map.values());
|
|
48304
|
+
},
|
|
48305
|
+
[packagingFlightResults]
|
|
48306
|
+
);
|
|
48307
|
+
var _p = React.useState([]),
|
|
48308
|
+
uniqueReturnFlights = _p[0],
|
|
48309
|
+
setUniqueReturnFlights = _p[1];
|
|
48310
|
+
React.useEffect(
|
|
48311
|
+
function () {
|
|
48312
|
+
if (!selectedOutwardKey) {
|
|
48313
|
+
setUniqueReturnFlights([]);
|
|
48314
|
+
setSelectedReturnKey(null);
|
|
48315
|
+
return;
|
|
48316
|
+
}
|
|
48317
|
+
// Filter combinations that match selected outward fare
|
|
48318
|
+
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
48319
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48320
|
+
});
|
|
48321
|
+
var returnMap = new Map();
|
|
48322
|
+
matchingCombinations.forEach(function (flight) {
|
|
48323
|
+
var key = getFlightKey(flight.return.segments);
|
|
48324
|
+
if (!returnMap.has(key)) {
|
|
48325
|
+
returnMap.set(key, flight);
|
|
48326
|
+
}
|
|
48327
|
+
});
|
|
48328
|
+
var returns = Array.from(returnMap.values());
|
|
48329
|
+
setUniqueReturnFlights(returns);
|
|
48330
|
+
},
|
|
48331
|
+
[selectedOutwardKey, packagingFlightResults]
|
|
48332
|
+
);
|
|
48333
|
+
var selectedOutward = React__default['default'].useMemo(
|
|
48334
|
+
function () {
|
|
48335
|
+
if (!selectedOutwardKey) return null;
|
|
48336
|
+
return (
|
|
48337
|
+
packagingFlightResults.find(function (flight) {
|
|
48338
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48339
|
+
}) || null
|
|
48340
|
+
);
|
|
48341
|
+
},
|
|
48342
|
+
[packagingFlightResults, selectedOutwardKey]
|
|
48343
|
+
);
|
|
48344
|
+
var selectedReturn = React__default['default'].useMemo(
|
|
48345
|
+
function () {
|
|
48346
|
+
if (!selectedReturnKey) return null;
|
|
48347
|
+
return (
|
|
48348
|
+
packagingFlightResults.find(function (flight) {
|
|
48349
|
+
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48350
|
+
}) || null
|
|
48351
|
+
);
|
|
48352
|
+
},
|
|
48353
|
+
[packagingFlightResults, selectedReturnKey]
|
|
48354
|
+
);
|
|
48355
|
+
var selectedCombinationFlight = React__default['default'].useMemo(
|
|
48356
|
+
function () {
|
|
48357
|
+
if (!selectedOutwardKey || !selectedReturnKey) return undefined;
|
|
48358
|
+
return packagingFlightResults.find(function (flight) {
|
|
48359
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48360
|
+
});
|
|
48361
|
+
},
|
|
48362
|
+
[packagingFlightResults, selectedOutwardKey, selectedReturnKey]
|
|
48363
|
+
);
|
|
48364
|
+
// TODO: get details for selected combination flight and show in fly-in
|
|
48365
|
+
// useEffect(() => {
|
|
48366
|
+
// if (!selectedCombinationFlight) return;
|
|
48367
|
+
// dispatch(setSelectedPackagingFlight(selectedCombinationFlight));
|
|
48368
|
+
// // onFlightSearch(selectedCombinationFlight); // Trigger search to update accommodation options based on selected flight
|
|
48369
|
+
// dispatch(setFlyInIsOpen(true));
|
|
48370
|
+
// }, [selectedCombinationFlight, dispatch]);
|
|
48371
|
+
React.useEffect(
|
|
48372
|
+
function () {
|
|
48373
|
+
var _a, _b, _c, _d;
|
|
48374
|
+
if (!context) return;
|
|
48375
|
+
var seed = activeSearchSeed;
|
|
48376
|
+
if (!seed) return;
|
|
48377
|
+
var nextEntry = buildOrUpdatePackagingEntryPartial({
|
|
48378
|
+
sourceEntry:
|
|
48379
|
+
(_a = editablePackagingEntry !== null && editablePackagingEntry !== void 0 ? editablePackagingEntry : context.packagingEntry) !== null &&
|
|
48380
|
+
_a !== void 0
|
|
48381
|
+
? _a
|
|
48382
|
+
: null,
|
|
48383
|
+
selectedHotelCode: selectedPackagingAccoResultCode,
|
|
48384
|
+
accommodationResults: packagingAccoResults,
|
|
48385
|
+
selectedFlight: selectedCombinationFlight !== null && selectedCombinationFlight !== void 0 ? selectedCombinationFlight : null,
|
|
48386
|
+
seed: seed,
|
|
48387
|
+
transactionId:
|
|
48388
|
+
(_c =
|
|
48389
|
+
transactionId !== null && transactionId !== void 0
|
|
48390
|
+
? transactionId
|
|
48391
|
+
: (_b = context.packagingEntry) === null || _b === void 0
|
|
48392
|
+
? void 0
|
|
48393
|
+
: _b.transactionId) !== null && _c !== void 0
|
|
48394
|
+
? _c
|
|
48395
|
+
: '',
|
|
48396
|
+
language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
48397
|
+
});
|
|
48398
|
+
console.log('Built next packaging entry', nextEntry);
|
|
48399
|
+
if (!nextEntry) return;
|
|
48400
|
+
dispatch(setEditablePackagingEntry(nextEntry));
|
|
48401
|
+
if (selectedCombinationFlight) {
|
|
48402
|
+
dispatch(setSelectedPackagingFlight(selectedCombinationFlight));
|
|
48403
|
+
}
|
|
48404
|
+
},
|
|
48405
|
+
[
|
|
48406
|
+
context,
|
|
48407
|
+
activeSearchSeed,
|
|
48408
|
+
selectedPackagingAccoResultCode,
|
|
48409
|
+
packagingAccoResults,
|
|
48410
|
+
packagingAccoSearchDetails,
|
|
48411
|
+
selectedCombinationFlight,
|
|
48412
|
+
transactionId,
|
|
48413
|
+
dispatch
|
|
48414
|
+
]
|
|
48415
|
+
);
|
|
48416
|
+
var removeAccommodationLines = function (lines) {
|
|
48417
|
+
return lines.filter(function (line) {
|
|
48418
|
+
return line.serviceType !== ACCOMMODATION_SERVICE_TYPE;
|
|
48419
|
+
});
|
|
48420
|
+
};
|
|
48421
|
+
var removeFlightLines = function (lines) {
|
|
48422
|
+
return lines.filter(function (line) {
|
|
48423
|
+
return line.serviceType !== FLIGHT_SERVICE_TYPE;
|
|
48424
|
+
});
|
|
48425
|
+
};
|
|
48426
|
+
var buildAccommodationLinesFromSelection = function (selectedHotel, seed) {
|
|
48427
|
+
if (!selectedHotel) return [];
|
|
48428
|
+
var parentGuid = crypto.randomUUID();
|
|
48429
|
+
return selectedHotel.rooms
|
|
48430
|
+
.filter(function (room) {
|
|
48431
|
+
return room.options.some(function (o) {
|
|
48432
|
+
return o.isSelected;
|
|
48433
|
+
});
|
|
48434
|
+
})
|
|
48435
|
+
.map(function (room, index) {
|
|
48436
|
+
var _a, _b, _c, _d, _e;
|
|
48437
|
+
var option = room.options.find(function (o) {
|
|
48438
|
+
return o.isSelected;
|
|
48439
|
+
});
|
|
48440
|
+
var pax =
|
|
48441
|
+
(_b =
|
|
48442
|
+
(_a = seed.rooms) === null || _a === void 0
|
|
48443
|
+
? void 0
|
|
48444
|
+
: _a.flatMap(function (room, roomIndex) {
|
|
48445
|
+
return room.pax.map(function (p, paxIndex) {
|
|
48446
|
+
return {
|
|
48447
|
+
paxId: p.id,
|
|
48448
|
+
room: roomIndex,
|
|
48449
|
+
order: paxIndex
|
|
48450
|
+
};
|
|
48451
|
+
});
|
|
48452
|
+
})) !== null && _b !== void 0
|
|
48453
|
+
? _b
|
|
48454
|
+
: [];
|
|
48455
|
+
return {
|
|
48456
|
+
guid: (_c = option.guid) !== null && _c !== void 0 ? _c : crypto.randomUUID(),
|
|
48457
|
+
moment: '',
|
|
48458
|
+
parentGuid: index === 0 ? null : parentGuid,
|
|
48459
|
+
order: index,
|
|
48460
|
+
isChanged: true,
|
|
48461
|
+
from: selectedHotel.fromDate,
|
|
48462
|
+
to: selectedHotel.toDate,
|
|
48463
|
+
serviceType: ACCOMMODATION_SERVICE_TYPE,
|
|
48464
|
+
productName: selectedHotel.name,
|
|
48465
|
+
productCode: selectedHotel.code,
|
|
48466
|
+
accommodationName: option.accommodationName,
|
|
48467
|
+
accommodationCode: option.accommodationCode,
|
|
48468
|
+
regimeName: option.regimeName,
|
|
48469
|
+
regimeCode: option.regimeCode,
|
|
48470
|
+
country: selectedHotel.countryId ? { id: selectedHotel.countryId, name: selectedHotel.countryName, localizations: [] } : null,
|
|
48471
|
+
region: selectedHotel.regionId ? { id: selectedHotel.regionId, name: selectedHotel.regionName, localizations: [] } : null,
|
|
48472
|
+
oord: selectedHotel.oordId ? { id: selectedHotel.oordId, name: selectedHotel.oordName, localizations: [] } : null,
|
|
48473
|
+
location: selectedHotel.locationId ? { id: selectedHotel.locationId, name: selectedHotel.locationName, localizations: [] } : null,
|
|
48474
|
+
longitude: (_d = selectedHotel.longitude) !== null && _d !== void 0 ? _d : null,
|
|
48475
|
+
latitude: (_e = selectedHotel.latitude) !== null && _e !== void 0 ? _e : null,
|
|
48476
|
+
pax: pax,
|
|
48477
|
+
flightInformation: null
|
|
48478
|
+
};
|
|
48479
|
+
});
|
|
48480
|
+
};
|
|
48481
|
+
var toDateOnlyUtcString = function (value) {
|
|
48482
|
+
var date = new Date(value);
|
|
48483
|
+
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate())).toISOString();
|
|
48484
|
+
};
|
|
48485
|
+
var toTimeOnlyString = function (value) {
|
|
48486
|
+
var date = new Date(value);
|
|
48487
|
+
var hh = String(date.getUTCHours()).padStart(2, '0');
|
|
48488
|
+
var mm = String(date.getUTCMinutes()).padStart(2, '0');
|
|
48489
|
+
var ss = String(date.getUTCSeconds()).padStart(2, '0');
|
|
48490
|
+
return ''.concat(hh, ':').concat(mm, ':').concat(ss);
|
|
48491
|
+
};
|
|
48492
|
+
var mapFlightSegmentsToFlightLines = function (segments) {
|
|
48493
|
+
return segments.map(function (segment) {
|
|
48494
|
+
var _a;
|
|
48495
|
+
return {
|
|
48496
|
+
airlineCode: segment.marketingAirlineCode,
|
|
48497
|
+
airlineDescription: segment.marketingAirlineName,
|
|
48498
|
+
operatingAirlineCode: segment.operatingAirlineCode,
|
|
48499
|
+
operatingAirlineDescription: segment.operatingAirlineName,
|
|
48500
|
+
flightNumber: segment.flightNumber,
|
|
48501
|
+
operatingFlightNumber: (_a = segment.operatingFlightNumber) !== null && _a !== void 0 ? _a : null,
|
|
48502
|
+
departureDate: toDateOnlyUtcString(segment.departureDateTime),
|
|
48503
|
+
departureTime: toTimeOnlyString(segment.departureDateTime),
|
|
48504
|
+
departureAirportCode: segment.departureAirportCode,
|
|
48505
|
+
departureAirportDescription: segment.departureAirportName,
|
|
48506
|
+
arrivalDate: toDateOnlyUtcString(segment.arrivalDateTime),
|
|
48507
|
+
arrivalTime: toTimeOnlyString(segment.arrivalDateTime),
|
|
48508
|
+
arrivalAirportCode: segment.arrivalAirportCode,
|
|
48509
|
+
arrivalAirportDescription: segment.arrivalAirportName,
|
|
48510
|
+
durationInTicks: segment.durationInTicks
|
|
48511
|
+
};
|
|
48512
|
+
});
|
|
48513
|
+
};
|
|
48514
|
+
var buildFlightLabel = function (segments) {
|
|
48515
|
+
var firstSegment = lodash.first(segments);
|
|
48516
|
+
var lastSegment = lodash.last(segments);
|
|
48517
|
+
if (!firstSegment || !lastSegment) {
|
|
48518
|
+
return { productName: 'Flight', productCode: 'FLIGHT' };
|
|
48519
|
+
}
|
|
48520
|
+
return {
|
|
48521
|
+
productName: ''
|
|
48522
|
+
.concat(firstSegment.departureAirportName, ' - ')
|
|
48523
|
+
.concat(lastSegment.arrivalAirportName, ' (')
|
|
48524
|
+
.concat(firstSegment.marketingAirlineName, ')'),
|
|
48525
|
+
productCode: ''.concat(firstSegment.departureAirportCode, ' ').concat(lastSegment.arrivalAirportCode, '/').concat(firstSegment.marketingAirlineCode)
|
|
48526
|
+
};
|
|
48527
|
+
};
|
|
48528
|
+
var buildFlightLinesFromSelection = function (selectedFlight) {
|
|
48529
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
48530
|
+
if (!selectedFlight) return [];
|
|
48531
|
+
var outwardSegments = (_b = (_a = selectedFlight.outward) === null || _a === void 0 ? void 0 : _a.segments) !== null && _b !== void 0 ? _b : [];
|
|
48532
|
+
var returnSegments = (_d = (_c = selectedFlight.return) === null || _c === void 0 ? void 0 : _c.segments) !== null && _d !== void 0 ? _d : [];
|
|
48533
|
+
if (!outwardSegments.length || !returnSegments.length) return [];
|
|
48534
|
+
var outwardLabel = buildFlightLabel(outwardSegments);
|
|
48535
|
+
var returnLabel = buildFlightLabel(returnSegments);
|
|
48536
|
+
var outwardFirst = lodash.first(outwardSegments);
|
|
48537
|
+
var outwardLast = lodash.last(outwardSegments);
|
|
48538
|
+
var returnFirst = lodash.first(returnSegments);
|
|
48539
|
+
var returnLast = lodash.last(returnSegments);
|
|
48540
|
+
var outwardLine = {
|
|
48541
|
+
guid: selectedFlight.outwardGuid,
|
|
48542
|
+
parentGuid: null,
|
|
48543
|
+
order: 0,
|
|
48544
|
+
isChanged: true,
|
|
48545
|
+
from: (_e = outwardFirst === null || outwardFirst === void 0 ? void 0 : outwardFirst.departureDateTime.toString()) !== null && _e !== void 0 ? _e : '',
|
|
48546
|
+
to: (_f = outwardLast === null || outwardLast === void 0 ? void 0 : outwardLast.arrivalDateTime.toString()) !== null && _f !== void 0 ? _f : '',
|
|
48547
|
+
serviceType: FLIGHT_SERVICE_TYPE,
|
|
48548
|
+
productName: outwardLabel.productName,
|
|
48549
|
+
productCode: outwardLabel.productCode,
|
|
48550
|
+
accommodationName:
|
|
48551
|
+
(_g = outwardFirst === null || outwardFirst === void 0 ? void 0 : outwardFirst.metaData) === null || _g === void 0 ? void 0 : _g.farePriceClassName,
|
|
48552
|
+
accommodationCode:
|
|
48553
|
+
(_h = outwardFirst === null || outwardFirst === void 0 ? void 0 : outwardFirst.metaData) === null || _h === void 0 ? void 0 : _h.fareCode,
|
|
48554
|
+
regimeName: null,
|
|
48555
|
+
regimeCode: null,
|
|
48556
|
+
country: null,
|
|
48557
|
+
region: null,
|
|
48558
|
+
oord: null,
|
|
48559
|
+
location: null,
|
|
48560
|
+
longitude: null,
|
|
48561
|
+
latitude: null,
|
|
48562
|
+
// pax: allPaxAssignments,
|
|
48563
|
+
flightInformation: {
|
|
48564
|
+
pnr: '',
|
|
48565
|
+
flightLines: mapFlightSegmentsToFlightLines(outwardSegments)
|
|
48566
|
+
}
|
|
48567
|
+
};
|
|
48568
|
+
var returnLine = {
|
|
48569
|
+
guid: selectedFlight.returnGuid,
|
|
48570
|
+
parentGuid: selectedFlight.outwardGuid,
|
|
48571
|
+
order: 1,
|
|
48572
|
+
isChanged: true,
|
|
48573
|
+
from: (_j = returnFirst === null || returnFirst === void 0 ? void 0 : returnFirst.departureDateTime.toString()) !== null && _j !== void 0 ? _j : '',
|
|
48574
|
+
to: (_k = returnLast === null || returnLast === void 0 ? void 0 : returnLast.departureDateTime.toString()) !== null && _k !== void 0 ? _k : '',
|
|
48575
|
+
serviceType: FLIGHT_SERVICE_TYPE,
|
|
48576
|
+
productName: returnLabel.productName,
|
|
48577
|
+
productCode: returnLabel.productCode,
|
|
48578
|
+
accommodationName:
|
|
48579
|
+
(_l = returnFirst === null || returnFirst === void 0 ? void 0 : returnFirst.metaData) === null || _l === void 0 ? void 0 : _l.farePriceClassName,
|
|
48580
|
+
accommodationCode: (_m = returnFirst === null || returnFirst === void 0 ? void 0 : returnFirst.metaData) === null || _m === void 0 ? void 0 : _m.fareCode,
|
|
48581
|
+
regimeName: null,
|
|
48582
|
+
regimeCode: null,
|
|
48583
|
+
country: null,
|
|
48584
|
+
region: null,
|
|
48585
|
+
oord: null,
|
|
48586
|
+
location: null,
|
|
48587
|
+
longitude: null,
|
|
48588
|
+
latitude: null,
|
|
48589
|
+
// pax: allPaxAssignments,
|
|
48590
|
+
flightInformation: {
|
|
48591
|
+
pnr: '',
|
|
48592
|
+
flightLines: mapFlightSegmentsToFlightLines(returnSegments)
|
|
48593
|
+
}
|
|
48594
|
+
};
|
|
48595
|
+
return [outwardLine, returnLine];
|
|
48596
|
+
};
|
|
48597
|
+
var buildOrUpdatePackagingEntryPartial = function (_a) {
|
|
48598
|
+
var _b, _c;
|
|
48599
|
+
var sourceEntry = _a.sourceEntry,
|
|
48600
|
+
selectedHotelCode = _a.selectedHotelCode,
|
|
48601
|
+
accommodationResults = _a.accommodationResults,
|
|
48602
|
+
selectedFlight = _a.selectedFlight,
|
|
48603
|
+
seed = _a.seed,
|
|
48604
|
+
transactionId = _a.transactionId,
|
|
48605
|
+
language = _a.language;
|
|
48606
|
+
if (!((_b = seed === null || seed === void 0 ? void 0 : seed.rooms) === null || _b === void 0 ? void 0 : _b.length)) return null;
|
|
48607
|
+
var entry = buildBasePackagingEntry(sourceEntry, seed, transactionId, language);
|
|
48608
|
+
var nextLines = __spreadArray([], (_c = entry.lines) !== null && _c !== void 0 ? _c : [], true);
|
|
48609
|
+
var selectedHotel = selectedHotelCode
|
|
48610
|
+
? accommodationResults.find(function (r) {
|
|
48611
|
+
return r.code === selectedHotelCode;
|
|
48612
|
+
})
|
|
48613
|
+
: null;
|
|
48614
|
+
console.log('Selected hotel for packaging entry', selectedHotel);
|
|
48615
|
+
// Update accommodation only when enough data exists
|
|
48616
|
+
if (selectedHotel) {
|
|
48617
|
+
var accommodationLines = buildAccommodationLinesFromSelection(selectedHotel, seed);
|
|
48618
|
+
if (accommodationLines.length) {
|
|
48619
|
+
nextLines = removeAccommodationLines(nextLines);
|
|
48620
|
+
nextLines = __spreadArray(__spreadArray([], nextLines, true), accommodationLines, true);
|
|
48621
|
+
}
|
|
48622
|
+
}
|
|
48623
|
+
// Update flights only when full selected combination exists
|
|
48624
|
+
if (selectedFlight) {
|
|
48625
|
+
var flightLines = buildFlightLinesFromSelection(selectedFlight);
|
|
48626
|
+
console.log('selectedFlight', selectedFlight);
|
|
48627
|
+
console.log('Built flight lines from selection', flightLines);
|
|
48628
|
+
if (flightLines.length) {
|
|
48629
|
+
nextLines = removeFlightLines(nextLines);
|
|
48630
|
+
nextLines = __spreadArray(__spreadArray([], nextLines, true), flightLines, true);
|
|
48631
|
+
}
|
|
48632
|
+
}
|
|
48633
|
+
nextLines = nextLines.map(function (line, index) {
|
|
48634
|
+
return __assign(__assign({}, line), { order: index });
|
|
48635
|
+
});
|
|
48636
|
+
return __assign(__assign({}, entry), { language: language, transactionId: transactionId, pax: entry.pax, lines: nextLines });
|
|
48637
|
+
};
|
|
48638
|
+
var buildBasePackagingEntry = function (sourceEntry, seed, transactionId, language) {
|
|
48639
|
+
var _a, _b;
|
|
48640
|
+
if (sourceEntry) {
|
|
48641
|
+
return structuredClone(sourceEntry);
|
|
48642
|
+
}
|
|
48643
|
+
var paxId = 1;
|
|
48644
|
+
var pax =
|
|
48645
|
+
(_b =
|
|
48646
|
+
(_a = seed.rooms) === null || _a === void 0
|
|
48647
|
+
? void 0
|
|
48648
|
+
: _a.flatMap(function (room, roomIndex) {
|
|
48649
|
+
return room.pax.map(function (_, paxIndex) {
|
|
48650
|
+
return {
|
|
48651
|
+
id: paxId++,
|
|
48652
|
+
firstName: '',
|
|
48653
|
+
lastName: '',
|
|
48654
|
+
dateOfBirth: null,
|
|
48655
|
+
isMainBooker: roomIndex === 0 && paxIndex === 0
|
|
48656
|
+
};
|
|
48657
|
+
});
|
|
48658
|
+
})) !== null && _b !== void 0
|
|
48659
|
+
? _b
|
|
48660
|
+
: [];
|
|
48661
|
+
return {
|
|
48662
|
+
language: language,
|
|
48663
|
+
transactionId: transactionId,
|
|
48664
|
+
dossierNumber: '',
|
|
48665
|
+
status: 0,
|
|
48666
|
+
bookingDate: null,
|
|
48667
|
+
price: 0,
|
|
48668
|
+
depositAmount: 0,
|
|
48669
|
+
pax: pax,
|
|
48670
|
+
lines: []
|
|
48671
|
+
};
|
|
48672
|
+
};
|
|
48345
48673
|
return React__default['default'].createElement(
|
|
48346
48674
|
'div',
|
|
48347
48675
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -48459,13 +48787,11 @@ var SearchResultsContainer = function () {
|
|
|
48459
48787
|
'span',
|
|
48460
48788
|
{ className: 'search__result-row-text' },
|
|
48461
48789
|
!isLoading &&
|
|
48462
|
-
|
|
48790
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.AccommodationAndFlight &&
|
|
48463
48791
|
React__default['default'].createElement(
|
|
48464
48792
|
React__default['default'].Fragment,
|
|
48465
48793
|
null,
|
|
48466
|
-
|
|
48467
|
-
context.searchConfiguration.enableManualPackaging) ||
|
|
48468
|
-
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation) &&
|
|
48794
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation &&
|
|
48469
48795
|
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
48470
48796
|
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length),
|
|
48471
48797
|
context.searchConfiguration.qsmType !== build.PortalQsmType.Accommodation &&
|
|
@@ -48514,22 +48840,113 @@ var SearchResultsContainer = function () {
|
|
|
48514
48840
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48515
48841
|
!context.packagingEntry &&
|
|
48516
48842
|
context.showFlightResults &&
|
|
48517
|
-
|
|
48518
|
-
|
|
48519
|
-
|
|
48520
|
-
|
|
48521
|
-
|
|
48843
|
+
// bookingPackageDetails?.outwardFlights &&
|
|
48844
|
+
// <FlightResults flights={bookingPackageDetails?.outwardFlights} isDeparture={true} />
|
|
48845
|
+
React__default['default'].createElement(
|
|
48846
|
+
React__default['default'].Fragment,
|
|
48847
|
+
null,
|
|
48848
|
+
React__default['default'].createElement(
|
|
48849
|
+
'div',
|
|
48850
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
48851
|
+
React__default['default'].createElement(
|
|
48852
|
+
'div',
|
|
48853
|
+
{ className: 'search__results__label__date' },
|
|
48854
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
48855
|
+
),
|
|
48856
|
+
React__default['default'].createElement(
|
|
48857
|
+
'div',
|
|
48858
|
+
{ className: 'search__results__label__text' },
|
|
48859
|
+
React__default['default'].createElement(
|
|
48860
|
+
'h3',
|
|
48861
|
+
null,
|
|
48862
|
+
translations.SRP.SELECT,
|
|
48863
|
+
' ',
|
|
48864
|
+
React__default['default'].createElement('strong', null, ' ', translations.SRP.DEPARTURE)
|
|
48865
|
+
)
|
|
48866
|
+
)
|
|
48867
|
+
),
|
|
48868
|
+
React__default['default'].createElement(
|
|
48869
|
+
'div',
|
|
48870
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
48871
|
+
selectedOutwardKey && selectedOutward
|
|
48872
|
+
? React__default['default'].createElement(IndependentFlightOption, {
|
|
48873
|
+
key: 'flight-'.concat(selectedOutwardKey),
|
|
48874
|
+
item: selectedOutward.outward,
|
|
48875
|
+
guid: selectedOutward.outwardGuid,
|
|
48876
|
+
onSelect: function () {
|
|
48877
|
+
return setSelectedOutwardKey(null);
|
|
48878
|
+
},
|
|
48879
|
+
selectedGuid: selectedOutward.outwardGuid,
|
|
48880
|
+
isOutward: true
|
|
48881
|
+
})
|
|
48882
|
+
: uniqueOutwardFlights.map(function (result) {
|
|
48883
|
+
return React__default['default'].createElement(IndependentFlightOption, {
|
|
48884
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
48885
|
+
item: result.outward,
|
|
48886
|
+
onSelect: function () {
|
|
48887
|
+
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
48888
|
+
},
|
|
48889
|
+
guid: result.outwardGuid,
|
|
48890
|
+
isOutward: true
|
|
48891
|
+
});
|
|
48892
|
+
})
|
|
48893
|
+
)
|
|
48894
|
+
),
|
|
48522
48895
|
context.showHotelAccommodationResults &&
|
|
48523
48896
|
!context.packagingEntry &&
|
|
48524
48897
|
React__default['default'].createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
48525
48898
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48526
48899
|
!context.packagingEntry &&
|
|
48527
48900
|
context.showFlightResults &&
|
|
48528
|
-
|
|
48529
|
-
|
|
48530
|
-
|
|
48531
|
-
|
|
48532
|
-
|
|
48901
|
+
// bookingPackageDetails?.returnFlights &&
|
|
48902
|
+
// <FlightResults flights={bookingPackageDetails?.returnFlights} isDeparture={false} />
|
|
48903
|
+
React__default['default'].createElement(
|
|
48904
|
+
React__default['default'].Fragment,
|
|
48905
|
+
null,
|
|
48906
|
+
React__default['default'].createElement(
|
|
48907
|
+
'div',
|
|
48908
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
48909
|
+
React__default['default'].createElement(
|
|
48910
|
+
'div',
|
|
48911
|
+
{ className: 'search__results__label__date' },
|
|
48912
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-flight', height: 16, fill: 'white' })
|
|
48913
|
+
),
|
|
48914
|
+
React__default['default'].createElement(
|
|
48915
|
+
'div',
|
|
48916
|
+
{ className: 'search__results__label__text' },
|
|
48917
|
+
React__default['default'].createElement(
|
|
48918
|
+
'h3',
|
|
48919
|
+
null,
|
|
48920
|
+
translations.SRP.SELECT,
|
|
48921
|
+
' ',
|
|
48922
|
+
React__default['default'].createElement('strong', null, ' ', translations.SRP.RETURN)
|
|
48923
|
+
)
|
|
48924
|
+
)
|
|
48925
|
+
),
|
|
48926
|
+
React__default['default'].createElement(
|
|
48927
|
+
'div',
|
|
48928
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
48929
|
+
selectedReturnKey && selectedReturn
|
|
48930
|
+
? React__default['default'].createElement(IndependentFlightOption, {
|
|
48931
|
+
key: 'flight-'.concat(selectedReturnKey),
|
|
48932
|
+
item: selectedReturn.return,
|
|
48933
|
+
guid: selectedReturn.outwardGuid,
|
|
48934
|
+
selectedGuid: selectedReturn.outwardGuid,
|
|
48935
|
+
isOutward: false
|
|
48936
|
+
})
|
|
48937
|
+
: uniqueReturnFlights.map(function (result) {
|
|
48938
|
+
return React__default['default'].createElement(IndependentFlightOption, {
|
|
48939
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
48940
|
+
item: result.return,
|
|
48941
|
+
onSelect: function () {
|
|
48942
|
+
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
48943
|
+
},
|
|
48944
|
+
guid: result.outwardGuid,
|
|
48945
|
+
isOutward: false
|
|
48946
|
+
});
|
|
48947
|
+
})
|
|
48948
|
+
)
|
|
48949
|
+
),
|
|
48533
48950
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48534
48951
|
context.packagingEntry &&
|
|
48535
48952
|
itinerary &&
|
|
@@ -55996,3 +56413,4 @@ exports.PhotoGallery = PhotoGallery;
|
|
|
55996
56413
|
exports.QSM = QSM;
|
|
55997
56414
|
exports.SearchResults = SearchResults;
|
|
55998
56415
|
exports.Slider = Slider;
|
|
56416
|
+
exports.Spinner = Spinner;
|