@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.
@@ -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$1(flight.flightMetaData.durationInTicks),
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$1(x.durationInTicks),
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$1 = function (ticks) {
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
- selectFlight = _a.selectFlight,
33945
- setIsLoading = _a.setIsLoading,
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: currencyCode
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
- bookingPackageDetails = _c.bookingPackageDetails,
47463
- isLoading = _c.isLoading,
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: 1,
47647
- agentId: (_b = context === null || context === void 0 ? void 0 : context.agentId) !== null && _b !== void 0 ? _b : null,
47648
- catalogueId: (_c = context.searchConfiguration.defaultCatalogueId) !== null && _c !== void 0 ? _c : 0,
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: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB',
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 (_b) {
47881
- switch (_b.label) {
47790
+ var _a, _b, _c;
47791
+ return __generator(this, function (_d) {
47792
+ switch (_d.label) {
47882
47793
  case 0:
47883
- _b.trys.push([0, 2, , 3]);
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 = _b.sent();
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 = _b.sent();
47913
- console.error('Search failed', err_3);
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
- var currentTransactionId;
47925
- var _a;
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
- currentTransactionId = _b.sent();
47938
- _b.label = 2;
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
- if (!currentTransactionId) {
47941
- dispatch(setIsLoading(false));
47942
- return [2 /*return*/];
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
- _b.sent();
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 seed = activeSearchSeed;
47964
- if (seed) {
47965
- runAccommodationFlow(seed);
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 seed = activeSearchSeed;
47975
- if (seed) {
47976
- runAccommodationFlow(seed);
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, err_4;
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
- err_4 = _b.sent();
48069
- console.error('Failed to fetch package details', err_4);
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
- err_5;
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
- err_5 = _f.sent();
48183
- console.error('Failed to fetch package details', err_5);
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, err_6;
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
- err_6 = _a.sent();
48297
- console.error('Error fetching price details', err_6);
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, err_7;
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
- err_7 = _a.sent();
48331
- console.error('Error fetching itinerary', err_7);
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
- !context.packagingEntry &&
48790
+ context.searchConfiguration.qsmType !== build.PortalQsmType.AccommodationAndFlight &&
48463
48791
  React__default['default'].createElement(
48464
48792
  React__default['default'].Fragment,
48465
48793
  null,
48466
- ((context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
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
- (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) &&
48518
- React__default['default'].createElement(FlightResults, {
48519
- flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights,
48520
- isDeparture: true
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
- (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) &&
48529
- React__default['default'].createElement(FlightResults, {
48530
- flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights,
48531
- isDeparture: false
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;