@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
@@ -579,6 +579,8 @@ var QSM$g = {
579
579
  GROUP_TOUR: 'جولة جماعية'
580
580
  };
581
581
  var SRP$f = {
582
+ SHOW_MORE: 'عرض المزيد',
583
+ SHOW_LESS: 'عرض أقل',
582
584
  NO_RESULTS: 'لم يتم العثور على نتائج.',
583
585
  TOTAL_RESULTS_LABEL: 'تم العثور على باقات',
584
586
  RESET: 'إعادة تعيين',
@@ -983,6 +985,8 @@ var QSM$f = {
983
985
  GROUP_TOUR: 'Grupperejse'
984
986
  };
985
987
  var SRP$e = {
988
+ SHOW_MORE: 'Vis flere',
989
+ SHOW_LESS: 'Vis færre',
986
990
  NO_RESULTS: 'Ingen resultater fundet.',
987
991
  TOTAL_RESULTS_LABEL: 'Fundne pakker',
988
992
  RESET: 'Nulstil',
@@ -1388,6 +1392,8 @@ var QSM$e = {
1388
1392
  GROUP_TOUR: 'Gruppentour'
1389
1393
  };
1390
1394
  var SRP$d = {
1395
+ SHOW_MORE: 'Mehr anzeigen',
1396
+ SHOW_LESS: 'Weniger anzeigen',
1391
1397
  NO_RESULTS: 'Keine Ergebnisse gefunden.',
1392
1398
  TOTAL_RESULTS_LABEL: 'Gefundene Pakete',
1393
1399
  RESET: 'Zurücksetzen',
@@ -1796,6 +1802,8 @@ var QSM$d = {
1796
1802
  GROUP_TOUR: 'Group tour'
1797
1803
  };
1798
1804
  var SRP$c = {
1805
+ SHOW_MORE: 'Show more',
1806
+ SHOW_LESS: 'Show less',
1799
1807
  NO_RESULTS: 'No results found.',
1800
1808
  TOTAL_RESULTS_LABEL: 'Packages found',
1801
1809
  RESET: 'Reset',
@@ -2201,6 +2209,8 @@ var QSM$c = {
2201
2209
  GROUP_TOUR: 'Tour grupal'
2202
2210
  };
2203
2211
  var SRP$b = {
2212
+ SHOW_MORE: 'Mostrar más',
2213
+ SHOW_LESS: 'Mostrar menos',
2204
2214
  NO_RESULTS: 'No se han encontrado resultados.',
2205
2215
  TOTAL_RESULTS_LABEL: 'Paquetes encontrados',
2206
2216
  RESET: 'Restablecer',
@@ -2610,6 +2620,8 @@ var QSM$b = {
2610
2620
  GROUP_TOUR: 'Tour en groupe'
2611
2621
  };
2612
2622
  var SRP$a = {
2623
+ SHOW_MORE: 'Afficher plus',
2624
+ SHOW_LESS: 'Afficher moins',
2613
2625
  NO_RESULTS: 'Aucun résultat trouvé.',
2614
2626
  TOTAL_RESULTS_LABEL: 'Forfaits trouvés',
2615
2627
  RESET: 'Réinitialiser',
@@ -3014,6 +3026,8 @@ var QSM$a = {
3014
3026
  GROUP_TOUR: 'Tour en groupe'
3015
3027
  };
3016
3028
  var SRP$9 = {
3029
+ SHOW_MORE: 'Afficher plus',
3030
+ SHOW_LESS: 'Afficher moins',
3017
3031
  NO_RESULTS: 'Aucun résultat trouvé.',
3018
3032
  TOTAL_RESULTS_LABEL: 'Forfaits trouvés',
3019
3033
  RESET: 'Réinitialiser',
@@ -3418,6 +3432,8 @@ var QSM$9 = {
3418
3432
  GROUP_TOUR: 'Ferð í hóp'
3419
3433
  };
3420
3434
  var SRP$8 = {
3435
+ SHOW_MORE: 'Sýna meira',
3436
+ SHOW_LESS: 'Sýna minna',
3421
3437
  NO_RESULTS: 'Engar niðurstöður fundust.',
3422
3438
  TOTAL_RESULTS_LABEL: 'Fundnar pakkar',
3423
3439
  RESET: 'Endurstilla',
@@ -3823,6 +3839,8 @@ var QSM$8 = {
3823
3839
  GROUP_TOUR: 'Tour di gruppo'
3824
3840
  };
3825
3841
  var SRP$7 = {
3842
+ SHOW_MORE: 'Mostra di più',
3843
+ SHOW_LESS: 'Mostra di meno',
3826
3844
  NO_RESULTS: 'Nessun risultato trovato.',
3827
3845
  TOTAL_RESULTS_LABEL: 'Pacchetti trovati',
3828
3846
  RESET: 'Reimposta',
@@ -4232,6 +4250,8 @@ var QSM$7 = {
4232
4250
  GROUP_TOUR: 'Groepsreis'
4233
4251
  };
4234
4252
  var SRP$6 = {
4253
+ SHOW_MORE: 'Toon meer',
4254
+ SHOW_LESS: 'Toon minder',
4235
4255
  NO_RESULTS: 'Geen resultaten gevonden.',
4236
4256
  TOTAL_RESULTS_LABEL: 'Gevonden pakketten',
4237
4257
  RESET: 'Resetten',
@@ -4637,6 +4657,8 @@ var QSM$6 = {
4637
4657
  GROUP_TOUR: 'Groepsreis'
4638
4658
  };
4639
4659
  var SRP$5 = {
4660
+ SHOW_MORE: 'Toon meer',
4661
+ SHOW_LESS: 'Toon minder',
4640
4662
  NO_RESULTS: 'Geen resultaten gevonden.',
4641
4663
  TOTAL_RESULTS_LABEL: 'Gevonden pakketten',
4642
4664
  RESET: 'Resetten',
@@ -5042,6 +5064,8 @@ var QSM$5 = {
5042
5064
  GROUP_TOUR: 'Gruppetur'
5043
5065
  };
5044
5066
  var SRP$4 = {
5067
+ SHOW_MORE: 'Vis mer',
5068
+ SHOW_LESS: 'Vis mindre',
5045
5069
  NO_RESULTS: 'Ingen resultater funnet.',
5046
5070
  TOTAL_RESULTS_LABEL: 'Fant pakker',
5047
5071
  RESET: 'Tilbakestill',
@@ -5447,6 +5471,8 @@ var QSM$4 = {
5447
5471
  GROUP_TOUR: 'Tour w grupie'
5448
5472
  };
5449
5473
  var SRP$3 = {
5474
+ SHOW_MORE: 'Pokaż więcej',
5475
+ SHOW_LESS: 'Pokaż mniej',
5450
5476
  NO_RESULTS: 'Nie znaleziono wyników.',
5451
5477
  TOTAL_RESULTS_LABEL: 'Znalezione pakiety',
5452
5478
  RESET: 'Resetuj',
@@ -5852,6 +5878,8 @@ var QSM$3 = {
5852
5878
  GROUP_TOUR: 'Tour em grupo'
5853
5879
  };
5854
5880
  var SRP$2 = {
5881
+ SHOW_MORE: 'Mostrar mais',
5882
+ SHOW_LESS: 'Mostrar menos',
5855
5883
  NO_RESULTS: 'Nenhum resultado encontrado.',
5856
5884
  TOTAL_RESULTS_LABEL: 'Pacotes encontrados',
5857
5885
  RESET: 'Redefinir',
@@ -6257,6 +6285,8 @@ var QSM$2 = {
6257
6285
  GROUP_TOUR: 'Gruppresa'
6258
6286
  };
6259
6287
  var SRP$1 = {
6288
+ SHOW_MORE: 'Visa mer',
6289
+ SHOW_LESS: 'Visa mindre',
6260
6290
  NO_RESULTS: 'Inga resultat hittades.',
6261
6291
  TOTAL_RESULTS_LABEL: 'Hittade paket',
6262
6292
  RESET: 'Återställ',
@@ -6660,6 +6690,8 @@ var QSM$1 = {
6660
6690
  GROUP_TOUR: 'グループツアー'
6661
6691
  };
6662
6692
  var SRP = {
6693
+ SHOW_MORE: 'もっと見る',
6694
+ SHOW_LESS: '閉じる',
6663
6695
  NO_RESULTS: '結果が見つかりませんでした。',
6664
6696
  TOTAL_RESULTS_LABEL: '見つかったパッケージ',
6665
6697
  RESET: 'リセット',
@@ -6866,8 +6898,8 @@ var timeFromDateTime = function (dateTime) {
6866
6898
  return '';
6867
6899
  }
6868
6900
  var date = new Date(dateTime);
6869
- var hours = date.getHours();
6870
- var minutes = date.getMinutes();
6901
+ var hours = date.getUTCHours();
6902
+ var minutes = date.getUTCMinutes();
6871
6903
  return ''
6872
6904
  .concat(hours, ':')
6873
6905
  .concat(minutes < 10 ? '0' : '')
@@ -34242,7 +34274,7 @@ var Icon$1 = function (_a) {
34242
34274
  title && React__default['default'].createElement('title', null, title),
34243
34275
  React__default['default'].createElement('path', {
34244
34276
  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',
34245
- fill: 'currentColor'
34277
+ fill: fill !== null && fill !== void 0 ? fill : 'currentColor'
34246
34278
  })
34247
34279
  );
34248
34280
  case 'ui-utensils':
@@ -43699,16 +43731,6 @@ var HotelAccommodationResults = function (_a) {
43699
43731
  : firstPackagingResult.fromDate;
43700
43732
  var firstResultDay = firstResultDate ? dateFns.format(dateFns.parseISO(firstResultDate), 'd') : null;
43701
43733
  var firstResultMonth = firstResultDate ? dateFns.format(dateFns.parseISO(firstResultDate), 'MMM') : null;
43702
- if (isLoading) {
43703
- return React__default['default'].createElement(
43704
- React__default['default'].Fragment,
43705
- null,
43706
- (_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default['default'].createElement(Spinner, null)
43707
- );
43708
- }
43709
- if (mappedResults.length === 0) {
43710
- return React__default['default'].createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS);
43711
- }
43712
43734
  return React__default['default'].createElement(
43713
43735
  React__default['default'].Fragment,
43714
43736
  null,
@@ -43718,8 +43740,14 @@ var HotelAccommodationResults = function (_a) {
43718
43740
  React__default['default'].createElement(
43719
43741
  'div',
43720
43742
  { className: 'search__results__label__date' },
43721
- React__default['default'].createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
43722
- React__default['default'].createElement('p', null, firstResultMonth)
43743
+ firstResultDay && firstResultMonth
43744
+ ? React__default['default'].createElement(
43745
+ React__default['default'].Fragment,
43746
+ null,
43747
+ React__default['default'].createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
43748
+ React__default['default'].createElement('p', null, firstResultMonth)
43749
+ )
43750
+ : React__default['default'].createElement(Icon$1, { name: 'ui-bed', height: 16, fill: 'white' })
43723
43751
  ),
43724
43752
  React__default['default'].createElement(
43725
43753
  'div',
@@ -43733,7 +43761,14 @@ var HotelAccommodationResults = function (_a) {
43733
43761
  )
43734
43762
  )
43735
43763
  ),
43736
- renderHotelResults(mappedResults, context, activeTab, translations)
43764
+ isLoading
43765
+ ? React__default['default'].createElement(
43766
+ React__default['default'].Fragment,
43767
+ null,
43768
+ (_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default['default'].createElement(Spinner, null)
43769
+ )
43770
+ : renderHotelResults(mappedResults, context, activeTab, translations),
43771
+ mappedResults.length === 0 && !isLoading && React__default['default'].createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS)
43737
43772
  );
43738
43773
  };
43739
43774
 
@@ -44629,24 +44664,28 @@ var PairedFlightSelection = function (_a) {
44629
44664
  };
44630
44665
 
44631
44666
  var IndependentFlightOption = function (_a) {
44632
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
44667
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
44633
44668
  var item = _a.item,
44634
44669
  onSelect = _a.onSelect,
44635
44670
  guid = _a.guid,
44636
- selectedGuid = _a.selectedGuid;
44637
- _a.isOutward;
44671
+ selectedGuid = _a.selectedGuid,
44672
+ isOutward = _a.isOutward,
44673
+ showSelectedState = _a.showSelectedState,
44674
+ currentSelectedPrice = _a.currentSelectedPrice,
44675
+ price = _a.price;
44638
44676
  var context = React.useContext(SearchResultsConfigurationContext);
44639
44677
  var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
44640
44678
  var translations = getTranslations(language);
44641
- var _m = React.useState(false),
44642
- detailsOpen = _m[0],
44643
- setDetailsOpen = _m[1];
44679
+ var _p = React.useState(false),
44680
+ detailsOpen = _p[0],
44681
+ setDetailsOpen = _p[1];
44682
+ var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
44644
44683
  return React__default['default'].createElement(
44645
44684
  'div',
44646
44685
  { className: 'search__result-card', key: 'flight-'.concat(item.code) },
44647
44686
  React__default['default'].createElement(
44648
44687
  'div',
44649
- { className: 'flight' },
44688
+ { className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
44650
44689
  React__default['default'].createElement(
44651
44690
  'div',
44652
44691
  { className: 'flight__option' },
@@ -44666,6 +44705,33 @@ var IndependentFlightOption = function (_a) {
44666
44705
  React__default['default'].createElement(
44667
44706
  'div',
44668
44707
  { className: 'flight__price' },
44708
+ price != null &&
44709
+ price > 0 &&
44710
+ (isOutward
44711
+ ? React__default['default'].createElement(
44712
+ 'span',
44713
+ { className: 'price' },
44714
+ translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
44715
+ '\u00A0',
44716
+ formatPrice$2(
44717
+ price,
44718
+ 'EUR',
44719
+ (_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
44720
+ )
44721
+ )
44722
+ : priceDifference != null &&
44723
+ Math.abs(priceDifference) > 0 &&
44724
+ React__default['default'].createElement(
44725
+ 'span',
44726
+ { className: 'price' },
44727
+ priceDifference > 0 ? '+' : '-',
44728
+ '\u00A0',
44729
+ formatPrice$2(
44730
+ Math.abs(priceDifference),
44731
+ 'EUR',
44732
+ (_d = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
44733
+ )
44734
+ )),
44669
44735
  React__default['default'].createElement(
44670
44736
  'button',
44671
44737
  {
@@ -44694,7 +44760,7 @@ var IndependentFlightOption = function (_a) {
44694
44760
  { className: 'flight__logo__wrapper' },
44695
44761
  React__default['default'].createElement('img', {
44696
44762
  src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
44697
- (_c = getDepartureSegment(item)) === null || _c === void 0 ? void 0 : _c.marketingAirlineCode,
44763
+ (_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
44698
44764
  '.png?height=256'
44699
44765
  ),
44700
44766
  alt: '',
@@ -44703,7 +44769,7 @@ var IndependentFlightOption = function (_a) {
44703
44769
  React__default['default'].createElement(
44704
44770
  'span',
44705
44771
  null,
44706
- (_d = getDepartureSegment(item)) === null || _d === void 0 ? void 0 : _d.marketingAirlineName
44772
+ (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName
44707
44773
  )
44708
44774
  ),
44709
44775
  React__default['default'].createElement(
@@ -44715,14 +44781,14 @@ var IndependentFlightOption = function (_a) {
44715
44781
  React__default['default'].createElement(
44716
44782
  'strong',
44717
44783
  null,
44718
- timeFromDateTime((_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.departureDateTime),
44784
+ timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
44719
44785
  ' ',
44720
- (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.departureAirportCode
44786
+ (_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
44721
44787
  ),
44722
44788
  React__default['default'].createElement(
44723
44789
  'p',
44724
44790
  null,
44725
- longFormatDate((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime, language)
44791
+ longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
44726
44792
  )
44727
44793
  ),
44728
44794
  React__default['default'].createElement(
@@ -44746,14 +44812,14 @@ var IndependentFlightOption = function (_a) {
44746
44812
  React__default['default'].createElement(
44747
44813
  'strong',
44748
44814
  null,
44749
- timeFromDateTime((_h = getArrivalSegment(item)) === null || _h === void 0 ? void 0 : _h.arrivalDateTime),
44815
+ timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
44750
44816
  ' ',
44751
- (_j = getArrivalSegment(item)) === null || _j === void 0 ? void 0 : _j.arrivalAirportCode
44817
+ (_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
44752
44818
  ),
44753
44819
  React__default['default'].createElement(
44754
44820
  'p',
44755
44821
  null,
44756
- longFormatDate((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime, language)
44822
+ longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
44757
44823
  )
44758
44824
  )
44759
44825
  )
@@ -44778,9 +44844,9 @@ var IndependentFlightOption = function (_a) {
44778
44844
  React__default['default'].createElement(
44779
44845
  'div',
44780
44846
  { className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
44781
- (_l = getFlightSegments(item)) === null || _l === void 0
44847
+ (_o = getFlightSegments(item)) === null || _o === void 0
44782
44848
  ? void 0
44783
- : _l.map(function (segment, index) {
44849
+ : _o.map(function (segment, index) {
44784
44850
  return React__default['default'].createElement(
44785
44851
  React__default['default'].Fragment,
44786
44852
  { key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
@@ -47219,6 +47285,7 @@ var SearchResultsContainer = function () {
47219
47285
  filteredPackagingAccoResults = _c.filteredPackagingAccoResults;
47220
47286
  _c.bookingPackageDetails;
47221
47287
  var isLoading = _c.isLoading,
47288
+ flightsLoading = _c.flightsLoading,
47222
47289
  filters = _c.filters,
47223
47290
  selectedSortType = _c.selectedSortType,
47224
47291
  selectedSearchResult = _c.selectedSearchResult,
@@ -47256,6 +47323,9 @@ var SearchResultsContainer = function () {
47256
47323
  selectedAccommodationSeed = _l[0],
47257
47324
  setSelectedAccommodationSeed = _l[1];
47258
47325
  var skipInitialPackagingAccoDetailsRef = React.useRef(false);
47326
+ var _m = React.useState(false),
47327
+ showAllOutwardFlights = _m[0],
47328
+ setShowAllOutwardFlights = _m[1];
47259
47329
  var panelRef = React.useRef(null);
47260
47330
  var sortByTypes = [
47261
47331
  { direction: 'asc', label: 'default' },
@@ -47764,6 +47834,7 @@ var SearchResultsContainer = function () {
47764
47834
  case 0:
47765
47835
  _a.trys.push([0, 2, , 3]);
47766
47836
  if (!context) return [2 /*return*/, null];
47837
+ dispatch(setIsLoading(true));
47767
47838
  config = {
47768
47839
  host: context.tideConnection.host,
47769
47840
  apiKey: context.tideConnection.apiKey
@@ -47771,12 +47842,13 @@ var SearchResultsContainer = function () {
47771
47842
  return [4 /*yield*/, build.startTransaction(config)];
47772
47843
  case 1:
47773
47844
  transaction = _a.sent();
47774
- console.log('Transaction started', transaction);
47775
47845
  dispatch(setTransactionId(transaction.transactionId));
47846
+ dispatch(setIsLoading(false));
47776
47847
  return [2 /*return*/, transaction.transactionId];
47777
47848
  case 2:
47778
47849
  err_2 = _a.sent();
47779
47850
  console.error('Transaction failed', err_2);
47851
+ dispatch(setIsLoading(false));
47780
47852
  return [2 /*return*/, null];
47781
47853
  case 3:
47782
47854
  return [2 /*return*/];
@@ -47854,7 +47926,7 @@ var SearchResultsContainer = function () {
47854
47926
  };
47855
47927
  var runFlightSearch = function (currentTransactionId, seed) {
47856
47928
  return __awaiter(void 0, void 0, void 0, function () {
47857
- var config, searchRequest, packageFlightSearchResults, err_4;
47929
+ var config, searchRequest, packageFlightSearchResults, firstResult, err_4;
47858
47930
  return __generator(this, function (_a) {
47859
47931
  switch (_a.label) {
47860
47932
  case 0:
@@ -47871,6 +47943,11 @@ var SearchResultsContainer = function () {
47871
47943
  case 1:
47872
47944
  packageFlightSearchResults = _a.sent();
47873
47945
  dispatch(setPackagingFlightResults(packageFlightSearchResults));
47946
+ firstResult = lodash.first(packageFlightSearchResults);
47947
+ if (firstResult) {
47948
+ setSelectedOutwardKey(getFlightKey(firstResult.outward.segments));
47949
+ setSelectedReturnKey(getFlightKey(firstResult.return.segments));
47950
+ }
47874
47951
  dispatch(setFlightsLoading(false));
47875
47952
  return [3 /*break*/, 3];
47876
47953
  case 2:
@@ -47978,9 +48055,7 @@ var SearchResultsContainer = function () {
47978
48055
  );
47979
48056
  React.useEffect(
47980
48057
  function () {
47981
- console.log('packaging entry from context', context === null || context === void 0 ? void 0 : context.packagingEntry);
47982
48058
  if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
47983
- console.log('original packaging entry from context', context.packagingEntry);
47984
48059
  dispatch(setEditablePackagingEntry(structuredClone(context.packagingEntry)));
47985
48060
  dispatch(setTransactionId(context.packagingEntry.transactionId));
47986
48061
  }
@@ -48215,27 +48290,35 @@ var SearchResultsContainer = function () {
48215
48290
  function () {
48216
48291
  var fetchPriceDetails = function () {
48217
48292
  return __awaiter(void 0, void 0, void 0, function () {
48218
- var config, priceDetails, err_7;
48219
- return __generator(this, function (_a) {
48220
- switch (_a.label) {
48293
+ var config, request, priceDetails, err_7;
48294
+ var _a, _b;
48295
+ return __generator(this, function (_c) {
48296
+ switch (_c.label) {
48221
48297
  case 0:
48222
48298
  if (!context || !editablePackagingEntry || lodash.isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
48223
48299
  setPricesAreLoading(true);
48224
- _a.label = 1;
48300
+ _c.label = 1;
48225
48301
  case 1:
48226
- _a.trys.push([1, 3, , 4]);
48302
+ _c.trys.push([1, 3, , 4]);
48227
48303
  config = {
48228
48304
  host: context.tideConnection.host,
48229
48305
  apiKey: context.tideConnection.apiKey
48230
48306
  };
48231
- return [4 /*yield*/, build.getPriceDetails(config, editablePackagingEntry)];
48307
+ request = {
48308
+ language: (_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB',
48309
+ officeId: context.tideConnection.officeId,
48310
+ catalogueId: (_b = context.searchConfiguration.defaultCatalogueId) !== null && _b !== void 0 ? _b : 0,
48311
+ agentId: context.agentId,
48312
+ payload: editablePackagingEntry
48313
+ };
48314
+ return [4 /*yield*/, build.getPriceDetails(config, request)];
48232
48315
  case 2:
48233
- priceDetails = _a.sent();
48316
+ priceDetails = _c.sent();
48234
48317
  dispatch(setPriceDetails(priceDetails));
48235
48318
  setPricesAreLoading(false);
48236
48319
  return [3 /*break*/, 4];
48237
48320
  case 3:
48238
- err_7 = _a.sent();
48321
+ err_7 = _c.sent();
48239
48322
  console.error('Error fetching price details', err_7);
48240
48323
  setPricesAreLoading(false);
48241
48324
  return [3 /*break*/, 4];
@@ -48247,29 +48330,36 @@ var SearchResultsContainer = function () {
48247
48330
  };
48248
48331
  var fetchItinerary = function () {
48249
48332
  return __awaiter(void 0, void 0, void 0, function () {
48250
- var config, itinerary_1, err_8;
48251
- return __generator(this, function (_a) {
48252
- switch (_a.label) {
48333
+ var config, request, itinerary_1, err_8;
48334
+ var _a, _b;
48335
+ return __generator(this, function (_c) {
48336
+ switch (_c.label) {
48253
48337
  case 0:
48254
- console.log('Fetching itinerary for entry', editablePackagingEntry);
48255
- if (!context || !editablePackagingEntry || lodash.isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
48338
+ if (!context || !context.packagingEntry || !editablePackagingEntry || lodash.isEmpty(editablePackagingEntry.lines)) return [2 /*return*/];
48256
48339
  setItineraryIsLoading(true);
48257
- _a.label = 1;
48340
+ _c.label = 1;
48258
48341
  case 1:
48259
- _a.trys.push([1, 3, , 4]);
48342
+ _c.trys.push([1, 3, , 4]);
48260
48343
  config = {
48261
48344
  host: context.tideConnection.host,
48262
48345
  apiKey: context.tideConnection.apiKey
48263
48346
  };
48264
- return [4 /*yield*/, build.getItinerary(config, editablePackagingEntry)];
48347
+ request = {
48348
+ language: (_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB',
48349
+ officeId: context.tideConnection.officeId,
48350
+ catalogueId: (_b = context.searchConfiguration.defaultCatalogueId) !== null && _b !== void 0 ? _b : 0,
48351
+ agentId: context.agentId,
48352
+ payload: editablePackagingEntry
48353
+ };
48354
+ return [4 /*yield*/, build.getItinerary(config, request)];
48265
48355
  case 2:
48266
- itinerary_1 = _a.sent();
48356
+ itinerary_1 = _c.sent();
48267
48357
  console.log('Fetched itinerary', itinerary_1);
48268
48358
  dispatch(setItinerary(itinerary_1));
48269
48359
  setItineraryIsLoading(false);
48270
48360
  return [3 /*break*/, 4];
48271
48361
  case 3:
48272
- err_8 = _a.sent();
48362
+ err_8 = _c.sent();
48273
48363
  console.error('Error fetching itinerary', err_8);
48274
48364
  setItineraryIsLoading(false);
48275
48365
  return [3 /*break*/, 4];
@@ -48285,12 +48375,12 @@ var SearchResultsContainer = function () {
48285
48375
  [editablePackagingEntry]
48286
48376
  );
48287
48377
  // Flight selection
48288
- var _m = React.useState(null),
48289
- selectedOutwardKey = _m[0],
48290
- setSelectedOutwardKey = _m[1];
48291
48378
  var _o = React.useState(null),
48292
- selectedReturnKey = _o[0],
48293
- setSelectedReturnKey = _o[1];
48379
+ selectedOutwardKey = _o[0],
48380
+ setSelectedOutwardKey = _o[1];
48381
+ var _p = React.useState(null),
48382
+ selectedReturnKey = _p[0],
48383
+ setSelectedReturnKey = _p[1];
48294
48384
  var uniqueOutwardFlights = React__default['default'].useMemo(
48295
48385
  function () {
48296
48386
  var map = new Map();
@@ -48304,11 +48394,12 @@ var SearchResultsContainer = function () {
48304
48394
  },
48305
48395
  [packagingFlightResults]
48306
48396
  );
48307
- var _p = React.useState([]),
48308
- uniqueReturnFlights = _p[0],
48309
- setUniqueReturnFlights = _p[1];
48397
+ var _q = React.useState([]),
48398
+ uniqueReturnFlights = _q[0],
48399
+ setUniqueReturnFlights = _q[1];
48310
48400
  React.useEffect(
48311
48401
  function () {
48402
+ var _a;
48312
48403
  if (!selectedOutwardKey) {
48313
48404
  setUniqueReturnFlights([]);
48314
48405
  setSelectedReturnKey(null);
@@ -48327,6 +48418,10 @@ var SearchResultsContainer = function () {
48327
48418
  });
48328
48419
  var returns = Array.from(returnMap.values());
48329
48420
  setUniqueReturnFlights(returns);
48421
+ var firstReturnKey = returns.length > 0 ? getFlightKey((_a = lodash.first(returns)) === null || _a === void 0 ? void 0 : _a.return.segments) : null;
48422
+ if (firstReturnKey) {
48423
+ setSelectedReturnKey(firstReturnKey);
48424
+ }
48330
48425
  },
48331
48426
  [selectedOutwardKey, packagingFlightResults]
48332
48427
  );
@@ -48395,7 +48490,6 @@ var SearchResultsContainer = function () {
48395
48490
  : '',
48396
48491
  language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
48397
48492
  });
48398
- console.log('Built next packaging entry', nextEntry);
48399
48493
  if (!nextEntry) return;
48400
48494
  dispatch(setEditablePackagingEntry(nextEntry));
48401
48495
  if (selectedCombinationFlight) {
@@ -48611,7 +48705,6 @@ var SearchResultsContainer = function () {
48611
48705
  return r.code === selectedHotelCode;
48612
48706
  })
48613
48707
  : null;
48614
- console.log('Selected hotel for packaging entry', selectedHotel);
48615
48708
  // Update accommodation only when enough data exists
48616
48709
  if (selectedHotel) {
48617
48710
  var accommodationLines = buildAccommodationLinesFromSelection(selectedHotel, seed);
@@ -48623,8 +48716,6 @@ var SearchResultsContainer = function () {
48623
48716
  // Update flights only when full selected combination exists
48624
48717
  if (selectedFlight) {
48625
48718
  var flightLines = buildFlightLinesFromSelection(selectedFlight);
48626
- console.log('selectedFlight', selectedFlight);
48627
- console.log('Built flight lines from selection', flightLines);
48628
48719
  if (flightLines.length) {
48629
48720
  nextLines = removeFlightLines(nextLines);
48630
48721
  nextLines = __spreadArray(__spreadArray([], nextLines, true), flightLines, true);
@@ -48670,6 +48761,12 @@ var SearchResultsContainer = function () {
48670
48761
  lines: []
48671
48762
  };
48672
48763
  };
48764
+ var visibleOutwardFlights = React__default['default'].useMemo(
48765
+ function () {
48766
+ return showAllOutwardFlights ? uniqueOutwardFlights : uniqueOutwardFlights.slice(0, 3);
48767
+ },
48768
+ [showAllOutwardFlights, uniqueOutwardFlights]
48769
+ );
48673
48770
  return React__default['default'].createElement(
48674
48771
  'div',
48675
48772
  { id: 'tide-booking', className: 'search__bg' },
@@ -48865,32 +48962,59 @@ var SearchResultsContainer = function () {
48865
48962
  )
48866
48963
  )
48867
48964
  ),
48868
- React__default['default'].createElement(
48869
- 'div',
48870
- { className: 'search__results__cards search__results__cards--extended' },
48871
- selectedOutwardKey && selectedOutward
48872
- ? React__default['default'].createElement(IndependentFlightOption, {
48873
- key: 'flight-'.concat(selectedOutwardKey),
48874
- item: selectedOutward.outward,
48875
- guid: selectedOutward.outwardGuid,
48876
- onSelect: function () {
48877
- return setSelectedOutwardKey(null);
48878
- },
48879
- selectedGuid: selectedOutward.outwardGuid,
48880
- isOutward: true
48881
- })
48882
- : uniqueOutwardFlights.map(function (result) {
48883
- return React__default['default'].createElement(IndependentFlightOption, {
48884
- key: 'flight-'.concat(result.outwardGuid),
48885
- item: result.outward,
48886
- onSelect: function () {
48887
- return setSelectedOutwardKey(getFlightKey(result.outward.segments));
48888
- },
48889
- guid: result.outwardGuid,
48890
- isOutward: true
48891
- });
48892
- })
48893
- )
48965
+ flightsLoading
48966
+ ? React__default['default'].createElement(Spinner, null)
48967
+ : React__default['default'].createElement(
48968
+ React__default['default'].Fragment,
48969
+ null,
48970
+ React__default['default'].createElement(
48971
+ 'div',
48972
+ { className: 'search__results__cards search__results__cards--extended' },
48973
+ selectedOutwardKey &&
48974
+ selectedOutward &&
48975
+ React__default['default'].createElement(IndependentFlightOption, {
48976
+ key: 'flight-'.concat(selectedOutwardKey),
48977
+ item: selectedOutward.outward,
48978
+ guid: selectedOutward.outwardGuid,
48979
+ onSelect: function () {
48980
+ return setSelectedOutwardKey(null);
48981
+ },
48982
+ selectedGuid: selectedOutward.outwardGuid,
48983
+ isOutward: true,
48984
+ showSelectedState: true,
48985
+ price: selectedOutward.price
48986
+ }),
48987
+ visibleOutwardFlights.map(function (result) {
48988
+ return React__default['default'].createElement(IndependentFlightOption, {
48989
+ key: 'flight-'.concat(result.outwardGuid),
48990
+ item: result.outward,
48991
+ onSelect: function () {
48992
+ return setSelectedOutwardKey(getFlightKey(result.outward.segments));
48993
+ },
48994
+ guid: result.outwardGuid,
48995
+ isOutward: true,
48996
+ price: result.price,
48997
+ currentSelectedPrice: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.price
48998
+ });
48999
+ })
49000
+ ),
49001
+ uniqueOutwardFlights &&
49002
+ uniqueOutwardFlights.length > 3 &&
49003
+ React__default['default'].createElement(
49004
+ 'div',
49005
+ { className: 'search__results__cards__actions' },
49006
+ React__default['default'].createElement(
49007
+ 'button',
49008
+ {
49009
+ className: 'cta cta--secondary',
49010
+ onClick: function () {
49011
+ return setShowAllOutwardFlights(!showAllOutwardFlights);
49012
+ }
49013
+ },
49014
+ showAllOutwardFlights ? translations.SRP.SHOW_LESS : translations.SRP.SHOW_MORE
49015
+ )
49016
+ )
49017
+ )
48894
49018
  ),
48895
49019
  context.showHotelAccommodationResults &&
48896
49020
  !context.packagingEntry &&
@@ -48926,25 +49050,30 @@ var SearchResultsContainer = function () {
48926
49050
  React__default['default'].createElement(
48927
49051
  'div',
48928
49052
  { className: 'search__results__cards search__results__cards--extended' },
48929
- selectedReturnKey && selectedReturn
48930
- ? React__default['default'].createElement(IndependentFlightOption, {
48931
- key: 'flight-'.concat(selectedReturnKey),
48932
- item: selectedReturn.return,
48933
- guid: selectedReturn.outwardGuid,
48934
- selectedGuid: selectedReturn.outwardGuid,
48935
- isOutward: false
48936
- })
48937
- : uniqueReturnFlights.map(function (result) {
48938
- return React__default['default'].createElement(IndependentFlightOption, {
48939
- key: 'flight-'.concat(result.outwardGuid),
48940
- item: result.return,
48941
- onSelect: function () {
48942
- return setSelectedReturnKey(getFlightKey(result.return.segments));
48943
- },
48944
- guid: result.outwardGuid,
48945
- isOutward: false
48946
- });
48947
- })
49053
+ selectedReturnKey &&
49054
+ selectedReturn &&
49055
+ React__default['default'].createElement(IndependentFlightOption, {
49056
+ key: 'flight-'.concat(selectedReturnKey),
49057
+ item: selectedReturn.return,
49058
+ guid: selectedReturn.outwardGuid,
49059
+ selectedGuid: selectedReturn.outwardGuid,
49060
+ isOutward: false,
49061
+ showSelectedState: true,
49062
+ price: selectedReturn.price
49063
+ }),
49064
+ uniqueReturnFlights.map(function (result) {
49065
+ return React__default['default'].createElement(IndependentFlightOption, {
49066
+ key: 'flight-'.concat(result.outwardGuid),
49067
+ item: result.return,
49068
+ onSelect: function () {
49069
+ return setSelectedReturnKey(getFlightKey(result.return.segments));
49070
+ },
49071
+ guid: result.outwardGuid,
49072
+ isOutward: false,
49073
+ currentSelectedPrice: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.price,
49074
+ price: result.price
49075
+ });
49076
+ })
48948
49077
  )
48949
49078
  ),
48950
49079
  context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&