@qite/tide-booking-component 1.4.102 → 1.4.103

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.
Files changed (30) hide show
  1. package/build/build-cjs/index.js +241 -112
  2. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +3 -0
  3. package/build/build-cjs/src/shared/utils/localization-util.d.ts +2 -0
  4. package/build/build-esm/index.js +241 -112
  5. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +3 -0
  6. package/build/build-esm/src/shared/utils/localization-util.d.ts +2 -0
  7. package/package.json +2 -2
  8. package/src/search-results/components/flight/flight-selection/independent-flight-option.tsx +31 -4
  9. package/src/search-results/components/hotel/hotel-accommodation-results.tsx +11 -12
  10. package/src/search-results/components/icon.tsx +1 -1
  11. package/src/search-results/components/search-results-container/search-results-container.tsx +94 -46
  12. package/src/shared/translations/ar-SA.json +2 -0
  13. package/src/shared/translations/da-DK.json +2 -0
  14. package/src/shared/translations/de-DE.json +2 -0
  15. package/src/shared/translations/en-GB.json +2 -0
  16. package/src/shared/translations/es-ES.json +2 -0
  17. package/src/shared/translations/fr-BE.json +2 -0
  18. package/src/shared/translations/fr-FR.json +2 -0
  19. package/src/shared/translations/is-IS.json +2 -0
  20. package/src/shared/translations/it-IT.json +2 -0
  21. package/src/shared/translations/ja-JP.json +2 -0
  22. package/src/shared/translations/nl-BE.json +2 -0
  23. package/src/shared/translations/nl-NL.json +2 -0
  24. package/src/shared/translations/no-NO.json +2 -0
  25. package/src/shared/translations/pl-PL.json +2 -0
  26. package/src/shared/translations/pt-PT.json +2 -0
  27. package/src/shared/translations/sv-SE.json +2 -0
  28. package/src/shared/utils/localization-util.ts +5 -2
  29. package/styles/components/_flight-option.scss +14 -1
  30. package/styles/components/_search.scss +5 -0
@@ -611,6 +611,8 @@ var QSM$g = {
611
611
  GROUP_TOUR: 'جولة جماعية'
612
612
  };
