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