@qite/tide-booking-component 1.4.103 → 1.4.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build-cjs/index.js +2782 -1052
- package/build/build-cjs/src/search-results/components/excursions/day-by-day-excursions.d.ts +4 -0
- package/build/build-cjs/src/search-results/components/excursions/excursion-details.d.ts +3 -0
- package/build/build-cjs/src/search-results/components/excursions/excursion-results.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/filters/filters.d.ts +2 -0
- package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +1 -0
- package/build/build-cjs/src/search-results/store/search-results-selectors.d.ts +546 -0
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +55 -8
- package/build/build-cjs/src/search-results/types.d.ts +40 -2
- package/build/build-cjs/src/search-results/utils/query-utils.d.ts +1 -0
- package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +8 -6
- package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +4 -3
- package/build/build-cjs/src/shared/components/flyin/packaging-flights-flyin.d.ts +7 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +3 -0
- package/build/build-cjs/src/shared/utils/tide-api-utils.d.ts +6 -0
- package/build/build-esm/index.js +2735 -1023
- package/build/build-esm/src/search-results/components/excursions/day-by-day-excursions.d.ts +4 -0
- package/build/build-esm/src/search-results/components/excursions/excursion-details.d.ts +3 -0
- package/build/build-esm/src/search-results/components/excursions/excursion-results.d.ts +8 -0
- package/build/build-esm/src/search-results/components/filters/filters.d.ts +2 -0
- package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +1 -0
- package/build/build-esm/src/search-results/store/search-results-selectors.d.ts +546 -0
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +55 -8
- package/build/build-esm/src/search-results/types.d.ts +40 -2
- package/build/build-esm/src/search-results/utils/query-utils.d.ts +1 -0
- package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +8 -6
- package/build/build-esm/src/shared/components/flyin/flyin.d.ts +4 -3
- package/build/build-esm/src/shared/components/flyin/packaging-flights-flyin.d.ts +7 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +3 -0
- package/build/build-esm/src/shared/utils/tide-api-utils.d.ts +6 -0
- package/package.json +2 -2
- package/src/booking-wizard/features/flight-options/index.tsx +6 -2
- package/src/search-results/components/excursions/day-by-day-excursions.tsx +169 -0
- package/src/search-results/components/excursions/excursion-details.tsx +340 -0
- package/src/search-results/components/excursions/excursion-results.tsx +186 -0
- package/src/search-results/components/filters/filters.tsx +8 -9
- package/src/search-results/components/hotel/hotel-accommodation-results.tsx +81 -24
- package/src/search-results/components/hotel/hotel-card.tsx +0 -3
- package/src/search-results/components/icon.tsx +1 -4
- package/src/search-results/components/search-results-container/search-results-container.tsx +208 -130
- package/src/search-results/store/search-results-selectors.ts +84 -0
- package/src/search-results/store/search-results-slice.ts +138 -15
- package/src/search-results/types.ts +55 -2
- package/src/search-results/utils/query-utils.ts +1 -0
- package/src/search-results/utils/search-results-utils.ts +310 -58
- package/src/shared/components/flyin/accommodation-flyin.tsx +4 -2
- package/src/shared/components/flyin/flights-flyin.tsx +3 -1
- package/src/shared/components/flyin/flyin.tsx +116 -21
- package/src/shared/components/flyin/group-tour-flyin.tsx +3 -1
- package/src/shared/components/flyin/packaging-flights-flyin.tsx +164 -0
- package/src/shared/translations/ar-SA.json +4 -2
- package/src/shared/translations/da-DK.json +4 -2
- package/src/shared/translations/de-DE.json +4 -2
- package/src/shared/translations/en-GB.json +4 -2
- package/src/shared/translations/es-ES.json +4 -2
- package/src/shared/translations/fr-BE.json +4 -2
- package/src/shared/translations/fr-FR.json +4 -2
- package/src/shared/translations/is-IS.json +4 -2
- package/src/shared/translations/it-IT.json +4 -2
- package/src/shared/translations/ja-JP.json +4 -2
- package/src/shared/translations/nl-BE.json +4 -2
- package/src/shared/translations/nl-NL.json +4 -2
- package/src/shared/translations/no-NO.json +4 -2
- package/src/shared/translations/pl-PL.json +4 -2
- package/src/shared/translations/pt-PT.json +4 -2
- package/src/shared/translations/sv-SE.json +4 -2
- package/src/shared/utils/localization-util.ts +14 -0
- package/src/shared/utils/tide-api-utils.ts +8 -0
- package/styles/components/_flyin.scss +16 -0
- package/styles/components/_search.scss +15 -2
package/build/build-cjs/index.js
CHANGED
|
@@ -576,7 +576,8 @@ var QSM$g = {
|
|
|
576
576
|
RETURN_DATE: 'تاريخ العودة',
|
|
577
577
|
CONFIRM: 'تأكيد',
|
|
578
578
|
TRAVELERS: 'المسافرون',
|
|
579
|
-
GROUP_TOUR: 'جولة جماعية'
|
|
579
|
+
GROUP_TOUR: 'جولة جماعية',
|
|
580
|
+
ALL_TRAVELERS: 'جميع المسافرين'
|
|
580
581
|
};
|
|
581
582
|
var SRP$f = {
|
|
582
583
|
SHOW_MORE: 'عرض المزيد',
|
|
@@ -627,7 +628,8 @@ var SRP$f = {
|
|
|
627
628
|
DEPARTURE_TIME_DESC: 'وقت المغادرة تنازلياً',
|
|
628
629
|
DURATION_ASC: 'المدة تصاعدياً',
|
|
629
630
|
DURATION_DESC: 'المدة تنازلياً',
|
|
630
|
-
TRAVEL_GROUP: 'مجموعة المسافرين'
|
|
631
|
+
TRAVEL_GROUP: 'مجموعة المسافرين',
|
|
632
|
+
EXCURSION: 'رحلة'
|
|
631
633
|
};
|
|
632
634
|
var arJson = {
|
|
633
635
|
STEPS: STEPS$f,
|
|
@@ -982,7 +984,8 @@ var QSM$f = {
|
|
|
982
984
|
RETURN_DATE: 'Hjemrejsedato',
|
|
983
985
|
CONFIRM: 'Bekræft',
|
|
984
986
|
TRAVELERS: 'Rejsende',
|
|
985
|
-
GROUP_TOUR: 'Grupperejse'
|
|
987
|
+
GROUP_TOUR: 'Grupperejse',
|
|
988
|
+
ALL_TRAVELERS: 'Alle rejsende'
|
|
986
989
|
};
|
|
987
990
|
var SRP$e = {
|
|
988
991
|
SHOW_MORE: 'Vis flere',
|
|
@@ -1033,7 +1036,8 @@ var SRP$e = {
|
|
|
1033
1036
|
DEPARTURE_TIME_DESC: 'Afgangstid faldende',
|
|
1034
1037
|
DURATION_ASC: 'Varighed stigende',
|
|
1035
1038
|
DURATION_DESC: 'Varighed faldende',
|
|
1036
|
-
TRAVEL_GROUP: 'Rejseselskab'
|
|
1039
|
+
TRAVEL_GROUP: 'Rejseselskab',
|
|
1040
|
+
EXCURSION: 'Udflugt'
|
|
1037
1041
|
};
|
|
1038
1042
|
var daJson = {
|
|
1039
1043
|
STEPS: STEPS$e,
|
|
@@ -1389,7 +1393,8 @@ var QSM$e = {
|
|
|
1389
1393
|
RETURN_DATE: 'Rückreisedatum',
|
|
1390
1394
|
CONFIRM: 'Bestätigen',
|
|
1391
1395
|
TRAVELERS: 'Reisende',
|
|
1392
|
-
GROUP_TOUR: 'Gruppentour'
|
|
1396
|
+
GROUP_TOUR: 'Gruppentour',
|
|
1397
|
+
ALL_TRAVELERS: 'Alle Reisenden'
|
|
1393
1398
|
};
|
|
1394
1399
|
var SRP$d = {
|
|
1395
1400
|
SHOW_MORE: 'Mehr anzeigen',
|
|
@@ -1440,7 +1445,8 @@ var SRP$d = {
|
|
|
1440
1445
|
DEPARTURE_AIRPORTS: 'Abflughäfen',
|
|
1441
1446
|
ARRIVAL_AIRPORTS: 'Ankunftsflughäfen',
|
|
1442
1447
|
PRICE: 'Preis',
|
|
1443
|
-
TRAVEL_GROUP: 'Reisegruppe'
|
|
1448
|
+
TRAVEL_GROUP: 'Reisegruppe',
|
|
1449
|
+
EXCURSION: 'Ausflug'
|
|
1444
1450
|
};
|
|
1445
1451
|
var deJson = {
|
|
1446
1452
|
STEPS: STEPS$d,
|
|
@@ -1799,7 +1805,8 @@ var QSM$d = {
|
|
|
1799
1805
|
RETURN_DATE: 'Return date',
|
|
1800
1806
|
CONFIRM: 'Confirm',
|
|
1801
1807
|
TRAVELERS: 'Travelers',
|
|
1802
|
-
GROUP_TOUR: 'Group tour'
|
|
1808
|
+
GROUP_TOUR: 'Group tour',
|
|
1809
|
+
ALL_TRAVELERS: 'All travelers'
|
|
1803
1810
|
};
|
|
1804
1811
|
var SRP$c = {
|
|
1805
1812
|
SHOW_MORE: 'Show more',
|
|
@@ -1850,7 +1857,8 @@ var SRP$c = {
|
|
|
1850
1857
|
DEPARTURE_RANGE: 'Departure range',
|
|
1851
1858
|
DEPARTURE_AIRPORTS: 'Departure airports',
|
|
1852
1859
|
ARRIVAL_AIRPORTS: 'Arrival airports',
|
|
1853
|
-
TRAVEL_GROUP: 'Travel group'
|
|
1860
|
+
TRAVEL_GROUP: 'Travel group',
|
|
1861
|
+
EXCURSION: 'Excursion'
|
|
1854
1862
|
};
|
|
1855
1863
|
var enJson = {
|
|
1856
1864
|
STEPS: STEPS$c,
|
|
@@ -2206,7 +2214,8 @@ var QSM$c = {
|
|
|
2206
2214
|
RETURN_DATE: 'Fecha de regreso',
|
|
2207
2215
|
CONFIRM: 'Confirmar',
|
|
2208
2216
|
TRAVELERS: 'Viajeros',
|
|
2209
|
-
GROUP_TOUR: 'Tour grupal'
|
|
2217
|
+
GROUP_TOUR: 'Tour grupal',
|
|
2218
|
+
ALL_TRAVELERS: 'Todos los viajeros'
|
|
2210
2219
|
};
|
|
2211
2220
|
var SRP$b = {
|
|
2212
2221
|
SHOW_MORE: 'Mostrar más',
|
|
@@ -2257,7 +2266,8 @@ var SRP$b = {
|
|
|
2257
2266
|
DEPARTURE_AIRPORTS: 'Aeropuertos de salida',
|
|
2258
2267
|
ARRIVAL_AIRPORTS: 'Aeropuertos de llegada',
|
|
2259
2268
|
PRICE: 'Precio',
|
|
2260
|
-
TRAVEL_GROUP: 'Grupo de viaje'
|
|
2269
|
+
TRAVEL_GROUP: 'Grupo de viaje',
|
|
2270
|
+
EXCURSION: 'Excursión'
|
|
2261
2271
|
};
|
|
2262
2272
|
var esJson = {
|
|
2263
2273
|
STEPS: STEPS$b,
|
|
@@ -2617,7 +2627,8 @@ var QSM$b = {
|
|
|
2617
2627
|
RETURN_DATE: 'Date de retour',
|
|
2618
2628
|
CONFIRM: 'Confirmer',
|
|
2619
2629
|
TRAVELERS: 'Voyageurs',
|
|
2620
|
-
GROUP_TOUR: 'Tour en groupe'
|
|
2630
|
+
GROUP_TOUR: 'Tour en groupe',
|
|
2631
|
+
ALL_TRAVELERS: 'Tous les voyageurs'
|
|
2621
2632
|
};
|
|
2622
2633
|
var SRP$a = {
|
|
2623
2634
|
SHOW_MORE: 'Afficher plus',
|
|
@@ -2668,7 +2679,8 @@ var SRP$a = {
|
|
|
2668
2679
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
2669
2680
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
2670
2681
|
PRICE: 'Prix',
|
|
2671
|
-
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
2682
|
+
TRAVEL_GROUP: 'Groupe de voyageurs',
|
|
2683
|
+
EXCURSION: 'Excursion'
|
|
2672
2684
|
};
|
|
2673
2685
|
var frBeJson = {
|
|
2674
2686
|
STEPS: STEPS$a,
|
|
@@ -3023,7 +3035,8 @@ var QSM$a = {
|
|
|
3023
3035
|
RETURN_DATE: 'Date de retour',
|
|
3024
3036
|
CONFIRM: 'Confirmer',
|
|
3025
3037
|
TRAVELERS: 'Voyageurs',
|
|
3026
|
-
GROUP_TOUR: 'Tour en groupe'
|
|
3038
|
+
GROUP_TOUR: 'Tour en groupe',
|
|
3039
|
+
ALL_TRAVELERS: 'Tous les voyageurs'
|
|
3027
3040
|
};
|
|
3028
3041
|
var SRP$9 = {
|
|
3029
3042
|
SHOW_MORE: 'Afficher plus',
|
|
@@ -3074,7 +3087,8 @@ var SRP$9 = {
|
|
|
3074
3087
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
3075
3088
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
3076
3089
|
PRICE: 'Prix',
|
|
3077
|
-
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
3090
|
+
TRAVEL_GROUP: 'Groupe de voyageurs',
|
|
3091
|
+
EXCURSION: 'Excursion'
|
|
3078
3092
|
};
|
|
3079
3093
|
var frFrJson = {
|
|
3080
3094
|
STEPS: STEPS$9,
|
|
@@ -3429,7 +3443,8 @@ var QSM$9 = {
|
|
|
3429
3443
|
RETURN_DATE: 'Heimkomudagur',
|
|
3430
3444
|
CONFIRM: 'Staðfesta',
|
|
3431
3445
|
TRAVELERS: 'Ferðalangar',
|
|
3432
|
-
GROUP_TOUR: 'Ferð í hóp'
|
|
3446
|
+
GROUP_TOUR: 'Ferð í hóp',
|
|
3447
|
+
ALL_TRAVELERS: 'Allir ferðalangar'
|
|
3433
3448
|
};
|
|
3434
3449
|
var SRP$8 = {
|
|
3435
3450
|
SHOW_MORE: 'Sýna meira',
|
|
@@ -3480,7 +3495,8 @@ var SRP$8 = {
|
|
|
3480
3495
|
DEPARTURE_AIRPORTS: 'Brottfararflugvellir',
|
|
3481
3496
|
ARRIVAL_AIRPORTS: 'Komuflugvellir',
|
|
3482
3497
|
PRICE: 'Verð',
|
|
3483
|
-
TRAVEL_GROUP: 'Ferðahópur'
|
|
3498
|
+
TRAVEL_GROUP: 'Ferðahópur',
|
|
3499
|
+
EXCURSION: 'Útflutningur'
|
|
3484
3500
|
};
|
|
3485
3501
|
var isJson = {
|
|
3486
3502
|
STEPS: STEPS$8,
|
|
@@ -3836,7 +3852,8 @@ var QSM$8 = {
|
|
|
3836
3852
|
RETURN_DATE: 'Data di ritorno',
|
|
3837
3853
|
CONFIRM: 'Conferma',
|
|
3838
3854
|
TRAVELERS: 'Viaggiatori',
|
|
3839
|
-
GROUP_TOUR: 'Tour di gruppo'
|
|
3855
|
+
GROUP_TOUR: 'Tour di gruppo',
|
|
3856
|
+
ALL_TRAVELERS: 'Tutti i viaggiatori'
|
|
3840
3857
|
};
|
|
3841
3858
|
var SRP$7 = {
|
|
3842
3859
|
SHOW_MORE: 'Mostra di più',
|
|
@@ -3887,7 +3904,8 @@ var SRP$7 = {
|
|
|
3887
3904
|
DEPARTURE_AIRPORTS: 'Aeroporti di partenza',
|
|
3888
3905
|
ARRIVAL_AIRPORTS: 'Aeroporti di arrivo',
|
|
3889
3906
|
PRICE: 'Prezzo',
|
|
3890
|
-
TRAVEL_GROUP: 'Gruppo di viaggio'
|
|
3907
|
+
TRAVEL_GROUP: 'Gruppo di viaggio',
|
|
3908
|
+
EXCURSION: 'Escursione'
|
|
3891
3909
|
};
|
|
3892
3910
|
var itJson = {
|
|
3893
3911
|
STEPS: STEPS$7,
|
|
@@ -4247,7 +4265,8 @@ var QSM$7 = {
|
|
|
4247
4265
|
RETURN_DATE: 'Terugkeerdatum',
|
|
4248
4266
|
CONFIRM: 'Bevestigen',
|
|
4249
4267
|
TRAVELERS: 'Reizigers',
|
|
4250
|
-
GROUP_TOUR: 'Groepsreis'
|
|
4268
|
+
GROUP_TOUR: 'Groepsreis',
|
|
4269
|
+
ALL_TRAVELERS: 'Alle reizigers'
|
|
4251
4270
|
};
|
|
4252
4271
|
var SRP$6 = {
|
|
4253
4272
|
SHOW_MORE: 'Toon meer',
|
|
@@ -4298,7 +4317,8 @@ var SRP$6 = {
|
|
|
4298
4317
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4299
4318
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4300
4319
|
PRICE: 'Prijs',
|
|
4301
|
-
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4320
|
+
TRAVEL_GROUP: 'Reisgezelschap',
|
|
4321
|
+
EXCURSION: 'Excursie'
|
|
4302
4322
|
};
|
|
4303
4323
|
var nlBeJson = {
|
|
4304
4324
|
STEPS: STEPS$6,
|
|
@@ -4654,7 +4674,8 @@ var QSM$6 = {
|
|
|
4654
4674
|
RETURN_DATE: 'Terugkeerdatum',
|
|
4655
4675
|
CONFIRM: 'Bevestigen',
|
|
4656
4676
|
TRAVELERS: 'Reizigers',
|
|
4657
|
-
GROUP_TOUR: 'Groepsreis'
|
|
4677
|
+
GROUP_TOUR: 'Groepsreis',
|
|
4678
|
+
ALL_TRAVELERS: 'Alle reizigers'
|
|
4658
4679
|
};
|
|
4659
4680
|
var SRP$5 = {
|
|
4660
4681
|
SHOW_MORE: 'Toon meer',
|
|
@@ -4705,7 +4726,8 @@ var SRP$5 = {
|
|
|
4705
4726
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4706
4727
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4707
4728
|
PRICE: 'Prijs',
|
|
4708
|
-
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4729
|
+
TRAVEL_GROUP: 'Reisgezelschap',
|
|
4730
|
+
EXCURSION: 'Excursie'
|
|
4709
4731
|
};
|
|
4710
4732
|
var nlNlJson = {
|
|
4711
4733
|
STEPS: STEPS$5,
|
|
@@ -5061,7 +5083,8 @@ var QSM$5 = {
|
|
|
5061
5083
|
RETURN_DATE: 'Returdato',
|
|
5062
5084
|
CONFIRM: 'Bekreft',
|
|
5063
5085
|
TRAVELERS: 'Reisende',
|
|
5064
|
-
GROUP_TOUR: 'Gruppetur'
|
|
5086
|
+
GROUP_TOUR: 'Gruppetur',
|
|
5087
|
+
ALL_TRAVELERS: 'Alle reisende'
|
|
5065
5088
|
};
|
|
5066
5089
|
var SRP$4 = {
|
|
5067
5090
|
SHOW_MORE: 'Vis mer',
|
|
@@ -5112,7 +5135,8 @@ var SRP$4 = {
|
|
|
5112
5135
|
DEPARTURE_AIRPORTS: 'Avgangsflyplasser',
|
|
5113
5136
|
ARRIVAL_AIRPORTS: 'Ankomstflyplasser',
|
|
5114
5137
|
PRICE: 'Pris',
|
|
5115
|
-
TRAVEL_GROUP: 'Reisefølge'
|
|
5138
|
+
TRAVEL_GROUP: 'Reisefølge',
|
|
5139
|
+
EXCURSION: 'Utflukt'
|
|
5116
5140
|
};
|
|
5117
5141
|
var noJson = {
|
|
5118
5142
|
STEPS: STEPS$4,
|
|
@@ -5468,7 +5492,8 @@ var QSM$4 = {
|
|
|
5468
5492
|
RETURN_DATE: 'Data powrotu',
|
|
5469
5493
|
CONFIRM: 'Potwierdź',
|
|
5470
5494
|
TRAVELERS: 'Podróżni',
|
|
5471
|
-
GROUP_TOUR: 'Tour w grupie'
|
|
5495
|
+
GROUP_TOUR: 'Tour w grupie',
|
|
5496
|
+
ALL_TRAVELERS: 'Wszyscy podróżni'
|
|
5472
5497
|
};
|
|
5473
5498
|
var SRP$3 = {
|
|
5474
5499
|
SHOW_MORE: 'Pokaż więcej',
|
|
@@ -5519,7 +5544,8 @@ var SRP$3 = {
|
|
|
5519
5544
|
DEPARTURE_AIRPORTS: 'Lotniska wylotu',
|
|
5520
5545
|
ARRIVAL_AIRPORTS: 'Lotniska przylotu',
|
|
5521
5546
|
PRICE: 'Cena',
|
|
5522
|
-
TRAVEL_GROUP: 'Grupa podróżnych'
|
|
5547
|
+
TRAVEL_GROUP: 'Grupa podróżnych',
|
|
5548
|
+
EXCURSION: 'Wycieczka'
|
|
5523
5549
|
};
|
|
5524
5550
|
var plJson = {
|
|
5525
5551
|
STEPS: STEPS$3,
|
|
@@ -5875,7 +5901,8 @@ var QSM$3 = {
|
|
|
5875
5901
|
RETURN_DATE: 'Data de regresso',
|
|
5876
5902
|
CONFIRM: 'Confirmar',
|
|
5877
5903
|
TRAVELERS: 'Viajantes',
|
|
5878
|
-
GROUP_TOUR: 'Tour em grupo'
|
|
5904
|
+
GROUP_TOUR: 'Tour em grupo',
|
|
5905
|
+
ALL_TRAVELERS: 'All travelers'
|
|
5879
5906
|
};
|
|
5880
5907
|
var SRP$2 = {
|
|
5881
5908
|
SHOW_MORE: 'Mostrar mais',
|
|
@@ -5926,7 +5953,8 @@ var SRP$2 = {
|
|
|
5926
5953
|
DEPARTURE_AIRPORTS: 'Aeroportos de partida',
|
|
5927
5954
|
ARRIVAL_AIRPORTS: 'Aeroportos de chegada',
|
|
5928
5955
|
PRICE: 'Preço',
|
|
5929
|
-
TRAVEL_GROUP: 'Grupo de viajantes'
|
|
5956
|
+
TRAVEL_GROUP: 'Grupo de viajantes',
|
|
5957
|
+
EXCURSION: 'Excursão'
|
|
5930
5958
|
};
|
|
5931
5959
|
var ptJson = {
|
|
5932
5960
|
STEPS: STEPS$2,
|
|
@@ -6282,7 +6310,8 @@ var QSM$2 = {
|
|
|
6282
6310
|
RETURN_DATE: 'Hemresedatum',
|
|
6283
6311
|
CONFIRM: 'Bekräfta',
|
|
6284
6312
|
TRAVELERS: 'Resenärer',
|
|
6285
|
-
GROUP_TOUR: 'Gruppresa'
|
|
6313
|
+
GROUP_TOUR: 'Gruppresa',
|
|
6314
|
+
ALL_TRAVELERS: 'All travelers'
|
|
6286
6315
|
};
|
|
6287
6316
|
var SRP$1 = {
|
|
6288
6317
|
SHOW_MORE: 'Visa mer',
|
|
@@ -6333,7 +6362,8 @@ var SRP$1 = {
|
|
|
6333
6362
|
DEPARTURE_AIRPORTS: 'Avgångsflygplatser',
|
|
6334
6363
|
ARRIVAL_AIRPORTS: 'Ankomstflygplatser',
|
|
6335
6364
|
PRICE: 'Pris',
|
|
6336
|
-
TRAVEL_GROUP: 'Resesällskap'
|
|
6365
|
+
TRAVEL_GROUP: 'Resesällskap',
|
|
6366
|
+
EXCURSION: 'Utflykt'
|
|
6337
6367
|
};
|
|
6338
6368
|
var svJson = {
|
|
6339
6369
|
STEPS: STEPS$1,
|
|
@@ -6687,7 +6717,8 @@ var QSM$1 = {
|
|
|
6687
6717
|
RETURN_DATE: '帰着日',
|
|
6688
6718
|
CONFIRM: '確認',
|
|
6689
6719
|
TRAVELERS: '旅行者',
|
|
6690
|
-
GROUP_TOUR: 'グループツアー'
|
|
6720
|
+
GROUP_TOUR: 'グループツアー',
|
|
6721
|
+
ALL_TRAVELERS: 'すべての旅行者'
|
|
6691
6722
|
};
|
|
6692
6723
|
var SRP = {
|
|
6693
6724
|
SHOW_MORE: 'もっと見る',
|
|
@@ -6738,7 +6769,8 @@ var SRP = {
|
|
|
6738
6769
|
DEPARTURE_AIRPORTS: '出発空港',
|
|
6739
6770
|
ARRIVAL_AIRPORTS: '到着空港',
|
|
6740
6771
|
PRICE: '価格',
|
|
6741
|
-
TRAVEL_GROUP: '旅行グループ'
|
|
6772
|
+
TRAVEL_GROUP: '旅行グループ',
|
|
6773
|
+
EXCURSION: 'エクスカーション'
|
|
6742
6774
|
};
|
|
6743
6775
|
var jaJson = {
|
|
6744
6776
|
STEPS: STEPS,
|
|
@@ -6769,7 +6801,7 @@ exports.DepartureRange = void 0;
|
|
|
6769
6801
|
DepartureRange[(DepartureRange['Night'] = 3)] = 'Night';
|
|
6770
6802
|
})(exports.DepartureRange || (exports.DepartureRange = {}));
|
|
6771
6803
|
|
|
6772
|
-
var formatPrice$
|
|
6804
|
+
var formatPrice$3 = function (price, currencyCode, locale) {
|
|
6773
6805
|
if (locale === void 0) {
|
|
6774
6806
|
locale = 'nl-BE';
|
|
6775
6807
|
}
|
|
@@ -6876,7 +6908,7 @@ function getLocale(code) {
|
|
|
6876
6908
|
}
|
|
6877
6909
|
}
|
|
6878
6910
|
var getPriceDifferenceText = function (price, currencyCode) {
|
|
6879
|
-
return price > 0 ? '+ '.concat(formatPrice$
|
|
6911
|
+
return price > 0 ? '+ '.concat(formatPrice$3(Math.abs(price), currencyCode)) : '- '.concat(formatPrice$3(Math.abs(price), currencyCode));
|
|
6880
6912
|
};
|
|
6881
6913
|
function format(text, args) {
|
|
6882
6914
|
return text.replace(/{([0-9]+)}/g, function (match, index) {
|
|
@@ -6976,6 +7008,16 @@ var findSortByType = function (sortByTypes, sortKey, direction) {
|
|
|
6976
7008
|
}) || sortByTypes[0]
|
|
6977
7009
|
);
|
|
6978
7010
|
};
|
|
7011
|
+
var getDatesBetween = function (fromDate, toDate) {
|
|
7012
|
+
var dates = [];
|
|
7013
|
+
var current = new Date(fromDate);
|
|
7014
|
+
var end = new Date(toDate);
|
|
7015
|
+
while (current < end) {
|
|
7016
|
+
dates.push(new Date(current));
|
|
7017
|
+
current.setUTCDate(current.getUTCDate() + 1);
|
|
7018
|
+
}
|
|
7019
|
+
return dates;
|
|
7020
|
+
};
|
|
6979
7021
|
|
|
6980
7022
|
var getDateFromParams = function (params, name) {
|
|
6981
7023
|
var dateString = params.get(name);
|
|
@@ -13449,6 +13491,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13449
13491
|
var ENDPOINT = '/api/web/packaging';
|
|
13450
13492
|
var ENDPOINT_START_TRANSACTION = ENDPOINT + '/start';
|
|
13451
13493
|
var ENDPOINT_ACCOMMODATIONS = ENDPOINT + '/accommodations';
|
|
13494
|
+
var ENDPOINT_EXCURSIONS = ENDPOINT + '/excursions';
|
|
13452
13495
|
var ENDPOINT_FLIGHTS = ENDPOINT + '/flights';
|
|
13453
13496
|
var ENDPOINT_PRICE_DETAILS = ENDPOINT + '/price-details';
|
|
13454
13497
|
var ENDPOINT_ITINERARY = ENDPOINT + '/itinerary';
|
|
@@ -13472,6 +13515,12 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13472
13515
|
var body = JSON.stringify(request);
|
|
13473
13516
|
return post(url, apiKey, body, config.token, signal, true);
|
|
13474
13517
|
};
|
|
13518
|
+
var searchPackagingExcursions = function (config, request, signal) {
|
|
13519
|
+
var url = '' + config.host + ENDPOINT_EXCURSIONS;
|
|
13520
|
+
var apiKey = config.apiKey;
|
|
13521
|
+
var body = JSON.stringify(request);
|
|
13522
|
+
return post(url, apiKey, body, config.token, signal, true);
|
|
13523
|
+
};
|
|
13475
13524
|
var getEntry = function (config, magicLinkCode, signal) {
|
|
13476
13525
|
var apiKey = config.apiKey;
|
|
13477
13526
|
var url = '' + config.host + ENDPOINT_ENTRY(magicLinkCode);
|
|
@@ -13563,6 +13612,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13563
13612
|
exports.searchLocations = searchLocations;
|
|
13564
13613
|
exports.searchOords = searchOords;
|
|
13565
13614
|
exports.searchPackagingAccommodations = searchPackagingAccommodations;
|
|
13615
|
+
exports.searchPackagingExcursions = searchPackagingExcursions;
|
|
13566
13616
|
exports.searchPackagingFlights = searchPackagingFlights;
|
|
13567
13617
|
exports.searchRegions = searchRegions;
|
|
13568
13618
|
exports.searchWithErrorMapping = searchWithErrorMapping;
|
|
@@ -13639,16 +13689,16 @@ var formatPriceByMode = function (price, priceMode, personCount, duration, perPe
|
|
|
13639
13689
|
if (!price) return '';
|
|
13640
13690
|
switch (priceMode) {
|
|
13641
13691
|
case 0:
|
|
13642
|
-
return ''.concat(formatPrice$
|
|
13692
|
+
return ''.concat(formatPrice$3(price, currencyCode));
|
|
13643
13693
|
case 1:
|
|
13644
13694
|
var perPersonPrice = price / personCount;
|
|
13645
|
-
return ''.concat(formatPrice$
|
|
13695
|
+
return ''.concat(formatPrice$3(perPersonPrice, currencyCode), ' / ').concat(perPersonLabel);
|
|
13646
13696
|
case 2:
|
|
13647
13697
|
var perNightPrice = price / duration;
|
|
13648
|
-
return ''.concat(formatPrice$
|
|
13698
|
+
return ''.concat(formatPrice$3(perNightPrice, currencyCode), ' / ').concat(perNightLabel);
|
|
13649
13699
|
case 3:
|
|
13650
13700
|
var perPersonPerNightPrice = price / duration;
|
|
13651
|
-
return ''.concat(formatPrice$
|
|
13701
|
+
return ''.concat(formatPrice$3(perPersonPerNightPrice, currencyCode), ' / ').concat(perPersonPerNightLabel);
|
|
13652
13702
|
}
|
|
13653
13703
|
};
|
|
13654
13704
|
|
|
@@ -21756,7 +21806,11 @@ var FlightOptionsForm = function () {
|
|
|
21756
21806
|
setFlightGroups = _f[1];
|
|
21757
21807
|
var handleSubmit = function (e) {
|
|
21758
21808
|
if (settings.skipRouter) {
|
|
21759
|
-
|
|
21809
|
+
if (settings.roomOptions.isHidden) {
|
|
21810
|
+
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
21811
|
+
} else {
|
|
21812
|
+
dispatch(setCurrentStep(ROOM_OPTIONS_FORM_STEP));
|
|
21813
|
+
}
|
|
21760
21814
|
} else {
|
|
21761
21815
|
if (settings.roomOptions.isHidden) {
|
|
21762
21816
|
navigate(
|
|
@@ -22140,7 +22194,7 @@ var NoneOption = function (_a) {
|
|
|
22140
22194
|
return x.requirementType === 2;
|
|
22141
22195
|
});
|
|
22142
22196
|
var noneSelected = !selectedOption;
|
|
22143
|
-
var priceDifferencetext = selectedOption ? '- '.concat(formatPrice$
|
|
22197
|
+
var priceDifferencetext = selectedOption ? '- '.concat(formatPrice$3(Math.abs(selectedOption.line.price), currencyCode)) : '';
|
|
22144
22198
|
return React__default['default'].createElement(
|
|
22145
22199
|
React__default['default'].Fragment,
|
|
22146
22200
|
null,
|
|
@@ -23417,7 +23471,7 @@ var OptionRoom = function (_a) {
|
|
|
23417
23471
|
e.preventDefault();
|
|
23418
23472
|
};
|
|
23419
23473
|
var getPriceDifferenceText = function (price) {
|
|
23420
|
-
return price > 0 ? '+ '.concat(formatPrice$
|
|
23474
|
+
return price > 0 ? '+ '.concat(formatPrice$3(Math.abs(price), currencyCode)) : '- '.concat(formatPrice$3(Math.abs(price), currencyCode));
|
|
23421
23475
|
};
|
|
23422
23476
|
var getAccommodationPriceDifference = function (accommodation) {
|
|
23423
23477
|
var _a;
|
|
@@ -24953,7 +25007,7 @@ var Sidebar = function (_a) {
|
|
|
24953
25007
|
{ className: 'pricing-summary__property' },
|
|
24954
25008
|
React__default['default'].createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.BASE_PRICE)
|
|
24955
25009
|
),
|
|
24956
|
-
React__default['default'].createElement('div', { className: 'pricing-summary__value' }, formatPrice$
|
|
25010
|
+
React__default['default'].createElement('div', { className: 'pricing-summary__value' }, formatPrice$3(basePrice, currencyCode))
|
|
24957
25011
|
),
|
|
24958
25012
|
basePricePerPaxType &&
|
|
24959
25013
|
basePricePerPaxType.map(function (ppt, index) {
|
|
@@ -24973,7 +25027,7 @@ var Sidebar = function (_a) {
|
|
|
24973
25027
|
React__default['default'].createElement(
|
|
24974
25028
|
'div',
|
|
24975
25029
|
{ className: 'pricing-summary__value' },
|
|
24976
|
-
formatPrice$
|
|
25030
|
+
formatPrice$3(ppt.pricePerPaxType, currencyCode)
|
|
24977
25031
|
)
|
|
24978
25032
|
),
|
|
24979
25033
|
ppt.details.map(function (detail, dIndex) {
|
|
@@ -24993,7 +25047,7 @@ var Sidebar = function (_a) {
|
|
|
24993
25047
|
React__default['default'].createElement(
|
|
24994
25048
|
'div',
|
|
24995
25049
|
{ className: 'pricing-summary__value' },
|
|
24996
|
-
formatPrice$
|
|
25050
|
+
formatPrice$3(detail.price / detail.numberOfPax, currencyCode)
|
|
24997
25051
|
)
|
|
24998
25052
|
);
|
|
24999
25053
|
})
|
|
@@ -25020,7 +25074,7 @@ var Sidebar = function (_a) {
|
|
|
25020
25074
|
React__default['default'].createElement(
|
|
25021
25075
|
'div',
|
|
25022
25076
|
{ className: 'pricing-summary__value' },
|
|
25023
|
-
formatPrice$
|
|
25077
|
+
formatPrice$3(priceDetail.price * priceDetail.amount, currencyCode)
|
|
25024
25078
|
)
|
|
25025
25079
|
),
|
|
25026
25080
|
React__default['default'].createElement(
|
|
@@ -25055,7 +25109,7 @@ var Sidebar = function (_a) {
|
|
|
25055
25109
|
React__default['default'].createElement(
|
|
25056
25110
|
'div',
|
|
25057
25111
|
{ className: 'pricing-summary__value' },
|
|
25058
|
-
formatPrice$
|
|
25112
|
+
formatPrice$3(priceDetail.price * priceDetail.amount, currencyCode)
|
|
25059
25113
|
)
|
|
25060
25114
|
),
|
|
25061
25115
|
React__default['default'].createElement(
|
|
@@ -25085,7 +25139,7 @@ var Sidebar = function (_a) {
|
|
|
25085
25139
|
React__default['default'].createElement(
|
|
25086
25140
|
'div',
|
|
25087
25141
|
{ className: 'pricing-summary__value' },
|
|
25088
|
-
formatPrice$
|
|
25142
|
+
formatPrice$3(ppt.pricePerPaxType, currencyCode)
|
|
25089
25143
|
)
|
|
25090
25144
|
),
|
|
25091
25145
|
ppt.details.map(function (detail, dIndex) {
|
|
@@ -25105,7 +25159,7 @@ var Sidebar = function (_a) {
|
|
|
25105
25159
|
React__default['default'].createElement(
|
|
25106
25160
|
'div',
|
|
25107
25161
|
{ className: 'pricing-summary__value' },
|
|
25108
|
-
formatPrice$
|
|
25162
|
+
formatPrice$3(detail.price / detail.numberOfPax, currencyCode)
|
|
25109
25163
|
)
|
|
25110
25164
|
);
|
|
25111
25165
|
})
|
|
@@ -25149,7 +25203,7 @@ var Sidebar = function (_a) {
|
|
|
25149
25203
|
React__default['default'].createElement(
|
|
25150
25204
|
'div',
|
|
25151
25205
|
{ className: 'pricing__price' },
|
|
25152
|
-
formatPrice$
|
|
25206
|
+
formatPrice$3(commission !== null && commission !== void 0 ? commission : 0, currencyCode)
|
|
25153
25207
|
)
|
|
25154
25208
|
)
|
|
25155
25209
|
)
|
|
@@ -25170,7 +25224,7 @@ var Sidebar = function (_a) {
|
|
|
25170
25224
|
React__default['default'].createElement(
|
|
25171
25225
|
'div',
|
|
25172
25226
|
{ className: 'pricing' },
|
|
25173
|
-
React__default['default'].createElement('div', { className: 'pricing__price' }, formatPrice$
|
|
25227
|
+
React__default['default'].createElement('div', { className: 'pricing__price' }, formatPrice$3(totalPrice, currencyCode))
|
|
25174
25228
|
)
|
|
25175
25229
|
)
|
|
25176
25230
|
),
|
|
@@ -25188,7 +25242,7 @@ var Sidebar = function (_a) {
|
|
|
25188
25242
|
React__default['default'].createElement(
|
|
25189
25243
|
'div',
|
|
25190
25244
|
{ className: 'pricing' },
|
|
25191
|
-
React__default['default'].createElement('div', { className: 'pricing__price' }, formatPrice$
|
|
25245
|
+
React__default['default'].createElement('div', { className: 'pricing__price' }, formatPrice$3(deposit, currencyCode))
|
|
25192
25246
|
)
|
|
25193
25247
|
)
|
|
25194
25248
|
),
|
|
@@ -25204,7 +25258,7 @@ var Sidebar = function (_a) {
|
|
|
25204
25258
|
translations.SIDEBAR.DEPOSIT_TEXT1,
|
|
25205
25259
|
React__default['default'].createElement('strong', null, translations.SIDEBAR.DEPOSIT_TEXT2),
|
|
25206
25260
|
translations.SIDEBAR.DEPOSIT_TEXT3,
|
|
25207
|
-
formatPrice$
|
|
25261
|
+
formatPrice$3(remainingAmount, currencyCode),
|
|
25208
25262
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
25209
25263
|
React__default['default'].createElement('strong', null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
25210
25264
|
translations.SIDEBAR.DEPOSIT_TEXT6
|
|
@@ -25233,7 +25287,7 @@ var Sidebar = function (_a) {
|
|
|
25233
25287
|
React__default['default'].createElement(
|
|
25234
25288
|
'div',
|
|
25235
25289
|
{ className: 'pricing__price' },
|
|
25236
|
-
formatPrice$
|
|
25290
|
+
formatPrice$3(commission !== null && commission !== void 0 ? commission : 0, currencyCode)
|
|
25237
25291
|
)
|
|
25238
25292
|
)
|
|
25239
25293
|
)
|
|
@@ -25254,7 +25308,7 @@ var Sidebar = function (_a) {
|
|
|
25254
25308
|
React__default['default'].createElement(
|
|
25255
25309
|
'div',
|
|
25256
25310
|
{ className: 'pricing' },
|
|
25257
|
-
React__default['default'].createElement('div', { className: 'pricing__price' }, formatPrice$
|
|
25311
|
+
React__default['default'].createElement('div', { className: 'pricing__price' }, formatPrice$3(totalPrice, currencyCode))
|
|
25258
25312
|
)
|
|
25259
25313
|
)
|
|
25260
25314
|
)
|
|
@@ -33857,22 +33911,32 @@ var initialState$1 = {
|
|
|
33857
33911
|
packagingAccoSearchDetails: [],
|
|
33858
33912
|
selectedPackagingAccoResultCode: null,
|
|
33859
33913
|
packagingFlightResults: [],
|
|
33914
|
+
filteredPackagingFlightResults: [],
|
|
33860
33915
|
selectedPackagingFlight: null,
|
|
33916
|
+
selectedOutwardKey: null,
|
|
33917
|
+
selectedReturnKey: null,
|
|
33861
33918
|
selectedFlight: null,
|
|
33862
33919
|
selectedFlightDetails: null,
|
|
33863
33920
|
bookingPackageDetails: null,
|
|
33921
|
+
priceDetails: null,
|
|
33864
33922
|
isLoading: false,
|
|
33865
33923
|
flightsLoading: false,
|
|
33866
|
-
filters: [],
|
|
33867
33924
|
selectedSortType: null,
|
|
33925
|
+
selectedFlightSortType: null,
|
|
33926
|
+
initialFilters: [],
|
|
33927
|
+
filters: [],
|
|
33928
|
+
initialFlightFilters: [],
|
|
33929
|
+
flightFilters: [],
|
|
33868
33930
|
activeTab: 'compact',
|
|
33869
33931
|
currentPage: 1,
|
|
33932
|
+
transactionId: null,
|
|
33870
33933
|
flyInIsOpen: false,
|
|
33934
|
+
flyInType: null,
|
|
33871
33935
|
editablePackagingEntry: null,
|
|
33872
|
-
|
|
33873
|
-
|
|
33874
|
-
|
|
33875
|
-
|
|
33936
|
+
itinerary: null,
|
|
33937
|
+
excursionSearchParams: null,
|
|
33938
|
+
selectedExcursionSearchResult: null,
|
|
33939
|
+
confirmedExcursionsByDay: {}
|
|
33876
33940
|
};
|
|
33877
33941
|
var searchResultsSlice = toolkit.createSlice({
|
|
33878
33942
|
name: 'searchResults',
|
|
@@ -33902,6 +33966,9 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33902
33966
|
setPackagingFlightResults: function (state, action) {
|
|
33903
33967
|
state.packagingFlightResults = action.payload;
|
|
33904
33968
|
},
|
|
33969
|
+
setFilteredPackagingFlightResults: function (state, action) {
|
|
33970
|
+
state.filteredPackagingFlightResults = action.payload;
|
|
33971
|
+
},
|
|
33905
33972
|
setSelectedPackagingFlight: function (state, action) {
|
|
33906
33973
|
state.selectedPackagingFlight = action.payload;
|
|
33907
33974
|
},
|
|
@@ -33930,6 +33997,9 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33930
33997
|
setFlightsLoading: function (state, action) {
|
|
33931
33998
|
state.flightsLoading = action.payload;
|
|
33932
33999
|
},
|
|
34000
|
+
setInitialFilters: function (state, action) {
|
|
34001
|
+
state.initialFilters = action.payload;
|
|
34002
|
+
},
|
|
33933
34003
|
setFilters: function (state, action) {
|
|
33934
34004
|
var updatedFilters = action.payload;
|
|
33935
34005
|
updatedFilters.forEach(function (updatedFilter) {
|
|
@@ -33946,9 +34016,31 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33946
34016
|
resetFilters: function (state, action) {
|
|
33947
34017
|
state.filters = action.payload;
|
|
33948
34018
|
},
|
|
34019
|
+
setInitialFlightFilters: function (state, action) {
|
|
34020
|
+
state.initialFlightFilters = action.payload;
|
|
34021
|
+
},
|
|
34022
|
+
setFlightFilters: function (state, action) {
|
|
34023
|
+
var updatedFilters = action.payload;
|
|
34024
|
+
updatedFilters.forEach(function (updatedFilter) {
|
|
34025
|
+
var existingIndex = state.flightFilters.findIndex(function (f) {
|
|
34026
|
+
return f.property === updatedFilter.property;
|
|
34027
|
+
});
|
|
34028
|
+
if (existingIndex !== -1) {
|
|
34029
|
+
state.flightFilters[existingIndex] = updatedFilter;
|
|
34030
|
+
} else {
|
|
34031
|
+
state.flightFilters.push(updatedFilter); // Optional: Add new filters if not present
|
|
34032
|
+
}
|
|
34033
|
+
});
|
|
34034
|
+
},
|
|
34035
|
+
resetFlightFilters: function (state, action) {
|
|
34036
|
+
state.flightFilters = action.payload;
|
|
34037
|
+
},
|
|
33949
34038
|
setSortType: function (state, action) {
|
|
33950
34039
|
state.selectedSortType = action.payload;
|
|
33951
34040
|
},
|
|
34041
|
+
setFlightSortType: function (state, action) {
|
|
34042
|
+
state.selectedFlightSortType = action.payload;
|
|
34043
|
+
},
|
|
33952
34044
|
setActiveTab: function (state, action) {
|
|
33953
34045
|
state.activeTab = action.payload;
|
|
33954
34046
|
},
|
|
@@ -33972,14 +34064,59 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33972
34064
|
setTransactionId: function (state, action) {
|
|
33973
34065
|
state.transactionId = action.payload;
|
|
33974
34066
|
},
|
|
33975
|
-
|
|
33976
|
-
state.
|
|
34067
|
+
setFlyInType: function (state, action) {
|
|
34068
|
+
state.flyInType = action.payload;
|
|
33977
34069
|
},
|
|
33978
34070
|
setPriceDetails: function (state, action) {
|
|
33979
34071
|
state.priceDetails = action.payload;
|
|
33980
34072
|
},
|
|
33981
34073
|
setItinerary: function (state, action) {
|
|
33982
34074
|
state.itinerary = action.payload;
|
|
34075
|
+
},
|
|
34076
|
+
setSelectedOutwardKey: function (state, action) {
|
|
34077
|
+
state.selectedOutwardKey = action.payload;
|
|
34078
|
+
},
|
|
34079
|
+
setSelectedReturnKey: function (state, action) {
|
|
34080
|
+
state.selectedReturnKey = action.payload;
|
|
34081
|
+
},
|
|
34082
|
+
resetFlightSelection: function (state) {
|
|
34083
|
+
state.selectedOutwardKey = null;
|
|
34084
|
+
state.selectedReturnKey = null;
|
|
34085
|
+
},
|
|
34086
|
+
setExcursionSearchParams: function (state, action) {
|
|
34087
|
+
state.excursionSearchParams = action.payload;
|
|
34088
|
+
},
|
|
34089
|
+
setSelectedExcursionSearchResult: function (state, action) {
|
|
34090
|
+
state.selectedExcursionSearchResult = action.payload;
|
|
34091
|
+
},
|
|
34092
|
+
confirmExcursionForDay: function (state, action) {
|
|
34093
|
+
var _a;
|
|
34094
|
+
var _b = action.payload,
|
|
34095
|
+
dayKey = _b.dayKey,
|
|
34096
|
+
excursion = _b.excursion;
|
|
34097
|
+
var existingForDay = (_a = state.confirmedExcursionsByDay[dayKey]) !== null && _a !== void 0 ? _a : [];
|
|
34098
|
+
var existingIndex = existingForDay.findIndex(function (item) {
|
|
34099
|
+
return item.code === excursion.code;
|
|
34100
|
+
});
|
|
34101
|
+
if (existingIndex >= 0) {
|
|
34102
|
+
// replace existing confirmed version of same excursion
|
|
34103
|
+
existingForDay[existingIndex] = excursion;
|
|
34104
|
+
} else {
|
|
34105
|
+
existingForDay.push(excursion);
|
|
34106
|
+
}
|
|
34107
|
+
state.confirmedExcursionsByDay[dayKey] = existingForDay;
|
|
34108
|
+
},
|
|
34109
|
+
removeConfirmedExcursionForDay: function (state, action) {
|
|
34110
|
+
var _a;
|
|
34111
|
+
var _b = action.payload,
|
|
34112
|
+
dayKey = _b.dayKey,
|
|
34113
|
+
excursionCode = _b.excursionCode;
|
|
34114
|
+
state.confirmedExcursionsByDay[dayKey] = ((_a = state.confirmedExcursionsByDay[dayKey]) !== null && _a !== void 0 ? _a : []).filter(function (item) {
|
|
34115
|
+
return item.code !== excursionCode;
|
|
34116
|
+
});
|
|
34117
|
+
},
|
|
34118
|
+
clearConfirmedExcursionsForDay: function (state, action) {
|
|
34119
|
+
delete state.confirmedExcursionsByDay[action.payload.dayKey];
|
|
33983
34120
|
}
|
|
33984
34121
|
}
|
|
33985
34122
|
});
|
|
@@ -33988,6 +34125,7 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33988
34125
|
setSelectedSearchResult = _a.setSelectedSearchResult,
|
|
33989
34126
|
setPackagingAccoResults = _a.setPackagingAccoResults,
|
|
33990
34127
|
setFilteredPackagingAccoResults = _a.setFilteredPackagingAccoResults,
|
|
34128
|
+
setFilteredPackagingFlightResults = _a.setFilteredPackagingFlightResults,
|
|
33991
34129
|
setPackagingAccoSearchDetails = _a.setPackagingAccoSearchDetails,
|
|
33992
34130
|
setSelectedPackagingAccoResult = _a.setSelectedPackagingAccoResult,
|
|
33993
34131
|
setPackagingFlightResults = _a.setPackagingFlightResults,
|
|
@@ -33998,18 +34136,31 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33998
34136
|
_a.selectFlight;
|
|
33999
34137
|
var setIsLoading = _a.setIsLoading,
|
|
34000
34138
|
setFlightsLoading = _a.setFlightsLoading,
|
|
34139
|
+
setInitialFilters = _a.setInitialFilters,
|
|
34001
34140
|
setFilters = _a.setFilters,
|
|
34002
34141
|
resetFilters = _a.resetFilters,
|
|
34142
|
+
setInitialFlightFilters = _a.setInitialFlightFilters,
|
|
34143
|
+
setFlightFilters = _a.setFlightFilters,
|
|
34144
|
+
resetFlightFilters = _a.resetFlightFilters,
|
|
34003
34145
|
setSortType = _a.setSortType,
|
|
34146
|
+
setFlightSortType = _a.setFlightSortType,
|
|
34004
34147
|
setActiveTab = _a.setActiveTab;
|
|
34005
34148
|
_a.setCurrentPage;
|
|
34006
34149
|
_a.resetSearchState;
|
|
34007
34150
|
var setFlyInIsOpen = _a.setFlyInIsOpen,
|
|
34008
34151
|
setEditablePackagingEntry = _a.setEditablePackagingEntry,
|
|
34009
34152
|
setTransactionId = _a.setTransactionId,
|
|
34010
|
-
|
|
34153
|
+
setFlyInType = _a.setFlyInType,
|
|
34011
34154
|
setPriceDetails = _a.setPriceDetails,
|
|
34012
|
-
setItinerary = _a.setItinerary
|
|
34155
|
+
setItinerary = _a.setItinerary,
|
|
34156
|
+
setSelectedOutwardKey = _a.setSelectedOutwardKey,
|
|
34157
|
+
setSelectedReturnKey = _a.setSelectedReturnKey;
|
|
34158
|
+
_a.resetFlightSelection;
|
|
34159
|
+
var setExcursionSearchParams = _a.setExcursionSearchParams,
|
|
34160
|
+
setSelectedExcursionSearchResult = _a.setSelectedExcursionSearchResult,
|
|
34161
|
+
confirmExcursionForDay = _a.confirmExcursionForDay,
|
|
34162
|
+
removeConfirmedExcursionForDay = _a.removeConfirmedExcursionForDay;
|
|
34163
|
+
_a.clearConfirmedExcursionsForDay;
|
|
34013
34164
|
var searchResultsReducer = searchResultsSlice.reducer;
|
|
34014
34165
|
|
|
34015
34166
|
var ItemPicker = function (_a) {
|
|
@@ -34542,8 +34693,7 @@ var Icon$1 = function (_a) {
|
|
|
34542
34693
|
}),
|
|
34543
34694
|
title && React__default['default'].createElement('title', null, title),
|
|
34544
34695
|
React__default['default'].createElement('path', {
|
|
34545
|
-
d: 'M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z'
|
|
34546
|
-
fill: 'currentColor'
|
|
34696
|
+
d: 'M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z'
|
|
34547
34697
|
})
|
|
34548
34698
|
);
|
|
34549
34699
|
case 'ui-backforward':
|
|
@@ -35040,6 +35190,7 @@ var Icon$1 = function (_a) {
|
|
|
35040
35190
|
|
|
35041
35191
|
var GROUP_TOUR_SERVICE_TYPE = 1;
|
|
35042
35192
|
var ACCOMMODATION_SERVICE_TYPE = 3;
|
|
35193
|
+
var EXCURSION_SERVICE_TYPE = 4;
|
|
35043
35194
|
var FLIGHT_SERVICE_TYPE = 7;
|
|
35044
35195
|
var toDateOnlyString = function (value) {
|
|
35045
35196
|
var date = value instanceof Date ? value : new Date(value);
|
|
@@ -35434,12 +35585,12 @@ var Itinerary = function (_a) {
|
|
|
35434
35585
|
React__default['default'].createElement(
|
|
35435
35586
|
'div',
|
|
35436
35587
|
{ className: 'search__filter__prices__wrapper' },
|
|
35437
|
-
React__default['default'].createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$
|
|
35588
|
+
React__default['default'].createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$3(pricePerPerson, 'EUR')),
|
|
35438
35589
|
React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
|
|
35439
35590
|
React__default['default'].createElement(
|
|
35440
35591
|
'p',
|
|
35441
35592
|
null,
|
|
35442
|
-
React__default['default'].createElement('strong', null, '(', formatPrice$
|
|
35593
|
+
React__default['default'].createElement('strong', null, '(', formatPrice$3(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
|
|
35443
35594
|
)
|
|
35444
35595
|
),
|
|
35445
35596
|
React__default['default'].createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
|
|
@@ -38505,7 +38656,8 @@ var FlightsFlyIn = function (_a) {
|
|
|
38505
38656
|
React__default['default'].createElement(
|
|
38506
38657
|
'div',
|
|
38507
38658
|
{ className: 'flyin__footer__price' },
|
|
38508
|
-
|
|
38659
|
+
translations.SHARED.TOTAL_PRICE,
|
|
38660
|
+
': \u20AC',
|
|
38509
38661
|
(_o = selectedCombinationFlight === null || selectedCombinationFlight === void 0 ? void 0 : selectedCombinationFlight.price) === null || _o === void 0
|
|
38510
38662
|
? void 0
|
|
38511
38663
|
: _o.toFixed(2)
|
|
@@ -38519,7 +38671,7 @@ var FlightsFlyIn = function (_a) {
|
|
|
38519
38671
|
);
|
|
38520
38672
|
};
|
|
38521
38673
|
|
|
38522
|
-
var formatPrice$
|
|
38674
|
+
var formatPrice$2 = function (price, currencyCode) {
|
|
38523
38675
|
if (typeof price !== 'number') return '';
|
|
38524
38676
|
var safeCurrency = currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR';
|
|
38525
38677
|
return new Intl.NumberFormat('nl-BE', {
|
|
@@ -38651,7 +38803,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38651
38803
|
var totalPrice = selectedOptions.reduce(function (total, option) {
|
|
38652
38804
|
return total + (option.price || 0);
|
|
38653
38805
|
}, 0);
|
|
38654
|
-
return formatPrice$
|
|
38806
|
+
return formatPrice$2(totalPrice, selectedPackagingAccoSearchDetails.currencyCode);
|
|
38655
38807
|
};
|
|
38656
38808
|
var getPriceDifference = function (currentSelectedPrice, roomIndex, accommodationCode, regimeId) {
|
|
38657
38809
|
var targetPrice = 0;
|
|
@@ -38676,7 +38828,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38676
38828
|
if (difference === 0) {
|
|
38677
38829
|
return null;
|
|
38678
38830
|
}
|
|
38679
|
-
var formattedAbsoluteValue = formatPrice$
|
|
38831
|
+
var formattedAbsoluteValue = formatPrice$2(Math.abs(difference), currencyCode);
|
|
38680
38832
|
return ''.concat(difference > 0 ? '+' : '-', ' ').concat(formattedAbsoluteValue);
|
|
38681
38833
|
};
|
|
38682
38834
|
var getPriceDifferenceClassName = function (difference) {
|
|
@@ -38794,7 +38946,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38794
38946
|
React__default['default'].createElement(
|
|
38795
38947
|
'div',
|
|
38796
38948
|
{ className: 'flyin__footer' },
|
|
38797
|
-
React__default['default'].createElement('div', { className: 'flyin__footer__price' }, '
|
|
38949
|
+
React__default['default'].createElement('div', { className: 'flyin__footer__price' }, translations.SHARED.TOTAL_PRICE, ': ', calculateTotalPrice()),
|
|
38798
38950
|
React__default['default'].createElement(
|
|
38799
38951
|
'div',
|
|
38800
38952
|
{ className: 'flyin__button-wrapper' },
|
|
@@ -38953,7 +39105,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38953
39105
|
// )} */}
|
|
38954
39106
|
// </div>
|
|
38955
39107
|
// <div className="flyin__footer">
|
|
38956
|
-
// <div className="flyin__footer__price">
|
|
39108
|
+
// <div className="flyin__footer__price">{translations.SHARED.TOTAL_PRICE}: €</div>
|
|
38957
39109
|
// <div className="flyin__button-wrapper">
|
|
38958
39110
|
// <button className="cta cta--select" onClick={handleConfirm}>
|
|
38959
39111
|
// Toevoegen
|
|
@@ -38963,7 +39115,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38963
39115
|
// </>
|
|
38964
39116
|
};
|
|
38965
39117
|
|
|
38966
|
-
var formatPrice = function (price, currencyCode) {
|
|
39118
|
+
var formatPrice$1 = function (price, currencyCode) {
|
|
38967
39119
|
if (currencyCode === void 0) {
|
|
38968
39120
|
currencyCode = 'EUR';
|
|
38969
39121
|
}
|
|
@@ -39146,7 +39298,7 @@ var GroupTourFlyIn = function (_a) {
|
|
|
39146
39298
|
if (difference === 0) {
|
|
39147
39299
|
return null;
|
|
39148
39300
|
}
|
|
39149
|
-
var formattedAbsoluteValue = formatPrice(Math.abs(difference), currencyCode);
|
|
39301
|
+
var formattedAbsoluteValue = formatPrice$1(Math.abs(difference), currencyCode);
|
|
39150
39302
|
return ''.concat(difference > 0 ? '+' : '-', ' ').concat(formattedAbsoluteValue);
|
|
39151
39303
|
};
|
|
39152
39304
|
var getPriceDifferenceClassName = function (difference) {
|
|
@@ -39279,8 +39431,9 @@ var GroupTourFlyIn = function (_a) {
|
|
|
39279
39431
|
React__default['default'].createElement(
|
|
39280
39432
|
'div',
|
|
39281
39433
|
{ className: 'flyin__footer__price' },
|
|
39282
|
-
|
|
39283
|
-
|
|
39434
|
+
translations.SHARED.TOTAL_PRICE,
|
|
39435
|
+
': ',
|
|
39436
|
+
formatPrice$1(adjustedTotalPrice, bookingPackageDetails.currencyCode)
|
|
39284
39437
|
),
|
|
39285
39438
|
React__default['default'].createElement(
|
|
39286
39439
|
'div',
|
|
@@ -43597,7 +43750,7 @@ var getBaseHotelResult = function (searchResult, cmsItem, languageCode, translat
|
|
|
43597
43750
|
searchResult.countryName,
|
|
43598
43751
|
(_h = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.parentItem) === null || _h === void 0 ? void 0 : _h.name
|
|
43599
43752
|
),
|
|
43600
|
-
price: formatPrice$
|
|
43753
|
+
price: formatPrice$3(searchResult.price, searchResult.currencyCode, languageCode),
|
|
43601
43754
|
ctaText: translations === null || translations === void 0 ? void 0 : translations.SRP.VIEW_DETAILS
|
|
43602
43755
|
};
|
|
43603
43756
|
};
|
|
@@ -43637,7 +43790,7 @@ var mapPackagingAccoResult = function (searchResult, cmsItem, languageCode, tran
|
|
|
43637
43790
|
contents: searchResult.contents
|
|
43638
43791
|
});
|
|
43639
43792
|
};
|
|
43640
|
-
var renderHotelResults = function (results, context, activeTab, translations) {
|
|
43793
|
+
var renderHotelResults = function (results, context, activeTab, translations, selectedPackagingAccoResult, isFlyIn) {
|
|
43641
43794
|
var renderedResults = results.map(function (result, index) {
|
|
43642
43795
|
var _a;
|
|
43643
43796
|
var key = ''.concat((_a = result.id) !== null && _a !== void 0 ? _a : result.code, '-').concat(index);
|
|
@@ -43652,13 +43805,22 @@ var renderHotelResults = function (results, context, activeTab, translations) {
|
|
|
43652
43805
|
return React__default['default'].createElement(
|
|
43653
43806
|
'div',
|
|
43654
43807
|
{ className: 'search__results__cards '.concat(activeTab ? 'search__results__cards--'.concat(activeTab) : '') },
|
|
43808
|
+
selectedPackagingAccoResult &&
|
|
43809
|
+
!isFlyIn &&
|
|
43810
|
+
React__default['default'].createElement(HotelCard, {
|
|
43811
|
+
key: selectedPackagingAccoResult.code,
|
|
43812
|
+
result: selectedPackagingAccoResult,
|
|
43813
|
+
translations: translations
|
|
43814
|
+
}),
|
|
43655
43815
|
renderedResults
|
|
43656
43816
|
);
|
|
43657
43817
|
};
|
|
43658
43818
|
var HotelAccommodationResults = function (_a) {
|
|
43659
43819
|
var _b, _c;
|
|
43660
|
-
var isLoading = _a.isLoading
|
|
43820
|
+
var isLoading = _a.isLoading,
|
|
43821
|
+
isFlyIn = _a.isFlyIn;
|
|
43661
43822
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
43823
|
+
var dispatch = reactRedux.useDispatch();
|
|
43662
43824
|
if (!context) {
|
|
43663
43825
|
return null;
|
|
43664
43826
|
}
|
|
@@ -43668,7 +43830,10 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43668
43830
|
}),
|
|
43669
43831
|
filteredResults = _d.filteredResults,
|
|
43670
43832
|
filteredPackagingAccoResults = _d.filteredPackagingAccoResults,
|
|
43833
|
+
packagingAccoResults = _d.packagingAccoResults,
|
|
43671
43834
|
activeTab = _d.activeTab;
|
|
43835
|
+
_d.flyInIsOpen;
|
|
43836
|
+
var selectedPackagingAccoResultCode = _d.selectedPackagingAccoResultCode;
|
|
43672
43837
|
var cmsMap = React__default['default'].useMemo(
|
|
43673
43838
|
function () {
|
|
43674
43839
|
var _a;
|
|
@@ -43731,167 +43896,1751 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43731
43896
|
: firstPackagingResult.fromDate;
|
|
43732
43897
|
var firstResultDay = firstResultDate ? dateFns.format(dateFns.parseISO(firstResultDate), 'd') : null;
|
|
43733
43898
|
var firstResultMonth = firstResultDate ? dateFns.format(dateFns.parseISO(firstResultDate), 'MMM') : null;
|
|
43899
|
+
var selectedPackagingAccoResult = React__default['default'].useMemo(
|
|
43900
|
+
function () {
|
|
43901
|
+
var selectedResult = packagingAccoResults.find(function (result) {
|
|
43902
|
+
return result.code === selectedPackagingAccoResultCode;
|
|
43903
|
+
});
|
|
43904
|
+
if (selectedResult) {
|
|
43905
|
+
return mapPackagingAccoResult(selectedResult, cmsMap.get(selectedResult.code), context.languageCode, translations);
|
|
43906
|
+
}
|
|
43907
|
+
},
|
|
43908
|
+
[packagingAccoResults, selectedPackagingAccoResultCode, cmsMap, context.languageCode, translations]
|
|
43909
|
+
);
|
|
43910
|
+
var visibleResults = React__default['default'].useMemo(
|
|
43911
|
+
function () {
|
|
43912
|
+
var shouldShowAll =
|
|
43913
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) !== build.PortalQsmType.AccommodationAndFlight || isFlyIn;
|
|
43914
|
+
if (shouldShowAll) {
|
|
43915
|
+
return mappedResults;
|
|
43916
|
+
}
|
|
43917
|
+
if (selectedPackagingAccoResult) {
|
|
43918
|
+
return mappedResults
|
|
43919
|
+
.filter(function (result) {
|
|
43920
|
+
return result.code !== selectedPackagingAccoResult.code;
|
|
43921
|
+
})
|
|
43922
|
+
.slice(0, 2);
|
|
43923
|
+
}
|
|
43924
|
+
return mappedResults.slice(0, 3);
|
|
43925
|
+
},
|
|
43926
|
+
[context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType, mappedResults, isFlyIn, selectedPackagingAccoResult]
|
|
43927
|
+
);
|
|
43928
|
+
var handleShowMoreHotels = function (flyInType) {
|
|
43929
|
+
dispatch(setFlyInType(flyInType));
|
|
43930
|
+
dispatch(setFlyInIsOpen(true));
|
|
43931
|
+
};
|
|
43734
43932
|
return React__default['default'].createElement(
|
|
43735
43933
|
React__default['default'].Fragment,
|
|
43736
43934
|
null,
|
|
43737
|
-
|
|
43738
|
-
'div',
|
|
43739
|
-
{ className: 'search__results__label search__results__label--secondary' },
|
|
43740
|
-
React__default['default'].createElement(
|
|
43741
|
-
'div',
|
|
43742
|
-
{ className: 'search__results__label__date' },
|
|
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' })
|
|
43751
|
-
),
|
|
43935
|
+
!isFlyIn &&
|
|
43752
43936
|
React__default['default'].createElement(
|
|
43753
43937
|
'div',
|
|
43754
|
-
{ className: '
|
|
43938
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
43755
43939
|
React__default['default'].createElement(
|
|
43756
|
-
'
|
|
43757
|
-
|
|
43758
|
-
|
|
43759
|
-
|
|
43760
|
-
|
|
43940
|
+
'div',
|
|
43941
|
+
{ className: 'search__results__label__date' },
|
|
43942
|
+
firstResultDay && firstResultMonth
|
|
43943
|
+
? React__default['default'].createElement(
|
|
43944
|
+
React__default['default'].Fragment,
|
|
43945
|
+
null,
|
|
43946
|
+
React__default['default'].createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
|
|
43947
|
+
React__default['default'].createElement('p', null, firstResultMonth)
|
|
43948
|
+
)
|
|
43949
|
+
: React__default['default'].createElement(Icon$1, { name: 'ui-bed', height: 16, fill: 'white' })
|
|
43950
|
+
),
|
|
43951
|
+
React__default['default'].createElement(
|
|
43952
|
+
'div',
|
|
43953
|
+
{ className: 'search__results__label__text' },
|
|
43954
|
+
React__default['default'].createElement(
|
|
43955
|
+
'h3',
|
|
43956
|
+
null,
|
|
43957
|
+
translations.SRP.SELECT,
|
|
43958
|
+
' ',
|
|
43959
|
+
React__default['default'].createElement('strong', null, translations.SRP.ACCOMMODATION)
|
|
43960
|
+
)
|
|
43761
43961
|
)
|
|
43762
|
-
)
|
|
43763
|
-
),
|
|
43962
|
+
),
|
|
43764
43963
|
isLoading
|
|
43765
43964
|
? React__default['default'].createElement(
|
|
43766
43965
|
React__default['default'].Fragment,
|
|
43767
43966
|
null,
|
|
43768
43967
|
(_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default['default'].createElement(Spinner, null)
|
|
43769
43968
|
)
|
|
43770
|
-
: renderHotelResults(
|
|
43969
|
+
: renderHotelResults(visibleResults, context, activeTab, translations, selectedPackagingAccoResult, isFlyIn),
|
|
43970
|
+
packagingAccoResults.length > 3 &&
|
|
43971
|
+
!isFlyIn &&
|
|
43972
|
+
React__default['default'].createElement(
|
|
43973
|
+
'div',
|
|
43974
|
+
{ className: 'search__results__cards__actions' },
|
|
43975
|
+
React__default['default'].createElement(
|
|
43976
|
+
'button',
|
|
43977
|
+
{
|
|
43978
|
+
className: 'cta cta--secondary',
|
|
43979
|
+
onClick: function () {
|
|
43980
|
+
return handleShowMoreHotels('acco-results');
|
|
43981
|
+
}
|
|
43982
|
+
},
|
|
43983
|
+
translations.SRP.SHOW_MORE
|
|
43984
|
+
)
|
|
43985
|
+
),
|
|
43771
43986
|
mappedResults.length === 0 && !isLoading && React__default['default'].createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS)
|
|
43772
43987
|
);
|
|
43773
43988
|
};
|
|
43774
43989
|
|
|
43775
|
-
var
|
|
43776
|
-
|
|
43777
|
-
|
|
43778
|
-
|
|
43779
|
-
|
|
43780
|
-
|
|
43781
|
-
|
|
43782
|
-
|
|
43783
|
-
|
|
43784
|
-
|
|
43785
|
-
|
|
43786
|
-
|
|
43787
|
-
|
|
43788
|
-
|
|
43789
|
-
|
|
43790
|
-
|
|
43791
|
-
|
|
43792
|
-
|
|
43793
|
-
|
|
43794
|
-
|
|
43795
|
-
|
|
43796
|
-
|
|
43797
|
-
|
|
43798
|
-
|
|
43799
|
-
|
|
43800
|
-
|
|
43801
|
-
|
|
43802
|
-
|
|
43803
|
-
|
|
43804
|
-
|
|
43805
|
-
|
|
43806
|
-
|
|
43807
|
-
|
|
43808
|
-
|
|
43809
|
-
|
|
43810
|
-
|
|
43811
|
-
|
|
43812
|
-
|
|
43813
|
-
|
|
43814
|
-
);
|
|
43815
|
-
// body scroll lock
|
|
43816
|
-
React.useEffect(
|
|
43817
|
-
function () {
|
|
43818
|
-
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
43819
|
-
return function () {
|
|
43820
|
-
document.body.style.overflow = '';
|
|
43821
|
-
};
|
|
43822
|
-
},
|
|
43823
|
-
[isOpen]
|
|
43824
|
-
);
|
|
43825
|
-
var handleClose = function () {
|
|
43826
|
-
if (isOpen && panelRef.current) {
|
|
43827
|
-
if (srpType === build.PortalQsmType.Flight) {
|
|
43828
|
-
dispatch(setSelectedFlight(null));
|
|
43829
|
-
dispatch(setSelectedFlightDetails(null));
|
|
43830
|
-
onCancelSearch();
|
|
43831
|
-
} else {
|
|
43832
|
-
dispatch(setSelectedSearchResult(null));
|
|
43833
|
-
dispatch(setSelectedPackagingAccoResult(null));
|
|
43834
|
-
}
|
|
43835
|
-
dispatch(setAccommodationFlyInStep('details'));
|
|
43836
|
-
setIsOpen(false);
|
|
43990
|
+
var selectSearchResultsState = function (state) {
|
|
43991
|
+
return state.searchResults;
|
|
43992
|
+
};
|
|
43993
|
+
var selectPackagingAccoResults = toolkit.createSelector([selectSearchResultsState], function (state) {
|
|
43994
|
+
return state.packagingAccoResults;
|
|
43995
|
+
});
|
|
43996
|
+
var selectSelectedPackagingAccoResultCode = toolkit.createSelector([selectSearchResultsState], function (state) {
|
|
43997
|
+
return state.selectedPackagingAccoResultCode;
|
|
43998
|
+
});
|
|
43999
|
+
var selectSelectedPackagingAccoResult = toolkit.createSelector(
|
|
44000
|
+
[selectPackagingAccoResults, selectSelectedPackagingAccoResultCode],
|
|
44001
|
+
function (packagingAccoResults, selectedPackagingAccoResultCode) {
|
|
44002
|
+
var _a;
|
|
44003
|
+
if (!selectedPackagingAccoResultCode) return null;
|
|
44004
|
+
return (_a = packagingAccoResults.find(function (accoResult) {
|
|
44005
|
+
return accoResult.code === selectedPackagingAccoResultCode;
|
|
44006
|
+
})) !== null && _a !== void 0
|
|
44007
|
+
? _a
|
|
44008
|
+
: null;
|
|
44009
|
+
}
|
|
44010
|
+
);
|
|
44011
|
+
var selectPackagingFlightResults = toolkit.createSelector([selectSearchResultsState], function (state) {
|
|
44012
|
+
return state.packagingFlightResults;
|
|
44013
|
+
});
|
|
44014
|
+
var selectFilteredPackagingFlightResults = toolkit.createSelector([selectSearchResultsState], function (state) {
|
|
44015
|
+
return state.filteredPackagingFlightResults;
|
|
44016
|
+
});
|
|
44017
|
+
var selectSelectedOutwardKey = toolkit.createSelector([selectSearchResultsState], function (state) {
|
|
44018
|
+
return state.selectedOutwardKey;
|
|
44019
|
+
});
|
|
44020
|
+
var selectSelectedReturnKey = toolkit.createSelector([selectSearchResultsState], function (state) {
|
|
44021
|
+
return state.selectedReturnKey;
|
|
44022
|
+
});
|
|
44023
|
+
var selectUniqueOutwardFlights = toolkit.createSelector([selectFilteredPackagingFlightResults], function (packagingFlightResults) {
|
|
44024
|
+
var map = new Map();
|
|
44025
|
+
packagingFlightResults.forEach(function (flight) {
|
|
44026
|
+
var key = getFlightKey(flight.outward.segments);
|
|
44027
|
+
if (!map.has(key)) {
|
|
44028
|
+
map.set(key, flight);
|
|
43837
44029
|
}
|
|
43838
|
-
};
|
|
43839
|
-
|
|
43840
|
-
|
|
43841
|
-
|
|
44030
|
+
});
|
|
44031
|
+
return Array.from(map.values());
|
|
44032
|
+
});
|
|
44033
|
+
var selectUniqueReturnFlights = toolkit.createSelector(
|
|
44034
|
+
[selectFilteredPackagingFlightResults, selectSelectedOutwardKey],
|
|
44035
|
+
function (packagingFlightResults, selectedOutwardKey) {
|
|
44036
|
+
if (!selectedOutwardKey) return [];
|
|
44037
|
+
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
44038
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
44039
|
+
});
|
|
44040
|
+
var map = new Map();
|
|
44041
|
+
matchingCombinations.forEach(function (flight) {
|
|
44042
|
+
var key = getFlightKey(flight.return.segments);
|
|
44043
|
+
if (!map.has(key)) {
|
|
44044
|
+
map.set(key, flight);
|
|
44045
|
+
}
|
|
44046
|
+
});
|
|
44047
|
+
return Array.from(map.values());
|
|
44048
|
+
}
|
|
44049
|
+
);
|
|
44050
|
+
var selectSelectedOutward = toolkit.createSelector(
|
|
44051
|
+
[selectPackagingFlightResults, selectSelectedOutwardKey],
|
|
44052
|
+
function (packagingFlightResults, selectedOutwardKey) {
|
|
44053
|
+
var _a;
|
|
44054
|
+
if (!selectedOutwardKey) return null;
|
|
44055
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
44056
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
44057
|
+
})) !== null && _a !== void 0
|
|
44058
|
+
? _a
|
|
44059
|
+
: null;
|
|
44060
|
+
}
|
|
44061
|
+
);
|
|
44062
|
+
var selectSelectedReturn = toolkit.createSelector(
|
|
44063
|
+
[selectPackagingFlightResults, selectSelectedReturnKey],
|
|
44064
|
+
function (packagingFlightResults, selectedReturnKey) {
|
|
44065
|
+
var _a;
|
|
44066
|
+
if (!selectedReturnKey) return null;
|
|
44067
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
44068
|
+
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
44069
|
+
})) !== null && _a !== void 0
|
|
44070
|
+
? _a
|
|
44071
|
+
: null;
|
|
44072
|
+
}
|
|
44073
|
+
);
|
|
44074
|
+
var selectSelectedCombinationFlight = toolkit.createSelector(
|
|
44075
|
+
[selectPackagingFlightResults, selectSelectedOutwardKey, selectSelectedReturnKey],
|
|
44076
|
+
function (packagingFlightResults, selectedOutwardKey, selectedReturnKey) {
|
|
44077
|
+
var _a;
|
|
44078
|
+
if (!selectedOutwardKey || !selectedReturnKey) return null;
|
|
44079
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
44080
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
44081
|
+
})) !== null && _a !== void 0
|
|
44082
|
+
? _a
|
|
44083
|
+
: null;
|
|
44084
|
+
}
|
|
44085
|
+
);
|
|
44086
|
+
|
|
44087
|
+
var IndependentFlightOption = function (_a) {
|
|
44088
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
44089
|
+
var item = _a.item,
|
|
44090
|
+
onSelect = _a.onSelect,
|
|
44091
|
+
guid = _a.guid,
|
|
44092
|
+
selectedGuid = _a.selectedGuid,
|
|
44093
|
+
isOutward = _a.isOutward,
|
|
44094
|
+
showSelectedState = _a.showSelectedState,
|
|
44095
|
+
currentSelectedPrice = _a.currentSelectedPrice,
|
|
44096
|
+
price = _a.price;
|
|
44097
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44098
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44099
|
+
var translations = getTranslations(language);
|
|
44100
|
+
var _p = React.useState(false),
|
|
44101
|
+
detailsOpen = _p[0],
|
|
44102
|
+
setDetailsOpen = _p[1];
|
|
44103
|
+
var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
|
|
43842
44104
|
return React__default['default'].createElement(
|
|
43843
44105
|
'div',
|
|
43844
|
-
{
|
|
43845
|
-
className: 'flyin '
|
|
43846
|
-
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
43847
|
-
.concat(className, ' ')
|
|
43848
|
-
.concat(isPackageEditFlow ? 'flyin--large' : '')
|
|
43849
|
-
},
|
|
44106
|
+
{ className: 'search__result-card', key: 'flight-'.concat(item.code) },
|
|
43850
44107
|
React__default['default'].createElement(
|
|
43851
44108
|
'div',
|
|
43852
|
-
{ className: '
|
|
44109
|
+
{ className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
|
|
43853
44110
|
React__default['default'].createElement(
|
|
43854
44111
|
'div',
|
|
43855
|
-
{ className: '
|
|
44112
|
+
{ className: 'flight__option' },
|
|
43856
44113
|
React__default['default'].createElement(
|
|
43857
44114
|
'div',
|
|
43858
|
-
{ className: '
|
|
43859
|
-
React__default['default'].createElement('h3', { className: 'flyin__content-title' }, title),
|
|
43860
|
-
React__default['default'].createElement(
|
|
43861
|
-
'span',
|
|
43862
|
-
{
|
|
43863
|
-
className: 'flyin__close',
|
|
43864
|
-
onClick: function () {
|
|
43865
|
-
return handleClose();
|
|
43866
|
-
}
|
|
43867
|
-
},
|
|
43868
|
-
React__default['default'].createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
43869
|
-
)
|
|
43870
|
-
),
|
|
43871
|
-
isPackageEditFlow &&
|
|
43872
|
-
accommodationStep === 'details' &&
|
|
44115
|
+
{ className: 'flight__content' },
|
|
43873
44116
|
React__default['default'].createElement(
|
|
43874
44117
|
'div',
|
|
43875
|
-
{ className: '
|
|
44118
|
+
{ className: 'flight__flights' },
|
|
43876
44119
|
React__default['default'].createElement(
|
|
43877
44120
|
'div',
|
|
43878
|
-
{
|
|
43879
|
-
React__default['default'].createElement(
|
|
43880
|
-
|
|
44121
|
+
{ className: 'flight__flight' },
|
|
44122
|
+
React__default['default'].createElement(
|
|
44123
|
+
'div',
|
|
44124
|
+
{ className: 'flight__flight__header' },
|
|
44125
|
+
React__default['default'].createElement('div', { className: 'flight__status__container' }),
|
|
44126
|
+
React__default['default'].createElement(
|
|
44127
|
+
'div',
|
|
44128
|
+
{ className: 'flight__price' },
|
|
44129
|
+
price != null &&
|
|
44130
|
+
price > 0 &&
|
|
44131
|
+
(isOutward
|
|
44132
|
+
? React__default['default'].createElement(
|
|
44133
|
+
'span',
|
|
44134
|
+
{ className: 'price' },
|
|
44135
|
+
translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
|
|
44136
|
+
'\u00A0',
|
|
44137
|
+
formatPrice$3(
|
|
44138
|
+
price,
|
|
44139
|
+
'EUR',
|
|
44140
|
+
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
44141
|
+
)
|
|
44142
|
+
)
|
|
44143
|
+
: priceDifference != null &&
|
|
44144
|
+
Math.abs(priceDifference) > 0 &&
|
|
44145
|
+
React__default['default'].createElement(
|
|
44146
|
+
'span',
|
|
44147
|
+
{ className: 'price' },
|
|
44148
|
+
priceDifference > 0 ? '+' : '-',
|
|
44149
|
+
'\u00A0',
|
|
44150
|
+
formatPrice$3(
|
|
44151
|
+
Math.abs(priceDifference),
|
|
44152
|
+
'EUR',
|
|
44153
|
+
(_d = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
44154
|
+
)
|
|
44155
|
+
)),
|
|
44156
|
+
React__default['default'].createElement(
|
|
44157
|
+
'button',
|
|
44158
|
+
{
|
|
44159
|
+
type: 'button',
|
|
44160
|
+
className: 'cta '.concat(selectedGuid === guid ? 'cta--selected' : 'cta--select'),
|
|
44161
|
+
onClick: function () {
|
|
44162
|
+
return onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
44163
|
+
}
|
|
44164
|
+
},
|
|
44165
|
+
selectedGuid === guid ? 'Selected' : 'Select'
|
|
44166
|
+
)
|
|
44167
|
+
)
|
|
44168
|
+
)
|
|
44169
|
+
),
|
|
44170
|
+
React__default['default'].createElement(
|
|
44171
|
+
'div',
|
|
44172
|
+
{ className: 'flight__flight' },
|
|
44173
|
+
React__default['default'].createElement(
|
|
44174
|
+
'div',
|
|
44175
|
+
{ className: 'flight__flight__container' },
|
|
44176
|
+
React__default['default'].createElement(
|
|
44177
|
+
'div',
|
|
44178
|
+
{ className: 'flight__flight__wrapper' },
|
|
44179
|
+
React__default['default'].createElement(
|
|
44180
|
+
'div',
|
|
44181
|
+
{ className: 'flight__logo__wrapper' },
|
|
44182
|
+
React__default['default'].createElement('img', {
|
|
44183
|
+
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
44184
|
+
(_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
|
|
44185
|
+
'.png?height=256'
|
|
44186
|
+
),
|
|
44187
|
+
alt: '',
|
|
44188
|
+
className: 'flight__logo'
|
|
44189
|
+
}),
|
|
44190
|
+
React__default['default'].createElement(
|
|
44191
|
+
'span',
|
|
44192
|
+
null,
|
|
44193
|
+
(_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName
|
|
44194
|
+
)
|
|
44195
|
+
),
|
|
44196
|
+
React__default['default'].createElement(
|
|
44197
|
+
'div',
|
|
44198
|
+
{ className: 'flight__info' },
|
|
44199
|
+
React__default['default'].createElement(
|
|
44200
|
+
'div',
|
|
44201
|
+
{ className: 'flight__info__times' },
|
|
44202
|
+
React__default['default'].createElement(
|
|
44203
|
+
'strong',
|
|
44204
|
+
null,
|
|
44205
|
+
timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
|
|
44206
|
+
' ',
|
|
44207
|
+
(_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
|
|
44208
|
+
),
|
|
44209
|
+
React__default['default'].createElement(
|
|
44210
|
+
'p',
|
|
44211
|
+
null,
|
|
44212
|
+
longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
|
|
44213
|
+
)
|
|
44214
|
+
),
|
|
44215
|
+
React__default['default'].createElement(
|
|
44216
|
+
'div',
|
|
44217
|
+
{ className: 'flight__info__duration' },
|
|
44218
|
+
React__default['default'].createElement('p', null, durationTicksInHoursString(item.durationInTicks)),
|
|
44219
|
+
React__default['default'].createElement(
|
|
44220
|
+
'div',
|
|
44221
|
+
{ className: 'flight__info__duration__stops' },
|
|
44222
|
+
React__default['default'].createElement('div', { className: 'flight__info__duration__stop' })
|
|
44223
|
+
),
|
|
44224
|
+
React__default['default'].createElement(
|
|
44225
|
+
'span',
|
|
44226
|
+
null,
|
|
44227
|
+
getNumberOfStopsLabel(item, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
44228
|
+
)
|
|
44229
|
+
),
|
|
44230
|
+
React__default['default'].createElement(
|
|
44231
|
+
'div',
|
|
44232
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44233
|
+
React__default['default'].createElement(
|
|
44234
|
+
'strong',
|
|
44235
|
+
null,
|
|
44236
|
+
timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
|
|
44237
|
+
' ',
|
|
44238
|
+
(_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
|
|
44239
|
+
),
|
|
44240
|
+
React__default['default'].createElement(
|
|
44241
|
+
'p',
|
|
44242
|
+
null,
|
|
44243
|
+
longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
|
|
44244
|
+
)
|
|
44245
|
+
)
|
|
44246
|
+
)
|
|
44247
|
+
),
|
|
44248
|
+
React__default['default'].createElement(
|
|
44249
|
+
'div',
|
|
44250
|
+
{ className: 'flight__detail__btn__wrapper' },
|
|
44251
|
+
React__default['default'].createElement(
|
|
44252
|
+
'div',
|
|
44253
|
+
{
|
|
44254
|
+
className: 'flight__detail__btn '.concat(detailsOpen ? 'flight__detail__btn--active' : ''),
|
|
44255
|
+
onClick: function () {
|
|
44256
|
+
return setDetailsOpen(function (prev) {
|
|
44257
|
+
return !prev;
|
|
44258
|
+
});
|
|
44259
|
+
}
|
|
44260
|
+
},
|
|
44261
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44262
|
+
)
|
|
44263
|
+
)
|
|
44264
|
+
),
|
|
44265
|
+
React__default['default'].createElement(
|
|
44266
|
+
'div',
|
|
44267
|
+
{ className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
|
|
44268
|
+
(_o = getFlightSegments(item)) === null || _o === void 0
|
|
44269
|
+
? void 0
|
|
44270
|
+
: _o.map(function (segment, index) {
|
|
44271
|
+
return React__default['default'].createElement(
|
|
44272
|
+
React__default['default'].Fragment,
|
|
44273
|
+
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
44274
|
+
React__default['default'].createElement(
|
|
44275
|
+
'div',
|
|
44276
|
+
{ className: 'flight__info' },
|
|
44277
|
+
React__default['default'].createElement(
|
|
44278
|
+
'div',
|
|
44279
|
+
{ className: 'flight__info__times__wrapper' },
|
|
44280
|
+
React__default['default'].createElement(
|
|
44281
|
+
'div',
|
|
44282
|
+
{ className: 'flight__info__times' },
|
|
44283
|
+
React__default['default'].createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44284
|
+
React__default['default'].createElement('strong', null, segment.departureAirportCode),
|
|
44285
|
+
React__default['default'].createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44286
|
+
),
|
|
44287
|
+
React__default['default'].createElement(
|
|
44288
|
+
'div',
|
|
44289
|
+
null,
|
|
44290
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 })
|
|
44291
|
+
)
|
|
44292
|
+
),
|
|
44293
|
+
React__default['default'].createElement(
|
|
44294
|
+
'div',
|
|
44295
|
+
{ className: 'flight__info__duration' },
|
|
44296
|
+
React__default['default'].createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
44297
|
+
React__default['default'].createElement('div', { className: 'flight__info__duration__stops' }),
|
|
44298
|
+
React__default['default'].createElement('span', null, segment.marketingAirlineName),
|
|
44299
|
+
React__default['default'].createElement('strong', null, segment.operatingFlightNumber)
|
|
44300
|
+
),
|
|
44301
|
+
React__default['default'].createElement(
|
|
44302
|
+
'div',
|
|
44303
|
+
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44304
|
+
React__default['default'].createElement(
|
|
44305
|
+
'div',
|
|
44306
|
+
null,
|
|
44307
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })
|
|
44308
|
+
),
|
|
44309
|
+
React__default['default'].createElement(
|
|
44310
|
+
'div',
|
|
44311
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44312
|
+
React__default['default'].createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44313
|
+
React__default['default'].createElement('strong', null, segment.arrivalAirportCode),
|
|
44314
|
+
React__default['default'].createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44315
|
+
)
|
|
44316
|
+
)
|
|
44317
|
+
),
|
|
44318
|
+
segment.transferTimeInTicks &&
|
|
44319
|
+
React__default['default'].createElement(
|
|
44320
|
+
'div',
|
|
44321
|
+
{ className: 'flight__info' },
|
|
44322
|
+
React__default['default'].createElement('div', { className: 'flight__info__times' }),
|
|
44323
|
+
React__default['default'].createElement(
|
|
44324
|
+
'div',
|
|
44325
|
+
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44326
|
+
React__default['default'].createElement(
|
|
44327
|
+
'div',
|
|
44328
|
+
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44329
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44330
|
+
),
|
|
44331
|
+
React__default['default'].createElement(
|
|
44332
|
+
'div',
|
|
44333
|
+
{ className: 'flight__info__duration__stoptime' },
|
|
44334
|
+
React__default['default'].createElement('span', null, 'Stop time'),
|
|
44335
|
+
React__default['default'].createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44336
|
+
)
|
|
44337
|
+
),
|
|
44338
|
+
React__default['default'].createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44339
|
+
)
|
|
44340
|
+
);
|
|
44341
|
+
})
|
|
44342
|
+
)
|
|
43881
44343
|
)
|
|
43882
44344
|
)
|
|
43883
|
-
|
|
43884
|
-
|
|
43885
|
-
|
|
43886
|
-
|
|
43887
|
-
|
|
43888
|
-
|
|
43889
|
-
|
|
43890
|
-
|
|
44345
|
+
)
|
|
44346
|
+
)
|
|
44347
|
+
)
|
|
44348
|
+
);
|
|
44349
|
+
};
|
|
44350
|
+
|
|
44351
|
+
var MultiRangeFilter = function (_a) {
|
|
44352
|
+
var min = _a.min,
|
|
44353
|
+
max = _a.max,
|
|
44354
|
+
selectedMin = _a.selectedMin,
|
|
44355
|
+
selectedMax = _a.selectedMax,
|
|
44356
|
+
valueFormatter = _a.valueFormatter,
|
|
44357
|
+
onChange = _a.onChange;
|
|
44358
|
+
var _b = React.useState(false),
|
|
44359
|
+
isDragging = _b[0],
|
|
44360
|
+
setIsDragging = _b[1];
|
|
44361
|
+
var _c = React.useState(0),
|
|
44362
|
+
leftPercentage = _c[0],
|
|
44363
|
+
setLeftPercentage = _c[1];
|
|
44364
|
+
var _d = React.useState(0),
|
|
44365
|
+
rightPercentage = _d[0],
|
|
44366
|
+
setRightPercentage = _d[1];
|
|
44367
|
+
var _e = React.useState(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min),
|
|
44368
|
+
minVal = _e[0],
|
|
44369
|
+
setMinVal = _e[1];
|
|
44370
|
+
var _f = React.useState(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max),
|
|
44371
|
+
maxVal = _f[0],
|
|
44372
|
+
setMaxVal = _f[1];
|
|
44373
|
+
var minGap = 5;
|
|
44374
|
+
// Sync internal state with external selectedMin/selectedMax changes
|
|
44375
|
+
React.useEffect(
|
|
44376
|
+
function () {
|
|
44377
|
+
setMinVal(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min);
|
|
44378
|
+
setMaxVal(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max);
|
|
44379
|
+
},
|
|
44380
|
+
[min, max, selectedMin, selectedMax]
|
|
44381
|
+
);
|
|
44382
|
+
// Recalculate slider track whenever values change
|
|
44383
|
+
React.useEffect(
|
|
44384
|
+
function () {
|
|
44385
|
+
var range = max - min || 1;
|
|
44386
|
+
var minPercent = ((minVal - min) / range) * 100;
|
|
44387
|
+
var maxPercent = ((maxVal - min) / range) * 100;
|
|
44388
|
+
setLeftPercentage(minPercent);
|
|
44389
|
+
setRightPercentage(100 - maxPercent);
|
|
44390
|
+
},
|
|
44391
|
+
[minVal, maxVal, min, max]
|
|
44392
|
+
);
|
|
44393
|
+
var slideMin = function (e) {
|
|
44394
|
+
var value = parseInt(e.target.value, 10);
|
|
44395
|
+
// Ensure the thumbs don’t cross and enforce minGap
|
|
44396
|
+
if (value <= maxVal - minGap) {
|
|
44397
|
+
setMinVal(value);
|
|
44398
|
+
}
|
|
44399
|
+
};
|
|
44400
|
+
var slideMax = function (e) {
|
|
44401
|
+
var value = parseInt(e.target.value, 10);
|
|
44402
|
+
// Ensure the thumbs don’t cross and enforce minGap
|
|
44403
|
+
if (value >= minVal + minGap) {
|
|
44404
|
+
setMaxVal(value);
|
|
44405
|
+
}
|
|
44406
|
+
};
|
|
44407
|
+
var startDrag = function () {
|
|
44408
|
+
setIsDragging(true);
|
|
44409
|
+
};
|
|
44410
|
+
var stopDrag = function () {
|
|
44411
|
+
setIsDragging(false);
|
|
44412
|
+
// Notify parent with the final values
|
|
44413
|
+
onChange(minVal, maxVal);
|
|
44414
|
+
};
|
|
44415
|
+
return React__default['default'].createElement(
|
|
44416
|
+
'div',
|
|
44417
|
+
{ className: 'double-slider-box' },
|
|
44418
|
+
React__default['default'].createElement(
|
|
44419
|
+
'div',
|
|
44420
|
+
{ className: 'input-box' },
|
|
44421
|
+
React__default['default'].createElement('div', { className: 'min-box' }, valueFormatter(minVal)),
|
|
44422
|
+
React__default['default'].createElement('div', { className: 'max-box' }, valueFormatter(maxVal))
|
|
44423
|
+
),
|
|
44424
|
+
React__default['default'].createElement(
|
|
44425
|
+
'div',
|
|
44426
|
+
{ className: 'range-slider' },
|
|
44427
|
+
React__default['default'].createElement('div', {
|
|
44428
|
+
className: 'slider-track',
|
|
44429
|
+
style: { left: ''.concat(leftPercentage, '%'), right: ''.concat(rightPercentage, '%') }
|
|
44430
|
+
}),
|
|
44431
|
+
React__default['default'].createElement('input', {
|
|
44432
|
+
type: 'range',
|
|
44433
|
+
min: min,
|
|
44434
|
+
max: max,
|
|
44435
|
+
value: minVal,
|
|
44436
|
+
onChange: slideMin,
|
|
44437
|
+
onMouseDown: startDrag,
|
|
44438
|
+
onMouseUp: stopDrag,
|
|
44439
|
+
onTouchStart: startDrag,
|
|
44440
|
+
onTouchEnd: stopDrag,
|
|
44441
|
+
className: 'min-val'
|
|
44442
|
+
}),
|
|
44443
|
+
React__default['default'].createElement('input', {
|
|
44444
|
+
type: 'range',
|
|
44445
|
+
min: min,
|
|
44446
|
+
max: max,
|
|
44447
|
+
value: maxVal,
|
|
44448
|
+
onChange: slideMax,
|
|
44449
|
+
onMouseDown: startDrag,
|
|
44450
|
+
onMouseUp: stopDrag,
|
|
44451
|
+
onTouchStart: startDrag,
|
|
44452
|
+
onTouchEnd: stopDrag,
|
|
44453
|
+
className: 'max-val'
|
|
44454
|
+
}),
|
|
44455
|
+
isDragging && React__default['default'].createElement('div', { className: 'min-tooltip' }, valueFormatter(minVal)),
|
|
44456
|
+
isDragging && React__default['default'].createElement('div', { className: 'max-tooltip' }, valueFormatter(maxVal))
|
|
44457
|
+
)
|
|
44458
|
+
);
|
|
44459
|
+
};
|
|
44460
|
+
|
|
44461
|
+
var Filters = function (_a) {
|
|
44462
|
+
var _b;
|
|
44463
|
+
var initialFilters = _a.initialFilters,
|
|
44464
|
+
filters = _a.filters,
|
|
44465
|
+
isOpen = _a.isOpen,
|
|
44466
|
+
handleSetIsOpen = _a.handleSetIsOpen,
|
|
44467
|
+
isLoading = _a.isLoading,
|
|
44468
|
+
setFilters = _a.setFilters,
|
|
44469
|
+
resetFilters = _a.resetFilters;
|
|
44470
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44471
|
+
if (!context || !context.showFilters) {
|
|
44472
|
+
return null;
|
|
44473
|
+
}
|
|
44474
|
+
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44475
|
+
var _c = React.useState({}),
|
|
44476
|
+
visibleFilters = _c[0],
|
|
44477
|
+
setVisibleFilters = _c[1];
|
|
44478
|
+
var toggleFilterVisibility = function (filterId) {
|
|
44479
|
+
setVisibleFilters(function (prev) {
|
|
44480
|
+
var _a;
|
|
44481
|
+
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
44482
|
+
});
|
|
44483
|
+
};
|
|
44484
|
+
var handleCheckBoxFilter = function (filter, option) {
|
|
44485
|
+
var updated = filters.map(function (f) {
|
|
44486
|
+
var _a;
|
|
44487
|
+
if (f.property !== filter.property) return f;
|
|
44488
|
+
return __assign(__assign({}, f), {
|
|
44489
|
+
options:
|
|
44490
|
+
(_a = f.options) === null || _a === void 0
|
|
44491
|
+
? void 0
|
|
44492
|
+
: _a.map(function (opt) {
|
|
44493
|
+
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
44494
|
+
})
|
|
44495
|
+
});
|
|
44496
|
+
});
|
|
44497
|
+
setFilters(updated);
|
|
44498
|
+
};
|
|
44499
|
+
var handleSliderChange = function (filter, newMin, newMax) {
|
|
44500
|
+
var updated = filters.map(function (f) {
|
|
44501
|
+
if (f.property !== filter.property) return f;
|
|
44502
|
+
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
44503
|
+
});
|
|
44504
|
+
setFilters(updated);
|
|
44505
|
+
};
|
|
44506
|
+
var handleFullReset = function () {
|
|
44507
|
+
if (!isLoading) {
|
|
44508
|
+
resetFilters(initialFilters);
|
|
44509
|
+
}
|
|
44510
|
+
};
|
|
44511
|
+
return React__default['default'].createElement(
|
|
44512
|
+
'div',
|
|
44513
|
+
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
44514
|
+
React__default['default'].createElement('div', {
|
|
44515
|
+
className: 'search__filters--background',
|
|
44516
|
+
onClick: function () {
|
|
44517
|
+
return handleSetIsOpen();
|
|
44518
|
+
}
|
|
44519
|
+
}),
|
|
44520
|
+
React__default['default'].createElement(
|
|
44521
|
+
'button',
|
|
44522
|
+
{
|
|
44523
|
+
className: 'search__filters--close',
|
|
44524
|
+
onClick: function () {
|
|
44525
|
+
return handleSetIsOpen();
|
|
44526
|
+
}
|
|
44527
|
+
},
|
|
44528
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
44529
|
+
),
|
|
44530
|
+
React__default['default'].createElement(
|
|
44531
|
+
'div',
|
|
44532
|
+
{ className: 'search__filters' },
|
|
44533
|
+
React__default['default'].createElement(
|
|
44534
|
+
'div',
|
|
44535
|
+
{ className: 'search__filter-row search__filter__header' },
|
|
44536
|
+
React__default['default'].createElement(
|
|
44537
|
+
'div',
|
|
44538
|
+
{ className: 'search__filter-row-flex-title' },
|
|
44539
|
+
React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
44540
|
+
),
|
|
44541
|
+
!isLoading &&
|
|
44542
|
+
React__default['default'].createElement(
|
|
44543
|
+
'a',
|
|
44544
|
+
{
|
|
44545
|
+
className: 'search__filter-reset',
|
|
44546
|
+
onClick: function () {
|
|
44547
|
+
return handleFullReset();
|
|
44548
|
+
}
|
|
44549
|
+
},
|
|
44550
|
+
translations.SRP.RESET
|
|
44551
|
+
)
|
|
44552
|
+
),
|
|
44553
|
+
isLoading
|
|
44554
|
+
? React__default['default'].createElement(Spinner, null)
|
|
44555
|
+
: React__default['default'].createElement(
|
|
44556
|
+
React__default['default'].Fragment,
|
|
44557
|
+
null,
|
|
44558
|
+
React__default['default'].createElement(
|
|
44559
|
+
'div',
|
|
44560
|
+
{ className: 'search__filters__group-container' },
|
|
44561
|
+
filters.map(function (filter, index) {
|
|
44562
|
+
var _a, _b;
|
|
44563
|
+
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
44564
|
+
return React__default['default'].createElement(
|
|
44565
|
+
'div',
|
|
44566
|
+
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
44567
|
+
React__default['default'].createElement(
|
|
44568
|
+
'div',
|
|
44569
|
+
{
|
|
44570
|
+
className: 'search__filter-row search__filter-row--underline',
|
|
44571
|
+
onClick: function () {
|
|
44572
|
+
return toggleFilterVisibility(filter.property);
|
|
44573
|
+
},
|
|
44574
|
+
role: 'button',
|
|
44575
|
+
tabIndex: 0
|
|
44576
|
+
},
|
|
44577
|
+
React__default['default'].createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
44578
|
+
React__default['default'].createElement(
|
|
44579
|
+
'svg',
|
|
44580
|
+
{
|
|
44581
|
+
id: 'search-chevron-up-icon',
|
|
44582
|
+
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
44583
|
+
viewBox: '0 0 10 6.063',
|
|
44584
|
+
width: 10,
|
|
44585
|
+
height: 6.063
|
|
44586
|
+
},
|
|
44587
|
+
React__default['default'].createElement('path', {
|
|
44588
|
+
id: 'Path_62',
|
|
44589
|
+
'data-name': 'Path 62',
|
|
44590
|
+
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
44591
|
+
transform: 'translate(-240 624)',
|
|
44592
|
+
fill: '#707070'
|
|
44593
|
+
})
|
|
44594
|
+
)
|
|
44595
|
+
),
|
|
44596
|
+
isVisible &&
|
|
44597
|
+
filter.type === 'checkbox' &&
|
|
44598
|
+
React__default['default'].createElement(
|
|
44599
|
+
'div',
|
|
44600
|
+
{ className: 'search__filter-rows' },
|
|
44601
|
+
filter.options &&
|
|
44602
|
+
filter.options.map(function (option, optionIndex) {
|
|
44603
|
+
return React__default['default'].createElement(
|
|
44604
|
+
'div',
|
|
44605
|
+
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
44606
|
+
React__default['default'].createElement(
|
|
44607
|
+
'div',
|
|
44608
|
+
{ className: 'checkbox' },
|
|
44609
|
+
React__default['default'].createElement(
|
|
44610
|
+
'label',
|
|
44611
|
+
{ className: 'checkbox__label' },
|
|
44612
|
+
React__default['default'].createElement('input', {
|
|
44613
|
+
type: 'checkbox',
|
|
44614
|
+
className: 'checkbox__input checkbox__input--parent',
|
|
44615
|
+
checked: option.isChecked,
|
|
44616
|
+
onChange: function (e) {
|
|
44617
|
+
return handleCheckBoxFilter(filter, option);
|
|
44618
|
+
}
|
|
44619
|
+
}),
|
|
44620
|
+
React__default['default'].createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
44621
|
+
)
|
|
44622
|
+
)
|
|
44623
|
+
);
|
|
44624
|
+
})
|
|
44625
|
+
),
|
|
44626
|
+
isVisible &&
|
|
44627
|
+
filter.type === 'toggle' &&
|
|
44628
|
+
React__default['default'].createElement(
|
|
44629
|
+
'div',
|
|
44630
|
+
{ className: 'search__filter-rows' },
|
|
44631
|
+
(_b = filter.options) === null || _b === void 0
|
|
44632
|
+
? void 0
|
|
44633
|
+
: _b.map(function (option, optionIndex) {
|
|
44634
|
+
return React__default['default'].createElement(
|
|
44635
|
+
'div',
|
|
44636
|
+
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
44637
|
+
React__default['default'].createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
44638
|
+
React__default['default'].createElement('div', { className: 'checkbox' }),
|
|
44639
|
+
React__default['default'].createElement(
|
|
44640
|
+
'label',
|
|
44641
|
+
{ className: 'checkbox__label' },
|
|
44642
|
+
React__default['default'].createElement('input', {
|
|
44643
|
+
type: 'checkbox',
|
|
44644
|
+
className: 'checkbox__input',
|
|
44645
|
+
checked: option.isChecked,
|
|
44646
|
+
onChange: function () {
|
|
44647
|
+
return handleCheckBoxFilter(filter, option);
|
|
44648
|
+
}
|
|
44649
|
+
})
|
|
44650
|
+
)
|
|
44651
|
+
);
|
|
44652
|
+
})
|
|
44653
|
+
),
|
|
44654
|
+
isVisible &&
|
|
44655
|
+
filter &&
|
|
44656
|
+
filter.type === 'slider' &&
|
|
44657
|
+
(function () {
|
|
44658
|
+
var _a, _b, _c, _d;
|
|
44659
|
+
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
44660
|
+
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
44661
|
+
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
44662
|
+
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
44663
|
+
return React__default['default'].createElement(MultiRangeFilter, {
|
|
44664
|
+
min: min,
|
|
44665
|
+
max: max,
|
|
44666
|
+
selectedMin: selectedMin,
|
|
44667
|
+
selectedMax: selectedMax,
|
|
44668
|
+
valueFormatter: function (value) {
|
|
44669
|
+
return ''.concat(value);
|
|
44670
|
+
},
|
|
44671
|
+
onChange: function (newMin, newMax) {
|
|
44672
|
+
handleSliderChange(filter, newMin, newMax);
|
|
44673
|
+
}
|
|
44674
|
+
});
|
|
44675
|
+
})()
|
|
44676
|
+
);
|
|
44677
|
+
})
|
|
44678
|
+
)
|
|
44679
|
+
)
|
|
44680
|
+
)
|
|
44681
|
+
);
|
|
44682
|
+
};
|
|
44683
|
+
|
|
44684
|
+
var PackageingFlightsFlyIn = function (_a) {
|
|
44685
|
+
var _b;
|
|
44686
|
+
_a.isOpen;
|
|
44687
|
+
_a.setIsOpen;
|
|
44688
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44689
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44690
|
+
var translations = getTranslations(language);
|
|
44691
|
+
var dispatch = reactRedux.useDispatch();
|
|
44692
|
+
var _c = reactRedux.useSelector(function (state) {
|
|
44693
|
+
return state.searchResults;
|
|
44694
|
+
}),
|
|
44695
|
+
flightsLoading = _c.flightsLoading,
|
|
44696
|
+
initialFlightFilters = _c.initialFlightFilters,
|
|
44697
|
+
flightFilters = _c.flightFilters,
|
|
44698
|
+
flyInType = _c.flyInType,
|
|
44699
|
+
selectedFlightSortType = _c.selectedFlightSortType;
|
|
44700
|
+
var uniqueOutwardFlights = reactRedux.useSelector(selectUniqueOutwardFlights);
|
|
44701
|
+
var uniqueReturnFlights = reactRedux.useSelector(selectUniqueReturnFlights);
|
|
44702
|
+
var selectedOutward = reactRedux.useSelector(selectSelectedOutward);
|
|
44703
|
+
var selectedReturn = reactRedux.useSelector(selectSelectedReturn);
|
|
44704
|
+
var _d = React.useState(false),
|
|
44705
|
+
outwardStepComplete = _d[0],
|
|
44706
|
+
setOutwardStepComplete = _d[1];
|
|
44707
|
+
var handleConfirm = function () {
|
|
44708
|
+
if (!outwardStepComplete) {
|
|
44709
|
+
setOutwardStepComplete(true);
|
|
44710
|
+
dispatch(setFlyInType('flight-return-results'));
|
|
44711
|
+
return;
|
|
44712
|
+
} else {
|
|
44713
|
+
dispatch(setFlyInType(null));
|
|
44714
|
+
setOutwardStepComplete(false);
|
|
44715
|
+
dispatch(setFlyInIsOpen(false));
|
|
44716
|
+
}
|
|
44717
|
+
};
|
|
44718
|
+
var sortByTypes = [
|
|
44719
|
+
{ direction: 'asc', label: 'default' },
|
|
44720
|
+
{ direction: 'asc', label: 'price' },
|
|
44721
|
+
{ direction: 'desc', label: 'price' },
|
|
44722
|
+
{ direction: 'asc', label: 'departureTime' },
|
|
44723
|
+
{ direction: 'desc', label: 'departureTime' },
|
|
44724
|
+
{ direction: 'asc', label: 'durationInTicks' },
|
|
44725
|
+
{ direction: 'desc', label: 'durationInTicks' }
|
|
44726
|
+
];
|
|
44727
|
+
var handleSortChange = function (newSortKey, direction) {
|
|
44728
|
+
if (sortByTypes === undefined) return;
|
|
44729
|
+
var newSortByType = findSortByType(sortByTypes, newSortKey, direction !== null && direction !== void 0 ? direction : 'asc');
|
|
44730
|
+
if (newSortByType) {
|
|
44731
|
+
dispatch(setFlightSortType(newSortByType));
|
|
44732
|
+
}
|
|
44733
|
+
};
|
|
44734
|
+
return React__default['default'].createElement(
|
|
44735
|
+
React__default['default'].Fragment,
|
|
44736
|
+
null,
|
|
44737
|
+
React__default['default'].createElement(
|
|
44738
|
+
'div',
|
|
44739
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
44740
|
+
flightsLoading
|
|
44741
|
+
? React__default['default'].createElement(Spinner, null)
|
|
44742
|
+
: React__default['default'].createElement(
|
|
44743
|
+
React__default['default'].Fragment,
|
|
44744
|
+
null,
|
|
44745
|
+
React__default['default'].createElement(Filters, {
|
|
44746
|
+
initialFilters: initialFlightFilters,
|
|
44747
|
+
filters: flightFilters,
|
|
44748
|
+
isOpen: false,
|
|
44749
|
+
handleSetIsOpen: function () {},
|
|
44750
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
44751
|
+
isLoading: flightsLoading,
|
|
44752
|
+
setFilters: function (filters) {
|
|
44753
|
+
return dispatch(setFlightFilters(filters));
|
|
44754
|
+
},
|
|
44755
|
+
resetFilters: function (filters) {
|
|
44756
|
+
return dispatch(resetFlightFilters(filters));
|
|
44757
|
+
}
|
|
44758
|
+
}),
|
|
44759
|
+
React__default['default'].createElement(
|
|
44760
|
+
'div',
|
|
44761
|
+
{ className: 'search__results__wrapper' },
|
|
44762
|
+
React__default['default'].createElement(
|
|
44763
|
+
'div',
|
|
44764
|
+
{ className: 'search__result-row' },
|
|
44765
|
+
React__default['default'].createElement(
|
|
44766
|
+
'span',
|
|
44767
|
+
{ className: 'search__result-row-text' },
|
|
44768
|
+
(uniqueOutwardFlights === null || uniqueOutwardFlights === void 0 ? void 0 : uniqueOutwardFlights.length) && uniqueOutwardFlights.length,
|
|
44769
|
+
'\u00A0',
|
|
44770
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_2,
|
|
44771
|
+
'\u00A0',
|
|
44772
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3
|
|
44773
|
+
),
|
|
44774
|
+
sortByTypes &&
|
|
44775
|
+
sortByTypes.length > 0 &&
|
|
44776
|
+
React__default['default'].createElement(
|
|
44777
|
+
'div',
|
|
44778
|
+
{ className: 'search__result-row-filter' },
|
|
44779
|
+
React__default['default'].createElement(ItemPicker, {
|
|
44780
|
+
items: sortByTypes,
|
|
44781
|
+
selection: (selectedFlightSortType === null || selectedFlightSortType === void 0 ? void 0 : selectedFlightSortType.label) || undefined,
|
|
44782
|
+
selectedSortByType: selectedFlightSortType || undefined,
|
|
44783
|
+
label: translations.SRP.SORTBY,
|
|
44784
|
+
placeholder: translations.SRP.SORTBY,
|
|
44785
|
+
classModifier: '',
|
|
44786
|
+
valueFormatter: function (value, direction) {
|
|
44787
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
44788
|
+
},
|
|
44789
|
+
// onPick={handleSortChange}
|
|
44790
|
+
onPick: function (newSortKey, direction) {
|
|
44791
|
+
return handleSortChange(newSortKey, direction);
|
|
44792
|
+
}
|
|
44793
|
+
})
|
|
44794
|
+
)
|
|
44795
|
+
),
|
|
44796
|
+
React__default['default'].createElement(
|
|
44797
|
+
'div',
|
|
44798
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44799
|
+
flyInType == 'flight-outward-results' &&
|
|
44800
|
+
uniqueOutwardFlights.map(function (result) {
|
|
44801
|
+
return React__default['default'].createElement(IndependentFlightOption, {
|
|
44802
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
44803
|
+
item: result.outward,
|
|
44804
|
+
onSelect: function () {
|
|
44805
|
+
return dispatch(setSelectedOutwardKey(getFlightKey(result.outward.segments)));
|
|
44806
|
+
},
|
|
44807
|
+
guid: result.outwardGuid,
|
|
44808
|
+
isOutward: true,
|
|
44809
|
+
price: result.price,
|
|
44810
|
+
currentSelectedPrice: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.price,
|
|
44811
|
+
selectedGuid: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.outwardGuid,
|
|
44812
|
+
showSelectedState: true
|
|
44813
|
+
});
|
|
44814
|
+
}),
|
|
44815
|
+
flyInType == 'flight-return-results' &&
|
|
44816
|
+
uniqueReturnFlights.map(function (result) {
|
|
44817
|
+
return React__default['default'].createElement(IndependentFlightOption, {
|
|
44818
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
44819
|
+
item: result.return,
|
|
44820
|
+
onSelect: function () {
|
|
44821
|
+
return dispatch(setSelectedReturnKey(getFlightKey(result.return.segments)));
|
|
44822
|
+
},
|
|
44823
|
+
guid: result.outwardGuid,
|
|
44824
|
+
isOutward: false,
|
|
44825
|
+
price: result.price,
|
|
44826
|
+
currentSelectedPrice: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.price,
|
|
44827
|
+
selectedGuid: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.outwardGuid,
|
|
44828
|
+
showSelectedState: true
|
|
44829
|
+
});
|
|
44830
|
+
})
|
|
44831
|
+
)
|
|
44832
|
+
)
|
|
44833
|
+
)
|
|
44834
|
+
),
|
|
44835
|
+
React__default['default'].createElement(
|
|
44836
|
+
'div',
|
|
44837
|
+
{ className: 'flyin__footer' },
|
|
44838
|
+
React__default['default'].createElement('div', { className: 'flyin__footer__price' }),
|
|
44839
|
+
React__default['default'].createElement(
|
|
44840
|
+
'div',
|
|
44841
|
+
{ className: 'flyin__button-wrapper' },
|
|
44842
|
+
React__default['default'].createElement(
|
|
44843
|
+
'button',
|
|
44844
|
+
{
|
|
44845
|
+
className: 'cta cta--select',
|
|
44846
|
+
onClick: function () {
|
|
44847
|
+
return handleConfirm();
|
|
44848
|
+
}
|
|
44849
|
+
},
|
|
44850
|
+
translations.QSM.CONFIRM
|
|
44851
|
+
)
|
|
44852
|
+
)
|
|
44853
|
+
)
|
|
44854
|
+
);
|
|
44855
|
+
};
|
|
44856
|
+
|
|
44857
|
+
var ExcursionResults = function (_a) {
|
|
44858
|
+
var _b;
|
|
44859
|
+
_a.isFlyIn;
|
|
44860
|
+
var activeSearchSeed = _a.activeSearchSeed;
|
|
44861
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44862
|
+
var dispatch = reactRedux.useDispatch();
|
|
44863
|
+
var _c = React.useState(false),
|
|
44864
|
+
isLoading = _c[0],
|
|
44865
|
+
setIsLoading = _c[1];
|
|
44866
|
+
var _d = React.useState(null),
|
|
44867
|
+
excursions = _d[0],
|
|
44868
|
+
setExcursions = _d[1];
|
|
44869
|
+
var _e = reactRedux.useSelector(function (state) {
|
|
44870
|
+
return state.searchResults;
|
|
44871
|
+
}),
|
|
44872
|
+
flyInIsOpen = _e.flyInIsOpen,
|
|
44873
|
+
flyInType = _e.flyInType,
|
|
44874
|
+
excursionSearchParams = _e.excursionSearchParams,
|
|
44875
|
+
transactionId = _e.transactionId;
|
|
44876
|
+
React.useEffect(
|
|
44877
|
+
function () {
|
|
44878
|
+
if (!context || !activeSearchSeed || !excursionSearchParams) return;
|
|
44879
|
+
(function () {
|
|
44880
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
44881
|
+
var config, destination, allPax, searchRequest, packageExcursionSearchResults, err_1;
|
|
44882
|
+
var _a, _b, _c, _d, _e;
|
|
44883
|
+
return __generator(this, function (_f) {
|
|
44884
|
+
switch (_f.label) {
|
|
44885
|
+
case 0:
|
|
44886
|
+
_f.trys.push([0, 2, 3, 4]);
|
|
44887
|
+
setIsLoading(true);
|
|
44888
|
+
console.log('Excursion search params changed, fetching excursions...', excursionSearchParams);
|
|
44889
|
+
config = {
|
|
44890
|
+
host: context.tideConnection.host,
|
|
44891
|
+
apiKey: context.tideConnection.apiKey
|
|
44892
|
+
};
|
|
44893
|
+
destination = excursionSearchParams.locationId
|
|
44894
|
+
? { id: Number(excursionSearchParams.locationId), type: 'location' }
|
|
44895
|
+
: excursionSearchParams.oordId
|
|
44896
|
+
? { id: Number(excursionSearchParams.oordId), type: 'oord' }
|
|
44897
|
+
: excursionSearchParams.regionId
|
|
44898
|
+
? { id: Number(excursionSearchParams.regionId), type: 'region' }
|
|
44899
|
+
: excursionSearchParams.countryId
|
|
44900
|
+
? { id: Number(excursionSearchParams.countryId), type: 'country' }
|
|
44901
|
+
: { id: 0, type: null };
|
|
44902
|
+
allPax = activeSearchSeed.rooms.flatMap(function (room) {
|
|
44903
|
+
return room.pax;
|
|
44904
|
+
});
|
|
44905
|
+
searchRequest = {
|
|
44906
|
+
transactionId: transactionId !== null && transactionId !== void 0 ? transactionId : '',
|
|
44907
|
+
officeId: (_a = context.tideConnection.officeId) !== null && _a !== void 0 ? _a : 1,
|
|
44908
|
+
agentId: (_b = context.agentId) !== null && _b !== void 0 ? _b : null,
|
|
44909
|
+
portalId: (_c = context.portalId) !== null && _c !== void 0 ? _c : null,
|
|
44910
|
+
catalogueId: (_d = context.searchConfiguration.defaultCatalogueId) !== null && _d !== void 0 ? _d : 0,
|
|
44911
|
+
searchConfigurationId: context.searchConfiguration.id,
|
|
44912
|
+
language: (_e = context.languageCode) !== null && _e !== void 0 ? _e : 'en-GB',
|
|
44913
|
+
serviceType: EXCURSION_SERVICE_TYPE,
|
|
44914
|
+
fromDate: excursionSearchParams.fromDate,
|
|
44915
|
+
toDate: excursionSearchParams.toDate,
|
|
44916
|
+
destination: {
|
|
44917
|
+
id: destination.id,
|
|
44918
|
+
isCountry: destination.type === 'country',
|
|
44919
|
+
isRegion: destination.type === 'region',
|
|
44920
|
+
isOord: destination.type === 'oord',
|
|
44921
|
+
isLocation: destination.type === 'location',
|
|
44922
|
+
isAirport: false,
|
|
44923
|
+
code: ''
|
|
44924
|
+
},
|
|
44925
|
+
productCode: '',
|
|
44926
|
+
// rooms: activeSearchSeed.rooms.map((room) => ({
|
|
44927
|
+
// travellers: room.pax.map((pax) => ({
|
|
44928
|
+
// id: pax.id,
|
|
44929
|
+
// age: pax.age,
|
|
44930
|
+
// dateOfBirth: pax.dateOfBirth
|
|
44931
|
+
// }))
|
|
44932
|
+
// })),
|
|
44933
|
+
rooms: [
|
|
44934
|
+
{
|
|
44935
|
+
travellers: allPax.map(function (pax) {
|
|
44936
|
+
return {
|
|
44937
|
+
id: pax.id,
|
|
44938
|
+
age: pax.age,
|
|
44939
|
+
dateOfBirth: pax.dateOfBirth
|
|
44940
|
+
};
|
|
44941
|
+
})
|
|
44942
|
+
}
|
|
44943
|
+
],
|
|
44944
|
+
tagIds: []
|
|
44945
|
+
};
|
|
44946
|
+
return [4 /*yield*/, build.searchPackagingExcursions(config, searchRequest)];
|
|
44947
|
+
case 1:
|
|
44948
|
+
packageExcursionSearchResults = _f.sent();
|
|
44949
|
+
console.log('Excursion search results', packageExcursionSearchResults);
|
|
44950
|
+
setExcursions(packageExcursionSearchResults);
|
|
44951
|
+
return [3 /*break*/, 4];
|
|
44952
|
+
case 2:
|
|
44953
|
+
err_1 = _f.sent();
|
|
44954
|
+
console.error('Excursion search failed', err_1);
|
|
44955
|
+
return [3 /*break*/, 4];
|
|
44956
|
+
case 3:
|
|
44957
|
+
setIsLoading(false);
|
|
44958
|
+
return [7 /*endfinally*/];
|
|
44959
|
+
case 4:
|
|
44960
|
+
return [2 /*return*/];
|
|
44961
|
+
}
|
|
44962
|
+
});
|
|
44963
|
+
});
|
|
44964
|
+
})();
|
|
44965
|
+
},
|
|
44966
|
+
[context, activeSearchSeed, excursionSearchParams, transactionId]
|
|
44967
|
+
);
|
|
44968
|
+
if (!context || !activeSearchSeed) {
|
|
44969
|
+
return null;
|
|
44970
|
+
}
|
|
44971
|
+
if (!flyInIsOpen || flyInType !== 'excursion-results') {
|
|
44972
|
+
return null;
|
|
44973
|
+
}
|
|
44974
|
+
var translations = getTranslations((_b = context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44975
|
+
var handleChange = function (excursion) {
|
|
44976
|
+
console.log('Selected excursion', excursion);
|
|
44977
|
+
dispatch(setFlyInType('excursion-details'));
|
|
44978
|
+
dispatch(setSelectedExcursionSearchResult(excursion));
|
|
44979
|
+
};
|
|
44980
|
+
return isLoading
|
|
44981
|
+
? React__default['default'].createElement(Spinner, null)
|
|
44982
|
+
: React__default['default'].createElement(
|
|
44983
|
+
'div',
|
|
44984
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
44985
|
+
React__default['default'].createElement(
|
|
44986
|
+
'div',
|
|
44987
|
+
{ className: 'search__results__wrapper' },
|
|
44988
|
+
React__default['default'].createElement(
|
|
44989
|
+
'div',
|
|
44990
|
+
{ className: 'search__result-row' },
|
|
44991
|
+
React__default['default'].createElement(
|
|
44992
|
+
'span',
|
|
44993
|
+
{ className: 'search__result-row-text' },
|
|
44994
|
+
!isLoading &&
|
|
44995
|
+
React__default['default'].createElement(
|
|
44996
|
+
React__default['default'].Fragment,
|
|
44997
|
+
null,
|
|
44998
|
+
(excursions === null || excursions === void 0 ? void 0 : excursions.length) && excursions.length,
|
|
44999
|
+
'\u00A0',
|
|
45000
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
45001
|
+
)
|
|
45002
|
+
)
|
|
45003
|
+
),
|
|
45004
|
+
React__default['default'].createElement(
|
|
45005
|
+
'div',
|
|
45006
|
+
{ className: 'search__results__cards search__results__cards--compact' },
|
|
45007
|
+
excursions &&
|
|
45008
|
+
excursions.length > 0 &&
|
|
45009
|
+
excursions.map(function (excursion) {
|
|
45010
|
+
return React__default['default'].createElement(
|
|
45011
|
+
'div',
|
|
45012
|
+
{
|
|
45013
|
+
key: excursion.code,
|
|
45014
|
+
className: 'search__result-card__wrapper search__result-card__wrapper--custom',
|
|
45015
|
+
onMouseEnter: function (e) {
|
|
45016
|
+
return (e.currentTarget.style.transform = 'scale(1.02)');
|
|
45017
|
+
},
|
|
45018
|
+
onMouseLeave: function (e) {
|
|
45019
|
+
return (e.currentTarget.style.transform = 'scale(1)');
|
|
45020
|
+
}
|
|
45021
|
+
},
|
|
45022
|
+
excursion.contents
|
|
45023
|
+
? React__default['default'].createElement('div', { dangerouslySetInnerHTML: { __html: he.decode(excursion.contents) } })
|
|
45024
|
+
: 'no contents',
|
|
45025
|
+
React__default['default'].createElement(
|
|
45026
|
+
'div',
|
|
45027
|
+
{ className: 'search__result-card__footer' },
|
|
45028
|
+
React__default['default'].createElement(
|
|
45029
|
+
'button',
|
|
45030
|
+
{
|
|
45031
|
+
type: 'button',
|
|
45032
|
+
className: 'cta cta--select',
|
|
45033
|
+
onClick: function () {
|
|
45034
|
+
return handleChange(excursion);
|
|
45035
|
+
}
|
|
45036
|
+
},
|
|
45037
|
+
translations === null || translations === void 0 ? void 0 : translations.SHARED.SELECT
|
|
45038
|
+
)
|
|
45039
|
+
)
|
|
45040
|
+
);
|
|
45041
|
+
})
|
|
45042
|
+
)
|
|
45043
|
+
)
|
|
45044
|
+
);
|
|
45045
|
+
};
|
|
45046
|
+
|
|
45047
|
+
var formatPrice = function (price, currencyCode) {
|
|
45048
|
+
if (typeof price !== 'number') return '';
|
|
45049
|
+
return new Intl.NumberFormat('nl-BE', {
|
|
45050
|
+
style: 'currency',
|
|
45051
|
+
currency: currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR'
|
|
45052
|
+
}).format(price);
|
|
45053
|
+
};
|
|
45054
|
+
var getExcursionDayKey = function (date) {
|
|
45055
|
+
var parsed = typeof date === 'string' ? dateFns.parseISO(date) : date;
|
|
45056
|
+
return dateFns.format(parsed, 'yyyy-MM-dd');
|
|
45057
|
+
};
|
|
45058
|
+
var getOptionPaxIds = function (option) {
|
|
45059
|
+
return Array.isArray(option.paxIds)
|
|
45060
|
+
? Array.from(new Set(option.paxIds)).sort(function (a, b) {
|
|
45061
|
+
return a - b;
|
|
45062
|
+
})
|
|
45063
|
+
: [];
|
|
45064
|
+
};
|
|
45065
|
+
var optionAppliesToPax = function (option, paxId) {
|
|
45066
|
+
return getOptionPaxIds(option).includes(paxId);
|
|
45067
|
+
};
|
|
45068
|
+
var optionAppliesToAllTravellers = function (option, travellerCount) {
|
|
45069
|
+
var paxIds = getOptionPaxIds(option);
|
|
45070
|
+
var expected = Array.from({ length: travellerCount }, function (_, i) {
|
|
45071
|
+
return i;
|
|
45072
|
+
});
|
|
45073
|
+
return (
|
|
45074
|
+
paxIds.length === expected.length &&
|
|
45075
|
+
paxIds.every(function (id, index) {
|
|
45076
|
+
return id === expected[index];
|
|
45077
|
+
})
|
|
45078
|
+
);
|
|
45079
|
+
};
|
|
45080
|
+
var groupOptionsByExcursion = function (options) {
|
|
45081
|
+
var groupedMap = new Map();
|
|
45082
|
+
options.forEach(function (option) {
|
|
45083
|
+
var key = option.accommodationCode;
|
|
45084
|
+
if (!groupedMap.has(key)) {
|
|
45085
|
+
groupedMap.set(key, {
|
|
45086
|
+
accommodationCode: option.accommodationCode,
|
|
45087
|
+
accommodationName: option.accommodationName,
|
|
45088
|
+
options: []
|
|
45089
|
+
});
|
|
45090
|
+
}
|
|
45091
|
+
groupedMap.get(key).options.push(option);
|
|
45092
|
+
});
|
|
45093
|
+
return Array.from(groupedMap.values());
|
|
45094
|
+
};
|
|
45095
|
+
var ExcursionDetails = function () {
|
|
45096
|
+
var _a;
|
|
45097
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
45098
|
+
var dispatch = reactRedux.useDispatch();
|
|
45099
|
+
var _b = reactRedux.useSelector(function (state) {
|
|
45100
|
+
return state.searchResults;
|
|
45101
|
+
}),
|
|
45102
|
+
selectedExcursionSearchResult = _b.selectedExcursionSearchResult,
|
|
45103
|
+
editablePackagingEntry = _b.editablePackagingEntry,
|
|
45104
|
+
excursionSearchParams = _b.excursionSearchParams;
|
|
45105
|
+
if (
|
|
45106
|
+
!context ||
|
|
45107
|
+
!selectedExcursionSearchResult ||
|
|
45108
|
+
!editablePackagingEntry ||
|
|
45109
|
+
!(excursionSearchParams === null || excursionSearchParams === void 0 ? void 0 : excursionSearchParams.date)
|
|
45110
|
+
) {
|
|
45111
|
+
return null;
|
|
45112
|
+
}
|
|
45113
|
+
var translations = getTranslations((_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
|
|
45114
|
+
var travellerCount = editablePackagingEntry.pax.length;
|
|
45115
|
+
var allOptions = React.useMemo(
|
|
45116
|
+
function () {
|
|
45117
|
+
return selectedExcursionSearchResult.rooms.flatMap(function (room) {
|
|
45118
|
+
var _a;
|
|
45119
|
+
return (_a = room.options) !== null && _a !== void 0 ? _a : [];
|
|
45120
|
+
});
|
|
45121
|
+
},
|
|
45122
|
+
[selectedExcursionSearchResult]
|
|
45123
|
+
);
|
|
45124
|
+
var sharedOptions = React.useMemo(
|
|
45125
|
+
function () {
|
|
45126
|
+
return allOptions.filter(function (option) {
|
|
45127
|
+
return optionAppliesToAllTravellers(option, travellerCount);
|
|
45128
|
+
});
|
|
45129
|
+
},
|
|
45130
|
+
[allOptions, travellerCount]
|
|
45131
|
+
);
|
|
45132
|
+
var sharedExcursions = React.useMemo(
|
|
45133
|
+
function () {
|
|
45134
|
+
return groupOptionsByExcursion(sharedOptions);
|
|
45135
|
+
},
|
|
45136
|
+
[sharedOptions]
|
|
45137
|
+
);
|
|
45138
|
+
var paxGroups = React.useMemo(
|
|
45139
|
+
function () {
|
|
45140
|
+
return editablePackagingEntry.pax.map(function (pax) {
|
|
45141
|
+
var paxOptions = allOptions.filter(function (option) {
|
|
45142
|
+
return optionAppliesToPax(option, pax.id) && !optionAppliesToAllTravellers(option, travellerCount);
|
|
45143
|
+
});
|
|
45144
|
+
return {
|
|
45145
|
+
pax: pax,
|
|
45146
|
+
paxId: pax.id,
|
|
45147
|
+
excursions: groupOptionsByExcursion(paxOptions)
|
|
45148
|
+
};
|
|
45149
|
+
});
|
|
45150
|
+
},
|
|
45151
|
+
[editablePackagingEntry.pax, allOptions, travellerCount]
|
|
45152
|
+
);
|
|
45153
|
+
var getSelectedSharedOption = function () {
|
|
45154
|
+
return sharedOptions.find(function (option) {
|
|
45155
|
+
return option.isSelected;
|
|
45156
|
+
});
|
|
45157
|
+
};
|
|
45158
|
+
var getSelectedSharedOptionForExcursion = function (accommodationCode) {
|
|
45159
|
+
return sharedOptions.find(function (option) {
|
|
45160
|
+
return option.accommodationCode === accommodationCode && option.isSelected;
|
|
45161
|
+
});
|
|
45162
|
+
};
|
|
45163
|
+
var getSelectedOptionForPax = function (paxId) {
|
|
45164
|
+
return allOptions.find(function (option) {
|
|
45165
|
+
return optionAppliesToPax(option, paxId) && !optionAppliesToAllTravellers(option, travellerCount) && option.isSelected;
|
|
45166
|
+
});
|
|
45167
|
+
};
|
|
45168
|
+
var getSelectedOptionForExcursion = function (paxId, accommodationCode) {
|
|
45169
|
+
return allOptions.find(function (option) {
|
|
45170
|
+
return (
|
|
45171
|
+
optionAppliesToPax(option, paxId) &&
|
|
45172
|
+
!optionAppliesToAllTravellers(option, travellerCount) &&
|
|
45173
|
+
option.accommodationCode === accommodationCode &&
|
|
45174
|
+
option.isSelected
|
|
45175
|
+
);
|
|
45176
|
+
});
|
|
45177
|
+
};
|
|
45178
|
+
var handlePick = function (selectedGuid, paxId) {
|
|
45179
|
+
var updatedExcursionSearchResult = __assign(__assign({}, selectedExcursionSearchResult), {
|
|
45180
|
+
rooms: selectedExcursionSearchResult.rooms.map(function (room) {
|
|
45181
|
+
return __assign(__assign({}, room), {
|
|
45182
|
+
options: room.options.map(function (option) {
|
|
45183
|
+
var isSharedOption = optionAppliesToAllTravellers(option, travellerCount);
|
|
45184
|
+
if (paxId === undefined) {
|
|
45185
|
+
if (!isSharedOption) {
|
|
45186
|
+
return option;
|
|
45187
|
+
}
|
|
45188
|
+
return __assign(__assign({}, option), { isSelected: option.guid === selectedGuid });
|
|
45189
|
+
}
|
|
45190
|
+
if (isSharedOption || !optionAppliesToPax(option, paxId)) {
|
|
45191
|
+
return option;
|
|
45192
|
+
}
|
|
45193
|
+
return __assign(__assign({}, option), { isSelected: option.guid === selectedGuid });
|
|
45194
|
+
})
|
|
45195
|
+
});
|
|
45196
|
+
})
|
|
45197
|
+
});
|
|
45198
|
+
dispatch(setSelectedExcursionSearchResult(updatedExcursionSearchResult));
|
|
45199
|
+
};
|
|
45200
|
+
var calculateTotalPrice = function () {
|
|
45201
|
+
var selectedOptions = allOptions.filter(function (option) {
|
|
45202
|
+
return option.isSelected;
|
|
45203
|
+
});
|
|
45204
|
+
var totalPrice = selectedOptions.reduce(function (total, option) {
|
|
45205
|
+
return total + (option.price || 0);
|
|
45206
|
+
}, 0);
|
|
45207
|
+
return formatPrice(totalPrice, selectedExcursionSearchResult.currencyCode);
|
|
45208
|
+
};
|
|
45209
|
+
var getSharedPriceDifference = function (accommodationCode) {
|
|
45210
|
+
var currentSelectedShared = getSelectedSharedOption();
|
|
45211
|
+
var targetPrice = 0;
|
|
45212
|
+
var selectedOption = getSelectedSharedOptionForExcursion(accommodationCode);
|
|
45213
|
+
if (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.price) {
|
|
45214
|
+
targetPrice = selectedOption.price;
|
|
45215
|
+
} else {
|
|
45216
|
+
var firstOption = sharedOptions.find(function (option) {
|
|
45217
|
+
return option.accommodationCode === accommodationCode;
|
|
45218
|
+
});
|
|
45219
|
+
targetPrice = (firstOption === null || firstOption === void 0 ? void 0 : firstOption.price) || 0;
|
|
45220
|
+
}
|
|
45221
|
+
return targetPrice - ((currentSelectedShared === null || currentSelectedShared === void 0 ? void 0 : currentSelectedShared.price) || 0);
|
|
45222
|
+
};
|
|
45223
|
+
var getPriceDifference = function (currentSelectedPrice, paxId, accommodationCode) {
|
|
45224
|
+
var targetPrice = 0;
|
|
45225
|
+
var selectedOption = getSelectedOptionForExcursion(paxId, accommodationCode);
|
|
45226
|
+
if (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.price) {
|
|
45227
|
+
targetPrice = selectedOption.price;
|
|
45228
|
+
} else {
|
|
45229
|
+
var firstOption = allOptions.find(function (option) {
|
|
45230
|
+
return optionAppliesToPax(option, paxId) && !optionAppliesToAllTravellers(option, travellerCount) && option.accommodationCode === accommodationCode;
|
|
45231
|
+
});
|
|
45232
|
+
targetPrice = (firstOption === null || firstOption === void 0 ? void 0 : firstOption.price) || 0;
|
|
45233
|
+
}
|
|
45234
|
+
return targetPrice - (currentSelectedPrice || 0);
|
|
45235
|
+
};
|
|
45236
|
+
var formatPriceDifference = function (difference, currencyCode) {
|
|
45237
|
+
if (difference === 0) {
|
|
45238
|
+
return null;
|
|
45239
|
+
}
|
|
45240
|
+
var formattedAbsoluteValue = formatPrice(Math.abs(difference), currencyCode);
|
|
45241
|
+
return ''.concat(difference > 0 ? '+' : '-', ' ').concat(formattedAbsoluteValue);
|
|
45242
|
+
};
|
|
45243
|
+
var getPriceDifferenceClassName = function (difference) {
|
|
45244
|
+
if (difference < 0) {
|
|
45245
|
+
return 'flyin__acco__price flyin__acco__price--decrease';
|
|
45246
|
+
}
|
|
45247
|
+
if (difference > 0) {
|
|
45248
|
+
return 'flyin__acco__price flyin__acco__price--increase';
|
|
45249
|
+
}
|
|
45250
|
+
return 'flyin__acco__price';
|
|
45251
|
+
};
|
|
45252
|
+
var handleConfirm = function () {
|
|
45253
|
+
var dayKey = getExcursionDayKey(excursionSearchParams.date);
|
|
45254
|
+
dispatch(
|
|
45255
|
+
confirmExcursionForDay({
|
|
45256
|
+
dayKey: dayKey,
|
|
45257
|
+
excursion: selectedExcursionSearchResult
|
|
45258
|
+
})
|
|
45259
|
+
);
|
|
45260
|
+
dispatch(setFlyInIsOpen(false));
|
|
45261
|
+
};
|
|
45262
|
+
return React__default['default'].createElement(
|
|
45263
|
+
React__default['default'].Fragment,
|
|
45264
|
+
null,
|
|
45265
|
+
React__default['default'].createElement(
|
|
45266
|
+
'div',
|
|
45267
|
+
{ className: 'flyin__content' },
|
|
45268
|
+
sharedExcursions.length > 0 &&
|
|
45269
|
+
React__default['default'].createElement(
|
|
45270
|
+
'div',
|
|
45271
|
+
{ className: 'flyin__acco' },
|
|
45272
|
+
React__default['default'].createElement('h3', { className: 'flyin__acco__room-title' }, translations.QSM.ALL_TRAVELERS),
|
|
45273
|
+
React__default['default'].createElement(
|
|
45274
|
+
'div',
|
|
45275
|
+
{ className: 'flyin__acco__cards' },
|
|
45276
|
+
sharedExcursions.map(function (excursion) {
|
|
45277
|
+
var selectedOption = getSelectedSharedOptionForExcursion(excursion.accommodationCode);
|
|
45278
|
+
var priceDifference = getSharedPriceDifference(excursion.accommodationCode);
|
|
45279
|
+
return React__default['default'].createElement(
|
|
45280
|
+
'div',
|
|
45281
|
+
{ className: 'flyin__acco__card', key: 'all-'.concat(excursion.accommodationCode) },
|
|
45282
|
+
React__default['default'].createElement(
|
|
45283
|
+
'div',
|
|
45284
|
+
{ className: 'flyin__acco__content' },
|
|
45285
|
+
React__default['default'].createElement('h4', { className: 'flyin__acco__title' }, excursion.accommodationName)
|
|
45286
|
+
),
|
|
45287
|
+
React__default['default'].createElement(
|
|
45288
|
+
'div',
|
|
45289
|
+
{ className: 'flyin__acco__footer' },
|
|
45290
|
+
React__default['default'].createElement(
|
|
45291
|
+
'div',
|
|
45292
|
+
{ className: 'flyin__acco__footer__actions' },
|
|
45293
|
+
React__default['default'].createElement(
|
|
45294
|
+
'button',
|
|
45295
|
+
{
|
|
45296
|
+
className: selectedOption ? 'cta cta--select cta--selected' : 'cta cta--select',
|
|
45297
|
+
onClick: function () {
|
|
45298
|
+
var _a;
|
|
45299
|
+
return handlePick(
|
|
45300
|
+
selectedOption ? selectedOption.guid : (_a = lodash.first(excursion.options)) === null || _a === void 0 ? void 0 : _a.guid
|
|
45301
|
+
);
|
|
45302
|
+
}
|
|
45303
|
+
},
|
|
45304
|
+
selectedOption
|
|
45305
|
+
? translations === null || translations === void 0
|
|
45306
|
+
? void 0
|
|
45307
|
+
: translations.SHARED.SELECTED
|
|
45308
|
+
: translations === null || translations === void 0
|
|
45309
|
+
? void 0
|
|
45310
|
+
: translations.SHARED.SELECT
|
|
45311
|
+
),
|
|
45312
|
+
React__default['default'].createElement(
|
|
45313
|
+
'div',
|
|
45314
|
+
{ className: 'flyin__acco__price__wrapper' },
|
|
45315
|
+
React__default['default'].createElement(
|
|
45316
|
+
'span',
|
|
45317
|
+
{ className: getPriceDifferenceClassName(priceDifference) },
|
|
45318
|
+
formatPriceDifference(priceDifference, selectedExcursionSearchResult.currencyCode)
|
|
45319
|
+
)
|
|
45320
|
+
)
|
|
45321
|
+
)
|
|
45322
|
+
)
|
|
45323
|
+
);
|
|
45324
|
+
})
|
|
45325
|
+
)
|
|
45326
|
+
),
|
|
45327
|
+
paxGroups.map(function (_a) {
|
|
45328
|
+
var pax = _a.pax,
|
|
45329
|
+
paxId = _a.paxId,
|
|
45330
|
+
excursions = _a.excursions;
|
|
45331
|
+
if (excursions.length === 0) {
|
|
45332
|
+
return null;
|
|
45333
|
+
}
|
|
45334
|
+
var selectedPaxOption = getSelectedOptionForPax(paxId);
|
|
45335
|
+
return React__default['default'].createElement(
|
|
45336
|
+
'div',
|
|
45337
|
+
{ className: 'flyin__acco', key: 'pax-'.concat(pax.id) },
|
|
45338
|
+
React__default['default'].createElement('h3', { className: 'flyin__acco__room-title' }, translations.SUMMARY.TRAVELER, ' ', pax.id + 1),
|
|
45339
|
+
React__default['default'].createElement(
|
|
45340
|
+
'div',
|
|
45341
|
+
{ className: 'flyin__acco__cards' },
|
|
45342
|
+
excursions.map(function (excursion) {
|
|
45343
|
+
var selectedOption = getSelectedOptionForExcursion(paxId, excursion.accommodationCode);
|
|
45344
|
+
var priceDifference = getPriceDifference(
|
|
45345
|
+
selectedPaxOption === null || selectedPaxOption === void 0 ? void 0 : selectedPaxOption.price,
|
|
45346
|
+
paxId,
|
|
45347
|
+
excursion.accommodationCode
|
|
45348
|
+
);
|
|
45349
|
+
return React__default['default'].createElement(
|
|
45350
|
+
'div',
|
|
45351
|
+
{ className: 'flyin__acco__card', key: ''.concat(pax.id, '-').concat(excursion.accommodationCode) },
|
|
45352
|
+
React__default['default'].createElement(
|
|
45353
|
+
'div',
|
|
45354
|
+
{ className: 'flyin__acco__content' },
|
|
45355
|
+
React__default['default'].createElement('h4', { className: 'flyin__acco__title' }, excursion.accommodationName)
|
|
45356
|
+
),
|
|
45357
|
+
React__default['default'].createElement(
|
|
45358
|
+
'div',
|
|
45359
|
+
{ className: 'flyin__acco__footer' },
|
|
45360
|
+
React__default['default'].createElement(
|
|
45361
|
+
'div',
|
|
45362
|
+
{ className: 'flyin__acco__footer__actions' },
|
|
45363
|
+
React__default['default'].createElement(
|
|
45364
|
+
'button',
|
|
45365
|
+
{
|
|
45366
|
+
className:
|
|
45367
|
+
(selectedPaxOption === null || selectedPaxOption === void 0 ? void 0 : selectedPaxOption.accommodationCode) ===
|
|
45368
|
+
excursion.accommodationCode
|
|
45369
|
+
? 'cta cta--select cta--selected'
|
|
45370
|
+
: 'cta cta--select',
|
|
45371
|
+
onClick: function () {
|
|
45372
|
+
var _a;
|
|
45373
|
+
return handlePick(
|
|
45374
|
+
selectedOption ? selectedOption.guid : (_a = lodash.first(excursion.options)) === null || _a === void 0 ? void 0 : _a.guid,
|
|
45375
|
+
paxId
|
|
45376
|
+
);
|
|
45377
|
+
}
|
|
45378
|
+
},
|
|
45379
|
+
(selectedPaxOption === null || selectedPaxOption === void 0 ? void 0 : selectedPaxOption.accommodationCode) ===
|
|
45380
|
+
excursion.accommodationCode
|
|
45381
|
+
? translations === null || translations === void 0
|
|
45382
|
+
? void 0
|
|
45383
|
+
: translations.SHARED.SELECTED
|
|
45384
|
+
: translations === null || translations === void 0
|
|
45385
|
+
? void 0
|
|
45386
|
+
: translations.SHARED.SELECT
|
|
45387
|
+
),
|
|
45388
|
+
React__default['default'].createElement(
|
|
45389
|
+
'div',
|
|
45390
|
+
{ className: 'flyin__acco__price__wrapper' },
|
|
45391
|
+
React__default['default'].createElement(
|
|
45392
|
+
'span',
|
|
45393
|
+
{ className: getPriceDifferenceClassName(priceDifference) },
|
|
45394
|
+
formatPriceDifference(priceDifference, selectedExcursionSearchResult.currencyCode)
|
|
45395
|
+
)
|
|
45396
|
+
)
|
|
45397
|
+
)
|
|
45398
|
+
)
|
|
45399
|
+
);
|
|
45400
|
+
})
|
|
45401
|
+
)
|
|
45402
|
+
);
|
|
45403
|
+
})
|
|
45404
|
+
),
|
|
45405
|
+
React__default['default'].createElement(
|
|
45406
|
+
'div',
|
|
45407
|
+
{ className: 'flyin__footer' },
|
|
45408
|
+
React__default['default'].createElement('div', { className: 'flyin__footer__price' }, translations.SHARED.TOTAL_PRICE, ': ', calculateTotalPrice()),
|
|
45409
|
+
React__default['default'].createElement(
|
|
45410
|
+
'button',
|
|
45411
|
+
{ type: 'button', className: 'cta cta--primary', onClick: handleConfirm },
|
|
45412
|
+
translations === null || translations === void 0 ? void 0 : translations.QSM.CONFIRM
|
|
45413
|
+
)
|
|
45414
|
+
)
|
|
45415
|
+
);
|
|
45416
|
+
};
|
|
45417
|
+
|
|
45418
|
+
var FlyIn = function (_a) {
|
|
45419
|
+
var _b;
|
|
45420
|
+
var srpType = _a.srpType,
|
|
45421
|
+
isOpen = _a.isOpen,
|
|
45422
|
+
setIsOpen = _a.setIsOpen,
|
|
45423
|
+
_c = _a.className,
|
|
45424
|
+
className = _c === void 0 ? '' : _c,
|
|
45425
|
+
onPanelRef = _a.onPanelRef,
|
|
45426
|
+
detailsLoading = _a.detailsLoading,
|
|
45427
|
+
flyInType = _a.flyInType,
|
|
45428
|
+
isPackageEditFlow = _a.isPackageEditFlow,
|
|
45429
|
+
handleConfirm = _a.handleConfirm,
|
|
45430
|
+
sortByTypes = _a.sortByTypes,
|
|
45431
|
+
activeSearchSeed = _a.activeSearchSeed;
|
|
45432
|
+
var dispatch = reactRedux.useDispatch();
|
|
45433
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
45434
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
45435
|
+
var translations = getTranslations(language);
|
|
45436
|
+
var _d = reactRedux.useSelector(function (state) {
|
|
45437
|
+
return state.searchResults;
|
|
45438
|
+
}),
|
|
45439
|
+
isLoading = _d.isLoading,
|
|
45440
|
+
initialFilters = _d.initialFilters,
|
|
45441
|
+
filters = _d.filters,
|
|
45442
|
+
filteredPackagingAccoResults = _d.filteredPackagingAccoResults,
|
|
45443
|
+
selectedSortType = _d.selectedSortType;
|
|
45444
|
+
var onCancelSearch = useFlightSearch().onCancelSearch;
|
|
45445
|
+
var panelRef = React.useRef(null);
|
|
45446
|
+
// expose DOM node if needed
|
|
45447
|
+
React.useEffect(
|
|
45448
|
+
function () {
|
|
45449
|
+
onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(panelRef.current);
|
|
45450
|
+
return function () {
|
|
45451
|
+
return onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(null);
|
|
45452
|
+
};
|
|
45453
|
+
},
|
|
45454
|
+
[onPanelRef]
|
|
45455
|
+
);
|
|
45456
|
+
React.useEffect(
|
|
45457
|
+
function () {
|
|
45458
|
+
// click outside detection
|
|
45459
|
+
var handleClickOutside = function (event) {
|
|
45460
|
+
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
45461
|
+
handleClose();
|
|
45462
|
+
}
|
|
45463
|
+
};
|
|
45464
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
45465
|
+
return function () {
|
|
45466
|
+
return document.removeEventListener('mousedown', handleClickOutside);
|
|
45467
|
+
};
|
|
45468
|
+
},
|
|
45469
|
+
[isOpen, setIsOpen]
|
|
45470
|
+
);
|
|
45471
|
+
// body scroll lock
|
|
45472
|
+
React.useEffect(
|
|
45473
|
+
function () {
|
|
45474
|
+
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
45475
|
+
return function () {
|
|
45476
|
+
document.body.style.overflow = '';
|
|
45477
|
+
};
|
|
45478
|
+
},
|
|
45479
|
+
[isOpen]
|
|
45480
|
+
);
|
|
45481
|
+
var handleClose = function () {
|
|
45482
|
+
if (isOpen && panelRef.current) {
|
|
45483
|
+
if (srpType === build.PortalQsmType.Flight) {
|
|
45484
|
+
dispatch(setSelectedFlight(null));
|
|
45485
|
+
dispatch(setSelectedFlightDetails(null));
|
|
45486
|
+
onCancelSearch();
|
|
45487
|
+
} else {
|
|
45488
|
+
dispatch(setSelectedSearchResult(null));
|
|
45489
|
+
}
|
|
45490
|
+
dispatch(setFlyInType('acco-details'));
|
|
45491
|
+
setIsOpen(false);
|
|
45492
|
+
}
|
|
45493
|
+
};
|
|
45494
|
+
var handleGoBack = function () {
|
|
45495
|
+
if (flyInType === 'acco-details') {
|
|
45496
|
+
dispatch(setFlyInType('acco-results'));
|
|
45497
|
+
} else if (flyInType === 'excursion-details') {
|
|
45498
|
+
dispatch(setFlyInType('excursion-results'));
|
|
45499
|
+
}
|
|
45500
|
+
};
|
|
45501
|
+
var handleSortChange = function (newSortKey, direction) {
|
|
45502
|
+
if (sortByTypes === undefined) return;
|
|
45503
|
+
var newSortByType = findSortByType(sortByTypes, newSortKey, direction !== null && direction !== void 0 ? direction : 'asc');
|
|
45504
|
+
if (newSortByType) {
|
|
45505
|
+
dispatch(setSortType(newSortByType));
|
|
45506
|
+
}
|
|
45507
|
+
};
|
|
45508
|
+
return React__default['default'].createElement(
|
|
45509
|
+
'div',
|
|
45510
|
+
{
|
|
45511
|
+
className: 'flyin '
|
|
45512
|
+
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
45513
|
+
.concat(className, ' ')
|
|
45514
|
+
.concat(
|
|
45515
|
+
isPackageEditFlow || flyInType === 'flight-outward-results' || flyInType === 'flight-return-results' || flyInType === 'acco-results'
|
|
45516
|
+
? 'flyin--large'
|
|
45517
|
+
: ''
|
|
45518
|
+
)
|
|
45519
|
+
},
|
|
45520
|
+
React__default['default'].createElement(
|
|
45521
|
+
'div',
|
|
45522
|
+
{ className: 'flyin__panel '.concat(isOpen ? 'flyin__panel--active' : ''), ref: panelRef },
|
|
45523
|
+
React__default['default'].createElement(
|
|
45524
|
+
'div',
|
|
45525
|
+
{ className: 'flyin__content' },
|
|
45526
|
+
React__default['default'].createElement(
|
|
45527
|
+
'div',
|
|
45528
|
+
{ className: 'flyin__content-title-row' },
|
|
45529
|
+
React__default['default'].createElement(
|
|
45530
|
+
'h3',
|
|
45531
|
+
{ className: 'flyin__content-title' },
|
|
45532
|
+
srpType === build.PortalQsmType.Flight && 'Select your fare',
|
|
45533
|
+
srpType === build.PortalQsmType.Accommodation ||
|
|
45534
|
+
(srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45535
|
+
(flyInType === 'acco-results' || flyInType === 'acco-details') &&
|
|
45536
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.ACCOMMODATION)),
|
|
45537
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45538
|
+
flyInType === 'flight-outward-results' &&
|
|
45539
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.FLIGHTS_FORM.OUTWARD_FLIGHT),
|
|
45540
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45541
|
+
flyInType === 'flight-return-results' &&
|
|
45542
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.FLIGHTS_FORM.RETURN_FLIGHT),
|
|
45543
|
+
srpType === build.PortalQsmType.AccommodationAndFlight && flyInType === 'flight-details' && 'Select your fare',
|
|
45544
|
+
flyInType === 'excursion-results' || (flyInType === 'excursion-details' && 'Select excursion')
|
|
45545
|
+
),
|
|
45546
|
+
React__default['default'].createElement(
|
|
45547
|
+
'span',
|
|
45548
|
+
{
|
|
45549
|
+
className: 'flyin__close',
|
|
45550
|
+
onClick: function () {
|
|
45551
|
+
return handleClose();
|
|
45552
|
+
}
|
|
45553
|
+
},
|
|
45554
|
+
React__default['default'].createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
45555
|
+
)
|
|
45556
|
+
),
|
|
45557
|
+
((isPackageEditFlow && flyInType === 'acco-details') || flyInType === 'excursion-details') &&
|
|
45558
|
+
React__default['default'].createElement(
|
|
45559
|
+
'div',
|
|
45560
|
+
{ className: 'flyin__content-title-row' },
|
|
45561
|
+
React__default['default'].createElement(
|
|
45562
|
+
'div',
|
|
45563
|
+
{ onClick: handleGoBack, className: 'flyin__content-title__back' },
|
|
45564
|
+
React__default['default'].createElement(Icon, { name: 'ui-chevron', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
45565
|
+
'Go Back'
|
|
45566
|
+
)
|
|
45567
|
+
)
|
|
45568
|
+
),
|
|
45569
|
+
srpType === build.PortalQsmType.Flight && React__default['default'].createElement(FlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
45570
|
+
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
45571
|
+
flyInType === 'acco-results' &&
|
|
45572
|
+
React__default['default'].createElement(
|
|
45573
|
+
'div',
|
|
45574
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
45575
|
+
React__default['default'].createElement(Filters, {
|
|
45576
|
+
initialFilters: initialFilters,
|
|
45577
|
+
filters: filters,
|
|
45578
|
+
isOpen: false,
|
|
45579
|
+
handleSetIsOpen: function () {},
|
|
45580
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
45581
|
+
isLoading: isLoading,
|
|
45582
|
+
setFilters: function (filters) {
|
|
45583
|
+
return dispatch(setFilters(filters));
|
|
45584
|
+
},
|
|
45585
|
+
resetFilters: function (filters) {
|
|
45586
|
+
return dispatch(resetFilters(filters));
|
|
45587
|
+
}
|
|
45588
|
+
}),
|
|
45589
|
+
React__default['default'].createElement(
|
|
45590
|
+
'div',
|
|
45591
|
+
{ className: 'search__results__wrapper' },
|
|
45592
|
+
React__default['default'].createElement(
|
|
45593
|
+
'div',
|
|
45594
|
+
{ className: 'search__result-row' },
|
|
45595
|
+
React__default['default'].createElement(
|
|
45596
|
+
'span',
|
|
45597
|
+
{ className: 'search__result-row-text' },
|
|
45598
|
+
!isLoading &&
|
|
45599
|
+
React__default['default'].createElement(
|
|
45600
|
+
React__default['default'].Fragment,
|
|
45601
|
+
null,
|
|
45602
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
45603
|
+
filteredPackagingAccoResults.length,
|
|
45604
|
+
'\u00A0',
|
|
45605
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
45606
|
+
)
|
|
45607
|
+
),
|
|
45608
|
+
sortByTypes &&
|
|
45609
|
+
sortByTypes.length > 0 &&
|
|
45610
|
+
React__default['default'].createElement(
|
|
45611
|
+
'div',
|
|
45612
|
+
{ className: 'search__result-row-filter' },
|
|
45613
|
+
React__default['default'].createElement(ItemPicker, {
|
|
45614
|
+
items: sortByTypes,
|
|
45615
|
+
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
45616
|
+
selectedSortByType: selectedSortType,
|
|
45617
|
+
label: translations.SRP.SORTBY,
|
|
45618
|
+
placeholder: translations.SRP.SORTBY,
|
|
45619
|
+
classModifier: 'travel-class-picker__items',
|
|
45620
|
+
valueFormatter: function (value, direction) {
|
|
45621
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
45622
|
+
},
|
|
45623
|
+
onPick: function (newSortKey, direction) {
|
|
45624
|
+
return handleSortChange(newSortKey, direction);
|
|
45625
|
+
}
|
|
45626
|
+
})
|
|
45627
|
+
)
|
|
45628
|
+
),
|
|
45629
|
+
React__default['default'].createElement(HotelAccommodationResults, { isLoading: detailsLoading, isFlyIn: true })
|
|
45630
|
+
)
|
|
43891
45631
|
),
|
|
43892
45632
|
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43893
|
-
|
|
45633
|
+
flyInType === 'acco-details' &&
|
|
43894
45634
|
React__default['default'].createElement(AccommodationFlyIn, { isLoading: detailsLoading, handleConfirm: handleConfirm }),
|
|
45635
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45636
|
+
(flyInType === 'flight-outward-results' || flyInType === 'flight-return-results') &&
|
|
45637
|
+
React__default['default'].createElement(PackageingFlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
45638
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45639
|
+
flyInType === 'excursion-results' &&
|
|
45640
|
+
React__default['default'].createElement(ExcursionResults, { isFlyIn: true, activeSearchSeed: activeSearchSeed }),
|
|
45641
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45642
|
+
flyInType === 'excursion-details' &&
|
|
45643
|
+
React__default['default'].createElement(ExcursionDetails, null),
|
|
43895
45644
|
srpType === build.PortalQsmType.GroupTour &&
|
|
43896
45645
|
React__default['default'].createElement(GroupTourFlyIn, { isLoading: detailsLoading, isOpen: isOpen, setIsOpen: setIsOpen })
|
|
43897
45646
|
)
|
|
@@ -44250,7 +45999,7 @@ var PairedFlightOption = function (_a) {
|
|
|
44250
45999
|
React__default['default'].createElement(
|
|
44251
46000
|
'span',
|
|
44252
46001
|
{ className: 'price' },
|
|
44253
|
-
formatPrice$
|
|
46002
|
+
formatPrice$3(
|
|
44254
46003
|
item.price,
|
|
44255
46004
|
'EUR',
|
|
44256
46005
|
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
@@ -44663,270 +46412,6 @@ var PairedFlightSelection = function (_a) {
|
|
|
44663
46412
|
);
|
|
44664
46413
|
};
|
|
44665
46414
|
|
|
44666
|
-
var IndependentFlightOption = function (_a) {
|
|
44667
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
44668
|
-
var item = _a.item,
|
|
44669
|
-
onSelect = _a.onSelect,
|
|
44670
|
-
guid = _a.guid,
|
|
44671
|
-
selectedGuid = _a.selectedGuid,
|
|
44672
|
-
isOutward = _a.isOutward,
|
|
44673
|
-
showSelectedState = _a.showSelectedState,
|
|
44674
|
-
currentSelectedPrice = _a.currentSelectedPrice,
|
|
44675
|
-
price = _a.price;
|
|
44676
|
-
var context = React.useContext(SearchResultsConfigurationContext);
|
|
44677
|
-
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44678
|
-
var translations = getTranslations(language);
|
|
44679
|
-
var _p = React.useState(false),
|
|
44680
|
-
detailsOpen = _p[0],
|
|
44681
|
-
setDetailsOpen = _p[1];
|
|
44682
|
-
var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
|
|
44683
|
-
return React__default['default'].createElement(
|
|
44684
|
-
'div',
|
|
44685
|
-
{ className: 'search__result-card', key: 'flight-'.concat(item.code) },
|
|
44686
|
-
React__default['default'].createElement(
|
|
44687
|
-
'div',
|
|
44688
|
-
{ className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
|
|
44689
|
-
React__default['default'].createElement(
|
|
44690
|
-
'div',
|
|
44691
|
-
{ className: 'flight__option' },
|
|
44692
|
-
React__default['default'].createElement(
|
|
44693
|
-
'div',
|
|
44694
|
-
{ className: 'flight__content' },
|
|
44695
|
-
React__default['default'].createElement(
|
|
44696
|
-
'div',
|
|
44697
|
-
{ className: 'flight__flights' },
|
|
44698
|
-
React__default['default'].createElement(
|
|
44699
|
-
'div',
|
|
44700
|
-
{ className: 'flight__flight' },
|
|
44701
|
-
React__default['default'].createElement(
|
|
44702
|
-
'div',
|
|
44703
|
-
{ className: 'flight__flight__header' },
|
|
44704
|
-
React__default['default'].createElement('div', { className: 'flight__status__container' }),
|
|
44705
|
-
React__default['default'].createElement(
|
|
44706
|
-
'div',
|
|
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
|
-
)),
|
|
44735
|
-
React__default['default'].createElement(
|
|
44736
|
-
'button',
|
|
44737
|
-
{
|
|
44738
|
-
type: 'button',
|
|
44739
|
-
className: 'cta '.concat(selectedGuid === guid ? 'cta--selected' : 'cta--select'),
|
|
44740
|
-
onClick: function () {
|
|
44741
|
-
return onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
44742
|
-
}
|
|
44743
|
-
},
|
|
44744
|
-
selectedGuid === guid ? 'Selected' : 'Select'
|
|
44745
|
-
)
|
|
44746
|
-
)
|
|
44747
|
-
)
|
|
44748
|
-
),
|
|
44749
|
-
React__default['default'].createElement(
|
|
44750
|
-
'div',
|
|
44751
|
-
{ className: 'flight__flight' },
|
|
44752
|
-
React__default['default'].createElement(
|
|
44753
|
-
'div',
|
|
44754
|
-
{ className: 'flight__flight__container' },
|
|
44755
|
-
React__default['default'].createElement(
|
|
44756
|
-
'div',
|
|
44757
|
-
{ className: 'flight__flight__wrapper' },
|
|
44758
|
-
React__default['default'].createElement(
|
|
44759
|
-
'div',
|
|
44760
|
-
{ className: 'flight__logo__wrapper' },
|
|
44761
|
-
React__default['default'].createElement('img', {
|
|
44762
|
-
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
44763
|
-
(_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
|
|
44764
|
-
'.png?height=256'
|
|
44765
|
-
),
|
|
44766
|
-
alt: '',
|
|
44767
|
-
className: 'flight__logo'
|
|
44768
|
-
}),
|
|
44769
|
-
React__default['default'].createElement(
|
|
44770
|
-
'span',
|
|
44771
|
-
null,
|
|
44772
|
-
(_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName
|
|
44773
|
-
)
|
|
44774
|
-
),
|
|
44775
|
-
React__default['default'].createElement(
|
|
44776
|
-
'div',
|
|
44777
|
-
{ className: 'flight__info' },
|
|
44778
|
-
React__default['default'].createElement(
|
|
44779
|
-
'div',
|
|
44780
|
-
{ className: 'flight__info__times' },
|
|
44781
|
-
React__default['default'].createElement(
|
|
44782
|
-
'strong',
|
|
44783
|
-
null,
|
|
44784
|
-
timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
|
|
44785
|
-
' ',
|
|
44786
|
-
(_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
|
|
44787
|
-
),
|
|
44788
|
-
React__default['default'].createElement(
|
|
44789
|
-
'p',
|
|
44790
|
-
null,
|
|
44791
|
-
longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
|
|
44792
|
-
)
|
|
44793
|
-
),
|
|
44794
|
-
React__default['default'].createElement(
|
|
44795
|
-
'div',
|
|
44796
|
-
{ className: 'flight__info__duration' },
|
|
44797
|
-
React__default['default'].createElement('p', null, durationTicksInHoursString(item.durationInTicks)),
|
|
44798
|
-
React__default['default'].createElement(
|
|
44799
|
-
'div',
|
|
44800
|
-
{ className: 'flight__info__duration__stops' },
|
|
44801
|
-
React__default['default'].createElement('div', { className: 'flight__info__duration__stop' })
|
|
44802
|
-
),
|
|
44803
|
-
React__default['default'].createElement(
|
|
44804
|
-
'span',
|
|
44805
|
-
null,
|
|
44806
|
-
getNumberOfStopsLabel(item, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
44807
|
-
)
|
|
44808
|
-
),
|
|
44809
|
-
React__default['default'].createElement(
|
|
44810
|
-
'div',
|
|
44811
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44812
|
-
React__default['default'].createElement(
|
|
44813
|
-
'strong',
|
|
44814
|
-
null,
|
|
44815
|
-
timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
|
|
44816
|
-
' ',
|
|
44817
|
-
(_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
|
|
44818
|
-
),
|
|
44819
|
-
React__default['default'].createElement(
|
|
44820
|
-
'p',
|
|
44821
|
-
null,
|
|
44822
|
-
longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
|
|
44823
|
-
)
|
|
44824
|
-
)
|
|
44825
|
-
)
|
|
44826
|
-
),
|
|
44827
|
-
React__default['default'].createElement(
|
|
44828
|
-
'div',
|
|
44829
|
-
{ className: 'flight__detail__btn__wrapper' },
|
|
44830
|
-
React__default['default'].createElement(
|
|
44831
|
-
'div',
|
|
44832
|
-
{
|
|
44833
|
-
className: 'flight__detail__btn '.concat(detailsOpen ? 'flight__detail__btn--active' : ''),
|
|
44834
|
-
onClick: function () {
|
|
44835
|
-
return setDetailsOpen(function (prev) {
|
|
44836
|
-
return !prev;
|
|
44837
|
-
});
|
|
44838
|
-
}
|
|
44839
|
-
},
|
|
44840
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44841
|
-
)
|
|
44842
|
-
)
|
|
44843
|
-
),
|
|
44844
|
-
React__default['default'].createElement(
|
|
44845
|
-
'div',
|
|
44846
|
-
{ className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
|
|
44847
|
-
(_o = getFlightSegments(item)) === null || _o === void 0
|
|
44848
|
-
? void 0
|
|
44849
|
-
: _o.map(function (segment, index) {
|
|
44850
|
-
return React__default['default'].createElement(
|
|
44851
|
-
React__default['default'].Fragment,
|
|
44852
|
-
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
44853
|
-
React__default['default'].createElement(
|
|
44854
|
-
'div',
|
|
44855
|
-
{ className: 'flight__info' },
|
|
44856
|
-
React__default['default'].createElement(
|
|
44857
|
-
'div',
|
|
44858
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44859
|
-
React__default['default'].createElement(
|
|
44860
|
-
'div',
|
|
44861
|
-
{ className: 'flight__info__times' },
|
|
44862
|
-
React__default['default'].createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44863
|
-
React__default['default'].createElement('strong', null, segment.departureAirportCode),
|
|
44864
|
-
React__default['default'].createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44865
|
-
),
|
|
44866
|
-
React__default['default'].createElement(
|
|
44867
|
-
'div',
|
|
44868
|
-
null,
|
|
44869
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 })
|
|
44870
|
-
)
|
|
44871
|
-
),
|
|
44872
|
-
React__default['default'].createElement(
|
|
44873
|
-
'div',
|
|
44874
|
-
{ className: 'flight__info__duration' },
|
|
44875
|
-
React__default['default'].createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
44876
|
-
React__default['default'].createElement('div', { className: 'flight__info__duration__stops' }),
|
|
44877
|
-
React__default['default'].createElement('span', null, segment.marketingAirlineName),
|
|
44878
|
-
React__default['default'].createElement('strong', null, segment.operatingFlightNumber)
|
|
44879
|
-
),
|
|
44880
|
-
React__default['default'].createElement(
|
|
44881
|
-
'div',
|
|
44882
|
-
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44883
|
-
React__default['default'].createElement(
|
|
44884
|
-
'div',
|
|
44885
|
-
null,
|
|
44886
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })
|
|
44887
|
-
),
|
|
44888
|
-
React__default['default'].createElement(
|
|
44889
|
-
'div',
|
|
44890
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44891
|
-
React__default['default'].createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44892
|
-
React__default['default'].createElement('strong', null, segment.arrivalAirportCode),
|
|
44893
|
-
React__default['default'].createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44894
|
-
)
|
|
44895
|
-
)
|
|
44896
|
-
),
|
|
44897
|
-
segment.transferTimeInTicks &&
|
|
44898
|
-
React__default['default'].createElement(
|
|
44899
|
-
'div',
|
|
44900
|
-
{ className: 'flight__info' },
|
|
44901
|
-
React__default['default'].createElement('div', { className: 'flight__info__times' }),
|
|
44902
|
-
React__default['default'].createElement(
|
|
44903
|
-
'div',
|
|
44904
|
-
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44905
|
-
React__default['default'].createElement(
|
|
44906
|
-
'div',
|
|
44907
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44908
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44909
|
-
),
|
|
44910
|
-
React__default['default'].createElement(
|
|
44911
|
-
'div',
|
|
44912
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44913
|
-
React__default['default'].createElement('span', null, 'Stop time'),
|
|
44914
|
-
React__default['default'].createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44915
|
-
)
|
|
44916
|
-
),
|
|
44917
|
-
React__default['default'].createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44918
|
-
)
|
|
44919
|
-
);
|
|
44920
|
-
})
|
|
44921
|
-
)
|
|
44922
|
-
)
|
|
44923
|
-
)
|
|
44924
|
-
)
|
|
44925
|
-
)
|
|
44926
|
-
)
|
|
44927
|
-
);
|
|
44928
|
-
};
|
|
44929
|
-
|
|
44930
46415
|
var IndependentFlightSelection = function (_a) {
|
|
44931
46416
|
var _b;
|
|
44932
46417
|
var searchResults = _a.searchResults;
|
|
@@ -45122,116 +46607,6 @@ var FlightSelection = function (_a) {
|
|
|
45122
46607
|
: React__default['default'].createElement(IndependentFlightSelection, { searchResults: searchResults });
|
|
45123
46608
|
};
|
|
45124
46609
|
|
|
45125
|
-
var MultiRangeFilter = function (_a) {
|
|
45126
|
-
var min = _a.min,
|
|
45127
|
-
max = _a.max,
|
|
45128
|
-
selectedMin = _a.selectedMin,
|
|
45129
|
-
selectedMax = _a.selectedMax,
|
|
45130
|
-
valueFormatter = _a.valueFormatter,
|
|
45131
|
-
onChange = _a.onChange;
|
|
45132
|
-
var _b = React.useState(false),
|
|
45133
|
-
isDragging = _b[0],
|
|
45134
|
-
setIsDragging = _b[1];
|
|
45135
|
-
var _c = React.useState(0),
|
|
45136
|
-
leftPercentage = _c[0],
|
|
45137
|
-
setLeftPercentage = _c[1];
|
|
45138
|
-
var _d = React.useState(0),
|
|
45139
|
-
rightPercentage = _d[0],
|
|
45140
|
-
setRightPercentage = _d[1];
|
|
45141
|
-
var _e = React.useState(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min),
|
|
45142
|
-
minVal = _e[0],
|
|
45143
|
-
setMinVal = _e[1];
|
|
45144
|
-
var _f = React.useState(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max),
|
|
45145
|
-
maxVal = _f[0],
|
|
45146
|
-
setMaxVal = _f[1];
|
|
45147
|
-
var minGap = 5;
|
|
45148
|
-
// Sync internal state with external selectedMin/selectedMax changes
|
|
45149
|
-
React.useEffect(
|
|
45150
|
-
function () {
|
|
45151
|
-
setMinVal(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min);
|
|
45152
|
-
setMaxVal(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max);
|
|
45153
|
-
},
|
|
45154
|
-
[min, max, selectedMin, selectedMax]
|
|
45155
|
-
);
|
|
45156
|
-
// Recalculate slider track whenever values change
|
|
45157
|
-
React.useEffect(
|
|
45158
|
-
function () {
|
|
45159
|
-
var range = max - min || 1;
|
|
45160
|
-
var minPercent = ((minVal - min) / range) * 100;
|
|
45161
|
-
var maxPercent = ((maxVal - min) / range) * 100;
|
|
45162
|
-
setLeftPercentage(minPercent);
|
|
45163
|
-
setRightPercentage(100 - maxPercent);
|
|
45164
|
-
},
|
|
45165
|
-
[minVal, maxVal, min, max]
|
|
45166
|
-
);
|
|
45167
|
-
var slideMin = function (e) {
|
|
45168
|
-
var value = parseInt(e.target.value, 10);
|
|
45169
|
-
// Ensure the thumbs don’t cross and enforce minGap
|
|
45170
|
-
if (value <= maxVal - minGap) {
|
|
45171
|
-
setMinVal(value);
|
|
45172
|
-
}
|
|
45173
|
-
};
|
|
45174
|
-
var slideMax = function (e) {
|
|
45175
|
-
var value = parseInt(e.target.value, 10);
|
|
45176
|
-
// Ensure the thumbs don’t cross and enforce minGap
|
|
45177
|
-
if (value >= minVal + minGap) {
|
|
45178
|
-
setMaxVal(value);
|
|
45179
|
-
}
|
|
45180
|
-
};
|
|
45181
|
-
var startDrag = function () {
|
|
45182
|
-
setIsDragging(true);
|
|
45183
|
-
};
|
|
45184
|
-
var stopDrag = function () {
|
|
45185
|
-
setIsDragging(false);
|
|
45186
|
-
// Notify parent with the final values
|
|
45187
|
-
onChange(minVal, maxVal);
|
|
45188
|
-
};
|
|
45189
|
-
return React__default['default'].createElement(
|
|
45190
|
-
'div',
|
|
45191
|
-
{ className: 'double-slider-box' },
|
|
45192
|
-
React__default['default'].createElement(
|
|
45193
|
-
'div',
|
|
45194
|
-
{ className: 'input-box' },
|
|
45195
|
-
React__default['default'].createElement('div', { className: 'min-box' }, valueFormatter(minVal)),
|
|
45196
|
-
React__default['default'].createElement('div', { className: 'max-box' }, valueFormatter(maxVal))
|
|
45197
|
-
),
|
|
45198
|
-
React__default['default'].createElement(
|
|
45199
|
-
'div',
|
|
45200
|
-
{ className: 'range-slider' },
|
|
45201
|
-
React__default['default'].createElement('div', {
|
|
45202
|
-
className: 'slider-track',
|
|
45203
|
-
style: { left: ''.concat(leftPercentage, '%'), right: ''.concat(rightPercentage, '%') }
|
|
45204
|
-
}),
|
|
45205
|
-
React__default['default'].createElement('input', {
|
|
45206
|
-
type: 'range',
|
|
45207
|
-
min: min,
|
|
45208
|
-
max: max,
|
|
45209
|
-
value: minVal,
|
|
45210
|
-
onChange: slideMin,
|
|
45211
|
-
onMouseDown: startDrag,
|
|
45212
|
-
onMouseUp: stopDrag,
|
|
45213
|
-
onTouchStart: startDrag,
|
|
45214
|
-
onTouchEnd: stopDrag,
|
|
45215
|
-
className: 'min-val'
|
|
45216
|
-
}),
|
|
45217
|
-
React__default['default'].createElement('input', {
|
|
45218
|
-
type: 'range',
|
|
45219
|
-
min: min,
|
|
45220
|
-
max: max,
|
|
45221
|
-
value: maxVal,
|
|
45222
|
-
onChange: slideMax,
|
|
45223
|
-
onMouseDown: startDrag,
|
|
45224
|
-
onMouseUp: stopDrag,
|
|
45225
|
-
onTouchStart: startDrag,
|
|
45226
|
-
onTouchEnd: stopDrag,
|
|
45227
|
-
className: 'max-val'
|
|
45228
|
-
}),
|
|
45229
|
-
isDragging && React__default['default'].createElement('div', { className: 'min-tooltip' }, valueFormatter(minVal)),
|
|
45230
|
-
isDragging && React__default['default'].createElement('div', { className: 'max-tooltip' }, valueFormatter(maxVal))
|
|
45231
|
-
)
|
|
45232
|
-
);
|
|
45233
|
-
};
|
|
45234
|
-
|
|
45235
46610
|
var FlightFilters = function (_a) {
|
|
45236
46611
|
var _b;
|
|
45237
46612
|
var isOpen = _a.isOpen,
|
|
@@ -46320,228 +47695,6 @@ var FlightResultsContainer = function (_a) {
|
|
|
46320
47695
|
);
|
|
46321
47696
|
};
|
|
46322
47697
|
|
|
46323
|
-
var Filters = function (_a) {
|
|
46324
|
-
var _b;
|
|
46325
|
-
var initialFilters = _a.initialFilters,
|
|
46326
|
-
filters = _a.filters,
|
|
46327
|
-
isOpen = _a.isOpen,
|
|
46328
|
-
handleSetIsOpen = _a.handleSetIsOpen,
|
|
46329
|
-
isLoading = _a.isLoading;
|
|
46330
|
-
var context = React.useContext(SearchResultsConfigurationContext);
|
|
46331
|
-
if (!context || !context.showFilters) {
|
|
46332
|
-
return null;
|
|
46333
|
-
}
|
|
46334
|
-
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
46335
|
-
var _c = React.useState({}),
|
|
46336
|
-
visibleFilters = _c[0],
|
|
46337
|
-
setVisibleFilters = _c[1];
|
|
46338
|
-
var dispatch = reactRedux.useDispatch();
|
|
46339
|
-
var toggleFilterVisibility = function (filterId) {
|
|
46340
|
-
setVisibleFilters(function (prev) {
|
|
46341
|
-
var _a;
|
|
46342
|
-
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
46343
|
-
});
|
|
46344
|
-
};
|
|
46345
|
-
var handleCheckBoxFilter = function (filter, option) {
|
|
46346
|
-
var updated = filters.map(function (f) {
|
|
46347
|
-
var _a;
|
|
46348
|
-
if (f.property !== filter.property) return f;
|
|
46349
|
-
return __assign(__assign({}, f), {
|
|
46350
|
-
options:
|
|
46351
|
-
(_a = f.options) === null || _a === void 0
|
|
46352
|
-
? void 0
|
|
46353
|
-
: _a.map(function (opt) {
|
|
46354
|
-
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
46355
|
-
})
|
|
46356
|
-
});
|
|
46357
|
-
});
|
|
46358
|
-
dispatch(setFilters(updated));
|
|
46359
|
-
};
|
|
46360
|
-
var handleSliderChange = function (filter, newMin, newMax) {
|
|
46361
|
-
var updated = filters.map(function (f) {
|
|
46362
|
-
if (f.property !== filter.property) return f;
|
|
46363
|
-
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
46364
|
-
});
|
|
46365
|
-
dispatch(setFilters(updated));
|
|
46366
|
-
};
|
|
46367
|
-
var handleFullReset = function () {
|
|
46368
|
-
if (!isLoading) {
|
|
46369
|
-
dispatch(resetFilters(initialFilters));
|
|
46370
|
-
}
|
|
46371
|
-
};
|
|
46372
|
-
return React__default['default'].createElement(
|
|
46373
|
-
'div',
|
|
46374
|
-
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
46375
|
-
React__default['default'].createElement('div', {
|
|
46376
|
-
className: 'search__filters--background',
|
|
46377
|
-
onClick: function () {
|
|
46378
|
-
return handleSetIsOpen();
|
|
46379
|
-
}
|
|
46380
|
-
}),
|
|
46381
|
-
React__default['default'].createElement(
|
|
46382
|
-
'button',
|
|
46383
|
-
{
|
|
46384
|
-
className: 'search__filters--close',
|
|
46385
|
-
onClick: function () {
|
|
46386
|
-
return handleSetIsOpen();
|
|
46387
|
-
}
|
|
46388
|
-
},
|
|
46389
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
46390
|
-
),
|
|
46391
|
-
React__default['default'].createElement(
|
|
46392
|
-
'div',
|
|
46393
|
-
{ className: 'search__filters' },
|
|
46394
|
-
React__default['default'].createElement(
|
|
46395
|
-
'div',
|
|
46396
|
-
{ className: 'search__filter-row search__filter__header' },
|
|
46397
|
-
React__default['default'].createElement(
|
|
46398
|
-
'div',
|
|
46399
|
-
{ className: 'search__filter-row-flex-title' },
|
|
46400
|
-
React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
46401
|
-
),
|
|
46402
|
-
!isLoading &&
|
|
46403
|
-
React__default['default'].createElement(
|
|
46404
|
-
'a',
|
|
46405
|
-
{
|
|
46406
|
-
className: 'search__filter-reset',
|
|
46407
|
-
onClick: function () {
|
|
46408
|
-
return handleFullReset();
|
|
46409
|
-
}
|
|
46410
|
-
},
|
|
46411
|
-
translations.SRP.RESET
|
|
46412
|
-
)
|
|
46413
|
-
),
|
|
46414
|
-
isLoading
|
|
46415
|
-
? React__default['default'].createElement(Spinner, null)
|
|
46416
|
-
: React__default['default'].createElement(
|
|
46417
|
-
React__default['default'].Fragment,
|
|
46418
|
-
null,
|
|
46419
|
-
React__default['default'].createElement(
|
|
46420
|
-
'div',
|
|
46421
|
-
{ className: 'search__filters__group-container' },
|
|
46422
|
-
filters.map(function (filter, index) {
|
|
46423
|
-
var _a, _b;
|
|
46424
|
-
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
46425
|
-
return React__default['default'].createElement(
|
|
46426
|
-
'div',
|
|
46427
|
-
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
46428
|
-
React__default['default'].createElement(
|
|
46429
|
-
'div',
|
|
46430
|
-
{
|
|
46431
|
-
className: 'search__filter-row search__filter-row--underline',
|
|
46432
|
-
onClick: function () {
|
|
46433
|
-
return toggleFilterVisibility(filter.property);
|
|
46434
|
-
},
|
|
46435
|
-
role: 'button',
|
|
46436
|
-
tabIndex: 0
|
|
46437
|
-
},
|
|
46438
|
-
React__default['default'].createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
46439
|
-
React__default['default'].createElement(
|
|
46440
|
-
'svg',
|
|
46441
|
-
{
|
|
46442
|
-
id: 'search-chevron-up-icon',
|
|
46443
|
-
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
46444
|
-
viewBox: '0 0 10 6.063',
|
|
46445
|
-
width: 10,
|
|
46446
|
-
height: 6.063
|
|
46447
|
-
},
|
|
46448
|
-
React__default['default'].createElement('path', {
|
|
46449
|
-
id: 'Path_62',
|
|
46450
|
-
'data-name': 'Path 62',
|
|
46451
|
-
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
46452
|
-
transform: 'translate(-240 624)',
|
|
46453
|
-
fill: '#707070'
|
|
46454
|
-
})
|
|
46455
|
-
)
|
|
46456
|
-
),
|
|
46457
|
-
isVisible &&
|
|
46458
|
-
filter.type === 'checkbox' &&
|
|
46459
|
-
React__default['default'].createElement(
|
|
46460
|
-
'div',
|
|
46461
|
-
{ className: 'search__filter-rows' },
|
|
46462
|
-
filter.options &&
|
|
46463
|
-
filter.options.map(function (option, optionIndex) {
|
|
46464
|
-
return React__default['default'].createElement(
|
|
46465
|
-
'div',
|
|
46466
|
-
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
46467
|
-
React__default['default'].createElement(
|
|
46468
|
-
'div',
|
|
46469
|
-
{ className: 'checkbox' },
|
|
46470
|
-
React__default['default'].createElement(
|
|
46471
|
-
'label',
|
|
46472
|
-
{ className: 'checkbox__label' },
|
|
46473
|
-
React__default['default'].createElement('input', {
|
|
46474
|
-
type: 'checkbox',
|
|
46475
|
-
className: 'checkbox__input checkbox__input--parent',
|
|
46476
|
-
checked: option.isChecked,
|
|
46477
|
-
onChange: function (e) {
|
|
46478
|
-
return handleCheckBoxFilter(filter, option);
|
|
46479
|
-
}
|
|
46480
|
-
}),
|
|
46481
|
-
React__default['default'].createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
46482
|
-
)
|
|
46483
|
-
)
|
|
46484
|
-
);
|
|
46485
|
-
})
|
|
46486
|
-
),
|
|
46487
|
-
isVisible &&
|
|
46488
|
-
filter.type === 'toggle' &&
|
|
46489
|
-
React__default['default'].createElement(
|
|
46490
|
-
'div',
|
|
46491
|
-
{ className: 'search__filter-rows' },
|
|
46492
|
-
(_b = filter.options) === null || _b === void 0
|
|
46493
|
-
? void 0
|
|
46494
|
-
: _b.map(function (option, optionIndex) {
|
|
46495
|
-
return React__default['default'].createElement(
|
|
46496
|
-
'div',
|
|
46497
|
-
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
46498
|
-
React__default['default'].createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
46499
|
-
React__default['default'].createElement('div', { className: 'checkbox' }),
|
|
46500
|
-
React__default['default'].createElement(
|
|
46501
|
-
'label',
|
|
46502
|
-
{ className: 'checkbox__label' },
|
|
46503
|
-
React__default['default'].createElement('input', {
|
|
46504
|
-
type: 'checkbox',
|
|
46505
|
-
className: 'checkbox__input',
|
|
46506
|
-
checked: option.isChecked,
|
|
46507
|
-
onChange: function () {
|
|
46508
|
-
return handleCheckBoxFilter(filter, option);
|
|
46509
|
-
}
|
|
46510
|
-
})
|
|
46511
|
-
)
|
|
46512
|
-
);
|
|
46513
|
-
})
|
|
46514
|
-
),
|
|
46515
|
-
isVisible &&
|
|
46516
|
-
filter &&
|
|
46517
|
-
filter.type === 'slider' &&
|
|
46518
|
-
(function () {
|
|
46519
|
-
var _a, _b, _c, _d;
|
|
46520
|
-
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
46521
|
-
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
46522
|
-
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
46523
|
-
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
46524
|
-
return React__default['default'].createElement(MultiRangeFilter, {
|
|
46525
|
-
min: min,
|
|
46526
|
-
max: max,
|
|
46527
|
-
selectedMin: selectedMin,
|
|
46528
|
-
selectedMax: selectedMax,
|
|
46529
|
-
valueFormatter: function (value) {
|
|
46530
|
-
return ''.concat(value);
|
|
46531
|
-
},
|
|
46532
|
-
onChange: function (newMin, newMax) {
|
|
46533
|
-
handleSliderChange(filter, newMin, newMax);
|
|
46534
|
-
}
|
|
46535
|
-
});
|
|
46536
|
-
})()
|
|
46537
|
-
);
|
|
46538
|
-
})
|
|
46539
|
-
)
|
|
46540
|
-
)
|
|
46541
|
-
)
|
|
46542
|
-
);
|
|
46543
|
-
};
|
|
46544
|
-
|
|
46545
47698
|
var GroupTourCard = function (_a) {
|
|
46546
47699
|
var _b, _c, _d, _e, _f, _g;
|
|
46547
47700
|
var result = _a.result,
|
|
@@ -46682,7 +47835,7 @@ var GroupTourCard = function (_a) {
|
|
|
46682
47835
|
React__default['default'].createElement(
|
|
46683
47836
|
'div',
|
|
46684
47837
|
{ className: 'search__result-card__allotment__price' },
|
|
46685
|
-
formatPrice$
|
|
47838
|
+
formatPrice$3(result.price, result.currencyCode, languageCode),
|
|
46686
47839
|
' ',
|
|
46687
47840
|
translations.PRODUCT.PER_PERSON
|
|
46688
47841
|
)
|
|
@@ -46859,80 +48012,245 @@ var enrichFiltersWithResults = function (results, filters, tags) {
|
|
|
46859
48012
|
return updatedFilter;
|
|
46860
48013
|
});
|
|
46861
48014
|
};
|
|
46862
|
-
var enrichFiltersWithPackageAccoResults = function (results,
|
|
46863
|
-
|
|
46864
|
-
|
|
46865
|
-
|
|
46866
|
-
|
|
46867
|
-
|
|
46868
|
-
|
|
46869
|
-
|
|
46870
|
-
|
|
46871
|
-
|
|
46872
|
-
|
|
46873
|
-
|
|
46874
|
-
|
|
46875
|
-
|
|
46876
|
-
|
|
46877
|
-
|
|
46878
|
-
|
|
46879
|
-
|
|
46880
|
-
|
|
46881
|
-
|
|
46882
|
-
|
|
46883
|
-
|
|
46884
|
-
results.forEach(function (r) {
|
|
46885
|
-
var rooms = lodash.flatMap(r.rooms);
|
|
46886
|
-
if (rooms) {
|
|
46887
|
-
rooms.map(function (room) {
|
|
46888
|
-
room.options.map(function (option) {
|
|
46889
|
-
if (option.accommodationCode) {
|
|
46890
|
-
map_4.set(option.accommodationCode, {
|
|
46891
|
-
name: option.accommodationName,
|
|
46892
|
-
code: option.accommodationCode
|
|
46893
|
-
});
|
|
46894
|
-
}
|
|
48015
|
+
var enrichFiltersWithPackageAccoResults = function (results, tags) {
|
|
48016
|
+
var filters = [];
|
|
48017
|
+
if (!results || results.length === 0) {
|
|
48018
|
+
return filters;
|
|
48019
|
+
}
|
|
48020
|
+
var regimeFilter = {
|
|
48021
|
+
property: 'regime',
|
|
48022
|
+
label: 'Regime',
|
|
48023
|
+
type: 'checkbox',
|
|
48024
|
+
options: [],
|
|
48025
|
+
isFrontendFilter: true
|
|
48026
|
+
};
|
|
48027
|
+
var map = new Map();
|
|
48028
|
+
results.forEach(function (r) {
|
|
48029
|
+
var rooms = lodash.flatMap(r.rooms);
|
|
48030
|
+
if (rooms) {
|
|
48031
|
+
rooms.map(function (room) {
|
|
48032
|
+
room.options.map(function (option) {
|
|
48033
|
+
if (option.regimeCode) {
|
|
48034
|
+
map.set(option.regimeCode, {
|
|
48035
|
+
name: option.regimeName,
|
|
48036
|
+
code: option.regimeCode
|
|
46895
48037
|
});
|
|
46896
|
-
}
|
|
46897
|
-
}
|
|
48038
|
+
}
|
|
48039
|
+
});
|
|
46898
48040
|
});
|
|
46899
|
-
|
|
46900
|
-
|
|
46901
|
-
|
|
46902
|
-
|
|
46903
|
-
|
|
46904
|
-
|
|
46905
|
-
|
|
48041
|
+
}
|
|
48042
|
+
});
|
|
48043
|
+
regimeFilter.options = Array.from(map.values()).map(function (regime) {
|
|
48044
|
+
var _a;
|
|
48045
|
+
return {
|
|
48046
|
+
label: (_a = regime.name) !== null && _a !== void 0 ? _a : regime.code,
|
|
48047
|
+
value: regime.code,
|
|
48048
|
+
isChecked: false
|
|
48049
|
+
};
|
|
48050
|
+
});
|
|
48051
|
+
filters.push(regimeFilter);
|
|
48052
|
+
var priceFilter = {
|
|
48053
|
+
property: 'price',
|
|
48054
|
+
label: 'Prijs',
|
|
48055
|
+
type: 'slider',
|
|
48056
|
+
isFrontendFilter: true
|
|
48057
|
+
};
|
|
48058
|
+
var prices = results
|
|
48059
|
+
.map(function (r) {
|
|
48060
|
+
var _a;
|
|
48061
|
+
return (_a = r.price) !== null && _a !== void 0 ? _a : 0;
|
|
48062
|
+
})
|
|
48063
|
+
.filter(function (p) {
|
|
48064
|
+
return p > 0;
|
|
48065
|
+
});
|
|
48066
|
+
priceFilter.min = Math.floor(Math.min.apply(Math, prices));
|
|
48067
|
+
priceFilter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
48068
|
+
filters.push(priceFilter);
|
|
48069
|
+
return filters;
|
|
48070
|
+
};
|
|
48071
|
+
var enrichFiltersWithPackageFlightResults = function (results, tags, translations) {
|
|
48072
|
+
var filters = [];
|
|
48073
|
+
if (!results || results.length === 0) {
|
|
48074
|
+
return filters;
|
|
48075
|
+
}
|
|
48076
|
+
// Airlines
|
|
48077
|
+
var airlinesFilter = {
|
|
48078
|
+
label: 'Airlines',
|
|
48079
|
+
property: 'airline',
|
|
48080
|
+
type: 'checkbox',
|
|
48081
|
+
isFrontendFilter: true,
|
|
48082
|
+
options: []
|
|
48083
|
+
};
|
|
48084
|
+
var airlinesFilterMap = new Map();
|
|
48085
|
+
results.map(function (r) {
|
|
48086
|
+
var airlineCode = r.airlineCode;
|
|
48087
|
+
var airlineName = r.airlineName;
|
|
48088
|
+
if (airlineCode && airlineName) {
|
|
48089
|
+
airlinesFilterMap.set(airlineCode, {
|
|
48090
|
+
name: airlineName,
|
|
48091
|
+
code: airlineCode
|
|
46906
48092
|
});
|
|
46907
48093
|
}
|
|
46908
|
-
|
|
46909
|
-
|
|
46910
|
-
|
|
46911
|
-
|
|
46912
|
-
|
|
46913
|
-
|
|
46914
|
-
|
|
46915
|
-
|
|
46916
|
-
|
|
46917
|
-
|
|
46918
|
-
|
|
46919
|
-
|
|
46920
|
-
|
|
46921
|
-
|
|
46922
|
-
|
|
46923
|
-
|
|
48094
|
+
});
|
|
48095
|
+
airlinesFilter.options = Array.from(airlinesFilterMap.values()).map(function (airline) {
|
|
48096
|
+
var _a;
|
|
48097
|
+
return {
|
|
48098
|
+
label: (_a = airline.name) !== null && _a !== void 0 ? _a : airline.code,
|
|
48099
|
+
value: airline.code,
|
|
48100
|
+
isChecked: false
|
|
48101
|
+
};
|
|
48102
|
+
});
|
|
48103
|
+
filters.push(airlinesFilter);
|
|
48104
|
+
// Number of stops
|
|
48105
|
+
var stopsFilter = {
|
|
48106
|
+
label: 'Number of Stops',
|
|
48107
|
+
property: 'numberOfStops',
|
|
48108
|
+
type: 'checkbox',
|
|
48109
|
+
isFrontendFilter: true,
|
|
48110
|
+
options: []
|
|
48111
|
+
};
|
|
48112
|
+
var stopsMap = new Map();
|
|
48113
|
+
results.map(function (result) {
|
|
48114
|
+
var numberOfStops = getNumberOfStops(result.outward);
|
|
48115
|
+
if (!stopsMap.has(numberOfStops)) {
|
|
48116
|
+
stopsMap.set(numberOfStops, { numberOfStops: numberOfStops });
|
|
48117
|
+
}
|
|
48118
|
+
});
|
|
48119
|
+
stopsFilter.options = Array.from(stopsMap.values()).map(function (stop) {
|
|
48120
|
+
return {
|
|
48121
|
+
label: ''.concat(stop.numberOfStops == 0 ? 'direct' : stop.numberOfStops + ' Stop'.concat(stop.numberOfStops !== 1 ? 's' : '')),
|
|
48122
|
+
value: stop.numberOfStops,
|
|
48123
|
+
isChecked: false
|
|
48124
|
+
};
|
|
48125
|
+
});
|
|
48126
|
+
filters.push(stopsFilter);
|
|
48127
|
+
// Departure range
|
|
48128
|
+
var departureRangeFilter = {
|
|
48129
|
+
label: 'Departure Range',
|
|
48130
|
+
property: 'departureRange',
|
|
48131
|
+
type: 'checkbox',
|
|
48132
|
+
isFrontendFilter: true,
|
|
48133
|
+
options: []
|
|
48134
|
+
};
|
|
48135
|
+
var departureRangeMap = new Map();
|
|
48136
|
+
results.map(function (result) {
|
|
48137
|
+
var _a;
|
|
48138
|
+
var departureRange = rangeFromDateTimeInMinutes((_a = getDepartureSegment(result.outward)) === null || _a === void 0 ? void 0 : _a.departureDateTime);
|
|
48139
|
+
if (!departureRangeMap.has(departureRange)) {
|
|
48140
|
+
departureRangeMap.set(departureRange, departureRange);
|
|
48141
|
+
}
|
|
48142
|
+
});
|
|
48143
|
+
departureRangeFilter.options = lodash.orderBy(Array.from(departureRangeMap.values()), ['id'], ['asc']).map(function (range) {
|
|
48144
|
+
return {
|
|
48145
|
+
label: getDepartureRangeName(translations, range),
|
|
48146
|
+
value: range,
|
|
48147
|
+
isChecked: false
|
|
48148
|
+
};
|
|
48149
|
+
});
|
|
48150
|
+
filters.push(departureRangeFilter);
|
|
48151
|
+
// Departure Airport
|
|
48152
|
+
var departureAirportFilter = {
|
|
48153
|
+
label: 'Departure Airport',
|
|
48154
|
+
property: 'departureAirport',
|
|
48155
|
+
type: 'checkbox',
|
|
48156
|
+
isFrontendFilter: true,
|
|
48157
|
+
options: []
|
|
48158
|
+
};
|
|
48159
|
+
var departureAirportsMap = new Map();
|
|
48160
|
+
results.map(function (result) {
|
|
48161
|
+
var departureSegment = getDepartureSegment(result.outward);
|
|
48162
|
+
var departureAirport = departureSegment === null || departureSegment === void 0 ? void 0 : departureSegment.departureAirportCode;
|
|
48163
|
+
if (departureAirport && !departureAirportsMap.has(departureAirport)) {
|
|
48164
|
+
departureAirportsMap.set(departureAirport, {
|
|
48165
|
+
name: (departureSegment === null || departureSegment === void 0 ? void 0 : departureSegment.departureAirportName) + ' (' + departureAirport + ')',
|
|
48166
|
+
code: departureAirport
|
|
46924
48167
|
});
|
|
46925
|
-
|
|
46926
|
-
|
|
46927
|
-
|
|
46928
|
-
|
|
46929
|
-
|
|
46930
|
-
|
|
46931
|
-
|
|
48168
|
+
}
|
|
48169
|
+
});
|
|
48170
|
+
departureAirportFilter.options = Array.from(departureAirportsMap.values()).map(function (airport) {
|
|
48171
|
+
var _a;
|
|
48172
|
+
return {
|
|
48173
|
+
label: (_a = airport.name) !== null && _a !== void 0 ? _a : airport.code,
|
|
48174
|
+
value: airport.code,
|
|
48175
|
+
isChecked: false
|
|
48176
|
+
};
|
|
48177
|
+
});
|
|
48178
|
+
filters.push(departureAirportFilter);
|
|
48179
|
+
// Arrival Airport
|
|
48180
|
+
var arrivalAirportFilter = {
|
|
48181
|
+
label: 'Arrival Airport',
|
|
48182
|
+
property: 'arrivalAirport',
|
|
48183
|
+
type: 'checkbox',
|
|
48184
|
+
isFrontendFilter: true,
|
|
48185
|
+
options: []
|
|
48186
|
+
};
|
|
48187
|
+
var arrivalAirportsMap = new Map();
|
|
48188
|
+
results.map(function (result) {
|
|
48189
|
+
var arrivalSegment = getArrivalSegment(result.outward);
|
|
48190
|
+
var arrivalAirport = arrivalSegment === null || arrivalSegment === void 0 ? void 0 : arrivalSegment.arrivalAirportCode;
|
|
48191
|
+
if (arrivalAirport && !arrivalAirportsMap.has(arrivalAirport)) {
|
|
48192
|
+
arrivalAirportsMap.set(arrivalAirport, {
|
|
48193
|
+
name: (arrivalSegment === null || arrivalSegment === void 0 ? void 0 : arrivalSegment.arrivalAirportName) + ' (' + arrivalAirport + ')',
|
|
48194
|
+
code: arrivalAirport
|
|
46932
48195
|
});
|
|
46933
48196
|
}
|
|
46934
|
-
return updatedFilter;
|
|
46935
48197
|
});
|
|
48198
|
+
arrivalAirportFilter.options = Array.from(arrivalAirportsMap.values()).map(function (airport) {
|
|
48199
|
+
var _a;
|
|
48200
|
+
return {
|
|
48201
|
+
label: (_a = airport.name) !== null && _a !== void 0 ? _a : airport.code,
|
|
48202
|
+
value: airport.code,
|
|
48203
|
+
isChecked: false
|
|
48204
|
+
};
|
|
48205
|
+
});
|
|
48206
|
+
filters.push(arrivalAirportFilter);
|
|
48207
|
+
// Price
|
|
48208
|
+
var priceFilter = {
|
|
48209
|
+
label: 'Price',
|
|
48210
|
+
property: 'price',
|
|
48211
|
+
type: 'slider',
|
|
48212
|
+
isFrontendFilter: true
|
|
48213
|
+
};
|
|
48214
|
+
var prices = results
|
|
48215
|
+
.map(function (r) {
|
|
48216
|
+
var _a;
|
|
48217
|
+
return (_a = r.price) !== null && _a !== void 0 ? _a : 0;
|
|
48218
|
+
})
|
|
48219
|
+
.filter(function (p) {
|
|
48220
|
+
return p > 0;
|
|
48221
|
+
});
|
|
48222
|
+
if (prices.length > 0) {
|
|
48223
|
+
priceFilter.min = Math.floor(Math.min.apply(Math, prices));
|
|
48224
|
+
priceFilter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
48225
|
+
}
|
|
48226
|
+
filters.push(priceFilter);
|
|
48227
|
+
// Travel duration
|
|
48228
|
+
var travelDurationFilter = {
|
|
48229
|
+
label: 'Travel Duration',
|
|
48230
|
+
property: 'travelDuration',
|
|
48231
|
+
type: 'slider',
|
|
48232
|
+
isFrontendFilter: true
|
|
48233
|
+
};
|
|
48234
|
+
var minTravelTimeDuration = Math.min.apply(
|
|
48235
|
+
Math,
|
|
48236
|
+
results.map(function (result) {
|
|
48237
|
+
return result.outward.durationInTicks;
|
|
48238
|
+
})
|
|
48239
|
+
);
|
|
48240
|
+
var maxTravelTimeDuration = Math.max.apply(
|
|
48241
|
+
Math,
|
|
48242
|
+
results.map(function (result) {
|
|
48243
|
+
return result.outward.durationInTicks;
|
|
48244
|
+
})
|
|
48245
|
+
);
|
|
48246
|
+
var minTravelTimeValue = durationInTicksInMinutes(minTravelTimeDuration);
|
|
48247
|
+
var maxTravelTimeValue = durationInTicksInMinutes(maxTravelTimeDuration);
|
|
48248
|
+
if (minTravelTimeValue != null && maxTravelTimeValue != null) {
|
|
48249
|
+
travelDurationFilter.min = minTravelTimeValue;
|
|
48250
|
+
travelDurationFilter.max = maxTravelTimeValue;
|
|
48251
|
+
}
|
|
48252
|
+
filters.push(travelDurationFilter);
|
|
48253
|
+
return filters;
|
|
46936
48254
|
};
|
|
46937
48255
|
var applyFilters = function (results, filters, sortBy) {
|
|
46938
48256
|
var filtered = results.filter(function (r) {
|
|
@@ -47074,6 +48392,147 @@ var applyFiltersToPackageAccoResults = function (results, filters, sortBy) {
|
|
|
47074
48392
|
return 0;
|
|
47075
48393
|
});
|
|
47076
48394
|
};
|
|
48395
|
+
var applyFiltersToPackageFlightResults = function (results, filters, sortBy) {
|
|
48396
|
+
var filtered = results.filter(function (result) {
|
|
48397
|
+
return filters.every(function (filter) {
|
|
48398
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
48399
|
+
if (!filter.isFrontendFilter) return true;
|
|
48400
|
+
// Airline
|
|
48401
|
+
if (filter.property === 'airline') {
|
|
48402
|
+
var selected =
|
|
48403
|
+
(_a = filter.options) === null || _a === void 0
|
|
48404
|
+
? void 0
|
|
48405
|
+
: _a
|
|
48406
|
+
.filter(function (o) {
|
|
48407
|
+
return o.isChecked;
|
|
48408
|
+
})
|
|
48409
|
+
.map(function (o) {
|
|
48410
|
+
return o.value;
|
|
48411
|
+
});
|
|
48412
|
+
if (!selected || selected.length === 0) return true;
|
|
48413
|
+
return selected.includes(result.airlineCode);
|
|
48414
|
+
}
|
|
48415
|
+
// Stops
|
|
48416
|
+
if (filter.property === 'numberOfStops') {
|
|
48417
|
+
var selected =
|
|
48418
|
+
(_b = filter.options) === null || _b === void 0
|
|
48419
|
+
? void 0
|
|
48420
|
+
: _b
|
|
48421
|
+
.filter(function (o) {
|
|
48422
|
+
return o.isChecked;
|
|
48423
|
+
})
|
|
48424
|
+
.map(function (o) {
|
|
48425
|
+
return o.value;
|
|
48426
|
+
});
|
|
48427
|
+
if (!selected || selected.length === 0) return true;
|
|
48428
|
+
return selected.includes(getNumberOfStops(result.outward)) && selected.includes(getNumberOfStops(result.return));
|
|
48429
|
+
}
|
|
48430
|
+
// Departure range
|
|
48431
|
+
if (filter.property === 'departureRange') {
|
|
48432
|
+
var selected =
|
|
48433
|
+
(_c = filter.options) === null || _c === void 0
|
|
48434
|
+
? void 0
|
|
48435
|
+
: _c
|
|
48436
|
+
.filter(function (o) {
|
|
48437
|
+
return o.isChecked;
|
|
48438
|
+
})
|
|
48439
|
+
.map(function (o) {
|
|
48440
|
+
return o.value;
|
|
48441
|
+
});
|
|
48442
|
+
if (!selected || selected.length === 0) return true;
|
|
48443
|
+
return selected.includes(
|
|
48444
|
+
rangeFromDateTimeInMinutes((_d = getDepartureSegment(result.outward)) === null || _d === void 0 ? void 0 : _d.departureDateTime)
|
|
48445
|
+
);
|
|
48446
|
+
}
|
|
48447
|
+
// Departure airport
|
|
48448
|
+
if (filter.property === 'departureAirport') {
|
|
48449
|
+
var selected =
|
|
48450
|
+
(_e = filter.options) === null || _e === void 0
|
|
48451
|
+
? void 0
|
|
48452
|
+
: _e
|
|
48453
|
+
.filter(function (o) {
|
|
48454
|
+
return o.isChecked;
|
|
48455
|
+
})
|
|
48456
|
+
.map(function (o) {
|
|
48457
|
+
return o.value;
|
|
48458
|
+
});
|
|
48459
|
+
if (!selected || selected.length === 0) return true;
|
|
48460
|
+
var departureAirportCode = (_f = getDepartureSegment(result.outward)) === null || _f === void 0 ? void 0 : _f.departureAirportCode;
|
|
48461
|
+
if (!departureAirportCode) return false;
|
|
48462
|
+
return selected.includes(departureAirportCode);
|
|
48463
|
+
}
|
|
48464
|
+
// Arrival airport
|
|
48465
|
+
if (filter.property === 'arrivalAirport') {
|
|
48466
|
+
var selected =
|
|
48467
|
+
(_g = filter.options) === null || _g === void 0
|
|
48468
|
+
? void 0
|
|
48469
|
+
: _g
|
|
48470
|
+
.filter(function (o) {
|
|
48471
|
+
return o.isChecked;
|
|
48472
|
+
})
|
|
48473
|
+
.map(function (o) {
|
|
48474
|
+
return o.value;
|
|
48475
|
+
});
|
|
48476
|
+
if (!selected || selected.length === 0) return true;
|
|
48477
|
+
var arrivalAirportCode = (_h = getArrivalSegment(result.outward)) === null || _h === void 0 ? void 0 : _h.arrivalAirportCode;
|
|
48478
|
+
if (!arrivalAirportCode) return false;
|
|
48479
|
+
return selected.includes(arrivalAirportCode);
|
|
48480
|
+
}
|
|
48481
|
+
// PRICE
|
|
48482
|
+
if (filter.property === 'price') {
|
|
48483
|
+
if (filter.selectedMin != null && result.price < filter.selectedMin) return false;
|
|
48484
|
+
if (filter.selectedMax != null && result.price > filter.selectedMax) return false;
|
|
48485
|
+
return true;
|
|
48486
|
+
}
|
|
48487
|
+
// Travel times
|
|
48488
|
+
if (filter.property === 'travelDuration') {
|
|
48489
|
+
if (
|
|
48490
|
+
filter.selectedMin != null &&
|
|
48491
|
+
durationInTicksInMinutes((_j = result.outward) === null || _j === void 0 ? void 0 : _j.durationInTicks) < filter.selectedMin
|
|
48492
|
+
)
|
|
48493
|
+
return false;
|
|
48494
|
+
if (
|
|
48495
|
+
filter.selectedMax != null &&
|
|
48496
|
+
durationInTicksInMinutes((_k = result.outward) === null || _k === void 0 ? void 0 : _k.durationInTicks) > filter.selectedMax
|
|
48497
|
+
)
|
|
48498
|
+
return false;
|
|
48499
|
+
return true;
|
|
48500
|
+
}
|
|
48501
|
+
return true;
|
|
48502
|
+
});
|
|
48503
|
+
});
|
|
48504
|
+
// SORTING
|
|
48505
|
+
if (!sortBy || sortBy.label === 'default') {
|
|
48506
|
+
return filtered;
|
|
48507
|
+
}
|
|
48508
|
+
if (sortBy.label === 'departureTime') {
|
|
48509
|
+
return lodash.orderBy(
|
|
48510
|
+
results,
|
|
48511
|
+
[
|
|
48512
|
+
function (result) {
|
|
48513
|
+
var _a;
|
|
48514
|
+
return (_a = getDepartureSegment(result.outward)) === null || _a === void 0 ? void 0 : _a.departureDateTime;
|
|
48515
|
+
}
|
|
48516
|
+
],
|
|
48517
|
+
[sortBy.direction] // or "desc"
|
|
48518
|
+
);
|
|
48519
|
+
} else if (sortBy.label === 'durationInTicks') {
|
|
48520
|
+
return lodash.orderBy(
|
|
48521
|
+
results,
|
|
48522
|
+
[
|
|
48523
|
+
function (result) {
|
|
48524
|
+
var _a, _b;
|
|
48525
|
+
return durationInTicksInMinutes(
|
|
48526
|
+
(_b = (_a = result.outward) === null || _a === void 0 ? void 0 : _a.durationInTicks) !== null && _b !== void 0 ? _b : 0
|
|
48527
|
+
);
|
|
48528
|
+
}
|
|
48529
|
+
],
|
|
48530
|
+
[sortBy.direction] // or "desc"
|
|
48531
|
+
);
|
|
48532
|
+
} else {
|
|
48533
|
+
return lodash.orderBy(results, [sortBy.label], [sortBy.direction]);
|
|
48534
|
+
}
|
|
48535
|
+
};
|
|
47077
48536
|
|
|
47078
48537
|
var getSelectedOptionsPerRoom = function (details) {
|
|
47079
48538
|
var _a;
|
|
@@ -47270,6 +48729,227 @@ var FullItinerary = function (_a) {
|
|
|
47270
48729
|
return React__default['default'].createElement('div', { ref: hostRef });
|
|
47271
48730
|
};
|
|
47272
48731
|
|
|
48732
|
+
var getExcursionContentWithUpdatedPrice = function (contents, totalPrice, currencyCode) {
|
|
48733
|
+
if (!contents) return '';
|
|
48734
|
+
var decodedHtml = he.decode(contents);
|
|
48735
|
+
var parser = new DOMParser();
|
|
48736
|
+
var doc = parser.parseFromString(decodedHtml, 'text/html');
|
|
48737
|
+
var priceElement = doc.querySelector('[data-excursion-price]');
|
|
48738
|
+
if (priceElement) {
|
|
48739
|
+
priceElement.textContent = new Intl.NumberFormat('nl-BE', {
|
|
48740
|
+
style: 'currency',
|
|
48741
|
+
currency: currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR'
|
|
48742
|
+
}).format(totalPrice);
|
|
48743
|
+
}
|
|
48744
|
+
return doc.body.innerHTML;
|
|
48745
|
+
};
|
|
48746
|
+
var DayByDayExcursions = function () {
|
|
48747
|
+
var _a;
|
|
48748
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
48749
|
+
var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
|
|
48750
|
+
var dispatch = reactRedux.useDispatch();
|
|
48751
|
+
var confirmedExcursionsByDay = reactRedux.useSelector(function (state) {
|
|
48752
|
+
return state.searchResults;
|
|
48753
|
+
}).confirmedExcursionsByDay;
|
|
48754
|
+
var selectedPackagingAccoResult = reactRedux.useSelector(selectSelectedPackagingAccoResult);
|
|
48755
|
+
var stayDates = React.useMemo(
|
|
48756
|
+
function () {
|
|
48757
|
+
if (
|
|
48758
|
+
!(selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.fromDate) ||
|
|
48759
|
+
!(selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.toDate)
|
|
48760
|
+
) {
|
|
48761
|
+
return [];
|
|
48762
|
+
}
|
|
48763
|
+
return getDatesBetween(selectedPackagingAccoResult.fromDate, selectedPackagingAccoResult.toDate);
|
|
48764
|
+
},
|
|
48765
|
+
[
|
|
48766
|
+
selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.fromDate,
|
|
48767
|
+
selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.toDate
|
|
48768
|
+
]
|
|
48769
|
+
);
|
|
48770
|
+
var handleSearchExcursions = function (day) {
|
|
48771
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
48772
|
+
if (!selectedPackagingAccoResult) {
|
|
48773
|
+
return;
|
|
48774
|
+
}
|
|
48775
|
+
var searchParams = {
|
|
48776
|
+
date: day.toISOString(),
|
|
48777
|
+
fromDate: day.toISOString(),
|
|
48778
|
+
toDate: day.toISOString(),
|
|
48779
|
+
countryId: selectedPackagingAccoResult.countryId,
|
|
48780
|
+
regionId: selectedPackagingAccoResult.regionId,
|
|
48781
|
+
oordId: selectedPackagingAccoResult.oordId,
|
|
48782
|
+
locationId: selectedPackagingAccoResult.locationId,
|
|
48783
|
+
locationName: selectedPackagingAccoResult.locationName,
|
|
48784
|
+
accommodationCode:
|
|
48785
|
+
(_e =
|
|
48786
|
+
(_d =
|
|
48787
|
+
(_c =
|
|
48788
|
+
(_b = (_a = selectedPackagingAccoResult.rooms) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.options) ===
|
|
48789
|
+
null || _c === void 0
|
|
48790
|
+
? void 0
|
|
48791
|
+
: _c.find(function (option) {
|
|
48792
|
+
return option.isSelected;
|
|
48793
|
+
})) === null || _d === void 0
|
|
48794
|
+
? void 0
|
|
48795
|
+
: _d.accommodationCode) !== null && _e !== void 0
|
|
48796
|
+
? _e
|
|
48797
|
+
: null,
|
|
48798
|
+
accommodationName:
|
|
48799
|
+
(_k =
|
|
48800
|
+
(_j =
|
|
48801
|
+
(_h =
|
|
48802
|
+
(_g = (_f = selectedPackagingAccoResult.rooms) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.options) ===
|
|
48803
|
+
null || _h === void 0
|
|
48804
|
+
? void 0
|
|
48805
|
+
: _h.find(function (option) {
|
|
48806
|
+
return option.isSelected;
|
|
48807
|
+
})) === null || _j === void 0
|
|
48808
|
+
? void 0
|
|
48809
|
+
: _j.accommodationName) !== null && _k !== void 0
|
|
48810
|
+
? _k
|
|
48811
|
+
: null,
|
|
48812
|
+
hotelCode: selectedPackagingAccoResult.code,
|
|
48813
|
+
hotelName: selectedPackagingAccoResult.name,
|
|
48814
|
+
rooms:
|
|
48815
|
+
(_l = selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.rooms) !== null &&
|
|
48816
|
+
_l !== void 0
|
|
48817
|
+
? _l
|
|
48818
|
+
: []
|
|
48819
|
+
};
|
|
48820
|
+
dispatch(setExcursionSearchParams(searchParams));
|
|
48821
|
+
dispatch(setFlyInIsOpen(true));
|
|
48822
|
+
dispatch(setFlyInType('excursion-results'));
|
|
48823
|
+
};
|
|
48824
|
+
var getSelectedOptionsSummary = function (excursion) {
|
|
48825
|
+
var options = excursion.rooms.flatMap(function (room) {
|
|
48826
|
+
var _a;
|
|
48827
|
+
return (_a = room.options) !== null && _a !== void 0 ? _a : [];
|
|
48828
|
+
});
|
|
48829
|
+
return options.filter(function (option) {
|
|
48830
|
+
return option.isSelected;
|
|
48831
|
+
});
|
|
48832
|
+
};
|
|
48833
|
+
if (!selectedPackagingAccoResult || stayDates.length === 0) {
|
|
48834
|
+
return null;
|
|
48835
|
+
}
|
|
48836
|
+
return React__default['default'].createElement(
|
|
48837
|
+
React__default['default'].Fragment,
|
|
48838
|
+
null,
|
|
48839
|
+
stayDates.map(function (day) {
|
|
48840
|
+
var _a;
|
|
48841
|
+
var dayKey = dateFns.format(day, 'yyyy-MM-dd');
|
|
48842
|
+
var formattedDay = dateFns.format(day, 'd');
|
|
48843
|
+
var formattedMonth = dateFns.format(day, 'MMM');
|
|
48844
|
+
var confirmedExcursions = (_a = confirmedExcursionsByDay[dayKey]) !== null && _a !== void 0 ? _a : [];
|
|
48845
|
+
return React__default['default'].createElement(
|
|
48846
|
+
React__default['default'].Fragment,
|
|
48847
|
+
{ key: dayKey },
|
|
48848
|
+
React__default['default'].createElement(
|
|
48849
|
+
'div',
|
|
48850
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
48851
|
+
React__default['default'].createElement(
|
|
48852
|
+
'div',
|
|
48853
|
+
{ className: 'search__results__label__date' },
|
|
48854
|
+
React__default['default'].createElement('p', { className: 'search__results__label__date-date' }, formattedDay),
|
|
48855
|
+
React__default['default'].createElement('p', null, formattedMonth)
|
|
48856
|
+
),
|
|
48857
|
+
React__default['default'].createElement(
|
|
48858
|
+
'div',
|
|
48859
|
+
{ className: 'search__results__label__text' },
|
|
48860
|
+
React__default['default'].createElement(
|
|
48861
|
+
'h3',
|
|
48862
|
+
null,
|
|
48863
|
+
translations.SRP.SELECT,
|
|
48864
|
+
' ',
|
|
48865
|
+
React__default['default'].createElement('strong', null, translations.SRP.EXCURSION)
|
|
48866
|
+
)
|
|
48867
|
+
)
|
|
48868
|
+
),
|
|
48869
|
+
React__default['default'].createElement(
|
|
48870
|
+
'div',
|
|
48871
|
+
{ className: 'search__results__cards__actions' },
|
|
48872
|
+
React__default['default'].createElement('span', null, 'Accommodation for this day: ', selectedPackagingAccoResult.name),
|
|
48873
|
+
React__default['default'].createElement(
|
|
48874
|
+
'button',
|
|
48875
|
+
{
|
|
48876
|
+
type: 'button',
|
|
48877
|
+
className: 'cta cta--secondary',
|
|
48878
|
+
onClick: function () {
|
|
48879
|
+
return handleSearchExcursions(day);
|
|
48880
|
+
}
|
|
48881
|
+
},
|
|
48882
|
+
confirmedExcursions.length > 0 ? 'Add another excursion' : ''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.EXCURSION)
|
|
48883
|
+
)
|
|
48884
|
+
),
|
|
48885
|
+
React__default['default'].createElement(
|
|
48886
|
+
'div',
|
|
48887
|
+
{ className: 'search__results__cards search__results__cards--compact' },
|
|
48888
|
+
confirmedExcursions &&
|
|
48889
|
+
confirmedExcursions.length > 0 &&
|
|
48890
|
+
confirmedExcursions.map(function (excursion) {
|
|
48891
|
+
var selectedOptions = getSelectedOptionsSummary(excursion);
|
|
48892
|
+
var totalPrice = selectedOptions.reduce(function (sum, option) {
|
|
48893
|
+
return sum + (option.price || 0);
|
|
48894
|
+
}, 0);
|
|
48895
|
+
var updatedContents = getExcursionContentWithUpdatedPrice(excursion.contents, totalPrice, excursion.currencyCode);
|
|
48896
|
+
return React__default['default'].createElement(
|
|
48897
|
+
'div',
|
|
48898
|
+
{
|
|
48899
|
+
key: excursion.code,
|
|
48900
|
+
className: 'search__result-card__wrapper search__result-card__wrapper--custom',
|
|
48901
|
+
onMouseEnter: function (e) {
|
|
48902
|
+
return (e.currentTarget.style.transform = 'scale(1.02)');
|
|
48903
|
+
},
|
|
48904
|
+
onMouseLeave: function (e) {
|
|
48905
|
+
return (e.currentTarget.style.transform = 'scale(1)');
|
|
48906
|
+
}
|
|
48907
|
+
},
|
|
48908
|
+
React__default['default'].createElement('div', { dangerouslySetInnerHTML: { __html: updatedContents } }),
|
|
48909
|
+
React__default['default'].createElement(
|
|
48910
|
+
'div',
|
|
48911
|
+
{ className: 'search__result-card__content--extra' },
|
|
48912
|
+
React__default['default'].createElement(
|
|
48913
|
+
'div',
|
|
48914
|
+
{ className: 'search__result-card__content__wrapper' },
|
|
48915
|
+
React__default['default'].createElement(
|
|
48916
|
+
'div',
|
|
48917
|
+
{ className: 'search__result-card__options' },
|
|
48918
|
+
selectedOptions.length > 0 &&
|
|
48919
|
+
selectedOptions.map(function (option) {
|
|
48920
|
+
return React__default['default'].createElement(
|
|
48921
|
+
'div',
|
|
48922
|
+
{ className: 'search__result-card__option', key: option.guid },
|
|
48923
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-ticket', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
48924
|
+
React__default['default'].createElement('span', null, option.accommodationName)
|
|
48925
|
+
);
|
|
48926
|
+
})
|
|
48927
|
+
)
|
|
48928
|
+
)
|
|
48929
|
+
),
|
|
48930
|
+
React__default['default'].createElement(
|
|
48931
|
+
'div',
|
|
48932
|
+
{ className: 'search__result-card__footer' },
|
|
48933
|
+
React__default['default'].createElement(
|
|
48934
|
+
'button',
|
|
48935
|
+
{
|
|
48936
|
+
type: 'button',
|
|
48937
|
+
className: 'cta cta--remove',
|
|
48938
|
+
onClick: function () {
|
|
48939
|
+
return dispatch(removeConfirmedExcursionForDay({ dayKey: dayKey, excursionCode: excursion.code }));
|
|
48940
|
+
}
|
|
48941
|
+
},
|
|
48942
|
+
'Remove'
|
|
48943
|
+
)
|
|
48944
|
+
)
|
|
48945
|
+
);
|
|
48946
|
+
})
|
|
48947
|
+
)
|
|
48948
|
+
);
|
|
48949
|
+
})
|
|
48950
|
+
);
|
|
48951
|
+
};
|
|
48952
|
+
|
|
47273
48953
|
var SearchResultsContainer = function () {
|
|
47274
48954
|
var _a, _b;
|
|
47275
48955
|
var currentSearch = typeof window !== 'undefined' ? window.location.search : '';
|
|
@@ -47282,28 +48962,31 @@ var SearchResultsContainer = function () {
|
|
|
47282
48962
|
results = _c.results,
|
|
47283
48963
|
filteredResults = _c.filteredResults,
|
|
47284
48964
|
packagingAccoResults = _c.packagingAccoResults,
|
|
47285
|
-
filteredPackagingAccoResults = _c.filteredPackagingAccoResults
|
|
47286
|
-
|
|
47287
|
-
var isLoading = _c.isLoading,
|
|
48965
|
+
filteredPackagingAccoResults = _c.filteredPackagingAccoResults,
|
|
48966
|
+
isLoading = _c.isLoading,
|
|
47288
48967
|
flightsLoading = _c.flightsLoading,
|
|
48968
|
+
initialFilters = _c.initialFilters,
|
|
47289
48969
|
filters = _c.filters,
|
|
48970
|
+
flightFilters = _c.flightFilters,
|
|
47290
48971
|
selectedSortType = _c.selectedSortType,
|
|
48972
|
+
selectedFlightSortType = _c.selectedFlightSortType,
|
|
47291
48973
|
selectedSearchResult = _c.selectedSearchResult,
|
|
47292
48974
|
selectedPackagingAccoResultCode = _c.selectedPackagingAccoResultCode,
|
|
47293
48975
|
flyInIsOpen = _c.flyInIsOpen,
|
|
47294
48976
|
packagingAccoSearchDetails = _c.packagingAccoSearchDetails,
|
|
47295
48977
|
editablePackagingEntry = _c.editablePackagingEntry,
|
|
47296
48978
|
transactionId = _c.transactionId,
|
|
47297
|
-
|
|
48979
|
+
flyInType = _c.flyInType,
|
|
47298
48980
|
itinerary = _c.itinerary,
|
|
47299
|
-
packagingFlightResults = _c.packagingFlightResults
|
|
48981
|
+
packagingFlightResults = _c.packagingFlightResults,
|
|
48982
|
+
confirmedExcursionsByDay = _c.confirmedExcursionsByDay;
|
|
47300
48983
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
47301
48984
|
var _d = React.useState(false),
|
|
47302
48985
|
initialFiltersSet = _d[0],
|
|
47303
48986
|
setInitialFiltersSet = _d[1];
|
|
47304
|
-
var _e = React.useState(
|
|
47305
|
-
|
|
47306
|
-
|
|
48987
|
+
var _e = React.useState(false),
|
|
48988
|
+
initialFlightFiltersSet = _e[0],
|
|
48989
|
+
setInitialFlightFiltersSet = _e[1];
|
|
47307
48990
|
var _f = React.useState(false),
|
|
47308
48991
|
filtersOpen = _f[0],
|
|
47309
48992
|
setFiltersOpen = _f[1];
|
|
@@ -47323,9 +49006,6 @@ var SearchResultsContainer = function () {
|
|
|
47323
49006
|
selectedAccommodationSeed = _l[0],
|
|
47324
49007
|
setSelectedAccommodationSeed = _l[1];
|
|
47325
49008
|
var skipInitialPackagingAccoDetailsRef = React.useRef(false);
|
|
47326
|
-
var _m = React.useState(false),
|
|
47327
|
-
showAllOutwardFlights = _m[0],
|
|
47328
|
-
setShowAllOutwardFlights = _m[1];
|
|
47329
49009
|
var panelRef = React.useRef(null);
|
|
47330
49010
|
var sortByTypes = [
|
|
47331
49011
|
{ direction: 'asc', label: 'default' },
|
|
@@ -47643,7 +49323,7 @@ var SearchResultsContainer = function () {
|
|
|
47643
49323
|
if (!seed) return [2 /*return*/];
|
|
47644
49324
|
setDetailsIsLoading(true);
|
|
47645
49325
|
setSelectedAccommodationSeed(seed);
|
|
47646
|
-
dispatch(
|
|
49326
|
+
dispatch(setFlyInType('acco-results'));
|
|
47647
49327
|
handleFlyInToggle(true);
|
|
47648
49328
|
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47649
49329
|
case 1:
|
|
@@ -47801,7 +49481,7 @@ var SearchResultsContainer = function () {
|
|
|
47801
49481
|
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47802
49482
|
if (!initialFiltersSet) {
|
|
47803
49483
|
dispatch(resetFilters(enrichedFilters));
|
|
47804
|
-
setInitialFilters(enrichedFilters);
|
|
49484
|
+
dispatch(setInitialFilters(enrichedFilters));
|
|
47805
49485
|
setInitialFiltersSet(true);
|
|
47806
49486
|
}
|
|
47807
49487
|
dispatch(setResults(packageSearchResults));
|
|
@@ -47876,11 +49556,7 @@ var SearchResultsContainer = function () {
|
|
|
47876
49556
|
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47877
49557
|
case 1:
|
|
47878
49558
|
packageAccoSearchResults = _d.sent();
|
|
47879
|
-
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47880
|
-
packageAccoSearchResults,
|
|
47881
|
-
context.filters,
|
|
47882
|
-
(_a = context.tags) !== null && _a !== void 0 ? _a : []
|
|
47883
|
-
);
|
|
49559
|
+
enrichedFilters = enrichFiltersWithPackageAccoResults(packageAccoSearchResults, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47884
49560
|
if (!initialFiltersSet) {
|
|
47885
49561
|
dispatch(resetFilters(enrichedFilters));
|
|
47886
49562
|
setInitialFilters(enrichedFilters);
|
|
@@ -47926,11 +49602,12 @@ var SearchResultsContainer = function () {
|
|
|
47926
49602
|
};
|
|
47927
49603
|
var runFlightSearch = function (currentTransactionId, seed) {
|
|
47928
49604
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47929
|
-
var config, searchRequest, packageFlightSearchResults, firstResult, err_4;
|
|
47930
|
-
|
|
47931
|
-
|
|
49605
|
+
var config, searchRequest, packageFlightSearchResults, enrichedFilters, initialFilteredResults, firstResult, err_4;
|
|
49606
|
+
var _a;
|
|
49607
|
+
return __generator(this, function (_b) {
|
|
49608
|
+
switch (_b.label) {
|
|
47932
49609
|
case 0:
|
|
47933
|
-
|
|
49610
|
+
_b.trys.push([0, 2, , 3]);
|
|
47934
49611
|
if (!context) return [2 /*return*/];
|
|
47935
49612
|
dispatch(setFlightsLoading(true));
|
|
47936
49613
|
config = {
|
|
@@ -47941,17 +49618,31 @@ var SearchResultsContainer = function () {
|
|
|
47941
49618
|
searchRequest.agentId = context.agentId;
|
|
47942
49619
|
return [4 /*yield*/, build.searchPackagingFlights(config, searchRequest)];
|
|
47943
49620
|
case 1:
|
|
47944
|
-
packageFlightSearchResults =
|
|
49621
|
+
packageFlightSearchResults = _b.sent();
|
|
49622
|
+
enrichedFilters = enrichFiltersWithPackageFlightResults(
|
|
49623
|
+
packageFlightSearchResults,
|
|
49624
|
+
(_a = context.tags) !== null && _a !== void 0 ? _a : [],
|
|
49625
|
+
translations
|
|
49626
|
+
);
|
|
49627
|
+
if (!initialFlightFiltersSet) {
|
|
49628
|
+
dispatch(resetFlightFilters(enrichedFilters));
|
|
49629
|
+
dispatch(setInitialFlightFilters(enrichedFilters));
|
|
49630
|
+
setInitialFlightFiltersSet(true);
|
|
49631
|
+
}
|
|
47945
49632
|
dispatch(setPackagingFlightResults(packageFlightSearchResults));
|
|
47946
|
-
|
|
47947
|
-
|
|
47948
|
-
|
|
47949
|
-
|
|
49633
|
+
initialFilteredResults = applyFiltersToPackageFlightResults(packageFlightSearchResults, filters, null);
|
|
49634
|
+
dispatch(setFilteredPackagingFlightResults(initialFilteredResults));
|
|
49635
|
+
if (initialFilteredResults.length > 0) {
|
|
49636
|
+
firstResult = lodash.first(packageFlightSearchResults);
|
|
49637
|
+
if (firstResult) {
|
|
49638
|
+
dispatch(setSelectedOutwardKey(getFlightKey(firstResult.outward.segments)));
|
|
49639
|
+
dispatch(setSelectedReturnKey(getFlightKey(firstResult.return.segments)));
|
|
49640
|
+
}
|
|
47950
49641
|
}
|
|
47951
49642
|
dispatch(setFlightsLoading(false));
|
|
47952
49643
|
return [3 /*break*/, 3];
|
|
47953
49644
|
case 2:
|
|
47954
|
-
err_4 =
|
|
49645
|
+
err_4 = _b.sent();
|
|
47955
49646
|
console.error('FlightSearch failed', err_4);
|
|
47956
49647
|
dispatch(setFlightsLoading(false));
|
|
47957
49648
|
return [3 /*break*/, 3];
|
|
@@ -48173,6 +49864,7 @@ var SearchResultsContainer = function () {
|
|
|
48173
49864
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour
|
|
48174
49865
|
) {
|
|
48175
49866
|
handleFlyInToggle(true);
|
|
49867
|
+
dispatch(setFlyInType('acco-details'));
|
|
48176
49868
|
}
|
|
48177
49869
|
_f.label = 1;
|
|
48178
49870
|
case 1:
|
|
@@ -48264,13 +49956,15 @@ var SearchResultsContainer = function () {
|
|
|
48264
49956
|
if (selectedPackagingAccoResultCode) {
|
|
48265
49957
|
fetchPackagingAccoSearchDetails();
|
|
48266
49958
|
}
|
|
48267
|
-
dispatch(setAccommodationFlyInStep('details'));
|
|
48268
49959
|
},
|
|
48269
49960
|
[selectedSearchResult, selectedPackagingAccoResultCode]
|
|
48270
49961
|
);
|
|
48271
49962
|
React.useEffect(
|
|
48272
49963
|
function () {
|
|
48273
|
-
if (
|
|
49964
|
+
if (
|
|
49965
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
49966
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight
|
|
49967
|
+
) {
|
|
48274
49968
|
var filteredPackageAccoResults = applyFiltersToPackageAccoResults(packagingAccoResults, filters, selectedSortType);
|
|
48275
49969
|
dispatch(setFilteredPackagingAccoResults(filteredPackageAccoResults));
|
|
48276
49970
|
} else {
|
|
@@ -48280,6 +49974,15 @@ var SearchResultsContainer = function () {
|
|
|
48280
49974
|
},
|
|
48281
49975
|
[filters, results, packagingAccoResults, selectedSortType]
|
|
48282
49976
|
);
|
|
49977
|
+
React.useEffect(
|
|
49978
|
+
function () {
|
|
49979
|
+
if ((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight) {
|
|
49980
|
+
var filteredPackageFlightResults = applyFiltersToPackageFlightResults(packagingFlightResults, flightFilters, selectedFlightSortType);
|
|
49981
|
+
dispatch(setFilteredPackagingFlightResults(filteredPackageFlightResults));
|
|
49982
|
+
}
|
|
49983
|
+
},
|
|
49984
|
+
[flightFilters, packagingFlightResults, selectedFlightSortType]
|
|
49985
|
+
);
|
|
48283
49986
|
React.useEffect(
|
|
48284
49987
|
function () {
|
|
48285
49988
|
setInitialFiltersSet(false);
|
|
@@ -48354,7 +50057,6 @@ var SearchResultsContainer = function () {
|
|
|
48354
50057
|
return [4 /*yield*/, build.getItinerary(config, request)];
|
|
48355
50058
|
case 2:
|
|
48356
50059
|
itinerary_1 = _c.sent();
|
|
48357
|
-
console.log('Fetched itinerary', itinerary_1);
|
|
48358
50060
|
dispatch(setItinerary(itinerary_1));
|
|
48359
50061
|
setItineraryIsLoading(false);
|
|
48360
50062
|
return [3 /*break*/, 4];
|
|
@@ -48375,37 +50077,22 @@ var SearchResultsContainer = function () {
|
|
|
48375
50077
|
[editablePackagingEntry]
|
|
48376
50078
|
);
|
|
48377
50079
|
// Flight selection
|
|
48378
|
-
|
|
48379
|
-
|
|
48380
|
-
|
|
48381
|
-
var
|
|
48382
|
-
|
|
48383
|
-
|
|
48384
|
-
var
|
|
48385
|
-
|
|
48386
|
-
|
|
48387
|
-
packagingFlightResults.forEach(function (flight) {
|
|
48388
|
-
var key = getFlightKey(flight.outward.segments);
|
|
48389
|
-
if (!map.has(key)) {
|
|
48390
|
-
map.set(key, flight);
|
|
48391
|
-
}
|
|
48392
|
-
});
|
|
48393
|
-
return Array.from(map.values());
|
|
48394
|
-
},
|
|
48395
|
-
[packagingFlightResults]
|
|
48396
|
-
);
|
|
48397
|
-
var _q = React.useState([]),
|
|
48398
|
-
uniqueReturnFlights = _q[0],
|
|
48399
|
-
setUniqueReturnFlights = _q[1];
|
|
50080
|
+
// const [selectedOutwardKey, setSelectedOutwardKey] = useState<string | null>(null);
|
|
50081
|
+
// const [selectedReturnKey, setSelectedReturnKey] = useState<string | null>(null);
|
|
50082
|
+
var selectedOutwardKey = reactRedux.useSelector(selectSelectedOutwardKey);
|
|
50083
|
+
var selectedReturnKey = reactRedux.useSelector(selectSelectedReturnKey);
|
|
50084
|
+
var uniqueOutwardFlights = reactRedux.useSelector(selectUniqueOutwardFlights);
|
|
50085
|
+
var uniqueReturnFlights = reactRedux.useSelector(selectUniqueReturnFlights);
|
|
50086
|
+
var selectedOutward = reactRedux.useSelector(selectSelectedOutward);
|
|
50087
|
+
var selectedReturn = reactRedux.useSelector(selectSelectedReturn);
|
|
50088
|
+
var selectedCombinationFlight = reactRedux.useSelector(selectSelectedCombinationFlight);
|
|
48400
50089
|
React.useEffect(
|
|
48401
50090
|
function () {
|
|
48402
50091
|
var _a;
|
|
48403
50092
|
if (!selectedOutwardKey) {
|
|
48404
|
-
|
|
48405
|
-
setSelectedReturnKey(null);
|
|
50093
|
+
dispatch(setSelectedReturnKey(null));
|
|
48406
50094
|
return;
|
|
48407
50095
|
}
|
|
48408
|
-
// Filter combinations that match selected outward fare
|
|
48409
50096
|
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
48410
50097
|
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48411
50098
|
});
|
|
@@ -48417,44 +50104,26 @@ var SearchResultsContainer = function () {
|
|
|
48417
50104
|
}
|
|
48418
50105
|
});
|
|
48419
50106
|
var returns = Array.from(returnMap.values());
|
|
48420
|
-
|
|
48421
|
-
var firstReturnKey = returns.length > 0 ? getFlightKey(
|
|
48422
|
-
if (
|
|
48423
|
-
|
|
50107
|
+
var segments = (_a = lodash.first(returns)) === null || _a === void 0 ? void 0 : _a.return.segments;
|
|
50108
|
+
var firstReturnKey = returns.length > 0 && segments ? getFlightKey(segments) : null;
|
|
50109
|
+
if (
|
|
50110
|
+
!returns.some(function (x) {
|
|
50111
|
+
return getFlightKey(x.return.segments) === selectedReturnKey;
|
|
50112
|
+
})
|
|
50113
|
+
) {
|
|
50114
|
+
dispatch(setSelectedReturnKey(firstReturnKey));
|
|
48424
50115
|
}
|
|
48425
50116
|
},
|
|
48426
|
-
[selectedOutwardKey, packagingFlightResults]
|
|
50117
|
+
[selectedOutwardKey, packagingFlightResults, selectedReturnKey, dispatch]
|
|
48427
50118
|
);
|
|
48428
|
-
var
|
|
48429
|
-
function () {
|
|
48430
|
-
if (!selectedOutwardKey) return null;
|
|
48431
|
-
return (
|
|
48432
|
-
packagingFlightResults.find(function (flight) {
|
|
48433
|
-
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48434
|
-
}) || null
|
|
48435
|
-
);
|
|
48436
|
-
},
|
|
48437
|
-
[packagingFlightResults, selectedOutwardKey]
|
|
48438
|
-
);
|
|
48439
|
-
var selectedReturn = React__default['default'].useMemo(
|
|
48440
|
-
function () {
|
|
48441
|
-
if (!selectedReturnKey) return null;
|
|
48442
|
-
return (
|
|
48443
|
-
packagingFlightResults.find(function (flight) {
|
|
48444
|
-
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48445
|
-
}) || null
|
|
48446
|
-
);
|
|
48447
|
-
},
|
|
48448
|
-
[packagingFlightResults, selectedReturnKey]
|
|
48449
|
-
);
|
|
48450
|
-
var selectedCombinationFlight = React__default['default'].useMemo(
|
|
50119
|
+
var visibleOutwardFlights = React__default['default'].useMemo(
|
|
48451
50120
|
function () {
|
|
48452
|
-
|
|
48453
|
-
|
|
48454
|
-
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
50121
|
+
var withoutSelected = uniqueOutwardFlights.filter(function (x) {
|
|
50122
|
+
return getFlightKey(x.outward.segments) !== selectedOutwardKey;
|
|
48455
50123
|
});
|
|
50124
|
+
return withoutSelected.slice(0, 3);
|
|
48456
50125
|
},
|
|
48457
|
-
[
|
|
50126
|
+
[uniqueOutwardFlights, selectedOutwardKey]
|
|
48458
50127
|
);
|
|
48459
50128
|
// TODO: get details for selected combination flight and show in fly-in
|
|
48460
50129
|
// useEffect(() => {
|
|
@@ -48463,6 +50132,7 @@ var SearchResultsContainer = function () {
|
|
|
48463
50132
|
// // onFlightSearch(selectedCombinationFlight); // Trigger search to update accommodation options based on selected flight
|
|
48464
50133
|
// dispatch(setFlyInIsOpen(true));
|
|
48465
50134
|
// }, [selectedCombinationFlight, dispatch]);
|
|
50135
|
+
// Build packagingEntry
|
|
48466
50136
|
React.useEffect(
|
|
48467
50137
|
function () {
|
|
48468
50138
|
var _a, _b, _c, _d;
|
|
@@ -48478,6 +50148,7 @@ var SearchResultsContainer = function () {
|
|
|
48478
50148
|
selectedHotelCode: selectedPackagingAccoResultCode,
|
|
48479
50149
|
accommodationResults: packagingAccoResults,
|
|
48480
50150
|
selectedFlight: selectedCombinationFlight !== null && selectedCombinationFlight !== void 0 ? selectedCombinationFlight : null,
|
|
50151
|
+
confirmedExcursionsByDay: confirmedExcursionsByDay,
|
|
48481
50152
|
seed: seed,
|
|
48482
50153
|
transactionId:
|
|
48483
50154
|
(_c =
|
|
@@ -48490,6 +50161,7 @@ var SearchResultsContainer = function () {
|
|
|
48490
50161
|
: '',
|
|
48491
50162
|
language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
48492
50163
|
});
|
|
50164
|
+
console.log('Built nextEntry', nextEntry);
|
|
48493
50165
|
if (!nextEntry) return;
|
|
48494
50166
|
dispatch(setEditablePackagingEntry(nextEntry));
|
|
48495
50167
|
if (selectedCombinationFlight) {
|
|
@@ -48503,6 +50175,7 @@ var SearchResultsContainer = function () {
|
|
|
48503
50175
|
packagingAccoResults,
|
|
48504
50176
|
packagingAccoSearchDetails,
|
|
48505
50177
|
selectedCombinationFlight,
|
|
50178
|
+
confirmedExcursionsByDay,
|
|
48506
50179
|
transactionId,
|
|
48507
50180
|
dispatch
|
|
48508
50181
|
]
|
|
@@ -48517,56 +50190,103 @@ var SearchResultsContainer = function () {
|
|
|
48517
50190
|
return line.serviceType !== FLIGHT_SERVICE_TYPE;
|
|
48518
50191
|
});
|
|
48519
50192
|
};
|
|
50193
|
+
var removeExcursionLines = function (lines) {
|
|
50194
|
+
return lines.filter(function (line) {
|
|
50195
|
+
return line.serviceType !== EXCURSION_SERVICE_TYPE;
|
|
50196
|
+
});
|
|
50197
|
+
};
|
|
48520
50198
|
var buildAccommodationLinesFromSelection = function (selectedHotel, seed) {
|
|
48521
|
-
|
|
50199
|
+
return buildPackagingAccommodationLines(selectedHotel, seed, ACCOMMODATION_SERVICE_TYPE);
|
|
50200
|
+
};
|
|
50201
|
+
var buildExcursionLinesFromConfirmedDays = function (confirmedExcursionsByDay) {
|
|
50202
|
+
return Object.values(confirmedExcursionsByDay)
|
|
50203
|
+
.flat()
|
|
50204
|
+
.flatMap(function (excursion) {
|
|
50205
|
+
var selectedOptions = excursion.rooms.flatMap(function (room) {
|
|
50206
|
+
return room.options.filter(function (option) {
|
|
50207
|
+
return option.isSelected;
|
|
50208
|
+
});
|
|
50209
|
+
});
|
|
50210
|
+
var parentGuid = crypto.randomUUID();
|
|
50211
|
+
return selectedOptions.map(function (option, index) {
|
|
50212
|
+
var _a, _b, _c;
|
|
50213
|
+
return {
|
|
50214
|
+
guid: (_a = option.guid) !== null && _a !== void 0 ? _a : crypto.randomUUID(),
|
|
50215
|
+
moment: '',
|
|
50216
|
+
parentGuid: index === 0 ? null : parentGuid,
|
|
50217
|
+
order: index,
|
|
50218
|
+
isChanged: true,
|
|
50219
|
+
from: excursion.fromDate,
|
|
50220
|
+
to: excursion.toDate,
|
|
50221
|
+
serviceType: EXCURSION_SERVICE_TYPE,
|
|
50222
|
+
productName: excursion.name,
|
|
50223
|
+
productCode: excursion.code,
|
|
50224
|
+
accommodationName: option.accommodationName,
|
|
50225
|
+
accommodationCode: option.accommodationCode,
|
|
50226
|
+
regimeName: option.regimeName,
|
|
50227
|
+
regimeCode: option.regimeCode,
|
|
50228
|
+
country: excursion.countryId ? { id: excursion.countryId, name: excursion.countryName, localizations: [] } : null,
|
|
50229
|
+
region: excursion.regionId ? { id: excursion.regionId, name: excursion.regionName, localizations: [] } : null,
|
|
50230
|
+
oord: excursion.oordId ? { id: excursion.oordId, name: excursion.oordName, localizations: [] } : null,
|
|
50231
|
+
location: excursion.locationId ? { id: excursion.locationId, name: excursion.locationName, localizations: [] } : null,
|
|
50232
|
+
longitude: (_b = excursion.longitude) !== null && _b !== void 0 ? _b : null,
|
|
50233
|
+
latitude: (_c = excursion.latitude) !== null && _c !== void 0 ? _c : null,
|
|
50234
|
+
pax: Array.isArray(option.paxIds)
|
|
50235
|
+
? option.paxIds.map(function (paxId, paxIndex) {
|
|
50236
|
+
return {
|
|
50237
|
+
paxId: paxId,
|
|
50238
|
+
room: 0,
|
|
50239
|
+
order: paxIndex
|
|
50240
|
+
};
|
|
50241
|
+
})
|
|
50242
|
+
: [],
|
|
50243
|
+
flightInformation: null
|
|
50244
|
+
};
|
|
50245
|
+
});
|
|
50246
|
+
});
|
|
50247
|
+
};
|
|
50248
|
+
var buildPackagingAccommodationLines = function (selectedItem, seed, serviceType) {
|
|
50249
|
+
if (!selectedItem) return [];
|
|
48522
50250
|
var parentGuid = crypto.randomUUID();
|
|
48523
|
-
return
|
|
50251
|
+
return selectedItem.rooms
|
|
48524
50252
|
.filter(function (room) {
|
|
48525
50253
|
return room.options.some(function (o) {
|
|
48526
50254
|
return o.isSelected;
|
|
48527
50255
|
});
|
|
48528
50256
|
})
|
|
48529
50257
|
.map(function (room, index) {
|
|
48530
|
-
var _a, _b, _c
|
|
50258
|
+
var _a, _b, _c;
|
|
48531
50259
|
var option = room.options.find(function (o) {
|
|
48532
50260
|
return o.isSelected;
|
|
48533
50261
|
});
|
|
48534
|
-
var pax =
|
|
48535
|
-
|
|
48536
|
-
|
|
48537
|
-
|
|
48538
|
-
|
|
48539
|
-
|
|
48540
|
-
|
|
48541
|
-
paxId: p.id,
|
|
48542
|
-
room: roomIndex,
|
|
48543
|
-
order: paxIndex
|
|
48544
|
-
};
|
|
48545
|
-
});
|
|
48546
|
-
})) !== null && _b !== void 0
|
|
48547
|
-
? _b
|
|
48548
|
-
: [];
|
|
50262
|
+
var pax = option.paxIds.map(function (p, paxIndex) {
|
|
50263
|
+
return {
|
|
50264
|
+
paxId: p,
|
|
50265
|
+
room: index,
|
|
50266
|
+
order: paxIndex
|
|
50267
|
+
};
|
|
50268
|
+
});
|
|
48549
50269
|
return {
|
|
48550
|
-
guid: (
|
|
50270
|
+
guid: (_a = option.guid) !== null && _a !== void 0 ? _a : crypto.randomUUID(),
|
|
48551
50271
|
moment: '',
|
|
48552
50272
|
parentGuid: index === 0 ? null : parentGuid,
|
|
48553
50273
|
order: index,
|
|
48554
50274
|
isChanged: true,
|
|
48555
|
-
from:
|
|
48556
|
-
to:
|
|
48557
|
-
serviceType:
|
|
48558
|
-
productName:
|
|
48559
|
-
productCode:
|
|
50275
|
+
from: selectedItem.fromDate,
|
|
50276
|
+
to: selectedItem.toDate,
|
|
50277
|
+
serviceType: serviceType,
|
|
50278
|
+
productName: selectedItem.name,
|
|
50279
|
+
productCode: selectedItem.code,
|
|
48560
50280
|
accommodationName: option.accommodationName,
|
|
48561
50281
|
accommodationCode: option.accommodationCode,
|
|
48562
50282
|
regimeName: option.regimeName,
|
|
48563
50283
|
regimeCode: option.regimeCode,
|
|
48564
|
-
country:
|
|
48565
|
-
region:
|
|
48566
|
-
oord:
|
|
48567
|
-
location:
|
|
48568
|
-
longitude: (
|
|
48569
|
-
latitude: (
|
|
50284
|
+
country: selectedItem.countryId ? { id: selectedItem.countryId, name: selectedItem.countryName, localizations: [] } : null,
|
|
50285
|
+
region: selectedItem.regionId ? { id: selectedItem.regionId, name: selectedItem.regionName, localizations: [] } : null,
|
|
50286
|
+
oord: selectedItem.oordId ? { id: selectedItem.oordId, name: selectedItem.oordName, localizations: [] } : null,
|
|
50287
|
+
location: selectedItem.locationId ? { id: selectedItem.locationId, name: selectedItem.locationName, localizations: [] } : null,
|
|
50288
|
+
longitude: (_b = selectedItem.longitude) !== null && _b !== void 0 ? _b : null,
|
|
50289
|
+
latitude: (_c = selectedItem.latitude) !== null && _c !== void 0 ? _c : null,
|
|
48570
50290
|
pax: pax,
|
|
48571
50291
|
flightInformation: null
|
|
48572
50292
|
};
|
|
@@ -48694,6 +50414,7 @@ var SearchResultsContainer = function () {
|
|
|
48694
50414
|
selectedHotelCode = _a.selectedHotelCode,
|
|
48695
50415
|
accommodationResults = _a.accommodationResults,
|
|
48696
50416
|
selectedFlight = _a.selectedFlight,
|
|
50417
|
+
confirmedExcursionsByDay = _a.confirmedExcursionsByDay,
|
|
48697
50418
|
seed = _a.seed,
|
|
48698
50419
|
transactionId = _a.transactionId,
|
|
48699
50420
|
language = _a.language;
|
|
@@ -48721,6 +50442,12 @@ var SearchResultsContainer = function () {
|
|
|
48721
50442
|
nextLines = __spreadArray(__spreadArray([], nextLines, true), flightLines, true);
|
|
48722
50443
|
}
|
|
48723
50444
|
}
|
|
50445
|
+
// excursions
|
|
50446
|
+
var excursionLines = buildExcursionLinesFromConfirmedDays(confirmedExcursionsByDay);
|
|
50447
|
+
nextLines = removeExcursionLines(nextLines);
|
|
50448
|
+
if (excursionLines.length) {
|
|
50449
|
+
nextLines = __spreadArray(__spreadArray([], nextLines, true), excursionLines, true);
|
|
50450
|
+
}
|
|
48724
50451
|
nextLines = nextLines.map(function (line, index) {
|
|
48725
50452
|
return __assign(__assign({}, line), { order: index });
|
|
48726
50453
|
});
|
|
@@ -48731,7 +50458,7 @@ var SearchResultsContainer = function () {
|
|
|
48731
50458
|
if (sourceEntry) {
|
|
48732
50459
|
return structuredClone(sourceEntry);
|
|
48733
50460
|
}
|
|
48734
|
-
var paxId =
|
|
50461
|
+
var paxId = 0;
|
|
48735
50462
|
var pax =
|
|
48736
50463
|
(_b =
|
|
48737
50464
|
(_a = seed.rooms) === null || _a === void 0
|
|
@@ -48761,12 +50488,10 @@ var SearchResultsContainer = function () {
|
|
|
48761
50488
|
lines: []
|
|
48762
50489
|
};
|
|
48763
50490
|
};
|
|
48764
|
-
var
|
|
48765
|
-
|
|
48766
|
-
|
|
48767
|
-
|
|
48768
|
-
[showAllOutwardFlights, uniqueOutwardFlights]
|
|
48769
|
-
);
|
|
50491
|
+
var handleShowMoreFlights = function (flyInType) {
|
|
50492
|
+
dispatch(setFlyInType(flyInType));
|
|
50493
|
+
dispatch(setFlyInIsOpen(true));
|
|
50494
|
+
};
|
|
48770
50495
|
return React__default['default'].createElement(
|
|
48771
50496
|
'div',
|
|
48772
50497
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -48783,7 +50508,6 @@ var SearchResultsContainer = function () {
|
|
|
48783
50508
|
{ tideConnection: context.tideConnection },
|
|
48784
50509
|
React__default['default'].createElement(FlightResultsContainer, { isMobile: isMobile }),
|
|
48785
50510
|
React__default['default'].createElement(FlyIn, {
|
|
48786
|
-
title: 'Select your fare',
|
|
48787
50511
|
srpType: context.searchConfiguration.qsmType,
|
|
48788
50512
|
isOpen: flyInIsOpen,
|
|
48789
50513
|
setIsOpen: handleFlyInToggle,
|
|
@@ -48810,7 +50534,13 @@ var SearchResultsContainer = function () {
|
|
|
48810
50534
|
return setFiltersOpen(!filtersOpen);
|
|
48811
50535
|
},
|
|
48812
50536
|
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
48813
|
-
isLoading: isLoading
|
|
50537
|
+
isLoading: isLoading,
|
|
50538
|
+
setFilters: function (filters) {
|
|
50539
|
+
return dispatch(setFilters(filters));
|
|
50540
|
+
},
|
|
50541
|
+
resetFilters: function (filters) {
|
|
50542
|
+
return dispatch(resetFilters(filters));
|
|
50543
|
+
}
|
|
48814
50544
|
}),
|
|
48815
50545
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48816
50546
|
React__default['default'].createElement(Itinerary, {
|
|
@@ -48877,53 +50607,53 @@ var SearchResultsContainer = function () {
|
|
|
48877
50607
|
}
|
|
48878
50608
|
})
|
|
48879
50609
|
),
|
|
48880
|
-
|
|
48881
|
-
'div',
|
|
48882
|
-
{ className: 'search__result-row' },
|
|
50610
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.AccommodationAndFlight &&
|
|
48883
50611
|
React__default['default'].createElement(
|
|
48884
|
-
'
|
|
48885
|
-
{ className: 'search__result-row
|
|
48886
|
-
|
|
48887
|
-
|
|
50612
|
+
'div',
|
|
50613
|
+
{ className: 'search__result-row' },
|
|
50614
|
+
React__default['default'].createElement(
|
|
50615
|
+
'span',
|
|
50616
|
+
{ className: 'search__result-row-text' },
|
|
50617
|
+
!isLoading &&
|
|
50618
|
+
React__default['default'].createElement(
|
|
50619
|
+
React__default['default'].Fragment,
|
|
50620
|
+
null,
|
|
50621
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation &&
|
|
50622
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
50623
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length),
|
|
50624
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.Accommodation &&
|
|
50625
|
+
(filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults.length) &&
|
|
50626
|
+
filteredResults.length,
|
|
50627
|
+
'\u00A0',
|
|
50628
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
50629
|
+
)
|
|
50630
|
+
),
|
|
50631
|
+
!context.packagingEntry &&
|
|
50632
|
+
!isMobile &&
|
|
50633
|
+
sortByTypes &&
|
|
50634
|
+
sortByTypes.length > 0 &&
|
|
48888
50635
|
React__default['default'].createElement(
|
|
48889
|
-
|
|
48890
|
-
|
|
48891
|
-
|
|
48892
|
-
|
|
48893
|
-
(
|
|
48894
|
-
|
|
48895
|
-
|
|
48896
|
-
|
|
48897
|
-
|
|
48898
|
-
|
|
50636
|
+
'div',
|
|
50637
|
+
{ className: 'search__result-row-filter' },
|
|
50638
|
+
React__default['default'].createElement(ItemPicker, {
|
|
50639
|
+
items: sortByTypes,
|
|
50640
|
+
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
50641
|
+
selectedSortByType: selectedSortType,
|
|
50642
|
+
label: translations.SRP.SORTBY,
|
|
50643
|
+
placeholder: translations.SRP.SORTBY,
|
|
50644
|
+
classModifier: 'travel-class-picker__items',
|
|
50645
|
+
valueFormatter: function (value, direction) {
|
|
50646
|
+
return getSortingName(
|
|
50647
|
+
translations,
|
|
50648
|
+
findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc')
|
|
50649
|
+
);
|
|
50650
|
+
},
|
|
50651
|
+
onPick: function (newSortKey, direction) {
|
|
50652
|
+
return handleSortChange(newSortKey, direction);
|
|
50653
|
+
}
|
|
50654
|
+
})
|
|
48899
50655
|
)
|
|
48900
50656
|
),
|
|
48901
|
-
!context.packagingEntry &&
|
|
48902
|
-
!isMobile &&
|
|
48903
|
-
sortByTypes &&
|
|
48904
|
-
sortByTypes.length > 0 &&
|
|
48905
|
-
React__default['default'].createElement(
|
|
48906
|
-
'div',
|
|
48907
|
-
{ className: 'search__result-row-filter' },
|
|
48908
|
-
React__default['default'].createElement(ItemPicker, {
|
|
48909
|
-
items: sortByTypes,
|
|
48910
|
-
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
48911
|
-
selectedSortByType: selectedSortType,
|
|
48912
|
-
label: translations.SRP.SORTBY,
|
|
48913
|
-
placeholder: translations.SRP.SORTBY,
|
|
48914
|
-
classModifier: 'travel-class-picker__items',
|
|
48915
|
-
valueFormatter: function (value, direction) {
|
|
48916
|
-
return getSortingName(
|
|
48917
|
-
translations,
|
|
48918
|
-
findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc')
|
|
48919
|
-
);
|
|
48920
|
-
},
|
|
48921
|
-
onPick: function (newSortKey, direction) {
|
|
48922
|
-
return handleSortChange(newSortKey, direction);
|
|
48923
|
-
}
|
|
48924
|
-
})
|
|
48925
|
-
)
|
|
48926
|
-
),
|
|
48927
50657
|
React__default['default'].createElement(
|
|
48928
50658
|
'div',
|
|
48929
50659
|
{ className: 'search__results__wrapper' },
|
|
@@ -48937,8 +50667,6 @@ var SearchResultsContainer = function () {
|
|
|
48937
50667
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48938
50668
|
!context.packagingEntry &&
|
|
48939
50669
|
context.showFlightResults &&
|
|
48940
|
-
// bookingPackageDetails?.outwardFlights &&
|
|
48941
|
-
// <FlightResults flights={bookingPackageDetails?.outwardFlights} isDeparture={true} />
|
|
48942
50670
|
React__default['default'].createElement(
|
|
48943
50671
|
React__default['default'].Fragment,
|
|
48944
50672
|
null,
|
|
@@ -48977,7 +50705,7 @@ var SearchResultsContainer = function () {
|
|
|
48977
50705
|
item: selectedOutward.outward,
|
|
48978
50706
|
guid: selectedOutward.outwardGuid,
|
|
48979
50707
|
onSelect: function () {
|
|
48980
|
-
return setSelectedOutwardKey(null);
|
|
50708
|
+
return dispatch(setSelectedOutwardKey(null));
|
|
48981
50709
|
},
|
|
48982
50710
|
selectedGuid: selectedOutward.outwardGuid,
|
|
48983
50711
|
isOutward: true,
|
|
@@ -48989,7 +50717,7 @@ var SearchResultsContainer = function () {
|
|
|
48989
50717
|
key: 'flight-'.concat(result.outwardGuid),
|
|
48990
50718
|
item: result.outward,
|
|
48991
50719
|
onSelect: function () {
|
|
48992
|
-
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
50720
|
+
return dispatch(setSelectedOutwardKey(getFlightKey(result.outward.segments)));
|
|
48993
50721
|
},
|
|
48994
50722
|
guid: result.outwardGuid,
|
|
48995
50723
|
isOutward: true,
|
|
@@ -49008,10 +50736,10 @@ var SearchResultsContainer = function () {
|
|
|
49008
50736
|
{
|
|
49009
50737
|
className: 'cta cta--secondary',
|
|
49010
50738
|
onClick: function () {
|
|
49011
|
-
return
|
|
50739
|
+
return handleShowMoreFlights('flight-outward-results');
|
|
49012
50740
|
}
|
|
49013
50741
|
},
|
|
49014
|
-
|
|
50742
|
+
translations.SRP.SHOW_MORE
|
|
49015
50743
|
)
|
|
49016
50744
|
)
|
|
49017
50745
|
)
|
|
@@ -49019,11 +50747,12 @@ var SearchResultsContainer = function () {
|
|
|
49019
50747
|
context.showHotelAccommodationResults &&
|
|
49020
50748
|
!context.packagingEntry &&
|
|
49021
50749
|
React__default['default'].createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
50750
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
50751
|
+
!context.packagingEntry &&
|
|
50752
|
+
React__default['default'].createElement(DayByDayExcursions, null),
|
|
49022
50753
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
49023
50754
|
!context.packagingEntry &&
|
|
49024
50755
|
context.showFlightResults &&
|
|
49025
|
-
// bookingPackageDetails?.returnFlights &&
|
|
49026
|
-
// <FlightResults flights={bookingPackageDetails?.returnFlights} isDeparture={false} />
|
|
49027
50756
|
React__default['default'].createElement(
|
|
49028
50757
|
React__default['default'].Fragment,
|
|
49029
50758
|
null,
|
|
@@ -49066,7 +50795,7 @@ var SearchResultsContainer = function () {
|
|
|
49066
50795
|
key: 'flight-'.concat(result.outwardGuid),
|
|
49067
50796
|
item: result.return,
|
|
49068
50797
|
onSelect: function () {
|
|
49069
|
-
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
50798
|
+
return dispatch(setSelectedReturnKey(getFlightKey(result.return.segments)));
|
|
49070
50799
|
},
|
|
49071
50800
|
guid: result.outwardGuid,
|
|
49072
50801
|
isOutward: false,
|
|
@@ -49083,7 +50812,6 @@ var SearchResultsContainer = function () {
|
|
|
49083
50812
|
)
|
|
49084
50813
|
),
|
|
49085
50814
|
React__default['default'].createElement(FlyIn, {
|
|
49086
|
-
title: ''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.ACCOMMODATION),
|
|
49087
50815
|
srpType: context.searchConfiguration.qsmType,
|
|
49088
50816
|
isOpen: flyInIsOpen,
|
|
49089
50817
|
setIsOpen: handleFlyInToggle,
|
|
@@ -49094,8 +50822,10 @@ var SearchResultsContainer = function () {
|
|
|
49094
50822
|
return (panelRef.current = el);
|
|
49095
50823
|
},
|
|
49096
50824
|
detailsLoading: detailsIsLoading,
|
|
49097
|
-
|
|
49098
|
-
isPackageEditFlow: !!context.packagingEntry
|
|
50825
|
+
flyInType: flyInType,
|
|
50826
|
+
isPackageEditFlow: !!context.packagingEntry,
|
|
50827
|
+
sortByTypes: sortByTypes,
|
|
50828
|
+
activeSearchSeed: activeSearchSeed
|
|
49099
50829
|
})
|
|
49100
50830
|
)
|
|
49101
50831
|
)
|