613
613
  var SRP$f = {
614
+ SHOW_MORE: 'عرض المزيد',
615
+ SHOW_LESS: 'عرض أقل',
614
616
  NO_RESULTS: 'لم يتم العثور على نتائج.',
615
617
  TOTAL_RESULTS_LABEL: 'تم العثور على باقات',
616
618
  RESET: 'إعادة تعيين',
@@ -1015,6 +1017,8 @@ var QSM$f = {
1015
1017
  GROUP_TOUR: 'Grupperejse'
1016
1018
  };
1017
1019
  var SRP$e = {
1020
+ SHOW_MORE: 'Vis flere',
1021
+ SHOW_LESS: 'Vis færre',
1018
1022
  NO_RESULTS: 'Ingen resultater fundet.',
1019
1023
  TOTAL_RESULTS_LABEL: 'Fundne pakker',
1020
1024
  RESET: 'Nulstil',
@@ -1420,6 +1424,8 @@ var QSM$e = {
1420
1424
  GROUP_TOUR: 'Gruppentour'
1421
1425
  };
1422
1426
  var SRP$d = {
1427
+ SHOW_MORE: 'Mehr anzeigen',
1428
+ SHOW_LESS: 'Weniger anzeigen',
1423
1429
  NO_RESULTS: 'Keine Ergebnisse gefunden.',
1424
1430
  TOTAL_RESULTS_LABEL: 'Gefundene Pakete',
1425
1431
  RESET: 'Zurücksetzen',
@@ -1828,6 +1834,8 @@ var QSM$d = {
1828
1834
  GROUP_TOUR: 'Group tour'
1829
1835
  };
1830
1836
  var SRP$c = {
1837
+ SHOW_MORE: 'Show more',
1838
+ SHOW_LESS: 'Show less',
1831
1839
  NO_RESULTS: 'No results found.',
1832
1840
  TOTAL_RESULTS_LABEL: 'Packages found',
1833
1841
  RESET: 'Reset',
@@ -2233,6 +2241,8 @@ var QSM$c = {
2233
2241
  GROUP_TOUR: 'Tour grupal'
2234
2242
  };
2235
2243
  var SRP$b = {
2244
+ SHOW_MORE: 'Mostrar más',
2245
+ SHOW_LESS: 'Mostrar menos',
2236
2246
  NO_RESULTS: 'No se han encontrado resultados.',
2237
2247
  TOTAL_RESULTS_LABEL: 'Paquetes encontrados',
2238
2248
  RESET: 'Restablecer',
@@ -2642,6 +2652,8 @@ var QSM$b = {
2642
2652
  GROUP_TOUR: 'Tour en groupe'
2643
2653
  };
2644
2654
  var SRP$a = {
2655
+ SHOW_MORE: 'Afficher plus',
2656
+ SHOW_LESS: 'Afficher moins',
2645
2657
  NO_RESULTS: 'Aucun résultat trouvé.',
2646
2658
  TOTAL_RESULTS_LABEL: 'Forfaits trouvés',
2647
2659
  RESET: 'Réinitialiser',
@@ -3046,6 +3058,8 @@ var QSM$a = {
3046
3058
  GROUP_TOUR: 'Tour en groupe'
3047
3059
  };
3048
3060
  var SRP$9 = {
3061
+ SHOW_MORE: 'Afficher plus',
3062
+ SHOW_LESS: 'Afficher moins',
3049
3063
  NO_RESULTS: 'Aucun résultat trouvé.',
3050
3064
  TOTAL_RESULTS_LABEL: 'Forfaits trouvés',
3051
3065
  RESET: 'Réinitialiser',
@@ -3450,6 +3464,8 @@ var QSM$9 = {
3450
3464
  GROUP_TOUR: 'Ferð í hóp'
3451
3465
  };
3452
3466
  var SRP$8 = {
3467
+ SHOW_MORE: 'Sýna meira',
3468
+ SHOW_LESS: 'Sýna minna',
3453
3469
  NO_RESULTS: 'Engar niðurstöður fundust.',
3454
3470
  TOTAL_RESULTS_LABEL: 'Fundnar pakkar',
3455
3471
  RESET: 'Endurstilla',
@@ -3855,6 +3871,8 @@ var QSM$8 = {
3855
3871
  GROUP_TOUR: 'Tour di gruppo'
3856
3872
  };
3857
3873
  var SRP$7 = {
3874
+ SHOW_MORE: 'Mostra di più',
3875
+ SHOW_LESS: 'Mostra di meno',
3858
3876
  NO_RESULTS: 'Nessun risultato trovato.',
3859
3877
  TOTAL_RESULTS_LABEL: 'Pacchetti trovati',
3860
3878
  RESET: 'Reimposta',
@@ -4264,6 +4282,8 @@ var QSM$7 = {
4264
4282
  GROUP_TOUR: 'Groepsreis'
4265
4283
  };
4266
4284
  var SRP$6 = {
4285
+ SHOW_MORE: 'Toon meer',
4286
+ SHOW_LESS: 'Toon minder',
4267
4287
  NO_RESULTS: 'Geen resultaten gevonden.',
4268
4288
  TOTAL_RESULTS_LABEL: 'Gevonden pakketten',
4269
4289
  RESET: 'Resetten',
@@ -4669,6 +4689,8 @@ var QSM$6 = {
4669
4689
  GROUP_TOUR: 'Groepsreis'
4670
4690
  };
4671
4691
  var SRP$5 = {
4692
+ SHOW_MORE: 'Toon meer',
4693
+ SHOW_LESS: 'Toon minder',
4672
4694
  NO_RESULTS: 'Geen resultaten gevonden.',
4673
4695
  TOTAL_RESULTS_LABEL: 'Gevonden pakketten',
4674
4696
  RESET: 'Resetten',
@@ -5074,6 +5096,8 @@ var QSM$5 = {
5074
5096
  GROUP_TOUR: 'Gruppetur'
5075
5097
  };
5076
5098
  var SRP$4 = {
5099
+ SHOW_MORE: 'Vis mer',
5100
+ SHOW_LESS: 'Vis mindre',
5077
5101
  NO_RESULTS: 'Ingen resultater funnet.',
5078
5102
  TOTAL_RESULTS_LABEL: 'Fant pakker',
5079
5103
  RESET: 'Tilbakestill',
@@ -5479,6 +5503,8 @@ var QSM$4 = {
5479
5503
  GROUP_TOUR: 'Tour w grupie'
5480
5504
  };
5481
5505
  var SRP$3 = {
5506
+ SHOW_MORE: 'Pokaż więcej',
5507
+ SHOW_LESS: 'Pokaż mniej',
5482
5508
  NO_RESULTS: 'Nie znaleziono wyników.',
5483
5509
  TOTAL_RESULTS_LABEL: 'Znalezione pakiety',
5484
5510
  RESET: 'Resetuj',
@@ -5884,6 +5910,8 @@ var QSM$3 = {
5884
5910
  GROUP_TOUR: 'Tour em grupo'
5885
5911
  };
5886
5912
  var SRP$2 = {
5913
+ SHOW_MORE: 'Mostrar mais',
5914
+ SHOW_LESS: 'Mostrar menos',
5887
5915
  NO_RESULTS: 'Nenhum resultado encontrado.',
5888
5916
  TOTAL_RESULTS_LABEL: 'Pacotes encontrados',
5889
5917
  RESET: 'Redefinir',
@@ -6289,6 +6317,8 @@ var QSM$2 = {
6289
6317
  GROUP_TOUR: 'Gruppresa'
6290
6318
  };
6291
6319
  var SRP$1 = {
6320
+ SHOW_MORE: 'Visa mer',
6321
+ SHOW_LESS: 'Visa mindre',
6292
6322
  NO_RESULTS: 'Inga resultat hittades.',
6293
6323
  TOTAL_RESULTS_LABEL: 'Hittade paket',
6294
6324
  RESET: 'Återställ',
@@ -6692,6 +6722,8 @@ var QSM$1 = {
6692
6722
  GROUP_TOUR: 'グループツアー'
6693
6723
  };
6694
6724
  var SRP = {
6725
+ SHOW_MORE: 'もっと見る',
6726
+ SHOW_LESS: '閉じる',
6695
6727
  NO_RESULTS: '結果が見つかりませんでした。',
6696
6728
  TOTAL_RESULTS_LABEL: '見つかったパッケージ',
6697
6729
  RESET: 'リセット',
@@ -6898,8 +6930,8 @@ var timeFromDateTime = function (dateTime) {
6898
6930
  return '';
6899
6931
  }
6900
6932
  var date = new Date(dateTime);
6901
- var hours = date.getHours();
6902
- var minutes = date.getMinutes();
6933
+ var hours = date.getUTCHours();
6934
+ var minutes = date.getUTCMinutes();
6903
6935
  return ''
6904
6936
  .concat(hours, ':')
6905
6937
  .concat(minutes < 10 ? '0' : '')
@@ -34099,7 +34131,7 @@ var Icon$1 = function (_a) {
34099
34131
  title && React__default.createElement('title', null, title),
34100
34132
  React__default.createElement('path', {
34101
34133
  d: 'M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z',
34102
- fill: 'currentColor'
34134
+ fill: fill !== null && fill !== void 0 ? fill : 'currentColor'
34103
34135
  })
34104
34136
  );
34105
34137
  case 'ui-utensils':
@@ -43524,16 +43556,6 @@ var HotelAccommodationResults = function (_a) {
43524
43556
  : firstPackagingResult.fromDate;
43525
43557
  var firstResultDay = firstResultDate ? format$1(parseISO(firstResultDate), 'd') : null;
43526
43558
  var firstResultMonth = firstResultDate ? format$1(parseISO(firstResultDate), 'MMM') : null;
43527
- if (isLoading) {
43528
- return React__default.createElement(
43529
- React__default.Fragment,
43530
- null,
43531
- (_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default.createElement(Spinner, null)
43532
- );
43533
- }
43534
- if (mappedResults.length === 0) {
43535
- return React__default.createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS);
43536
- }
43537
43559
  return React__default.createElement(
43538
43560
  React__default.Fragment,
43539
43561
  null,
@@ -43543,8 +43565,14 @@ var HotelAccommodationResults = function (_a) {
43543
43565
  React__default.createElement(
43544
43566
  'div',
43545
43567
  { className: 'search__results__label__date' },
43546
- React__default.createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
43547
- React__default.createElement('p', null, firstResultMonth)
43568
+ firstResultDay && firstResultMonth
43569
+ ? React__default.createElement(
43570
+ React__default.Fragment,
43571
+ null,
43572
+ React__default.createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
43573
+ React__default.createElement('p', null, firstResultMonth)
43574
+ )
43575
+ : React__default.createElement(Icon$1, { name: 'ui-bed', height: 16, fill: 'white' })
43548
43576
  ),
43549
43577
  React__default.createElement(
43550
43578
  'div',
@@ -43552,7 +43580,14 @@ var HotelAccommodationResults = function (_a) {
43552
43580
  React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.ACCOMMODATION))
43553
43581
  )
43554
43582
  ),
43555
- renderHotelResults(mappedResults, context, activeTab, translations)
43583
+ isLoading
43584
+ ? React__default.createElement(
43585
+ React__default.Fragment,
43586
+ null,
43587
+ (_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default.createElement(Spinner, null)
43588
+ )
43589
+ : renderHotelResults(mappedResults, context, activeTab, translations),
43590
+ mappedResults.length === 0 && !isLoading && React__default.createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS)
43556
43591
  );
43557
43592
  };
43558
43593
 
@@ -44414,24 +44449,28 @@ var PairedFlightSelection = function (_a) {
44414
44449
  };
44415
44450
 
44416
44451
  var IndependentFlightOption = function (_a) {
44417
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
44452
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
44418
44453
  var item = _a.item,
44419
44454
  onSelect = _a.onSelect,
44420
44455
  guid = _a.guid,
44421
- selectedGuid = _a.selectedGuid;
44422
- _a.isOutward;
44456
+ selectedGuid = _a.selectedGuid,
44457
+ isOutward = _a.isOutward,
44458
+ showSelectedState = _a.showSelectedState,
44459
+ currentSelectedPrice = _a.currentSelectedPrice,
44460
+ price = _a.price;
44423
44461
  var context = useContext(SearchResultsConfigurationContext);
44424
44462
  var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
44425
44463
  var translations = getTranslations(language);
44426
- var _m = useState(false),
44427
- detailsOpen = _m[0],
44428
- setDetailsOpen = _m[1];
44464
+ var _p = useState(false),
44465
+ detailsOpen = _p[0],
44466
+ setDetailsOpen = _p[1];
44467
+ var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
44429
44468
  return React__default.createElement(
44430
44469
  'div',
44431
44470
  { className: 'search__result-card', key: 'flight-'.concat(item.code) },
44432
44471
  React__default.createElement(
44433
44472
  'div',
44434
- { className: 'flight' },
44473
+ { className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
44435
44474
  React__default.createElement(
44436
44475
  'div',
44437
44476
  { className: 'flight__option' },
@@ -44451,6 +44490,33 @@ var IndependentFlightOption = function (_a) {
44451
44490
  React__default.createElement(
44452
44491
  'div',
44453
44492
  { className: 'flight__price' },
44493
+ price != null &&
44494
+ price > 0 &&
44495
+ (isOutward
44496
+ ? React__default.createElement(
44497
+ 'span',
44498
+ { className: 'price' },
44499
+ translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
44500
+ '\u00A0',
44501
+ formatPrice$2(
44502
+ price,
44503
+ 'EUR',
44504
+ (_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
44505
+ )
44506
+ )
44507
+ : priceDifference != null &&
44508
+ Math.abs(priceDifference) > 0 &&
44509
+ React__default.createElement(
44510
+ 'span',
44511
+ { className: 'price' },
44512
+ priceDifference > 0 ? '+' : '-',
44513
+ '\u00A0',
44514
+ formatPrice$2(
44515
+ Math.abs(priceDifference),
44516
+ 'EUR',
44517
+ (_d = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
44518
+ )
44519
+ )),
44454
44520
  React__default.createElement(
44455
44521
  'button',
44456
44522
  {
@@ -44479,13 +44545,13 @@ var IndependentFlightOption = function (_a) {
44479
44545
  { className: 'flight__logo__wrapper' },
44480
44546
  React__default.createElement('img', {
44481
44547
  src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
44482
- (_c = getDepartureSegment(item)) === null || _c === void 0 ? void 0 : _c.marketingAirlineCode,
44548
+ (_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
44483
44549
  '.png?height=256'
44484
44550
  ),
44485
44551
  alt: '',
44486
44552
  className: 'flight__logo'
44487
44553
  }),
44488
- React__default.createElement('span', null, (_d = getDepartureSegment(item)) === null || _d === void 0 ? void 0 : _d.marketingAirlineName)
44554
+ React__default.createElement('span', null, (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName)
44489
44555
  ),
44490
44556
  React__default.createElement(
44491
44557
  'div',
@@ -44496,14 +44562,14 @@ var IndependentFlightOption = function (_a) {
44496
44562
  React__default.createElement(
44497
44563
  'strong',
44498
44564
  null,
44499
- timeFromDateTime((_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.departureDateTime),
44565
+ timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
44500
44566
  ' ',
44501
- (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.departureAirportCode
44567
+ (_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
44502
44568
  ),
44503
44569
  React__default.createElement(
44504
44570
  'p',
44505
44571
  null,
44506
- longFormatDate((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime, language)
44572
+ longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
44507
44573
  )
44508
44574
  ),
44509
44575
  React__default.createElement(
@@ -44527,14 +44593,14 @@ var IndependentFlightOption = function (_a) {
44527
44593
  React__default.createElement(
44528
44594
  'strong',
44529
44595
  null,
44530
- timeFromDateTime((_h = getArrivalSegment(item)) === null || _h === void 0 ? void 0 : _h.arrivalDateTime),
44596
+ timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
44531
44597
  ' ',
44532
- (_j = getArrivalSegment(item)) === null || _j === void 0 ? void 0 : _j.arrivalAirportCode
44598
+ (_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
44533
44599
  ),
44534
44600
  React__default.createElement(
44535
44601
  'p',
44536
44602
  null,
44537
- longFormatDate((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime, language)
44603
+ longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
44538
44604
  )
44539
44605
  )
44540
44606
  )
@@ -44559,9 +44625,9 @@ var IndependentFlightOption = function (_a) {
44559
44625
  React__default.createElement(
44560
44626
  'div',
44561
44627
  { className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
44562
- (_l = getFlightSegments(item)) === null || _l === void 0
44628
+ (_o = getFlightSegments(item)) === null || _o === void 0
44563
44629
  ? void 0
44564
- : _l.map(function (segment, index) {
44630
+ : _o.map(function (segment, index) {
44565
44631
  return React__default.createElement(
44566
44632
  React__default.Fragment,
44567
44633
  { key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
@@ -46980,6 +47046,7 @@ var SearchResultsContainer = function () {
46980
47046
  filteredPackagingAccoResults = _c.filteredPackagingAccoResults;
46981
47047
  _c.bookingPackageDetails;
46982
47048
  var isLoading = _c.isLoading,
47049
+ flightsLoading = _c.flightsLoading,
46983
47050
  filters = _c.filters,
46984
47051
  selectedSortType = _c.selectedSortType,
46985
47052
  selectedSearchResult = _c.selectedSearchResult,
@@ -47017,6 +47084,9 @@ var SearchResultsContainer = function () {
47017
47084
  selectedAccommodationSeed = _l[0],
47018
47085
  setSelectedAccommodationSeed = _l[1];
47019
47086
  var skipInitialPackagingAccoDetailsRef = useRef(false);
47087
+ var _m = useState(false),
47088
+ showAllOutwardFlights = _m[0],
47089
+ setShowAllOutwardFlights = _m[1];
47020
47090
  var panelRef = useRef(null);
47021
47091
  var sortByTypes = [
47022
47092
  { direction: 'asc', label: 'default' },
@@ -47524,6 +47594,7 @@ var SearchResultsContainer = function () {
47524
47594
  case 0:
47525
47595
  _a.trys.push([0, 2, , 3]);
47526
47596
  if (!context) return [2 /*return*/, null];
47597
+ dispatch(setIsLoading(true));
47527
47598
  config = {
47528
47599
  host: context.tideConnection.host,
47529
47600
  apiKey: context.tideConnection.apiKey
@@ -47531,12 +47602,13 @@ var SearchResultsContainer = function () {
47531
47602
  return [4 /*yield*/, build.startTransaction(config)];
47532
47603
  case 1:
47533
47604
  transaction = _a.sent();
47534
- console.log('Transaction started', transaction);
47535
47605
  dispatch(setTransactionId(transaction.transactionId));
47606
+ dispatch(setIsLoading(false));
47536
47607
  return [2 /*return*/, transaction.transactionId];
47537
47608
  case 2:
47538
47609
  err_2 = _a.sent();
47539
47610
  console.error('Transaction failed', err_2);
47611
+ dispatch(setIsLoading(false));
47540
47612
  return [2 /*return*/, null];
47541
47613
  case 3:
47542
47614
  return [2 /*return*/];
@@ -47614,7 +47686,7 @@ var SearchResultsContainer = function () {
47614
47686
  };
47615
47687
  var runFlightSearch = function (currentTransactionId, seed) {
47616
47688
  return __awaiter(void 0, void 0, void 0, function () {
47617
- var config, searchRequest, packageFlightSearchResults, err_4;
47689
+ var config, searchRequest, packageFlightSearchResults, firstResult, err_4;
47618
47690
  return __generator(this, function (_a) {
47619
47691
  switch (_a.label) {
47620
47692
  case 0:
@@ -47631,6 +47703,11 @@ var SearchResultsContainer = function () {
47631
47703
  case 1:
47632
47704
  packageFlightSearchResults = _a.sent();
47633
47705
  dispatch(setPackagingFlightResults(packageFlightSearchResults));
47706
+ firstResult = first(packageFlightSearchResults);
47707
+ if (firstResult) {
47708
+ setSelectedOutwardKey(getFlightKey(firstResult.outward.segments));
47709
+ setSelectedReturnKey(getFlightKey(firstResult.return.segments));
47710
+ }
47634
47711
  dispatch(setFlightsLoading(false));
47635
47712
  return [3 /*break*/, 3];
47636
47713
  case 2:
@@ -47738,9 +47815,7 @@ var SearchResultsContainer = function () {
47738
47815
  );
47739
47816
  useEffect(
47740
47817
  function () {
47741
- console.log('packaging entry from context', context === null || context === void 0 ? void 0 : context.packagingEntry);
47742
47818
  if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
47743
- console.log('original packaging entry from context', context.packagingEntry);
47744
47819
  dispatch(setEditablePackagingEntry(structuredClone(context.packagingEntry)));
47745
47820
  dispatch(setTransactionId(context.packagingEntry.transactionId));
47746
47821
  }
@@ -47975,27 +48050,35 @@ var SearchResultsContainer = function () {
47975
48050
  function () {
47976
48051
  var fetchPriceDetails = function () {
47977
48052
  return __awaiter(void 0, void 0, void 0, function () {
47978
- var config, priceDetails, err_7;
47979
- return __generator(this, function (_a) {
47980
- switch (_a.label) {
48053
+ var config, request, priceDetails, err_7;
48054
+ var _a, _b;
48055
+ return __generator(this, function (_c) {
48056
+ switch (_c.label) {
47981
48057
  case 0:
47982
48058
  if (!context || !editablePackagingEntry || isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
47983
48059
  setPricesAreLoading(true);
47984
- _a.label = 1;
48060
+ _c.label = 1;
47985
48061
  case 1:
47986
- _a.trys.push([1, 3, , 4]);
48062
+ _c.trys.push([1, 3, , 4]);
47987
48063
  config = {
47988
48064
  host: context.tideConnection.host,
47989
48065
  apiKey: context.tideConnection.apiKey
47990
48066
  };
47991
- return [4 /*yield*/, build.getPriceDetails(config, editablePackagingEntry)];
48067
+ request = {
48068
+ language: (_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB',
48069
+ officeId: context.tideConnection.officeId,
48070
+ catalogueId: (_b = context.searchConfiguration.defaultCatalogueId) !== null && _b !== void 0 ? _b : 0,
48071
+ agentId: context.agentId,
48072
+ payload: editablePackagingEntry
48073
+ };
48074
+ return [4 /*yield*/, build.getPriceDetails(config, request)];
47992
48075
  case 2:
47993
- priceDetails = _a.sent();
48076
+ priceDetails = _c.sent();
47994
48077
  dispatch(setPriceDetails(priceDetails));
47995
48078
  setPricesAreLoading(false);
47996
48079
  return [3 /*break*/, 4];
47997
48080
  case 3:
47998
- err_7 = _a.sent();
48081
+ err_7 = _c.sent();
47999
48082
  console.error('Error fetching price details', err_7);
48000
48083
  setPricesAreLoading(false);
48001
48084
  return [3 /*break*/, 4];
@@ -48007,29 +48090,36 @@ var SearchResultsContainer = function () {
48007
48090
  };
48008
48091
  var fetchItinerary = function () {
48009
48092
  return __awaiter(void 0, void 0, void 0, function () {
48010
- var config, itinerary_1, err_8;
48011
- return __generator(this, function (_a) {
48012
- switch (_a.label) {
48093
+ var config, request, itinerary_1, err_8;
48094
+ var _a, _b;
48095
+ return __generator(this, function (_c) {
48096
+ switch (_c.label) {
48013
48097
  case 0:
48014
- console.log('Fetching itinerary for entry', editablePackagingEntry);
48015
- if (!context || !editablePackagingEntry || isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
48098
+ if (!context || !context.packagingEntry || !editablePackagingEntry || isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
48016
48099
  setItineraryIsLoading(true);
48017
- _a.label = 1;
48100
+ _c.label = 1;
48018
48101
  case 1:
48019
- _a.trys.push([1, 3, , 4]);
48102
+ _c.trys.push([1, 3, , 4]);
48020
48103
  config = {
48021
48104
  host: context.tideConnection.host,
48022
48105
  apiKey: context.tideConnection.apiKey
48023
48106
  };
48024
- return [4 /*yield*/, build.getItinerary(config, editablePackagingEntry)];
48107
+ request = {
48108
+ language: (_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB',
48109
+ officeId: context.tideConnection.officeId,
48110
+ catalogueId: (_b = context.searchConfiguration.defaultCatalogueId) !== null && _b !== void 0 ? _b : 0,
48111
+ agentId: context.agentId,
48112
+ payload: editablePackagingEntry
48113
+ };
48114
+ return [4 /*yield*/, build.getItinerary(config, request)];
48025
48115
  case 2:
48026
- itinerary_1 = _a.sent();
48116
+ itinerary_1 = _c.sent();
48027
48117
  console.log('Fetched itinerary', itinerary_1);
48028
48118
  dispatch(setItinerary(itinerary_1));
48029
48119
  setItineraryIsLoading(false);
48030
48120
  return [3 /*break*/, 4];
48031
48121
  case 3:
48032
- err_8 = _a.sent();
48122
+ err_8 = _c.sent();
48033
48123
  console.error('Error fetching itinerary', err_8);
48034
48124
  setItineraryIsLoading(false);
48035
48125
  return [3 /*break*/, 4];
@@ -48045,12 +48135,12 @@ var SearchResultsContainer = function () {
48045
48135
  [editablePackagingEntry]
48046
48136
  );
48047
48137
  // Flight selection
48048
- var _m = useState(null),
48049
- selectedOutwardKey = _m[0],
48050
- setSelectedOutwardKey = _m[1];
48051
48138
  var _o = useState(null),
48052
- selectedReturnKey = _o[0],
48053
- setSelectedReturnKey = _o[1];
48139
+ selectedOutwardKey = _o[0],
48140
+ setSelectedOutwardKey = _o[1];
48141
+ var _p = useState(null),
48142
+ selectedReturnKey = _p[0],
48143
+ setSelectedReturnKey = _p[1];
48054
48144
  var uniqueOutwardFlights = React__default.useMemo(
48055
48145
  function () {
48056
48146
  var map = new Map();
@@ -48064,11 +48154,12 @@ var SearchResultsContainer = function () {
48064
48154
  },
48065
48155
  [packagingFlightResults]
48066
48156
  );
48067
- var _p = useState([]),
48068
- uniqueReturnFlights = _p[0],
48069
- setUniqueReturnFlights = _p[1];
48157
+ var _q = useState([]),
48158
+ uniqueReturnFlights = _q[0],
48159
+ setUniqueReturnFlights = _q[1];
48070
48160
  useEffect(
48071
48161
  function () {
48162
+ var _a;
48072
48163
  if (!selectedOutwardKey) {
48073
48164
  setUniqueReturnFlights([]);
48074
48165
  setSelectedReturnKey(null);
@@ -48087,6 +48178,10 @@ var SearchResultsContainer = function () {
48087
48178
  });
48088
48179
  var returns = Array.from(returnMap.values());
48089
48180
  setUniqueReturnFlights(returns);
48181
+ var firstReturnKey = returns.length > 0 ? getFlightKey((_a = first(returns)) === null || _a === void 0 ? void 0 : _a.return.segments) : null;
48182
+ if (firstReturnKey) {
48183
+ setSelectedReturnKey(firstReturnKey);
48184
+ }
48090
48185
  },
48091
48186
  [selectedOutwardKey, packagingFlightResults]
48092
48187
  );
@@ -48155,7 +48250,6 @@ var SearchResultsContainer = function () {
48155
48250
  : '',
48156
48251
  language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
48157
48252
  });
48158
- console.log('Built next packaging entry', nextEntry);
48159
48253
  if (!nextEntry) return;
48160
48254
  dispatch(setEditablePackagingEntry(nextEntry));
48161
48255
  if (selectedCombinationFlight) {
@@ -48371,7 +48465,6 @@ var SearchResultsContainer = function () {
48371
48465
  return r.code === selectedHotelCode;
48372
48466
  })
48373
48467
  : null;
48374
- console.log('Selected hotel for packaging entry', selectedHotel);
48375
48468
  // Update accommodation only when enough data exists
48376
48469
  if (selectedHotel) {
48377
48470
  var accommodationLines = buildAccommodationLinesFromSelection(selectedHotel, seed);
@@ -48383,8 +48476,6 @@ var SearchResultsContainer = function () {
48383
48476
  // Update flights only when full selected combination exists
48384
48477
  if (selectedFlight) {
48385
48478
  var flightLines = buildFlightLinesFromSelection(selectedFlight);
48386
- console.log('selectedFlight', selectedFlight);
48387
- console.log('Built flight lines from selection', flightLines);
48388
48479
  if (flightLines.length) {
48389
48480
  nextLines = removeFlightLines(nextLines);
48390
48481
  nextLines = __spreadArray(__spreadArray([], nextLines, true), flightLines, true);
@@ -48430,6 +48521,12 @@ var SearchResultsContainer = function () {
48430
48521
  lines: []
48431
48522
  };
48432
48523
  };
48524
+ var visibleOutwardFlights = React__default.useMemo(
48525
+ function () {
48526
+ return showAllOutwardFlights ? uniqueOutwardFlights : uniqueOutwardFlights.slice(0, 3);
48527
+ },
48528
+ [showAllOutwardFlights, uniqueOutwardFlights]
48529
+ );
48433
48530
  return React__default.createElement(
48434
48531
  'div',
48435
48532
  { id: 'tide-booking', className: 'search__bg' },
@@ -48625,32 +48722,59 @@ var SearchResultsContainer = function () {
48625
48722
  )
48626
48723
  )
48627
48724
  ),
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
- )
48725
+ flightsLoading
48726
+ ? React__default.createElement(Spinner, null)
48727
+ : React__default.createElement(
48728
+ React__default.Fragment,
48729
+ null,
48730
+ React__default.createElement(
48731
+ 'div',
48732
+ { className: 'search__results__cards search__results__cards--extended' },
48733
+ selectedOutwardKey &&
48734
+ selectedOutward &&
48735
+ React__default.createElement(IndependentFlightOption, {
48736
+ key: 'flight-'.concat(selectedOutwardKey),
48737
+ item: selectedOutward.outward,
48738
+ guid: selectedOutward.outwardGuid,
48739
+ onSelect: function () {
48740
+ return setSelectedOutwardKey(null);
48741
+ },
48742
+ selectedGuid: selectedOutward.outwardGuid,
48743
+ isOutward: true,
48744
+ showSelectedState: true,
48745
+ price: selectedOutward.price
48746
+ }),
48747
+ visibleOutwardFlights.map(function (result) {
48748
+ return React__default.createElement(IndependentFlightOption, {
48749
+ key: 'flight-'.concat(result.outwardGuid),
48750
+ item: result.outward,
48751
+ onSelect: function () {
48752
+ return setSelectedOutwardKey(getFlightKey(result.outward.segments));
48753
+ },
48754
+ guid: result.outwardGuid,
48755
+ isOutward: true,
48756
+ price: result.price,
48757
+ currentSelectedPrice: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.price
48758
+ });
48759
+ })
48760
+ ),
48761
+ uniqueOutwardFlights &&
48762
+ uniqueOutwardFlights.length > 3 &&
48763
+ React__default.createElement(
48764
+ 'div',
48765
+ { className: 'search__results__cards__actions' },
48766
+ React__default.createElement(
48767
+ 'button',
48768
+ {
48769
+ className: 'cta cta--secondary',
48770
+ onClick: function () {
48771
+ return setShowAllOutwardFlights(!showAllOutwardFlights);
48772
+ }
48773
+ },
48774
+ showAllOutwardFlights ? translations.SRP.SHOW_LESS : translations.SRP.SHOW_MORE
48775
+ )
48776
+ )
48777
+ )
48654
48778
  ),
48655
48779
  context.showHotelAccommodationResults &&
48656
48780
  !context.packagingEntry &&
@@ -48686,25 +48810,30 @@ var SearchResultsContainer = function () {
48686
48810
  React__default.createElement(
48687
48811
  'div',
48688
48812
  { 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
- })
48813
+ selectedReturnKey &&
48814
+ selectedReturn &&
48815
+ React__default.createElement(IndependentFlightOption, {
48816
+ key: 'flight-'.concat(selectedReturnKey),
48817
+ item: selectedReturn.return,
48818
+ guid: selectedReturn.outwardGuid,
48819
+ selectedGuid: selectedReturn.outwardGuid,
48820
+ isOutward: false,
48821
+ showSelectedState: true,
48822
+ price: selectedReturn.price
48823
+ }),
48824
+ uniqueReturnFlights.map(function (result) {
48825
+ return React__default.createElement(IndependentFlightOption, {
48826
+ key: 'flight-'.concat(result.outwardGuid),
48827
+ item: result.return,
48828
+ onSelect: function () {
48829
+ return setSelectedReturnKey(getFlightKey(result.return.segments));
48830
+ },
48831
+ guid: result.outwardGuid,
48832
+ isOutward: false,
48833
+ currentSelectedPrice: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.price,
48834
+ price: result.price
48835
+ });
48836
+ })
48708
48837
  )
48709
48838
  ),
48710
48839
  context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&