@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-esm/index.js
CHANGED
|
@@ -608,7 +608,8 @@ var QSM$g = {
|
|
|
608
608
|
RETURN_DATE: 'تاريخ العودة',
|
|
609
609
|
CONFIRM: 'تأكيد',
|
|
610
610
|
TRAVELERS: 'المسافرون',
|
|
611
|
-
GROUP_TOUR: 'جولة جماعية'
|
|
611
|
+
GROUP_TOUR: 'جولة جماعية',
|
|
612
|
+
ALL_TRAVELERS: 'جميع المسافرين'
|
|
612
613
|
};
|
|
613
614
|
var SRP$f = {
|
|
614
615
|
SHOW_MORE: 'عرض المزيد',
|
|
@@ -659,7 +660,8 @@ var SRP$f = {
|
|
|
659
660
|
DEPARTURE_TIME_DESC: 'وقت المغادرة تنازلياً',
|
|
660
661
|
DURATION_ASC: 'المدة تصاعدياً',
|
|
661
662
|
DURATION_DESC: 'المدة تنازلياً',
|
|
662
|
-
TRAVEL_GROUP: 'مجموعة المسافرين'
|
|
663
|
+
TRAVEL_GROUP: 'مجموعة المسافرين',
|
|
664
|
+
EXCURSION: 'رحلة'
|
|
663
665
|
};
|
|
664
666
|
var arJson = {
|
|
665
667
|
STEPS: STEPS$f,
|
|
@@ -1014,7 +1016,8 @@ var QSM$f = {
|
|
|
1014
1016
|
RETURN_DATE: 'Hjemrejsedato',
|
|
1015
1017
|
CONFIRM: 'Bekræft',
|
|
1016
1018
|
TRAVELERS: 'Rejsende',
|
|
1017
|
-
GROUP_TOUR: 'Grupperejse'
|
|
1019
|
+
GROUP_TOUR: 'Grupperejse',
|
|
1020
|
+
ALL_TRAVELERS: 'Alle rejsende'
|
|
1018
1021
|
};
|
|
1019
1022
|
var SRP$e = {
|
|
1020
1023
|
SHOW_MORE: 'Vis flere',
|
|
@@ -1065,7 +1068,8 @@ var SRP$e = {
|
|
|
1065
1068
|
DEPARTURE_TIME_DESC: 'Afgangstid faldende',
|
|
1066
1069
|
DURATION_ASC: 'Varighed stigende',
|
|
1067
1070
|
DURATION_DESC: 'Varighed faldende',
|
|
1068
|
-
TRAVEL_GROUP: 'Rejseselskab'
|
|
1071
|
+
TRAVEL_GROUP: 'Rejseselskab',
|
|
1072
|
+
EXCURSION: 'Udflugt'
|
|
1069
1073
|
};
|
|
1070
1074
|
var daJson = {
|
|
1071
1075
|
STEPS: STEPS$e,
|
|
@@ -1421,7 +1425,8 @@ var QSM$e = {
|
|
|
1421
1425
|
RETURN_DATE: 'Rückreisedatum',
|
|
1422
1426
|
CONFIRM: 'Bestätigen',
|
|
1423
1427
|
TRAVELERS: 'Reisende',
|
|
1424
|
-
GROUP_TOUR: 'Gruppentour'
|
|
1428
|
+
GROUP_TOUR: 'Gruppentour',
|
|
1429
|
+
ALL_TRAVELERS: 'Alle Reisenden'
|
|
1425
1430
|
};
|
|
1426
1431
|
var SRP$d = {
|
|
1427
1432
|
SHOW_MORE: 'Mehr anzeigen',
|
|
@@ -1472,7 +1477,8 @@ var SRP$d = {
|
|
|
1472
1477
|
DEPARTURE_AIRPORTS: 'Abflughäfen',
|
|
1473
1478
|
ARRIVAL_AIRPORTS: 'Ankunftsflughäfen',
|
|
1474
1479
|
PRICE: 'Preis',
|
|
1475
|
-
TRAVEL_GROUP: 'Reisegruppe'
|
|
1480
|
+
TRAVEL_GROUP: 'Reisegruppe',
|
|
1481
|
+
EXCURSION: 'Ausflug'
|
|
1476
1482
|
};
|
|
1477
1483
|
var deJson = {
|
|
1478
1484
|
STEPS: STEPS$d,
|
|
@@ -1831,7 +1837,8 @@ var QSM$d = {
|
|
|
1831
1837
|
RETURN_DATE: 'Return date',
|
|
1832
1838
|
CONFIRM: 'Confirm',
|
|
1833
1839
|
TRAVELERS: 'Travelers',
|
|
1834
|
-
GROUP_TOUR: 'Group tour'
|
|
1840
|
+
GROUP_TOUR: 'Group tour',
|
|
1841
|
+
ALL_TRAVELERS: 'All travelers'
|
|
1835
1842
|
};
|
|
1836
1843
|
var SRP$c = {
|
|
1837
1844
|
SHOW_MORE: 'Show more',
|
|
@@ -1882,7 +1889,8 @@ var SRP$c = {
|
|
|
1882
1889
|
DEPARTURE_RANGE: 'Departure range',
|
|
1883
1890
|
DEPARTURE_AIRPORTS: 'Departure airports',
|
|
1884
1891
|
ARRIVAL_AIRPORTS: 'Arrival airports',
|
|
1885
|
-
TRAVEL_GROUP: 'Travel group'
|
|
1892
|
+
TRAVEL_GROUP: 'Travel group',
|
|
1893
|
+
EXCURSION: 'Excursion'
|
|
1886
1894
|
};
|
|
1887
1895
|
var enJson = {
|
|
1888
1896
|
STEPS: STEPS$c,
|
|
@@ -2238,7 +2246,8 @@ var QSM$c = {
|
|
|
2238
2246
|
RETURN_DATE: 'Fecha de regreso',
|
|
2239
2247
|
CONFIRM: 'Confirmar',
|
|
2240
2248
|
TRAVELERS: 'Viajeros',
|
|
2241
|
-
GROUP_TOUR: 'Tour grupal'
|
|
2249
|
+
GROUP_TOUR: 'Tour grupal',
|
|
2250
|
+
ALL_TRAVELERS: 'Todos los viajeros'
|
|
2242
2251
|
};
|
|
2243
2252
|
var SRP$b = {
|
|
2244
2253
|
SHOW_MORE: 'Mostrar más',
|
|
@@ -2289,7 +2298,8 @@ var SRP$b = {
|
|
|
2289
2298
|
DEPARTURE_AIRPORTS: 'Aeropuertos de salida',
|
|
2290
2299
|
ARRIVAL_AIRPORTS: 'Aeropuertos de llegada',
|
|
2291
2300
|
PRICE: 'Precio',
|
|
2292
|
-
TRAVEL_GROUP: 'Grupo de viaje'
|
|
2301
|
+
TRAVEL_GROUP: 'Grupo de viaje',
|
|
2302
|
+
EXCURSION: 'Excursión'
|
|
2293
2303
|
};
|
|
2294
2304
|
var esJson = {
|
|
2295
2305
|
STEPS: STEPS$b,
|
|
@@ -2649,7 +2659,8 @@ var QSM$b = {
|
|
|
2649
2659
|
RETURN_DATE: 'Date de retour',
|
|
2650
2660
|
CONFIRM: 'Confirmer',
|
|
2651
2661
|
TRAVELERS: 'Voyageurs',
|
|
2652
|
-
GROUP_TOUR: 'Tour en groupe'
|
|
2662
|
+
GROUP_TOUR: 'Tour en groupe',
|
|
2663
|
+
ALL_TRAVELERS: 'Tous les voyageurs'
|
|
2653
2664
|
};
|
|
2654
2665
|
var SRP$a = {
|
|
2655
2666
|
SHOW_MORE: 'Afficher plus',
|
|
@@ -2700,7 +2711,8 @@ var SRP$a = {
|
|
|
2700
2711
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
2701
2712
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
2702
2713
|
PRICE: 'Prix',
|
|
2703
|
-
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
2714
|
+
TRAVEL_GROUP: 'Groupe de voyageurs',
|
|
2715
|
+
EXCURSION: 'Excursion'
|
|
2704
2716
|
};
|
|
2705
2717
|
var frBeJson = {
|
|
2706
2718
|
STEPS: STEPS$a,
|
|
@@ -3055,7 +3067,8 @@ var QSM$a = {
|
|
|
3055
3067
|
RETURN_DATE: 'Date de retour',
|
|
3056
3068
|
CONFIRM: 'Confirmer',
|
|
3057
3069
|
TRAVELERS: 'Voyageurs',
|
|
3058
|
-
GROUP_TOUR: 'Tour en groupe'
|
|
3070
|
+
GROUP_TOUR: 'Tour en groupe',
|
|
3071
|
+
ALL_TRAVELERS: 'Tous les voyageurs'
|
|
3059
3072
|
};
|
|
3060
3073
|
var SRP$9 = {
|
|
3061
3074
|
SHOW_MORE: 'Afficher plus',
|
|
@@ -3106,7 +3119,8 @@ var SRP$9 = {
|
|
|
3106
3119
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
3107
3120
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
3108
3121
|
PRICE: 'Prix',
|
|
3109
|
-
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
3122
|
+
TRAVEL_GROUP: 'Groupe de voyageurs',
|
|
3123
|
+
EXCURSION: 'Excursion'
|
|
3110
3124
|
};
|
|
3111
3125
|
var frFrJson = {
|
|
3112
3126
|
STEPS: STEPS$9,
|
|
@@ -3461,7 +3475,8 @@ var QSM$9 = {
|
|
|
3461
3475
|
RETURN_DATE: 'Heimkomudagur',
|
|
3462
3476
|
CONFIRM: 'Staðfesta',
|
|
3463
3477
|
TRAVELERS: 'Ferðalangar',
|
|
3464
|
-
GROUP_TOUR: 'Ferð í hóp'
|
|
3478
|
+
GROUP_TOUR: 'Ferð í hóp',
|
|
3479
|
+
ALL_TRAVELERS: 'Allir ferðalangar'
|
|
3465
3480
|
};
|
|
3466
3481
|
var SRP$8 = {
|
|
3467
3482
|
SHOW_MORE: 'Sýna meira',
|
|
@@ -3512,7 +3527,8 @@ var SRP$8 = {
|
|
|
3512
3527
|
DEPARTURE_AIRPORTS: 'Brottfararflugvellir',
|
|
3513
3528
|
ARRIVAL_AIRPORTS: 'Komuflugvellir',
|
|
3514
3529
|
PRICE: 'Verð',
|
|
3515
|
-
TRAVEL_GROUP: 'Ferðahópur'
|
|
3530
|
+
TRAVEL_GROUP: 'Ferðahópur',
|
|
3531
|
+
EXCURSION: 'Útflutningur'
|
|
3516
3532
|
};
|
|
3517
3533
|
var isJson = {
|
|
3518
3534
|
STEPS: STEPS$8,
|
|
@@ -3868,7 +3884,8 @@ var QSM$8 = {
|
|
|
3868
3884
|
RETURN_DATE: 'Data di ritorno',
|
|
3869
3885
|
CONFIRM: 'Conferma',
|
|
3870
3886
|
TRAVELERS: 'Viaggiatori',
|
|
3871
|
-
GROUP_TOUR: 'Tour di gruppo'
|
|
3887
|
+
GROUP_TOUR: 'Tour di gruppo',
|
|
3888
|
+
ALL_TRAVELERS: 'Tutti i viaggiatori'
|
|
3872
3889
|
};
|
|
3873
3890
|
var SRP$7 = {
|
|
3874
3891
|
SHOW_MORE: 'Mostra di più',
|
|
@@ -3919,7 +3936,8 @@ var SRP$7 = {
|
|
|
3919
3936
|
DEPARTURE_AIRPORTS: 'Aeroporti di partenza',
|
|
3920
3937
|
ARRIVAL_AIRPORTS: 'Aeroporti di arrivo',
|
|
3921
3938
|
PRICE: 'Prezzo',
|
|
3922
|
-
TRAVEL_GROUP: 'Gruppo di viaggio'
|
|
3939
|
+
TRAVEL_GROUP: 'Gruppo di viaggio',
|
|
3940
|
+
EXCURSION: 'Escursione'
|
|
3923
3941
|
};
|
|
3924
3942
|
var itJson = {
|
|
3925
3943
|
STEPS: STEPS$7,
|
|
@@ -4279,7 +4297,8 @@ var QSM$7 = {
|
|
|
4279
4297
|
RETURN_DATE: 'Terugkeerdatum',
|
|
4280
4298
|
CONFIRM: 'Bevestigen',
|
|
4281
4299
|
TRAVELERS: 'Reizigers',
|
|
4282
|
-
GROUP_TOUR: 'Groepsreis'
|
|
4300
|
+
GROUP_TOUR: 'Groepsreis',
|
|
4301
|
+
ALL_TRAVELERS: 'Alle reizigers'
|
|
4283
4302
|
};
|
|
4284
4303
|
var SRP$6 = {
|
|
4285
4304
|
SHOW_MORE: 'Toon meer',
|
|
@@ -4330,7 +4349,8 @@ var SRP$6 = {
|
|
|
4330
4349
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4331
4350
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4332
4351
|
PRICE: 'Prijs',
|
|
4333
|
-
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4352
|
+
TRAVEL_GROUP: 'Reisgezelschap',
|
|
4353
|
+
EXCURSION: 'Excursie'
|
|
4334
4354
|
};
|
|
4335
4355
|
var nlBeJson = {
|
|
4336
4356
|
STEPS: STEPS$6,
|
|
@@ -4686,7 +4706,8 @@ var QSM$6 = {
|
|
|
4686
4706
|
RETURN_DATE: 'Terugkeerdatum',
|
|
4687
4707
|
CONFIRM: 'Bevestigen',
|
|
4688
4708
|
TRAVELERS: 'Reizigers',
|
|
4689
|
-
GROUP_TOUR: 'Groepsreis'
|
|
4709
|
+
GROUP_TOUR: 'Groepsreis',
|
|
4710
|
+
ALL_TRAVELERS: 'Alle reizigers'
|
|
4690
4711
|
};
|
|
4691
4712
|
var SRP$5 = {
|
|
4692
4713
|
SHOW_MORE: 'Toon meer',
|
|
@@ -4737,7 +4758,8 @@ var SRP$5 = {
|
|
|
4737
4758
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4738
4759
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4739
4760
|
PRICE: 'Prijs',
|
|
4740
|
-
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4761
|
+
TRAVEL_GROUP: 'Reisgezelschap',
|
|
4762
|
+
EXCURSION: 'Excursie'
|
|
4741
4763
|
};
|
|
4742
4764
|
var nlNlJson = {
|
|
4743
4765
|
STEPS: STEPS$5,
|
|
@@ -5093,7 +5115,8 @@ var QSM$5 = {
|
|
|
5093
5115
|
RETURN_DATE: 'Returdato',
|
|
5094
5116
|
CONFIRM: 'Bekreft',
|
|
5095
5117
|
TRAVELERS: 'Reisende',
|
|
5096
|
-
GROUP_TOUR: 'Gruppetur'
|
|
5118
|
+
GROUP_TOUR: 'Gruppetur',
|
|
5119
|
+
ALL_TRAVELERS: 'Alle reisende'
|
|
5097
5120
|
};
|
|
5098
5121
|
var SRP$4 = {
|
|
5099
5122
|
SHOW_MORE: 'Vis mer',
|
|
@@ -5144,7 +5167,8 @@ var SRP$4 = {
|
|
|
5144
5167
|
DEPARTURE_AIRPORTS: 'Avgangsflyplasser',
|
|
5145
5168
|
ARRIVAL_AIRPORTS: 'Ankomstflyplasser',
|
|
5146
5169
|
PRICE: 'Pris',
|
|
5147
|
-
TRAVEL_GROUP: 'Reisefølge'
|
|
5170
|
+
TRAVEL_GROUP: 'Reisefølge',
|
|
5171
|
+
EXCURSION: 'Utflukt'
|
|
5148
5172
|
};
|
|
5149
5173
|
var noJson = {
|
|
5150
5174
|
STEPS: STEPS$4,
|
|
@@ -5500,7 +5524,8 @@ var QSM$4 = {
|
|
|
5500
5524
|
RETURN_DATE: 'Data powrotu',
|
|
5501
5525
|
CONFIRM: 'Potwierdź',
|
|
5502
5526
|
TRAVELERS: 'Podróżni',
|
|
5503
|
-
GROUP_TOUR: 'Tour w grupie'
|
|
5527
|
+
GROUP_TOUR: 'Tour w grupie',
|
|
5528
|
+
ALL_TRAVELERS: 'Wszyscy podróżni'
|
|
5504
5529
|
};
|
|
5505
5530
|
var SRP$3 = {
|
|
5506
5531
|
SHOW_MORE: 'Pokaż więcej',
|
|
@@ -5551,7 +5576,8 @@ var SRP$3 = {
|
|
|
5551
5576
|
DEPARTURE_AIRPORTS: 'Lotniska wylotu',
|
|
5552
5577
|
ARRIVAL_AIRPORTS: 'Lotniska przylotu',
|
|
5553
5578
|
PRICE: 'Cena',
|
|
5554
|
-
TRAVEL_GROUP: 'Grupa podróżnych'
|
|
5579
|
+
TRAVEL_GROUP: 'Grupa podróżnych',
|
|
5580
|
+
EXCURSION: 'Wycieczka'
|
|
5555
5581
|
};
|
|
5556
5582
|
var plJson = {
|
|
5557
5583
|
STEPS: STEPS$3,
|
|
@@ -5907,7 +5933,8 @@ var QSM$3 = {
|
|
|
5907
5933
|
RETURN_DATE: 'Data de regresso',
|
|
5908
5934
|
CONFIRM: 'Confirmar',
|
|
5909
5935
|
TRAVELERS: 'Viajantes',
|
|
5910
|
-
GROUP_TOUR: 'Tour em grupo'
|
|
5936
|
+
GROUP_TOUR: 'Tour em grupo',
|
|
5937
|
+
ALL_TRAVELERS: 'All travelers'
|
|
5911
5938
|
};
|
|
5912
5939
|
var SRP$2 = {
|
|
5913
5940
|
SHOW_MORE: 'Mostrar mais',
|
|
@@ -5958,7 +5985,8 @@ var SRP$2 = {
|
|
|
5958
5985
|
DEPARTURE_AIRPORTS: 'Aeroportos de partida',
|
|
5959
5986
|
ARRIVAL_AIRPORTS: 'Aeroportos de chegada',
|
|
5960
5987
|
PRICE: 'Preço',
|
|
5961
|
-
TRAVEL_GROUP: 'Grupo de viajantes'
|
|
5988
|
+
TRAVEL_GROUP: 'Grupo de viajantes',
|
|
5989
|
+
EXCURSION: 'Excursão'
|
|
5962
5990
|
};
|
|
5963
5991
|
var ptJson = {
|
|
5964
5992
|
STEPS: STEPS$2,
|
|
@@ -6314,7 +6342,8 @@ var QSM$2 = {
|
|
|
6314
6342
|
RETURN_DATE: 'Hemresedatum',
|
|
6315
6343
|
CONFIRM: 'Bekräfta',
|
|
6316
6344
|
TRAVELERS: 'Resenärer',
|
|
6317
|
-
GROUP_TOUR: 'Gruppresa'
|
|
6345
|
+
GROUP_TOUR: 'Gruppresa',
|
|
6346
|
+
ALL_TRAVELERS: 'All travelers'
|
|
6318
6347
|
};
|
|
6319
6348
|
var SRP$1 = {
|
|
6320
6349
|
SHOW_MORE: 'Visa mer',
|
|
@@ -6365,7 +6394,8 @@ var SRP$1 = {
|
|
|
6365
6394
|
DEPARTURE_AIRPORTS: 'Avgångsflygplatser',
|
|
6366
6395
|
ARRIVAL_AIRPORTS: 'Ankomstflygplatser',
|
|
6367
6396
|
PRICE: 'Pris',
|
|
6368
|
-
TRAVEL_GROUP: 'Resesällskap'
|
|
6397
|
+
TRAVEL_GROUP: 'Resesällskap',
|
|
6398
|
+
EXCURSION: 'Utflykt'
|
|
6369
6399
|
};
|
|
6370
6400
|
var svJson = {
|
|
6371
6401
|
STEPS: STEPS$1,
|
|
@@ -6719,7 +6749,8 @@ var QSM$1 = {
|
|
|
6719
6749
|
RETURN_DATE: '帰着日',
|
|
6720
6750
|
CONFIRM: '確認',
|
|
6721
6751
|
TRAVELERS: '旅行者',
|
|
6722
|
-
GROUP_TOUR: 'グループツアー'
|
|
6752
|
+
GROUP_TOUR: 'グループツアー',
|
|
6753
|
+
ALL_TRAVELERS: 'すべての旅行者'
|
|
6723
6754
|
};
|
|
6724
6755
|
var SRP = {
|
|
6725
6756
|
SHOW_MORE: 'もっと見る',
|
|
@@ -6770,7 +6801,8 @@ var SRP = {
|
|
|
6770
6801
|
DEPARTURE_AIRPORTS: '出発空港',
|
|
6771
6802
|
ARRIVAL_AIRPORTS: '到着空港',
|
|
6772
6803
|
PRICE: '価格',
|
|
6773
|
-
TRAVEL_GROUP: '旅行グループ'
|
|
6804
|
+
TRAVEL_GROUP: '旅行グループ',
|
|
6805
|
+
EXCURSION: 'エクスカーション'
|
|
6774
6806
|
};
|
|
6775
6807
|
var jaJson = {
|
|
6776
6808
|
STEPS: STEPS,
|
|
@@ -6801,7 +6833,7 @@ var DepartureRange;
|
|
|
6801
6833
|
DepartureRange[(DepartureRange['Night'] = 3)] = 'Night';
|
|
6802
6834
|
})(DepartureRange || (DepartureRange = {}));
|
|
6803
6835
|
|
|
6804
|
-
var formatPrice$
|
|
6836
|
+
var formatPrice$3 = function (price, currencyCode, locale) {
|
|
6805
6837
|
if (locale === void 0) {
|
|
6806
6838
|
locale = 'nl-BE';
|
|
6807
6839
|
}
|
|
@@ -6908,7 +6940,7 @@ function getLocale(code) {
|
|
|
6908
6940
|
}
|
|
6909
6941
|
}
|
|
6910
6942
|
var getPriceDifferenceText = function (price, currencyCode) {
|
|
6911
|
-
return price > 0 ? '+ '.concat(formatPrice$
|
|
6943
|
+
return price > 0 ? '+ '.concat(formatPrice$3(Math.abs(price), currencyCode)) : '- '.concat(formatPrice$3(Math.abs(price), currencyCode));
|
|
6912
6944
|
};
|
|
6913
6945
|
function format(text, args) {
|
|
6914
6946
|
return text.replace(/{([0-9]+)}/g, function (match, index) {
|
|
@@ -7008,6 +7040,16 @@ var findSortByType = function (sortByTypes, sortKey, direction) {
|
|
|
7008
7040
|
}) || sortByTypes[0]
|
|
7009
7041
|
);
|
|
7010
7042
|
};
|
|
7043
|
+
var getDatesBetween = function (fromDate, toDate) {
|
|
7044
|
+
var dates = [];
|
|
7045
|
+
var current = new Date(fromDate);
|
|
7046
|
+
var end = new Date(toDate);
|
|
7047
|
+
while (current < end) {
|
|
7048
|
+
dates.push(new Date(current));
|
|
7049
|
+
current.setUTCDate(current.getUTCDate() + 1);
|
|
7050
|
+
}
|
|
7051
|
+
return dates;
|
|
7052
|
+
};
|
|
7011
7053
|
|
|
7012
7054
|
var getDateFromParams = function (params, name) {
|
|
7013
7055
|
var dateString = params.get(name);
|
|
@@ -13481,6 +13523,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13481
13523
|
var ENDPOINT = '/api/web/packaging';
|
|
13482
13524
|
var ENDPOINT_START_TRANSACTION = ENDPOINT + '/start';
|
|
13483
13525
|
var ENDPOINT_ACCOMMODATIONS = ENDPOINT + '/accommodations';
|
|
13526
|
+
var ENDPOINT_EXCURSIONS = ENDPOINT + '/excursions';
|
|
13484
13527
|
var ENDPOINT_FLIGHTS = ENDPOINT + '/flights';
|
|
13485
13528
|
var ENDPOINT_PRICE_DETAILS = ENDPOINT + '/price-details';
|
|
13486
13529
|
var ENDPOINT_ITINERARY = ENDPOINT + '/itinerary';
|
|
@@ -13504,6 +13547,12 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13504
13547
|
var body = JSON.stringify(request);
|
|
13505
13548
|
return post(url, apiKey, body, config.token, signal, true);
|
|
13506
13549
|
};
|
|
13550
|
+
var searchPackagingExcursions = function (config, request, signal) {
|
|
13551
|
+
var url = '' + config.host + ENDPOINT_EXCURSIONS;
|
|
13552
|
+
var apiKey = config.apiKey;
|
|
13553
|
+
var body = JSON.stringify(request);
|
|
13554
|
+
return post(url, apiKey, body, config.token, signal, true);
|
|
13555
|
+
};
|
|
13507
13556
|
var getEntry = function (config, magicLinkCode, signal) {
|
|
13508
13557
|
var apiKey = config.apiKey;
|
|
13509
13558
|
var url = '' + config.host + ENDPOINT_ENTRY(magicLinkCode);
|
|
@@ -13595,6 +13644,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13595
13644
|
exports.searchLocations = searchLocations;
|
|
13596
13645
|
exports.searchOords = searchOords;
|
|
13597
13646
|
exports.searchPackagingAccommodations = searchPackagingAccommodations;
|
|
13647
|
+
exports.searchPackagingExcursions = searchPackagingExcursions;
|
|
13598
13648
|
exports.searchPackagingFlights = searchPackagingFlights;
|
|
13599
13649
|
exports.searchRegions = searchRegions;
|
|
13600
13650
|
exports.searchWithErrorMapping = searchWithErrorMapping;
|
|
@@ -13671,16 +13721,16 @@ var formatPriceByMode = function (price, priceMode, personCount, duration, perPe
|
|
|
13671
13721
|
if (!price) return '';
|
|
13672
13722
|
switch (priceMode) {
|
|
13673
13723
|
case 0:
|
|
13674
|
-
return ''.concat(formatPrice$
|
|
13724
|
+
return ''.concat(formatPrice$3(price, currencyCode));
|
|
13675
13725
|
case 1:
|
|
13676
13726
|
var perPersonPrice = price / personCount;
|
|
13677
|
-
return ''.concat(formatPrice$
|
|
13727
|
+
return ''.concat(formatPrice$3(perPersonPrice, currencyCode), ' / ').concat(perPersonLabel);
|
|
13678
13728
|
case 2:
|
|
13679
13729
|
var perNightPrice = price / duration;
|
|
13680
|
-
return ''.concat(formatPrice$
|
|
13730
|
+
return ''.concat(formatPrice$3(perNightPrice, currencyCode), ' / ').concat(perNightLabel);
|
|
13681
13731
|
case 3:
|
|
13682
13732
|
var perPersonPerNightPrice = price / duration;
|
|
13683
|
-
return ''.concat(formatPrice$
|
|
13733
|
+
return ''.concat(formatPrice$3(perPersonPerNightPrice, currencyCode), ' / ').concat(perPersonPerNightLabel);
|
|
13684
13734
|
}
|
|
13685
13735
|
};
|
|
13686
13736
|
|
|
@@ -21721,7 +21771,11 @@ var FlightOptionsForm = function () {
|
|
|
21721
21771
|
setFlightGroups = _f[1];
|
|
21722
21772
|
var handleSubmit = function (e) {
|
|
21723
21773
|
if (settings.skipRouter) {
|
|
21724
|
-
|
|
21774
|
+
if (settings.roomOptions.isHidden) {
|
|
21775
|
+
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
21776
|
+
} else {
|
|
21777
|
+
dispatch(setCurrentStep(ROOM_OPTIONS_FORM_STEP));
|
|
21778
|
+
}
|
|
21725
21779
|
} else {
|
|
21726
21780
|
if (settings.roomOptions.isHidden) {
|
|
21727
21781
|
navigate(
|
|
@@ -22101,7 +22155,7 @@ var NoneOption = function (_a) {
|
|
|
22101
22155
|
return x.requirementType === 2;
|
|
22102
22156
|
});
|
|
22103
22157
|
var noneSelected = !selectedOption;
|
|
22104
|
-
var priceDifferencetext = selectedOption ? '- '.concat(formatPrice$
|
|
22158
|
+
var priceDifferencetext = selectedOption ? '- '.concat(formatPrice$3(Math.abs(selectedOption.line.price), currencyCode)) : '';
|
|
22105
22159
|
return React__default.createElement(
|
|
22106
22160
|
React__default.Fragment,
|
|
22107
22161
|
null,
|
|
@@ -23374,7 +23428,7 @@ var OptionRoom = function (_a) {
|
|
|
23374
23428
|
e.preventDefault();
|
|
23375
23429
|
};
|
|
23376
23430
|
var getPriceDifferenceText = function (price) {
|
|
23377
|
-
return price > 0 ? '+ '.concat(formatPrice$
|
|
23431
|
+
return price > 0 ? '+ '.concat(formatPrice$3(Math.abs(price), currencyCode)) : '- '.concat(formatPrice$3(Math.abs(price), currencyCode));
|
|
23378
23432
|
};
|
|
23379
23433
|
var getAccommodationPriceDifference = function (accommodation) {
|
|
23380
23434
|
var _a;
|
|
@@ -24899,7 +24953,7 @@ var Sidebar = function (_a) {
|
|
|
24899
24953
|
{ className: 'pricing-summary__property' },
|
|
24900
24954
|
React__default.createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.BASE_PRICE)
|
|
24901
24955
|
),
|
|
24902
|
-
React__default.createElement('div', { className: 'pricing-summary__value' }, formatPrice$
|
|
24956
|
+
React__default.createElement('div', { className: 'pricing-summary__value' }, formatPrice$3(basePrice, currencyCode))
|
|
24903
24957
|
),
|
|
24904
24958
|
basePricePerPaxType &&
|
|
24905
24959
|
basePricePerPaxType.map(function (ppt, index) {
|
|
@@ -24916,7 +24970,7 @@ var Sidebar = function (_a) {
|
|
|
24916
24970
|
' ',
|
|
24917
24971
|
getPaxTypeTranslation(translations, ppt.paxType, ppt.numberOfPax)
|
|
24918
24972
|
),
|
|
24919
|
-
React__default.createElement('div', { className: 'pricing-summary__value' }, formatPrice$
|
|
24973
|
+
React__default.createElement('div', { className: 'pricing-summary__value' }, formatPrice$3(ppt.pricePerPaxType, currencyCode))
|
|
24920
24974
|
),
|
|
24921
24975
|
ppt.details.map(function (detail, dIndex) {
|
|
24922
24976
|
return React__default.createElement(
|
|
@@ -24929,7 +24983,7 @@ var Sidebar = function (_a) {
|
|
|
24929
24983
|
React__default.createElement(
|
|
24930
24984
|
'div',
|
|
24931
24985
|
{ className: 'pricing-summary__value' },
|
|
24932
|
-
formatPrice$
|
|
24986
|
+
formatPrice$3(detail.price / detail.numberOfPax, currencyCode)
|
|
24933
24987
|
)
|
|
24934
24988
|
);
|
|
24935
24989
|
})
|
|
@@ -24956,7 +25010,7 @@ var Sidebar = function (_a) {
|
|
|
24956
25010
|
React__default.createElement(
|
|
24957
25011
|
'div',
|
|
24958
25012
|
{ className: 'pricing-summary__value' },
|
|
24959
|
-
formatPrice$
|
|
25013
|
+
formatPrice$3(priceDetail.price * priceDetail.amount, currencyCode)
|
|
24960
25014
|
)
|
|
24961
25015
|
),
|
|
24962
25016
|
React__default.createElement(
|
|
@@ -24991,7 +25045,7 @@ var Sidebar = function (_a) {
|
|
|
24991
25045
|
React__default.createElement(
|
|
24992
25046
|
'div',
|
|
24993
25047
|
{ className: 'pricing-summary__value' },
|
|
24994
|
-
formatPrice$
|
|
25048
|
+
formatPrice$3(priceDetail.price * priceDetail.amount, currencyCode)
|
|
24995
25049
|
)
|
|
24996
25050
|
),
|
|
24997
25051
|
React__default.createElement(
|
|
@@ -25021,7 +25075,7 @@ var Sidebar = function (_a) {
|
|
|
25021
25075
|
React__default.createElement(
|
|
25022
25076
|
'div',
|
|
25023
25077
|
{ className: 'pricing-summary__value' },
|
|
25024
|
-
formatPrice$
|
|
25078
|
+
formatPrice$3(ppt.pricePerPaxType, currencyCode)
|
|
25025
25079
|
)
|
|
25026
25080
|
),
|
|
25027
25081
|
ppt.details.map(function (detail, dIndex) {
|
|
@@ -25041,7 +25095,7 @@ var Sidebar = function (_a) {
|
|
|
25041
25095
|
React__default.createElement(
|
|
25042
25096
|
'div',
|
|
25043
25097
|
{ className: 'pricing-summary__value' },
|
|
25044
|
-
formatPrice$
|
|
25098
|
+
formatPrice$3(detail.price / detail.numberOfPax, currencyCode)
|
|
25045
25099
|
)
|
|
25046
25100
|
);
|
|
25047
25101
|
})
|
|
@@ -25085,7 +25139,7 @@ var Sidebar = function (_a) {
|
|
|
25085
25139
|
React__default.createElement(
|
|
25086
25140
|
'div',
|
|
25087
25141
|
{ className: 'pricing__price' },
|
|
25088
|
-
formatPrice$
|
|
25142
|
+
formatPrice$3(commission !== null && commission !== void 0 ? commission : 0, currencyCode)
|
|
25089
25143
|
)
|
|
25090
25144
|
)
|
|
25091
25145
|
)
|
|
@@ -25106,7 +25160,7 @@ var Sidebar = function (_a) {
|
|
|
25106
25160
|
React__default.createElement(
|
|
25107
25161
|
'div',
|
|
25108
25162
|
{ className: 'pricing' },
|
|
25109
|
-
React__default.createElement('div', { className: 'pricing__price' }, formatPrice$
|
|
25163
|
+
React__default.createElement('div', { className: 'pricing__price' }, formatPrice$3(totalPrice, currencyCode))
|
|
25110
25164
|
)
|
|
25111
25165
|
)
|
|
25112
25166
|
),
|
|
@@ -25124,7 +25178,7 @@ var Sidebar = function (_a) {
|
|
|
25124
25178
|
React__default.createElement(
|
|
25125
25179
|
'div',
|
|
25126
25180
|
{ className: 'pricing' },
|
|
25127
|
-
React__default.createElement('div', { className: 'pricing__price' }, formatPrice$
|
|
25181
|
+
React__default.createElement('div', { className: 'pricing__price' }, formatPrice$3(deposit, currencyCode))
|
|
25128
25182
|
)
|
|
25129
25183
|
)
|
|
25130
25184
|
),
|
|
@@ -25140,7 +25194,7 @@ var Sidebar = function (_a) {
|
|
|
25140
25194
|
translations.SIDEBAR.DEPOSIT_TEXT1,
|
|
25141
25195
|
React__default.createElement('strong', null, translations.SIDEBAR.DEPOSIT_TEXT2),
|
|
25142
25196
|
translations.SIDEBAR.DEPOSIT_TEXT3,
|
|
25143
|
-
formatPrice$
|
|
25197
|
+
formatPrice$3(remainingAmount, currencyCode),
|
|
25144
25198
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
25145
25199
|
React__default.createElement('strong', null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
25146
25200
|
translations.SIDEBAR.DEPOSIT_TEXT6
|
|
@@ -25169,7 +25223,7 @@ var Sidebar = function (_a) {
|
|
|
25169
25223
|
React__default.createElement(
|
|
25170
25224
|
'div',
|
|
25171
25225
|
{ className: 'pricing__price' },
|
|
25172
|
-
formatPrice$
|
|
25226
|
+
formatPrice$3(commission !== null && commission !== void 0 ? commission : 0, currencyCode)
|
|
25173
25227
|
)
|
|
25174
25228
|
)
|
|
25175
25229
|
)
|
|
@@ -25190,7 +25244,7 @@ var Sidebar = function (_a) {
|
|
|
25190
25244
|
React__default.createElement(
|
|
25191
25245
|
'div',
|
|
25192
25246
|
{ className: 'pricing' },
|
|
25193
|
-
React__default.createElement('div', { className: 'pricing__price' }, formatPrice$
|
|
25247
|
+
React__default.createElement('div', { className: 'pricing__price' }, formatPrice$3(totalPrice, currencyCode))
|
|
25194
25248
|
)
|
|
25195
25249
|
)
|
|
25196
25250
|
)
|
|
@@ -33716,22 +33770,32 @@ var initialState$1 = {
|
|
|
33716
33770
|
packagingAccoSearchDetails: [],
|
|
33717
33771
|
selectedPackagingAccoResultCode: null,
|
|
33718
33772
|
packagingFlightResults: [],
|
|
33773
|
+
filteredPackagingFlightResults: [],
|
|
33719
33774
|
selectedPackagingFlight: null,
|
|
33775
|
+
selectedOutwardKey: null,
|
|
33776
|
+
selectedReturnKey: null,
|
|
33720
33777
|
selectedFlight: null,
|
|
33721
33778
|
selectedFlightDetails: null,
|
|
33722
33779
|
bookingPackageDetails: null,
|
|
33780
|
+
priceDetails: null,
|
|
33723
33781
|
isLoading: false,
|
|
33724
33782
|
flightsLoading: false,
|
|
33725
|
-
filters: [],
|
|
33726
33783
|
selectedSortType: null,
|
|
33784
|
+
selectedFlightSortType: null,
|
|
33785
|
+
initialFilters: [],
|
|
33786
|
+
filters: [],
|
|
33787
|
+
initialFlightFilters: [],
|
|
33788
|
+
flightFilters: [],
|
|
33727
33789
|
activeTab: 'compact',
|
|
33728
33790
|
currentPage: 1,
|
|
33791
|
+
transactionId: null,
|
|
33729
33792
|
flyInIsOpen: false,
|
|
33793
|
+
flyInType: null,
|
|
33730
33794
|
editablePackagingEntry: null,
|
|
33731
|
-
|
|
33732
|
-
|
|
33733
|
-
|
|
33734
|
-
|
|
33795
|
+
itinerary: null,
|
|
33796
|
+
excursionSearchParams: null,
|
|
33797
|
+
selectedExcursionSearchResult: null,
|
|
33798
|
+
confirmedExcursionsByDay: {}
|
|
33735
33799
|
};
|
|
33736
33800
|
var searchResultsSlice = createSlice({
|
|
33737
33801
|
name: 'searchResults',
|
|
@@ -33761,6 +33825,9 @@ var searchResultsSlice = createSlice({
|
|
|
33761
33825
|
setPackagingFlightResults: function (state, action) {
|
|
33762
33826
|
state.packagingFlightResults = action.payload;
|
|
33763
33827
|
},
|
|
33828
|
+
setFilteredPackagingFlightResults: function (state, action) {
|
|
33829
|
+
state.filteredPackagingFlightResults = action.payload;
|
|
33830
|
+
},
|
|
33764
33831
|
setSelectedPackagingFlight: function (state, action) {
|
|
33765
33832
|
state.selectedPackagingFlight = action.payload;
|
|
33766
33833
|
},
|
|
@@ -33789,6 +33856,9 @@ var searchResultsSlice = createSlice({
|
|
|
33789
33856
|
setFlightsLoading: function (state, action) {
|
|
33790
33857
|
state.flightsLoading = action.payload;
|
|
33791
33858
|
},
|
|
33859
|
+
setInitialFilters: function (state, action) {
|
|
33860
|
+
state.initialFilters = action.payload;
|
|
33861
|
+
},
|
|
33792
33862
|
setFilters: function (state, action) {
|
|
33793
33863
|
var updatedFilters = action.payload;
|
|
33794
33864
|
updatedFilters.forEach(function (updatedFilter) {
|
|
@@ -33805,9 +33875,31 @@ var searchResultsSlice = createSlice({
|
|
|
33805
33875
|
resetFilters: function (state, action) {
|
|
33806
33876
|
state.filters = action.payload;
|
|
33807
33877
|
},
|
|
33878
|
+
setInitialFlightFilters: function (state, action) {
|
|
33879
|
+
state.initialFlightFilters = action.payload;
|
|
33880
|
+
},
|
|
33881
|
+
setFlightFilters: function (state, action) {
|
|
33882
|
+
var updatedFilters = action.payload;
|
|
33883
|
+
updatedFilters.forEach(function (updatedFilter) {
|
|
33884
|
+
var existingIndex = state.flightFilters.findIndex(function (f) {
|
|
33885
|
+
return f.property === updatedFilter.property;
|
|
33886
|
+
});
|
|
33887
|
+
if (existingIndex !== -1) {
|
|
33888
|
+
state.flightFilters[existingIndex] = updatedFilter;
|
|
33889
|
+
} else {
|
|
33890
|
+
state.flightFilters.push(updatedFilter); // Optional: Add new filters if not present
|
|
33891
|
+
}
|
|
33892
|
+
});
|
|
33893
|
+
},
|
|
33894
|
+
resetFlightFilters: function (state, action) {
|
|
33895
|
+
state.flightFilters = action.payload;
|
|
33896
|
+
},
|
|
33808
33897
|
setSortType: function (state, action) {
|
|
33809
33898
|
state.selectedSortType = action.payload;
|
|
33810
33899
|
},
|
|
33900
|
+
setFlightSortType: function (state, action) {
|
|
33901
|
+
state.selectedFlightSortType = action.payload;
|
|
33902
|
+
},
|
|
33811
33903
|
setActiveTab: function (state, action) {
|
|
33812
33904
|
state.activeTab = action.payload;
|
|
33813
33905
|
},
|
|
@@ -33831,14 +33923,59 @@ var searchResultsSlice = createSlice({
|
|
|
33831
33923
|
setTransactionId: function (state, action) {
|
|
33832
33924
|
state.transactionId = action.payload;
|
|
33833
33925
|
},
|
|
33834
|
-
|
|
33835
|
-
state.
|
|
33926
|
+
setFlyInType: function (state, action) {
|
|
33927
|
+
state.flyInType = action.payload;
|
|
33836
33928
|
},
|
|
33837
33929
|
setPriceDetails: function (state, action) {
|
|
33838
33930
|
state.priceDetails = action.payload;
|
|
33839
33931
|
},
|
|
33840
33932
|
setItinerary: function (state, action) {
|
|
33841
33933
|
state.itinerary = action.payload;
|
|
33934
|
+
},
|
|
33935
|
+
setSelectedOutwardKey: function (state, action) {
|
|
33936
|
+
state.selectedOutwardKey = action.payload;
|
|
33937
|
+
},
|
|
33938
|
+
setSelectedReturnKey: function (state, action) {
|
|
33939
|
+
state.selectedReturnKey = action.payload;
|
|
33940
|
+
},
|
|
33941
|
+
resetFlightSelection: function (state) {
|
|
33942
|
+
state.selectedOutwardKey = null;
|
|
33943
|
+
state.selectedReturnKey = null;
|
|
33944
|
+
},
|
|
33945
|
+
setExcursionSearchParams: function (state, action) {
|
|
33946
|
+
state.excursionSearchParams = action.payload;
|
|
33947
|
+
},
|
|
33948
|
+
setSelectedExcursionSearchResult: function (state, action) {
|
|
33949
|
+
state.selectedExcursionSearchResult = action.payload;
|
|
33950
|
+
},
|
|
33951
|
+
confirmExcursionForDay: function (state, action) {
|
|
33952
|
+
var _a;
|
|
33953
|
+
var _b = action.payload,
|
|
33954
|
+
dayKey = _b.dayKey,
|
|
33955
|
+
excursion = _b.excursion;
|
|
33956
|
+
var existingForDay = (_a = state.confirmedExcursionsByDay[dayKey]) !== null && _a !== void 0 ? _a : [];
|
|
33957
|
+
var existingIndex = existingForDay.findIndex(function (item) {
|
|
33958
|
+
return item.code === excursion.code;
|
|
33959
|
+
});
|
|
33960
|
+
if (existingIndex >= 0) {
|
|
33961
|
+
// replace existing confirmed version of same excursion
|
|
33962
|
+
existingForDay[existingIndex] = excursion;
|
|
33963
|
+
} else {
|
|
33964
|
+
existingForDay.push(excursion);
|
|
33965
|
+
}
|
|
33966
|
+
state.confirmedExcursionsByDay[dayKey] = existingForDay;
|
|
33967
|
+
},
|
|
33968
|
+
removeConfirmedExcursionForDay: function (state, action) {
|
|
33969
|
+
var _a;
|
|
33970
|
+
var _b = action.payload,
|
|
33971
|
+
dayKey = _b.dayKey,
|
|
33972
|
+
excursionCode = _b.excursionCode;
|
|
33973
|
+
state.confirmedExcursionsByDay[dayKey] = ((_a = state.confirmedExcursionsByDay[dayKey]) !== null && _a !== void 0 ? _a : []).filter(function (item) {
|
|
33974
|
+
return item.code !== excursionCode;
|
|
33975
|
+
});
|
|
33976
|
+
},
|
|
33977
|
+
clearConfirmedExcursionsForDay: function (state, action) {
|
|
33978
|
+
delete state.confirmedExcursionsByDay[action.payload.dayKey];
|
|
33842
33979
|
}
|
|
33843
33980
|
}
|
|
33844
33981
|
});
|
|
@@ -33847,6 +33984,7 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33847
33984
|
setSelectedSearchResult = _a.setSelectedSearchResult,
|
|
33848
33985
|
setPackagingAccoResults = _a.setPackagingAccoResults,
|
|
33849
33986
|
setFilteredPackagingAccoResults = _a.setFilteredPackagingAccoResults,
|
|
33987
|
+
setFilteredPackagingFlightResults = _a.setFilteredPackagingFlightResults,
|
|
33850
33988
|
setPackagingAccoSearchDetails = _a.setPackagingAccoSearchDetails,
|
|
33851
33989
|
setSelectedPackagingAccoResult = _a.setSelectedPackagingAccoResult,
|
|
33852
33990
|
setPackagingFlightResults = _a.setPackagingFlightResults,
|
|
@@ -33857,18 +33995,31 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33857
33995
|
_a.selectFlight;
|
|
33858
33996
|
var setIsLoading = _a.setIsLoading,
|
|
33859
33997
|
setFlightsLoading = _a.setFlightsLoading,
|
|
33998
|
+
setInitialFilters = _a.setInitialFilters,
|
|
33860
33999
|
setFilters = _a.setFilters,
|
|
33861
34000
|
resetFilters = _a.resetFilters,
|
|
34001
|
+
setInitialFlightFilters = _a.setInitialFlightFilters,
|
|
34002
|
+
setFlightFilters = _a.setFlightFilters,
|
|
34003
|
+
resetFlightFilters = _a.resetFlightFilters,
|
|
33862
34004
|
setSortType = _a.setSortType,
|
|
34005
|
+
setFlightSortType = _a.setFlightSortType,
|
|
33863
34006
|
setActiveTab = _a.setActiveTab;
|
|
33864
34007
|
_a.setCurrentPage;
|
|
33865
34008
|
_a.resetSearchState;
|
|
33866
34009
|
var setFlyInIsOpen = _a.setFlyInIsOpen,
|
|
33867
34010
|
setEditablePackagingEntry = _a.setEditablePackagingEntry,
|
|
33868
34011
|
setTransactionId = _a.setTransactionId,
|
|
33869
|
-
|
|
34012
|
+
setFlyInType = _a.setFlyInType,
|
|
33870
34013
|
setPriceDetails = _a.setPriceDetails,
|
|
33871
|
-
setItinerary = _a.setItinerary
|
|
34014
|
+
setItinerary = _a.setItinerary,
|
|
34015
|
+
setSelectedOutwardKey = _a.setSelectedOutwardKey,
|
|
34016
|
+
setSelectedReturnKey = _a.setSelectedReturnKey;
|
|
34017
|
+
_a.resetFlightSelection;
|
|
34018
|
+
var setExcursionSearchParams = _a.setExcursionSearchParams,
|
|
34019
|
+
setSelectedExcursionSearchResult = _a.setSelectedExcursionSearchResult,
|
|
34020
|
+
confirmExcursionForDay = _a.confirmExcursionForDay,
|
|
34021
|
+
removeConfirmedExcursionForDay = _a.removeConfirmedExcursionForDay;
|
|
34022
|
+
_a.clearConfirmedExcursionsForDay;
|
|
33872
34023
|
var searchResultsReducer = searchResultsSlice.reducer;
|
|
33873
34024
|
|
|
33874
34025
|
var ItemPicker = function (_a) {
|
|
@@ -34399,8 +34550,7 @@ var Icon$1 = function (_a) {
|
|
|
34399
34550
|
}),
|
|
34400
34551
|
title && React__default.createElement('title', null, title),
|
|
34401
34552
|
React__default.createElement('path', {
|
|
34402
|
-
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'
|
|
34403
|
-
fill: 'currentColor'
|
|
34553
|
+
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'
|
|
34404
34554
|
})
|
|
34405
34555
|
);
|
|
34406
34556
|
case 'ui-backforward':
|
|
@@ -34897,6 +35047,7 @@ var Icon$1 = function (_a) {
|
|
|
34897
35047
|
|
|
34898
35048
|
var GROUP_TOUR_SERVICE_TYPE = 1;
|
|
34899
35049
|
var ACCOMMODATION_SERVICE_TYPE = 3;
|
|
35050
|
+
var EXCURSION_SERVICE_TYPE = 4;
|
|
34900
35051
|
var FLIGHT_SERVICE_TYPE = 7;
|
|
34901
35052
|
var toDateOnlyString = function (value) {
|
|
34902
35053
|
var date = value instanceof Date ? value : new Date(value);
|
|
@@ -35287,12 +35438,12 @@ var Itinerary = function (_a) {
|
|
|
35287
35438
|
React__default.createElement(
|
|
35288
35439
|
'div',
|
|
35289
35440
|
{ className: 'search__filter__prices__wrapper' },
|
|
35290
|
-
React__default.createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$
|
|
35441
|
+
React__default.createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$3(pricePerPerson, 'EUR')),
|
|
35291
35442
|
React__default.createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
|
|
35292
35443
|
React__default.createElement(
|
|
35293
35444
|
'p',
|
|
35294
35445
|
null,
|
|
35295
|
-
React__default.createElement('strong', null, '(', formatPrice$
|
|
35446
|
+
React__default.createElement('strong', null, '(', formatPrice$3(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
|
|
35296
35447
|
)
|
|
35297
35448
|
),
|
|
35298
35449
|
React__default.createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
|
|
@@ -38334,7 +38485,8 @@ var FlightsFlyIn = function (_a) {
|
|
|
38334
38485
|
React__default.createElement(
|
|
38335
38486
|
'div',
|
|
38336
38487
|
{ className: 'flyin__footer__price' },
|
|
38337
|
-
|
|
38488
|
+
translations.SHARED.TOTAL_PRICE,
|
|
38489
|
+
': \u20AC',
|
|
38338
38490
|
(_o = selectedCombinationFlight === null || selectedCombinationFlight === void 0 ? void 0 : selectedCombinationFlight.price) === null || _o === void 0
|
|
38339
38491
|
? void 0
|
|
38340
38492
|
: _o.toFixed(2)
|
|
@@ -38348,7 +38500,7 @@ var FlightsFlyIn = function (_a) {
|
|
|
38348
38500
|
);
|
|
38349
38501
|
};
|
|
38350
38502
|
|
|
38351
|
-
var formatPrice$
|
|
38503
|
+
var formatPrice$2 = function (price, currencyCode) {
|
|
38352
38504
|
if (typeof price !== 'number') return '';
|
|
38353
38505
|
var safeCurrency = currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR';
|
|
38354
38506
|
return new Intl.NumberFormat('nl-BE', {
|
|
@@ -38480,7 +38632,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38480
38632
|
var totalPrice = selectedOptions.reduce(function (total, option) {
|
|
38481
38633
|
return total + (option.price || 0);
|
|
38482
38634
|
}, 0);
|
|
38483
|
-
return formatPrice$
|
|
38635
|
+
return formatPrice$2(totalPrice, selectedPackagingAccoSearchDetails.currencyCode);
|
|
38484
38636
|
};
|
|
38485
38637
|
var getPriceDifference = function (currentSelectedPrice, roomIndex, accommodationCode, regimeId) {
|
|
38486
38638
|
var targetPrice = 0;
|
|
@@ -38505,7 +38657,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38505
38657
|
if (difference === 0) {
|
|
38506
38658
|
return null;
|
|
38507
38659
|
}
|
|
38508
|
-
var formattedAbsoluteValue = formatPrice$
|
|
38660
|
+
var formattedAbsoluteValue = formatPrice$2(Math.abs(difference), currencyCode);
|
|
38509
38661
|
return ''.concat(difference > 0 ? '+' : '-', ' ').concat(formattedAbsoluteValue);
|
|
38510
38662
|
};
|
|
38511
38663
|
var getPriceDifferenceClassName = function (difference) {
|
|
@@ -38623,7 +38775,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38623
38775
|
React__default.createElement(
|
|
38624
38776
|
'div',
|
|
38625
38777
|
{ className: 'flyin__footer' },
|
|
38626
|
-
React__default.createElement('div', { className: 'flyin__footer__price' }, '
|
|
38778
|
+
React__default.createElement('div', { className: 'flyin__footer__price' }, translations.SHARED.TOTAL_PRICE, ': ', calculateTotalPrice()),
|
|
38627
38779
|
React__default.createElement(
|
|
38628
38780
|
'div',
|
|
38629
38781
|
{ className: 'flyin__button-wrapper' },
|
|
@@ -38782,7 +38934,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38782
38934
|
// )} */}
|
|
38783
38935
|
// </div>
|
|
38784
38936
|
// <div className="flyin__footer">
|
|
38785
|
-
// <div className="flyin__footer__price">
|
|
38937
|
+
// <div className="flyin__footer__price">{translations.SHARED.TOTAL_PRICE}: €</div>
|
|
38786
38938
|
// <div className="flyin__button-wrapper">
|
|
38787
38939
|
// <button className="cta cta--select" onClick={handleConfirm}>
|
|
38788
38940
|
// Toevoegen
|
|
@@ -38792,7 +38944,7 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38792
38944
|
// </>
|
|
38793
38945
|
};
|
|
38794
38946
|
|
|
38795
|
-
var formatPrice = function (price, currencyCode) {
|
|
38947
|
+
var formatPrice$1 = function (price, currencyCode) {
|
|
38796
38948
|
if (currencyCode === void 0) {
|
|
38797
38949
|
currencyCode = 'EUR';
|
|
38798
38950
|
}
|
|
@@ -38975,7 +39127,7 @@ var GroupTourFlyIn = function (_a) {
|
|
|
38975
39127
|
if (difference === 0) {
|
|
38976
39128
|
return null;
|
|
38977
39129
|
}
|
|
38978
|
-
var formattedAbsoluteValue = formatPrice(Math.abs(difference), currencyCode);
|
|
39130
|
+
var formattedAbsoluteValue = formatPrice$1(Math.abs(difference), currencyCode);
|
|
38979
39131
|
return ''.concat(difference > 0 ? '+' : '-', ' ').concat(formattedAbsoluteValue);
|
|
38980
39132
|
};
|
|
38981
39133
|
var getPriceDifferenceClassName = function (difference) {
|
|
@@ -39104,8 +39256,9 @@ var GroupTourFlyIn = function (_a) {
|
|
|
39104
39256
|
React__default.createElement(
|
|
39105
39257
|
'div',
|
|
39106
39258
|
{ className: 'flyin__footer__price' },
|
|
39107
|
-
|
|
39108
|
-
|
|
39259
|
+
translations.SHARED.TOTAL_PRICE,
|
|
39260
|
+
': ',
|
|
39261
|
+
formatPrice$1(adjustedTotalPrice, bookingPackageDetails.currencyCode)
|
|
39109
39262
|
),
|
|
39110
39263
|
React__default.createElement(
|
|
39111
39264
|
'div',
|
|
@@ -43422,7 +43575,7 @@ var getBaseHotelResult = function (searchResult, cmsItem, languageCode, translat
|
|
|
43422
43575
|
searchResult.countryName,
|
|
43423
43576
|
(_h = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.parentItem) === null || _h === void 0 ? void 0 : _h.name
|
|
43424
43577
|
),
|
|
43425
|
-
price: formatPrice$
|
|
43578
|
+
price: formatPrice$3(searchResult.price, searchResult.currencyCode, languageCode),
|
|
43426
43579
|
ctaText: translations === null || translations === void 0 ? void 0 : translations.SRP.VIEW_DETAILS
|
|
43427
43580
|
};
|
|
43428
43581
|
};
|
|
@@ -43462,7 +43615,7 @@ var mapPackagingAccoResult = function (searchResult, cmsItem, languageCode, tran
|
|
|
43462
43615
|
contents: searchResult.contents
|
|
43463
43616
|
});
|
|
43464
43617
|
};
|
|
43465
|
-
var renderHotelResults = function (results, context, activeTab, translations) {
|
|
43618
|
+
var renderHotelResults = function (results, context, activeTab, translations, selectedPackagingAccoResult, isFlyIn) {
|
|
43466
43619
|
var renderedResults = results.map(function (result, index) {
|
|
43467
43620
|
var _a;
|
|
43468
43621
|
var key = ''.concat((_a = result.id) !== null && _a !== void 0 ? _a : result.code, '-').concat(index);
|
|
@@ -43477,13 +43630,18 @@ var renderHotelResults = function (results, context, activeTab, translations) {
|
|
|
43477
43630
|
return React__default.createElement(
|
|
43478
43631
|
'div',
|
|
43479
43632
|
{ className: 'search__results__cards '.concat(activeTab ? 'search__results__cards--'.concat(activeTab) : '') },
|
|
43633
|
+
selectedPackagingAccoResult &&
|
|
43634
|
+
!isFlyIn &&
|
|
43635
|
+
React__default.createElement(HotelCard, { key: selectedPackagingAccoResult.code, result: selectedPackagingAccoResult, translations: translations }),
|
|
43480
43636
|
renderedResults
|
|
43481
43637
|
);
|
|
43482
43638
|
};
|
|
43483
43639
|
var HotelAccommodationResults = function (_a) {
|
|
43484
43640
|
var _b, _c;
|
|
43485
|
-
var isLoading = _a.isLoading
|
|
43641
|
+
var isLoading = _a.isLoading,
|
|
43642
|
+
isFlyIn = _a.isFlyIn;
|
|
43486
43643
|
var context = useContext(SearchResultsConfigurationContext);
|
|
43644
|
+
var dispatch = useDispatch();
|
|
43487
43645
|
if (!context) {
|
|
43488
43646
|
return null;
|
|
43489
43647
|
}
|
|
@@ -43493,7 +43651,10 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43493
43651
|
}),
|
|
43494
43652
|
filteredResults = _d.filteredResults,
|
|
43495
43653
|
filteredPackagingAccoResults = _d.filteredPackagingAccoResults,
|
|
43654
|
+
packagingAccoResults = _d.packagingAccoResults,
|
|
43496
43655
|
activeTab = _d.activeTab;
|
|
43656
|
+
_d.flyInIsOpen;
|
|
43657
|
+
var selectedPackagingAccoResultCode = _d.selectedPackagingAccoResultCode;
|
|
43497
43658
|
var cmsMap = React__default.useMemo(
|
|
43498
43659
|
function () {
|
|
43499
43660
|
var _a;
|
|
@@ -43556,143 +43717,1645 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43556
43717
|
: firstPackagingResult.fromDate;
|
|
43557
43718
|
var firstResultDay = firstResultDate ? format$1(parseISO(firstResultDate), 'd') : null;
|
|
43558
43719
|
var firstResultMonth = firstResultDate ? format$1(parseISO(firstResultDate), 'MMM') : null;
|
|
43720
|
+
var selectedPackagingAccoResult = React__default.useMemo(
|
|
43721
|
+
function () {
|
|
43722
|
+
var selectedResult = packagingAccoResults.find(function (result) {
|
|
43723
|
+
return result.code === selectedPackagingAccoResultCode;
|
|
43724
|
+
});
|
|
43725
|
+
if (selectedResult) {
|
|
43726
|
+
return mapPackagingAccoResult(selectedResult, cmsMap.get(selectedResult.code), context.languageCode, translations);
|
|
43727
|
+
}
|
|
43728
|
+
},
|
|
43729
|
+
[packagingAccoResults, selectedPackagingAccoResultCode, cmsMap, context.languageCode, translations]
|
|
43730
|
+
);
|
|
43731
|
+
var visibleResults = React__default.useMemo(
|
|
43732
|
+
function () {
|
|
43733
|
+
var shouldShowAll =
|
|
43734
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) !== build.PortalQsmType.AccommodationAndFlight || isFlyIn;
|
|
43735
|
+
if (shouldShowAll) {
|
|
43736
|
+
return mappedResults;
|
|
43737
|
+
}
|
|
43738
|
+
if (selectedPackagingAccoResult) {
|
|
43739
|
+
return mappedResults
|
|
43740
|
+
.filter(function (result) {
|
|
43741
|
+
return result.code !== selectedPackagingAccoResult.code;
|
|
43742
|
+
})
|
|
43743
|
+
.slice(0, 2);
|
|
43744
|
+
}
|
|
43745
|
+
return mappedResults.slice(0, 3);
|
|
43746
|
+
},
|
|
43747
|
+
[context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType, mappedResults, isFlyIn, selectedPackagingAccoResult]
|
|
43748
|
+
);
|
|
43749
|
+
var handleShowMoreHotels = function (flyInType) {
|
|
43750
|
+
dispatch(setFlyInType(flyInType));
|
|
43751
|
+
dispatch(setFlyInIsOpen(true));
|
|
43752
|
+
};
|
|
43559
43753
|
return React__default.createElement(
|
|
43560
43754
|
React__default.Fragment,
|
|
43561
43755
|
null,
|
|
43562
|
-
|
|
43563
|
-
'div',
|
|
43564
|
-
{ className: 'search__results__label search__results__label--secondary' },
|
|
43756
|
+
!isFlyIn &&
|
|
43565
43757
|
React__default.createElement(
|
|
43566
43758
|
'div',
|
|
43567
|
-
{ className: '
|
|
43568
|
-
|
|
43569
|
-
|
|
43570
|
-
|
|
43571
|
-
|
|
43572
|
-
|
|
43573
|
-
|
|
43574
|
-
|
|
43575
|
-
|
|
43759
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
43760
|
+
React__default.createElement(
|
|
43761
|
+
'div',
|
|
43762
|
+
{ className: 'search__results__label__date' },
|
|
43763
|
+
firstResultDay && firstResultMonth
|
|
43764
|
+
? React__default.createElement(
|
|
43765
|
+
React__default.Fragment,
|
|
43766
|
+
null,
|
|
43767
|
+
React__default.createElement('p', { className: 'search__results__label__date-date' }, firstResultDay),
|
|
43768
|
+
React__default.createElement('p', null, firstResultMonth)
|
|
43769
|
+
)
|
|
43770
|
+
: React__default.createElement(Icon$1, { name: 'ui-bed', height: 16, fill: 'white' })
|
|
43771
|
+
),
|
|
43772
|
+
React__default.createElement(
|
|
43773
|
+
'div',
|
|
43774
|
+
{ className: 'search__results__label__text' },
|
|
43775
|
+
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.ACCOMMODATION))
|
|
43776
|
+
)
|
|
43576
43777
|
),
|
|
43577
|
-
React__default.createElement(
|
|
43578
|
-
'div',
|
|
43579
|
-
{ className: 'search__results__label__text' },
|
|
43580
|
-
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.ACCOMMODATION))
|
|
43581
|
-
)
|
|
43582
|
-
),
|
|
43583
43778
|
isLoading
|
|
43584
43779
|
? React__default.createElement(
|
|
43585
43780
|
React__default.Fragment,
|
|
43586
43781
|
null,
|
|
43587
43782
|
(_c = context.customSpinner) !== null && _c !== void 0 ? _c : React__default.createElement(Spinner, null)
|
|
43588
43783
|
)
|
|
43589
|
-
: renderHotelResults(
|
|
43784
|
+
: renderHotelResults(visibleResults, context, activeTab, translations, selectedPackagingAccoResult, isFlyIn),
|
|
43785
|
+
packagingAccoResults.length > 3 &&
|
|
43786
|
+
!isFlyIn &&
|
|
43787
|
+
React__default.createElement(
|
|
43788
|
+
'div',
|
|
43789
|
+
{ className: 'search__results__cards__actions' },
|
|
43790
|
+
React__default.createElement(
|
|
43791
|
+
'button',
|
|
43792
|
+
{
|
|
43793
|
+
className: 'cta cta--secondary',
|
|
43794
|
+
onClick: function () {
|
|
43795
|
+
return handleShowMoreHotels('acco-results');
|
|
43796
|
+
}
|
|
43797
|
+
},
|
|
43798
|
+
translations.SRP.SHOW_MORE
|
|
43799
|
+
)
|
|
43800
|
+
),
|
|
43590
43801
|
mappedResults.length === 0 && !isLoading && React__default.createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS)
|
|
43591
43802
|
);
|
|
43592
43803
|
};
|
|
43593
43804
|
|
|
43594
|
-
var
|
|
43595
|
-
|
|
43596
|
-
|
|
43597
|
-
|
|
43598
|
-
|
|
43599
|
-
|
|
43600
|
-
|
|
43601
|
-
|
|
43602
|
-
|
|
43603
|
-
|
|
43604
|
-
|
|
43605
|
-
|
|
43606
|
-
|
|
43607
|
-
|
|
43608
|
-
|
|
43609
|
-
|
|
43610
|
-
|
|
43611
|
-
|
|
43612
|
-
|
|
43613
|
-
|
|
43614
|
-
|
|
43615
|
-
|
|
43616
|
-
|
|
43617
|
-
|
|
43805
|
+
var selectSearchResultsState = function (state) {
|
|
43806
|
+
return state.searchResults;
|
|
43807
|
+
};
|
|
43808
|
+
var selectPackagingAccoResults = createSelector([selectSearchResultsState], function (state) {
|
|
43809
|
+
return state.packagingAccoResults;
|
|
43810
|
+
});
|
|
43811
|
+
var selectSelectedPackagingAccoResultCode = createSelector([selectSearchResultsState], function (state) {
|
|
43812
|
+
return state.selectedPackagingAccoResultCode;
|
|
43813
|
+
});
|
|
43814
|
+
var selectSelectedPackagingAccoResult = createSelector(
|
|
43815
|
+
[selectPackagingAccoResults, selectSelectedPackagingAccoResultCode],
|
|
43816
|
+
function (packagingAccoResults, selectedPackagingAccoResultCode) {
|
|
43817
|
+
var _a;
|
|
43818
|
+
if (!selectedPackagingAccoResultCode) return null;
|
|
43819
|
+
return (_a = packagingAccoResults.find(function (accoResult) {
|
|
43820
|
+
return accoResult.code === selectedPackagingAccoResultCode;
|
|
43821
|
+
})) !== null && _a !== void 0
|
|
43822
|
+
? _a
|
|
43823
|
+
: null;
|
|
43824
|
+
}
|
|
43825
|
+
);
|
|
43826
|
+
var selectPackagingFlightResults = createSelector([selectSearchResultsState], function (state) {
|
|
43827
|
+
return state.packagingFlightResults;
|
|
43828
|
+
});
|
|
43829
|
+
var selectFilteredPackagingFlightResults = createSelector([selectSearchResultsState], function (state) {
|
|
43830
|
+
return state.filteredPackagingFlightResults;
|
|
43831
|
+
});
|
|
43832
|
+
var selectSelectedOutwardKey = createSelector([selectSearchResultsState], function (state) {
|
|
43833
|
+
return state.selectedOutwardKey;
|
|
43834
|
+
});
|
|
43835
|
+
var selectSelectedReturnKey = createSelector([selectSearchResultsState], function (state) {
|
|
43836
|
+
return state.selectedReturnKey;
|
|
43837
|
+
});
|
|
43838
|
+
var selectUniqueOutwardFlights = createSelector([selectFilteredPackagingFlightResults], function (packagingFlightResults) {
|
|
43839
|
+
var map = new Map();
|
|
43840
|
+
packagingFlightResults.forEach(function (flight) {
|
|
43841
|
+
var key = getFlightKey(flight.outward.segments);
|
|
43842
|
+
if (!map.has(key)) {
|
|
43843
|
+
map.set(key, flight);
|
|
43844
|
+
}
|
|
43845
|
+
});
|
|
43846
|
+
return Array.from(map.values());
|
|
43847
|
+
});
|
|
43848
|
+
var selectUniqueReturnFlights = createSelector(
|
|
43849
|
+
[selectFilteredPackagingFlightResults, selectSelectedOutwardKey],
|
|
43850
|
+
function (packagingFlightResults, selectedOutwardKey) {
|
|
43851
|
+
if (!selectedOutwardKey) return [];
|
|
43852
|
+
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
43853
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
43854
|
+
});
|
|
43855
|
+
var map = new Map();
|
|
43856
|
+
matchingCombinations.forEach(function (flight) {
|
|
43857
|
+
var key = getFlightKey(flight.return.segments);
|
|
43858
|
+
if (!map.has(key)) {
|
|
43859
|
+
map.set(key, flight);
|
|
43860
|
+
}
|
|
43861
|
+
});
|
|
43862
|
+
return Array.from(map.values());
|
|
43863
|
+
}
|
|
43864
|
+
);
|
|
43865
|
+
var selectSelectedOutward = createSelector([selectPackagingFlightResults, selectSelectedOutwardKey], function (packagingFlightResults, selectedOutwardKey) {
|
|
43866
|
+
var _a;
|
|
43867
|
+
if (!selectedOutwardKey) return null;
|
|
43868
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
43869
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
43870
|
+
})) !== null && _a !== void 0
|
|
43871
|
+
? _a
|
|
43872
|
+
: null;
|
|
43873
|
+
});
|
|
43874
|
+
var selectSelectedReturn = createSelector([selectPackagingFlightResults, selectSelectedReturnKey], function (packagingFlightResults, selectedReturnKey) {
|
|
43875
|
+
var _a;
|
|
43876
|
+
if (!selectedReturnKey) return null;
|
|
43877
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
43878
|
+
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
43879
|
+
})) !== null && _a !== void 0
|
|
43880
|
+
? _a
|
|
43881
|
+
: null;
|
|
43882
|
+
});
|
|
43883
|
+
var selectSelectedCombinationFlight = createSelector(
|
|
43884
|
+
[selectPackagingFlightResults, selectSelectedOutwardKey, selectSelectedReturnKey],
|
|
43885
|
+
function (packagingFlightResults, selectedOutwardKey, selectedReturnKey) {
|
|
43886
|
+
var _a;
|
|
43887
|
+
if (!selectedOutwardKey || !selectedReturnKey) return null;
|
|
43888
|
+
return (_a = packagingFlightResults.find(function (flight) {
|
|
43889
|
+
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
43890
|
+
})) !== null && _a !== void 0
|
|
43891
|
+
? _a
|
|
43892
|
+
: null;
|
|
43893
|
+
}
|
|
43894
|
+
);
|
|
43895
|
+
|
|
43896
|
+
var IndependentFlightOption = function (_a) {
|
|
43897
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
43898
|
+
var item = _a.item,
|
|
43899
|
+
onSelect = _a.onSelect,
|
|
43900
|
+
guid = _a.guid,
|
|
43901
|
+
selectedGuid = _a.selectedGuid,
|
|
43902
|
+
isOutward = _a.isOutward,
|
|
43903
|
+
showSelectedState = _a.showSelectedState,
|
|
43904
|
+
currentSelectedPrice = _a.currentSelectedPrice,
|
|
43905
|
+
price = _a.price;
|
|
43906
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
43907
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
43908
|
+
var translations = getTranslations(language);
|
|
43909
|
+
var _p = useState(false),
|
|
43910
|
+
detailsOpen = _p[0],
|
|
43911
|
+
setDetailsOpen = _p[1];
|
|
43912
|
+
var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
|
|
43913
|
+
return React__default.createElement(
|
|
43914
|
+
'div',
|
|
43915
|
+
{ className: 'search__result-card', key: 'flight-'.concat(item.code) },
|
|
43916
|
+
React__default.createElement(
|
|
43917
|
+
'div',
|
|
43918
|
+
{ className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
|
|
43919
|
+
React__default.createElement(
|
|
43920
|
+
'div',
|
|
43921
|
+
{ className: 'flight__option' },
|
|
43922
|
+
React__default.createElement(
|
|
43923
|
+
'div',
|
|
43924
|
+
{ className: 'flight__content' },
|
|
43925
|
+
React__default.createElement(
|
|
43926
|
+
'div',
|
|
43927
|
+
{ className: 'flight__flights' },
|
|
43928
|
+
React__default.createElement(
|
|
43929
|
+
'div',
|
|
43930
|
+
{ className: 'flight__flight' },
|
|
43931
|
+
React__default.createElement(
|
|
43932
|
+
'div',
|
|
43933
|
+
{ className: 'flight__flight__header' },
|
|
43934
|
+
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
43935
|
+
React__default.createElement(
|
|
43936
|
+
'div',
|
|
43937
|
+
{ className: 'flight__price' },
|
|
43938
|
+
price != null &&
|
|
43939
|
+
price > 0 &&
|
|
43940
|
+
(isOutward
|
|
43941
|
+
? React__default.createElement(
|
|
43942
|
+
'span',
|
|
43943
|
+
{ className: 'price' },
|
|
43944
|
+
translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
|
|
43945
|
+
'\u00A0',
|
|
43946
|
+
formatPrice$3(
|
|
43947
|
+
price,
|
|
43948
|
+
'EUR',
|
|
43949
|
+
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
43950
|
+
)
|
|
43951
|
+
)
|
|
43952
|
+
: priceDifference != null &&
|
|
43953
|
+
Math.abs(priceDifference) > 0 &&
|
|
43954
|
+
React__default.createElement(
|
|
43955
|
+
'span',
|
|
43956
|
+
{ className: 'price' },
|
|
43957
|
+
priceDifference > 0 ? '+' : '-',
|
|
43958
|
+
'\u00A0',
|
|
43959
|
+
formatPrice$3(
|
|
43960
|
+
Math.abs(priceDifference),
|
|
43961
|
+
'EUR',
|
|
43962
|
+
(_d = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
43963
|
+
)
|
|
43964
|
+
)),
|
|
43965
|
+
React__default.createElement(
|
|
43966
|
+
'button',
|
|
43967
|
+
{
|
|
43968
|
+
type: 'button',
|
|
43969
|
+
className: 'cta '.concat(selectedGuid === guid ? 'cta--selected' : 'cta--select'),
|
|
43970
|
+
onClick: function () {
|
|
43971
|
+
return onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
43972
|
+
}
|
|
43973
|
+
},
|
|
43974
|
+
selectedGuid === guid ? 'Selected' : 'Select'
|
|
43975
|
+
)
|
|
43976
|
+
)
|
|
43977
|
+
)
|
|
43978
|
+
),
|
|
43979
|
+
React__default.createElement(
|
|
43980
|
+
'div',
|
|
43981
|
+
{ className: 'flight__flight' },
|
|
43982
|
+
React__default.createElement(
|
|
43983
|
+
'div',
|
|
43984
|
+
{ className: 'flight__flight__container' },
|
|
43985
|
+
React__default.createElement(
|
|
43986
|
+
'div',
|
|
43987
|
+
{ className: 'flight__flight__wrapper' },
|
|
43988
|
+
React__default.createElement(
|
|
43989
|
+
'div',
|
|
43990
|
+
{ className: 'flight__logo__wrapper' },
|
|
43991
|
+
React__default.createElement('img', {
|
|
43992
|
+
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
43993
|
+
(_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
|
|
43994
|
+
'.png?height=256'
|
|
43995
|
+
),
|
|
43996
|
+
alt: '',
|
|
43997
|
+
className: 'flight__logo'
|
|
43998
|
+
}),
|
|
43999
|
+
React__default.createElement('span', null, (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName)
|
|
44000
|
+
),
|
|
44001
|
+
React__default.createElement(
|
|
44002
|
+
'div',
|
|
44003
|
+
{ className: 'flight__info' },
|
|
44004
|
+
React__default.createElement(
|
|
44005
|
+
'div',
|
|
44006
|
+
{ className: 'flight__info__times' },
|
|
44007
|
+
React__default.createElement(
|
|
44008
|
+
'strong',
|
|
44009
|
+
null,
|
|
44010
|
+
timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
|
|
44011
|
+
' ',
|
|
44012
|
+
(_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
|
|
44013
|
+
),
|
|
44014
|
+
React__default.createElement(
|
|
44015
|
+
'p',
|
|
44016
|
+
null,
|
|
44017
|
+
longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
|
|
44018
|
+
)
|
|
44019
|
+
),
|
|
44020
|
+
React__default.createElement(
|
|
44021
|
+
'div',
|
|
44022
|
+
{ className: 'flight__info__duration' },
|
|
44023
|
+
React__default.createElement('p', null, durationTicksInHoursString(item.durationInTicks)),
|
|
44024
|
+
React__default.createElement(
|
|
44025
|
+
'div',
|
|
44026
|
+
{ className: 'flight__info__duration__stops' },
|
|
44027
|
+
React__default.createElement('div', { className: 'flight__info__duration__stop' })
|
|
44028
|
+
),
|
|
44029
|
+
React__default.createElement(
|
|
44030
|
+
'span',
|
|
44031
|
+
null,
|
|
44032
|
+
getNumberOfStopsLabel(item, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
44033
|
+
)
|
|
44034
|
+
),
|
|
44035
|
+
React__default.createElement(
|
|
44036
|
+
'div',
|
|
44037
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44038
|
+
React__default.createElement(
|
|
44039
|
+
'strong',
|
|
44040
|
+
null,
|
|
44041
|
+
timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
|
|
44042
|
+
' ',
|
|
44043
|
+
(_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
|
|
44044
|
+
),
|
|
44045
|
+
React__default.createElement(
|
|
44046
|
+
'p',
|
|
44047
|
+
null,
|
|
44048
|
+
longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
|
|
44049
|
+
)
|
|
44050
|
+
)
|
|
44051
|
+
)
|
|
44052
|
+
),
|
|
44053
|
+
React__default.createElement(
|
|
44054
|
+
'div',
|
|
44055
|
+
{ className: 'flight__detail__btn__wrapper' },
|
|
44056
|
+
React__default.createElement(
|
|
44057
|
+
'div',
|
|
44058
|
+
{
|
|
44059
|
+
className: 'flight__detail__btn '.concat(detailsOpen ? 'flight__detail__btn--active' : ''),
|
|
44060
|
+
onClick: function () {
|
|
44061
|
+
return setDetailsOpen(function (prev) {
|
|
44062
|
+
return !prev;
|
|
44063
|
+
});
|
|
44064
|
+
}
|
|
44065
|
+
},
|
|
44066
|
+
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44067
|
+
)
|
|
44068
|
+
)
|
|
44069
|
+
),
|
|
44070
|
+
React__default.createElement(
|
|
44071
|
+
'div',
|
|
44072
|
+
{ className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
|
|
44073
|
+
(_o = getFlightSegments(item)) === null || _o === void 0
|
|
44074
|
+
? void 0
|
|
44075
|
+
: _o.map(function (segment, index) {
|
|
44076
|
+
return React__default.createElement(
|
|
44077
|
+
React__default.Fragment,
|
|
44078
|
+
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
44079
|
+
React__default.createElement(
|
|
44080
|
+
'div',
|
|
44081
|
+
{ className: 'flight__info' },
|
|
44082
|
+
React__default.createElement(
|
|
44083
|
+
'div',
|
|
44084
|
+
{ className: 'flight__info__times__wrapper' },
|
|
44085
|
+
React__default.createElement(
|
|
44086
|
+
'div',
|
|
44087
|
+
{ className: 'flight__info__times' },
|
|
44088
|
+
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44089
|
+
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
44090
|
+
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44091
|
+
),
|
|
44092
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
44093
|
+
),
|
|
44094
|
+
React__default.createElement(
|
|
44095
|
+
'div',
|
|
44096
|
+
{ className: 'flight__info__duration' },
|
|
44097
|
+
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
44098
|
+
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
44099
|
+
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
44100
|
+
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
44101
|
+
),
|
|
44102
|
+
React__default.createElement(
|
|
44103
|
+
'div',
|
|
44104
|
+
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44105
|
+
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
44106
|
+
React__default.createElement(
|
|
44107
|
+
'div',
|
|
44108
|
+
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44109
|
+
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44110
|
+
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
44111
|
+
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44112
|
+
)
|
|
44113
|
+
)
|
|
44114
|
+
),
|
|
44115
|
+
segment.transferTimeInTicks &&
|
|
44116
|
+
React__default.createElement(
|
|
44117
|
+
'div',
|
|
44118
|
+
{ className: 'flight__info' },
|
|
44119
|
+
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
44120
|
+
React__default.createElement(
|
|
44121
|
+
'div',
|
|
44122
|
+
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44123
|
+
React__default.createElement(
|
|
44124
|
+
'div',
|
|
44125
|
+
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44126
|
+
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44127
|
+
),
|
|
44128
|
+
React__default.createElement(
|
|
44129
|
+
'div',
|
|
44130
|
+
{ className: 'flight__info__duration__stoptime' },
|
|
44131
|
+
React__default.createElement('span', null, 'Stop time'),
|
|
44132
|
+
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44133
|
+
)
|
|
44134
|
+
),
|
|
44135
|
+
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44136
|
+
)
|
|
44137
|
+
);
|
|
44138
|
+
})
|
|
44139
|
+
)
|
|
44140
|
+
)
|
|
44141
|
+
)
|
|
44142
|
+
)
|
|
44143
|
+
)
|
|
44144
|
+
)
|
|
43618
44145
|
);
|
|
44146
|
+
};
|
|
44147
|
+
|
|
44148
|
+
var MultiRangeFilter = function (_a) {
|
|
44149
|
+
var min = _a.min,
|
|
44150
|
+
max = _a.max,
|
|
44151
|
+
selectedMin = _a.selectedMin,
|
|
44152
|
+
selectedMax = _a.selectedMax,
|
|
44153
|
+
valueFormatter = _a.valueFormatter,
|
|
44154
|
+
onChange = _a.onChange;
|
|
44155
|
+
var _b = useState(false),
|
|
44156
|
+
isDragging = _b[0],
|
|
44157
|
+
setIsDragging = _b[1];
|
|
44158
|
+
var _c = useState(0),
|
|
44159
|
+
leftPercentage = _c[0],
|
|
44160
|
+
setLeftPercentage = _c[1];
|
|
44161
|
+
var _d = useState(0),
|
|
44162
|
+
rightPercentage = _d[0],
|
|
44163
|
+
setRightPercentage = _d[1];
|
|
44164
|
+
var _e = useState(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min),
|
|
44165
|
+
minVal = _e[0],
|
|
44166
|
+
setMinVal = _e[1];
|
|
44167
|
+
var _f = useState(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max),
|
|
44168
|
+
maxVal = _f[0],
|
|
44169
|
+
setMaxVal = _f[1];
|
|
44170
|
+
var minGap = 5;
|
|
44171
|
+
// Sync internal state with external selectedMin/selectedMax changes
|
|
43619
44172
|
useEffect(
|
|
43620
44173
|
function () {
|
|
43621
|
-
|
|
43622
|
-
|
|
43623
|
-
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
43624
|
-
handleClose();
|
|
43625
|
-
}
|
|
43626
|
-
};
|
|
43627
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
43628
|
-
return function () {
|
|
43629
|
-
return document.removeEventListener('mousedown', handleClickOutside);
|
|
43630
|
-
};
|
|
44174
|
+
setMinVal(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min);
|
|
44175
|
+
setMaxVal(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max);
|
|
43631
44176
|
},
|
|
43632
|
-
[
|
|
44177
|
+
[min, max, selectedMin, selectedMax]
|
|
43633
44178
|
);
|
|
43634
|
-
//
|
|
44179
|
+
// Recalculate slider track whenever values change
|
|
43635
44180
|
useEffect(
|
|
43636
44181
|
function () {
|
|
43637
|
-
|
|
43638
|
-
|
|
43639
|
-
|
|
43640
|
-
|
|
44182
|
+
var range = max - min || 1;
|
|
44183
|
+
var minPercent = ((minVal - min) / range) * 100;
|
|
44184
|
+
var maxPercent = ((maxVal - min) / range) * 100;
|
|
44185
|
+
setLeftPercentage(minPercent);
|
|
44186
|
+
setRightPercentage(100 - maxPercent);
|
|
43641
44187
|
},
|
|
43642
|
-
[
|
|
44188
|
+
[minVal, maxVal, min, max]
|
|
43643
44189
|
);
|
|
43644
|
-
var
|
|
43645
|
-
|
|
43646
|
-
|
|
43647
|
-
|
|
43648
|
-
|
|
43649
|
-
onCancelSearch();
|
|
43650
|
-
} else {
|
|
43651
|
-
dispatch(setSelectedSearchResult(null));
|
|
43652
|
-
dispatch(setSelectedPackagingAccoResult(null));
|
|
43653
|
-
}
|
|
43654
|
-
dispatch(setAccommodationFlyInStep('details'));
|
|
43655
|
-
setIsOpen(false);
|
|
44190
|
+
var slideMin = function (e) {
|
|
44191
|
+
var value = parseInt(e.target.value, 10);
|
|
44192
|
+
// Ensure the thumbs don’t cross and enforce minGap
|
|
44193
|
+
if (value <= maxVal - minGap) {
|
|
44194
|
+
setMinVal(value);
|
|
43656
44195
|
}
|
|
43657
44196
|
};
|
|
43658
|
-
var
|
|
43659
|
-
|
|
44197
|
+
var slideMax = function (e) {
|
|
44198
|
+
var value = parseInt(e.target.value, 10);
|
|
44199
|
+
// Ensure the thumbs don’t cross and enforce minGap
|
|
44200
|
+
if (value >= minVal + minGap) {
|
|
44201
|
+
setMaxVal(value);
|
|
44202
|
+
}
|
|
44203
|
+
};
|
|
44204
|
+
var startDrag = function () {
|
|
44205
|
+
setIsDragging(true);
|
|
44206
|
+
};
|
|
44207
|
+
var stopDrag = function () {
|
|
44208
|
+
setIsDragging(false);
|
|
44209
|
+
// Notify parent with the final values
|
|
44210
|
+
onChange(minVal, maxVal);
|
|
43660
44211
|
};
|
|
43661
44212
|
return React__default.createElement(
|
|
43662
44213
|
'div',
|
|
43663
|
-
{
|
|
43664
|
-
className: 'flyin '
|
|
43665
|
-
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
43666
|
-
.concat(className, ' ')
|
|
43667
|
-
.concat(isPackageEditFlow ? 'flyin--large' : '')
|
|
43668
|
-
},
|
|
44214
|
+
{ className: 'double-slider-box' },
|
|
43669
44215
|
React__default.createElement(
|
|
43670
44216
|
'div',
|
|
43671
|
-
{ className: '
|
|
43672
|
-
React__default.createElement(
|
|
43673
|
-
|
|
43674
|
-
|
|
43675
|
-
|
|
43676
|
-
|
|
43677
|
-
|
|
43678
|
-
|
|
43679
|
-
|
|
43680
|
-
|
|
43681
|
-
|
|
43682
|
-
|
|
43683
|
-
|
|
43684
|
-
|
|
43685
|
-
|
|
43686
|
-
|
|
43687
|
-
|
|
43688
|
-
|
|
43689
|
-
|
|
43690
|
-
|
|
43691
|
-
|
|
43692
|
-
|
|
43693
|
-
|
|
43694
|
-
|
|
43695
|
-
|
|
44217
|
+
{ className: 'input-box' },
|
|
44218
|
+
React__default.createElement('div', { className: 'min-box' }, valueFormatter(minVal)),
|
|
44219
|
+
React__default.createElement('div', { className: 'max-box' }, valueFormatter(maxVal))
|
|
44220
|
+
),
|
|
44221
|
+
React__default.createElement(
|
|
44222
|
+
'div',
|
|
44223
|
+
{ className: 'range-slider' },
|
|
44224
|
+
React__default.createElement('div', {
|
|
44225
|
+
className: 'slider-track',
|
|
44226
|
+
style: { left: ''.concat(leftPercentage, '%'), right: ''.concat(rightPercentage, '%') }
|
|
44227
|
+
}),
|
|
44228
|
+
React__default.createElement('input', {
|
|
44229
|
+
type: 'range',
|
|
44230
|
+
min: min,
|
|
44231
|
+
max: max,
|
|
44232
|
+
value: minVal,
|
|
44233
|
+
onChange: slideMin,
|
|
44234
|
+
onMouseDown: startDrag,
|
|
44235
|
+
onMouseUp: stopDrag,
|
|
44236
|
+
onTouchStart: startDrag,
|
|
44237
|
+
onTouchEnd: stopDrag,
|
|
44238
|
+
className: 'min-val'
|
|
44239
|
+
}),
|
|
44240
|
+
React__default.createElement('input', {
|
|
44241
|
+
type: 'range',
|
|
44242
|
+
min: min,
|
|
44243
|
+
max: max,
|
|
44244
|
+
value: maxVal,
|
|
44245
|
+
onChange: slideMax,
|
|
44246
|
+
onMouseDown: startDrag,
|
|
44247
|
+
onMouseUp: stopDrag,
|
|
44248
|
+
onTouchStart: startDrag,
|
|
44249
|
+
onTouchEnd: stopDrag,
|
|
44250
|
+
className: 'max-val'
|
|
44251
|
+
}),
|
|
44252
|
+
isDragging && React__default.createElement('div', { className: 'min-tooltip' }, valueFormatter(minVal)),
|
|
44253
|
+
isDragging && React__default.createElement('div', { className: 'max-tooltip' }, valueFormatter(maxVal))
|
|
44254
|
+
)
|
|
44255
|
+
);
|
|
44256
|
+
};
|
|
44257
|
+
|
|
44258
|
+
var Filters = function (_a) {
|
|
44259
|
+
var _b;
|
|
44260
|
+
var initialFilters = _a.initialFilters,
|
|
44261
|
+
filters = _a.filters,
|
|
44262
|
+
isOpen = _a.isOpen,
|
|
44263
|
+
handleSetIsOpen = _a.handleSetIsOpen,
|
|
44264
|
+
isLoading = _a.isLoading,
|
|
44265
|
+
setFilters = _a.setFilters,
|
|
44266
|
+
resetFilters = _a.resetFilters;
|
|
44267
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44268
|
+
if (!context || !context.showFilters) {
|
|
44269
|
+
return null;
|
|
44270
|
+
}
|
|
44271
|
+
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44272
|
+
var _c = useState({}),
|
|
44273
|
+
visibleFilters = _c[0],
|
|
44274
|
+
setVisibleFilters = _c[1];
|
|
44275
|
+
var toggleFilterVisibility = function (filterId) {
|
|
44276
|
+
setVisibleFilters(function (prev) {
|
|
44277
|
+
var _a;
|
|
44278
|
+
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
44279
|
+
});
|
|
44280
|
+
};
|
|
44281
|
+
var handleCheckBoxFilter = function (filter, option) {
|
|
44282
|
+
var updated = filters.map(function (f) {
|
|
44283
|
+
var _a;
|
|
44284
|
+
if (f.property !== filter.property) return f;
|
|
44285
|
+
return __assign(__assign({}, f), {
|
|
44286
|
+
options:
|
|
44287
|
+
(_a = f.options) === null || _a === void 0
|
|
44288
|
+
? void 0
|
|
44289
|
+
: _a.map(function (opt) {
|
|
44290
|
+
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
44291
|
+
})
|
|
44292
|
+
});
|
|
44293
|
+
});
|
|
44294
|
+
setFilters(updated);
|
|
44295
|
+
};
|
|
44296
|
+
var handleSliderChange = function (filter, newMin, newMax) {
|
|
44297
|
+
var updated = filters.map(function (f) {
|
|
44298
|
+
if (f.property !== filter.property) return f;
|
|
44299
|
+
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
44300
|
+
});
|
|
44301
|
+
setFilters(updated);
|
|
44302
|
+
};
|
|
44303
|
+
var handleFullReset = function () {
|
|
44304
|
+
if (!isLoading) {
|
|
44305
|
+
resetFilters(initialFilters);
|
|
44306
|
+
}
|
|
44307
|
+
};
|
|
44308
|
+
return React__default.createElement(
|
|
44309
|
+
'div',
|
|
44310
|
+
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
44311
|
+
React__default.createElement('div', {
|
|
44312
|
+
className: 'search__filters--background',
|
|
44313
|
+
onClick: function () {
|
|
44314
|
+
return handleSetIsOpen();
|
|
44315
|
+
}
|
|
44316
|
+
}),
|
|
44317
|
+
React__default.createElement(
|
|
44318
|
+
'button',
|
|
44319
|
+
{
|
|
44320
|
+
className: 'search__filters--close',
|
|
44321
|
+
onClick: function () {
|
|
44322
|
+
return handleSetIsOpen();
|
|
44323
|
+
}
|
|
44324
|
+
},
|
|
44325
|
+
React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
44326
|
+
),
|
|
44327
|
+
React__default.createElement(
|
|
44328
|
+
'div',
|
|
44329
|
+
{ className: 'search__filters' },
|
|
44330
|
+
React__default.createElement(
|
|
44331
|
+
'div',
|
|
44332
|
+
{ className: 'search__filter-row search__filter__header' },
|
|
44333
|
+
React__default.createElement(
|
|
44334
|
+
'div',
|
|
44335
|
+
{ className: 'search__filter-row-flex-title' },
|
|
44336
|
+
React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
44337
|
+
),
|
|
44338
|
+
!isLoading &&
|
|
44339
|
+
React__default.createElement(
|
|
44340
|
+
'a',
|
|
44341
|
+
{
|
|
44342
|
+
className: 'search__filter-reset',
|
|
44343
|
+
onClick: function () {
|
|
44344
|
+
return handleFullReset();
|
|
44345
|
+
}
|
|
44346
|
+
},
|
|
44347
|
+
translations.SRP.RESET
|
|
44348
|
+
)
|
|
44349
|
+
),
|
|
44350
|
+
isLoading
|
|
44351
|
+
? React__default.createElement(Spinner, null)
|
|
44352
|
+
: React__default.createElement(
|
|
44353
|
+
React__default.Fragment,
|
|
44354
|
+
null,
|
|
44355
|
+
React__default.createElement(
|
|
44356
|
+
'div',
|
|
44357
|
+
{ className: 'search__filters__group-container' },
|
|
44358
|
+
filters.map(function (filter, index) {
|
|
44359
|
+
var _a, _b;
|
|
44360
|
+
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
44361
|
+
return React__default.createElement(
|
|
44362
|
+
'div',
|
|
44363
|
+
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
44364
|
+
React__default.createElement(
|
|
44365
|
+
'div',
|
|
44366
|
+
{
|
|
44367
|
+
className: 'search__filter-row search__filter-row--underline',
|
|
44368
|
+
onClick: function () {
|
|
44369
|
+
return toggleFilterVisibility(filter.property);
|
|
44370
|
+
},
|
|
44371
|
+
role: 'button',
|
|
44372
|
+
tabIndex: 0
|
|
44373
|
+
},
|
|
44374
|
+
React__default.createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
44375
|
+
React__default.createElement(
|
|
44376
|
+
'svg',
|
|
44377
|
+
{
|
|
44378
|
+
id: 'search-chevron-up-icon',
|
|
44379
|
+
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
44380
|
+
viewBox: '0 0 10 6.063',
|
|
44381
|
+
width: 10,
|
|
44382
|
+
height: 6.063
|
|
44383
|
+
},
|
|
44384
|
+
React__default.createElement('path', {
|
|
44385
|
+
id: 'Path_62',
|
|
44386
|
+
'data-name': 'Path 62',
|
|
44387
|
+
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
44388
|
+
transform: 'translate(-240 624)',
|
|
44389
|
+
fill: '#707070'
|
|
44390
|
+
})
|
|
44391
|
+
)
|
|
44392
|
+
),
|
|
44393
|
+
isVisible &&
|
|
44394
|
+
filter.type === 'checkbox' &&
|
|
44395
|
+
React__default.createElement(
|
|
44396
|
+
'div',
|
|
44397
|
+
{ className: 'search__filter-rows' },
|
|
44398
|
+
filter.options &&
|
|
44399
|
+
filter.options.map(function (option, optionIndex) {
|
|
44400
|
+
return React__default.createElement(
|
|
44401
|
+
'div',
|
|
44402
|
+
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
44403
|
+
React__default.createElement(
|
|
44404
|
+
'div',
|
|
44405
|
+
{ className: 'checkbox' },
|
|
44406
|
+
React__default.createElement(
|
|
44407
|
+
'label',
|
|
44408
|
+
{ className: 'checkbox__label' },
|
|
44409
|
+
React__default.createElement('input', {
|
|
44410
|
+
type: 'checkbox',
|
|
44411
|
+
className: 'checkbox__input checkbox__input--parent',
|
|
44412
|
+
checked: option.isChecked,
|
|
44413
|
+
onChange: function (e) {
|
|
44414
|
+
return handleCheckBoxFilter(filter, option);
|
|
44415
|
+
}
|
|
44416
|
+
}),
|
|
44417
|
+
React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
44418
|
+
)
|
|
44419
|
+
)
|
|
44420
|
+
);
|
|
44421
|
+
})
|
|
44422
|
+
),
|
|
44423
|
+
isVisible &&
|
|
44424
|
+
filter.type === 'toggle' &&
|
|
44425
|
+
React__default.createElement(
|
|
44426
|
+
'div',
|
|
44427
|
+
{ className: 'search__filter-rows' },
|
|
44428
|
+
(_b = filter.options) === null || _b === void 0
|
|
44429
|
+
? void 0
|
|
44430
|
+
: _b.map(function (option, optionIndex) {
|
|
44431
|
+
return React__default.createElement(
|
|
44432
|
+
'div',
|
|
44433
|
+
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
44434
|
+
React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
44435
|
+
React__default.createElement('div', { className: 'checkbox' }),
|
|
44436
|
+
React__default.createElement(
|
|
44437
|
+
'label',
|
|
44438
|
+
{ className: 'checkbox__label' },
|
|
44439
|
+
React__default.createElement('input', {
|
|
44440
|
+
type: 'checkbox',
|
|
44441
|
+
className: 'checkbox__input',
|
|
44442
|
+
checked: option.isChecked,
|
|
44443
|
+
onChange: function () {
|
|
44444
|
+
return handleCheckBoxFilter(filter, option);
|
|
44445
|
+
}
|
|
44446
|
+
})
|
|
44447
|
+
)
|
|
44448
|
+
);
|
|
44449
|
+
})
|
|
44450
|
+
),
|
|
44451
|
+
isVisible &&
|
|
44452
|
+
filter &&
|
|
44453
|
+
filter.type === 'slider' &&
|
|
44454
|
+
(function () {
|
|
44455
|
+
var _a, _b, _c, _d;
|
|
44456
|
+
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
44457
|
+
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
44458
|
+
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
44459
|
+
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
44460
|
+
return React__default.createElement(MultiRangeFilter, {
|
|
44461
|
+
min: min,
|
|
44462
|
+
max: max,
|
|
44463
|
+
selectedMin: selectedMin,
|
|
44464
|
+
selectedMax: selectedMax,
|
|
44465
|
+
valueFormatter: function (value) {
|
|
44466
|
+
return ''.concat(value);
|
|
44467
|
+
},
|
|
44468
|
+
onChange: function (newMin, newMax) {
|
|
44469
|
+
handleSliderChange(filter, newMin, newMax);
|
|
44470
|
+
}
|
|
44471
|
+
});
|
|
44472
|
+
})()
|
|
44473
|
+
);
|
|
44474
|
+
})
|
|
44475
|
+
)
|
|
44476
|
+
)
|
|
44477
|
+
)
|
|
44478
|
+
);
|
|
44479
|
+
};
|
|
44480
|
+
|
|
44481
|
+
var PackageingFlightsFlyIn = function (_a) {
|
|
44482
|
+
var _b;
|
|
44483
|
+
_a.isOpen;
|
|
44484
|
+
_a.setIsOpen;
|
|
44485
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44486
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44487
|
+
var translations = getTranslations(language);
|
|
44488
|
+
var dispatch = useDispatch();
|
|
44489
|
+
var _c = useSelector(function (state) {
|
|
44490
|
+
return state.searchResults;
|
|
44491
|
+
}),
|
|
44492
|
+
flightsLoading = _c.flightsLoading,
|
|
44493
|
+
initialFlightFilters = _c.initialFlightFilters,
|
|
44494
|
+
flightFilters = _c.flightFilters,
|
|
44495
|
+
flyInType = _c.flyInType,
|
|
44496
|
+
selectedFlightSortType = _c.selectedFlightSortType;
|
|
44497
|
+
var uniqueOutwardFlights = useSelector(selectUniqueOutwardFlights);
|
|
44498
|
+
var uniqueReturnFlights = useSelector(selectUniqueReturnFlights);
|
|
44499
|
+
var selectedOutward = useSelector(selectSelectedOutward);
|
|
44500
|
+
var selectedReturn = useSelector(selectSelectedReturn);
|
|
44501
|
+
var _d = useState(false),
|
|
44502
|
+
outwardStepComplete = _d[0],
|
|
44503
|
+
setOutwardStepComplete = _d[1];
|
|
44504
|
+
var handleConfirm = function () {
|
|
44505
|
+
if (!outwardStepComplete) {
|
|
44506
|
+
setOutwardStepComplete(true);
|
|
44507
|
+
dispatch(setFlyInType('flight-return-results'));
|
|
44508
|
+
return;
|
|
44509
|
+
} else {
|
|
44510
|
+
dispatch(setFlyInType(null));
|
|
44511
|
+
setOutwardStepComplete(false);
|
|
44512
|
+
dispatch(setFlyInIsOpen(false));
|
|
44513
|
+
}
|
|
44514
|
+
};
|
|
44515
|
+
var sortByTypes = [
|
|
44516
|
+
{ direction: 'asc', label: 'default' },
|
|
44517
|
+
{ direction: 'asc', label: 'price' },
|
|
44518
|
+
{ direction: 'desc', label: 'price' },
|
|
44519
|
+
{ direction: 'asc', label: 'departureTime' },
|
|
44520
|
+
{ direction: 'desc', label: 'departureTime' },
|
|
44521
|
+
{ direction: 'asc', label: 'durationInTicks' },
|
|
44522
|
+
{ direction: 'desc', label: 'durationInTicks' }
|
|
44523
|
+
];
|
|
44524
|
+
var handleSortChange = function (newSortKey, direction) {
|
|
44525
|
+
if (sortByTypes === undefined) return;
|
|
44526
|
+
var newSortByType = findSortByType(sortByTypes, newSortKey, direction !== null && direction !== void 0 ? direction : 'asc');
|
|
44527
|
+
if (newSortByType) {
|
|
44528
|
+
dispatch(setFlightSortType(newSortByType));
|
|
44529
|
+
}
|
|
44530
|
+
};
|
|
44531
|
+
return React__default.createElement(
|
|
44532
|
+
React__default.Fragment,
|
|
44533
|
+
null,
|
|
44534
|
+
React__default.createElement(
|
|
44535
|
+
'div',
|
|
44536
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
44537
|
+
flightsLoading
|
|
44538
|
+
? React__default.createElement(Spinner, null)
|
|
44539
|
+
: React__default.createElement(
|
|
44540
|
+
React__default.Fragment,
|
|
44541
|
+
null,
|
|
44542
|
+
React__default.createElement(Filters, {
|
|
44543
|
+
initialFilters: initialFlightFilters,
|
|
44544
|
+
filters: flightFilters,
|
|
44545
|
+
isOpen: false,
|
|
44546
|
+
handleSetIsOpen: function () {},
|
|
44547
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
44548
|
+
isLoading: flightsLoading,
|
|
44549
|
+
setFilters: function (filters) {
|
|
44550
|
+
return dispatch(setFlightFilters(filters));
|
|
44551
|
+
},
|
|
44552
|
+
resetFilters: function (filters) {
|
|
44553
|
+
return dispatch(resetFlightFilters(filters));
|
|
44554
|
+
}
|
|
44555
|
+
}),
|
|
44556
|
+
React__default.createElement(
|
|
44557
|
+
'div',
|
|
44558
|
+
{ className: 'search__results__wrapper' },
|
|
44559
|
+
React__default.createElement(
|
|
44560
|
+
'div',
|
|
44561
|
+
{ className: 'search__result-row' },
|
|
44562
|
+
React__default.createElement(
|
|
44563
|
+
'span',
|
|
44564
|
+
{ className: 'search__result-row-text' },
|
|
44565
|
+
(uniqueOutwardFlights === null || uniqueOutwardFlights === void 0 ? void 0 : uniqueOutwardFlights.length) && uniqueOutwardFlights.length,
|
|
44566
|
+
'\u00A0',
|
|
44567
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_2,
|
|
44568
|
+
'\u00A0',
|
|
44569
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3
|
|
44570
|
+
),
|
|
44571
|
+
sortByTypes &&
|
|
44572
|
+
sortByTypes.length > 0 &&
|
|
44573
|
+
React__default.createElement(
|
|
44574
|
+
'div',
|
|
44575
|
+
{ className: 'search__result-row-filter' },
|
|
44576
|
+
React__default.createElement(ItemPicker, {
|
|
44577
|
+
items: sortByTypes,
|
|
44578
|
+
selection: (selectedFlightSortType === null || selectedFlightSortType === void 0 ? void 0 : selectedFlightSortType.label) || undefined,
|
|
44579
|
+
selectedSortByType: selectedFlightSortType || undefined,
|
|
44580
|
+
label: translations.SRP.SORTBY,
|
|
44581
|
+
placeholder: translations.SRP.SORTBY,
|
|
44582
|
+
classModifier: '',
|
|
44583
|
+
valueFormatter: function (value, direction) {
|
|
44584
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
44585
|
+
},
|
|
44586
|
+
// onPick={handleSortChange}
|
|
44587
|
+
onPick: function (newSortKey, direction) {
|
|
44588
|
+
return handleSortChange(newSortKey, direction);
|
|
44589
|
+
}
|
|
44590
|
+
})
|
|
44591
|
+
)
|
|
44592
|
+
),
|
|
44593
|
+
React__default.createElement(
|
|
44594
|
+
'div',
|
|
44595
|
+
{ className: 'search__results__cards search__results__cards--extended' },
|
|
44596
|
+
flyInType == 'flight-outward-results' &&
|
|
44597
|
+
uniqueOutwardFlights.map(function (result) {
|
|
44598
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
44599
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
44600
|
+
item: result.outward,
|
|
44601
|
+
onSelect: function () {
|
|
44602
|
+
return dispatch(setSelectedOutwardKey(getFlightKey(result.outward.segments)));
|
|
44603
|
+
},
|
|
44604
|
+
guid: result.outwardGuid,
|
|
44605
|
+
isOutward: true,
|
|
44606
|
+
price: result.price,
|
|
44607
|
+
currentSelectedPrice: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.price,
|
|
44608
|
+
selectedGuid: selectedOutward === null || selectedOutward === void 0 ? void 0 : selectedOutward.outwardGuid,
|
|
44609
|
+
showSelectedState: true
|
|
44610
|
+
});
|
|
44611
|
+
}),
|
|
44612
|
+
flyInType == 'flight-return-results' &&
|
|
44613
|
+
uniqueReturnFlights.map(function (result) {
|
|
44614
|
+
return React__default.createElement(IndependentFlightOption, {
|
|
44615
|
+
key: 'flight-'.concat(result.outwardGuid),
|
|
44616
|
+
item: result.return,
|
|
44617
|
+
onSelect: function () {
|
|
44618
|
+
return dispatch(setSelectedReturnKey(getFlightKey(result.return.segments)));
|
|
44619
|
+
},
|
|
44620
|
+
guid: result.outwardGuid,
|
|
44621
|
+
isOutward: false,
|
|
44622
|
+
price: result.price,
|
|
44623
|
+
currentSelectedPrice: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.price,
|
|
44624
|
+
selectedGuid: selectedReturn === null || selectedReturn === void 0 ? void 0 : selectedReturn.outwardGuid,
|
|
44625
|
+
showSelectedState: true
|
|
44626
|
+
});
|
|
44627
|
+
})
|
|
44628
|
+
)
|
|
44629
|
+
)
|
|
44630
|
+
)
|
|
44631
|
+
),
|
|
44632
|
+
React__default.createElement(
|
|
44633
|
+
'div',
|
|
44634
|
+
{ className: 'flyin__footer' },
|
|
44635
|
+
React__default.createElement('div', { className: 'flyin__footer__price' }),
|
|
44636
|
+
React__default.createElement(
|
|
44637
|
+
'div',
|
|
44638
|
+
{ className: 'flyin__button-wrapper' },
|
|
44639
|
+
React__default.createElement(
|
|
44640
|
+
'button',
|
|
44641
|
+
{
|
|
44642
|
+
className: 'cta cta--select',
|
|
44643
|
+
onClick: function () {
|
|
44644
|
+
return handleConfirm();
|
|
44645
|
+
}
|
|
44646
|
+
},
|
|
44647
|
+
translations.QSM.CONFIRM
|
|
44648
|
+
)
|
|
44649
|
+
)
|
|
44650
|
+
)
|
|
44651
|
+
);
|
|
44652
|
+
};
|
|
44653
|
+
|
|
44654
|
+
var ExcursionResults = function (_a) {
|
|
44655
|
+
var _b;
|
|
44656
|
+
_a.isFlyIn;
|
|
44657
|
+
var activeSearchSeed = _a.activeSearchSeed;
|
|
44658
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44659
|
+
var dispatch = useDispatch();
|
|
44660
|
+
var _c = useState(false),
|
|
44661
|
+
isLoading = _c[0],
|
|
44662
|
+
setIsLoading = _c[1];
|
|
44663
|
+
var _d = useState(null),
|
|
44664
|
+
excursions = _d[0],
|
|
44665
|
+
setExcursions = _d[1];
|
|
44666
|
+
var _e = useSelector(function (state) {
|
|
44667
|
+
return state.searchResults;
|
|
44668
|
+
}),
|
|
44669
|
+
flyInIsOpen = _e.flyInIsOpen,
|
|
44670
|
+
flyInType = _e.flyInType,
|
|
44671
|
+
excursionSearchParams = _e.excursionSearchParams,
|
|
44672
|
+
transactionId = _e.transactionId;
|
|
44673
|
+
useEffect(
|
|
44674
|
+
function () {
|
|
44675
|
+
if (!context || !activeSearchSeed || !excursionSearchParams) return;
|
|
44676
|
+
(function () {
|
|
44677
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
44678
|
+
var config, destination, allPax, searchRequest, packageExcursionSearchResults, err_1;
|
|
44679
|
+
var _a, _b, _c, _d, _e;
|
|
44680
|
+
return __generator(this, function (_f) {
|
|
44681
|
+
switch (_f.label) {
|
|
44682
|
+
case 0:
|
|
44683
|
+
_f.trys.push([0, 2, 3, 4]);
|
|
44684
|
+
setIsLoading(true);
|
|
44685
|
+
console.log('Excursion search params changed, fetching excursions...', excursionSearchParams);
|
|
44686
|
+
config = {
|
|
44687
|
+
host: context.tideConnection.host,
|
|
44688
|
+
apiKey: context.tideConnection.apiKey
|
|
44689
|
+
};
|
|
44690
|
+
destination = excursionSearchParams.locationId
|
|
44691
|
+
? { id: Number(excursionSearchParams.locationId), type: 'location' }
|
|
44692
|
+
: excursionSearchParams.oordId
|
|
44693
|
+
? { id: Number(excursionSearchParams.oordId), type: 'oord' }
|
|
44694
|
+
: excursionSearchParams.regionId
|
|
44695
|
+
? { id: Number(excursionSearchParams.regionId), type: 'region' }
|
|
44696
|
+
: excursionSearchParams.countryId
|
|
44697
|
+
? { id: Number(excursionSearchParams.countryId), type: 'country' }
|
|
44698
|
+
: { id: 0, type: null };
|
|
44699
|
+
allPax = activeSearchSeed.rooms.flatMap(function (room) {
|
|
44700
|
+
return room.pax;
|
|
44701
|
+
});
|
|
44702
|
+
searchRequest = {
|
|
44703
|
+
transactionId: transactionId !== null && transactionId !== void 0 ? transactionId : '',
|
|
44704
|
+
officeId: (_a = context.tideConnection.officeId) !== null && _a !== void 0 ? _a : 1,
|
|
44705
|
+
agentId: (_b = context.agentId) !== null && _b !== void 0 ? _b : null,
|
|
44706
|
+
portalId: (_c = context.portalId) !== null && _c !== void 0 ? _c : null,
|
|
44707
|
+
catalogueId: (_d = context.searchConfiguration.defaultCatalogueId) !== null && _d !== void 0 ? _d : 0,
|
|
44708
|
+
searchConfigurationId: context.searchConfiguration.id,
|
|
44709
|
+
language: (_e = context.languageCode) !== null && _e !== void 0 ? _e : 'en-GB',
|
|
44710
|
+
serviceType: EXCURSION_SERVICE_TYPE,
|
|
44711
|
+
fromDate: excursionSearchParams.fromDate,
|
|
44712
|
+
toDate: excursionSearchParams.toDate,
|
|
44713
|
+
destination: {
|
|
44714
|
+
id: destination.id,
|
|
44715
|
+
isCountry: destination.type === 'country',
|
|
44716
|
+
isRegion: destination.type === 'region',
|
|
44717
|
+
isOord: destination.type === 'oord',
|
|
44718
|
+
isLocation: destination.type === 'location',
|
|
44719
|
+
isAirport: false,
|
|
44720
|
+
code: ''
|
|
44721
|
+
},
|
|
44722
|
+
productCode: '',
|
|
44723
|
+
// rooms: activeSearchSeed.rooms.map((room) => ({
|
|
44724
|
+
// travellers: room.pax.map((pax) => ({
|
|
44725
|
+
// id: pax.id,
|
|
44726
|
+
// age: pax.age,
|
|
44727
|
+
// dateOfBirth: pax.dateOfBirth
|
|
44728
|
+
// }))
|
|
44729
|
+
// })),
|
|
44730
|
+
rooms: [
|
|
44731
|
+
{
|
|
44732
|
+
travellers: allPax.map(function (pax) {
|
|
44733
|
+
return {
|
|
44734
|
+
id: pax.id,
|
|
44735
|
+
age: pax.age,
|
|
44736
|
+
dateOfBirth: pax.dateOfBirth
|
|
44737
|
+
};
|
|
44738
|
+
})
|
|
44739
|
+
}
|
|
44740
|
+
],
|
|
44741
|
+
tagIds: []
|
|
44742
|
+
};
|
|
44743
|
+
return [4 /*yield*/, build.searchPackagingExcursions(config, searchRequest)];
|
|
44744
|
+
case 1:
|
|
44745
|
+
packageExcursionSearchResults = _f.sent();
|
|
44746
|
+
console.log('Excursion search results', packageExcursionSearchResults);
|
|
44747
|
+
setExcursions(packageExcursionSearchResults);
|
|
44748
|
+
return [3 /*break*/, 4];
|
|
44749
|
+
case 2:
|
|
44750
|
+
err_1 = _f.sent();
|
|
44751
|
+
console.error('Excursion search failed', err_1);
|
|
44752
|
+
return [3 /*break*/, 4];
|
|
44753
|
+
case 3:
|
|
44754
|
+
setIsLoading(false);
|
|
44755
|
+
return [7 /*endfinally*/];
|
|
44756
|
+
case 4:
|
|
44757
|
+
return [2 /*return*/];
|
|
44758
|
+
}
|
|
44759
|
+
});
|
|
44760
|
+
});
|
|
44761
|
+
})();
|
|
44762
|
+
},
|
|
44763
|
+
[context, activeSearchSeed, excursionSearchParams, transactionId]
|
|
44764
|
+
);
|
|
44765
|
+
if (!context || !activeSearchSeed) {
|
|
44766
|
+
return null;
|
|
44767
|
+
}
|
|
44768
|
+
if (!flyInIsOpen || flyInType !== 'excursion-results') {
|
|
44769
|
+
return null;
|
|
44770
|
+
}
|
|
44771
|
+
var translations = getTranslations((_b = context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
44772
|
+
var handleChange = function (excursion) {
|
|
44773
|
+
console.log('Selected excursion', excursion);
|
|
44774
|
+
dispatch(setFlyInType('excursion-details'));
|
|
44775
|
+
dispatch(setSelectedExcursionSearchResult(excursion));
|
|
44776
|
+
};
|
|
44777
|
+
return isLoading
|
|
44778
|
+
? React__default.createElement(Spinner, null)
|
|
44779
|
+
: React__default.createElement(
|
|
44780
|
+
'div',
|
|
44781
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
44782
|
+
React__default.createElement(
|
|
44783
|
+
'div',
|
|
44784
|
+
{ className: 'search__results__wrapper' },
|
|
44785
|
+
React__default.createElement(
|
|
44786
|
+
'div',
|
|
44787
|
+
{ className: 'search__result-row' },
|
|
44788
|
+
React__default.createElement(
|
|
44789
|
+
'span',
|
|
44790
|
+
{ className: 'search__result-row-text' },
|
|
44791
|
+
!isLoading &&
|
|
44792
|
+
React__default.createElement(
|
|
44793
|
+
React__default.Fragment,
|
|
44794
|
+
null,
|
|
44795
|
+
(excursions === null || excursions === void 0 ? void 0 : excursions.length) && excursions.length,
|
|
44796
|
+
'\u00A0',
|
|
44797
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
44798
|
+
)
|
|
44799
|
+
)
|
|
44800
|
+
),
|
|
44801
|
+
React__default.createElement(
|
|
44802
|
+
'div',
|
|
44803
|
+
{ className: 'search__results__cards search__results__cards--compact' },
|
|
44804
|
+
excursions &&
|
|
44805
|
+
excursions.length > 0 &&
|
|
44806
|
+
excursions.map(function (excursion) {
|
|
44807
|
+
return React__default.createElement(
|
|
44808
|
+
'div',
|
|
44809
|
+
{
|
|
44810
|
+
key: excursion.code,
|
|
44811
|
+
className: 'search__result-card__wrapper search__result-card__wrapper--custom',
|
|
44812
|
+
onMouseEnter: function (e) {
|
|
44813
|
+
return (e.currentTarget.style.transform = 'scale(1.02)');
|
|
44814
|
+
},
|
|
44815
|
+
onMouseLeave: function (e) {
|
|
44816
|
+
return (e.currentTarget.style.transform = 'scale(1)');
|
|
44817
|
+
}
|
|
44818
|
+
},
|
|
44819
|
+
excursion.contents
|
|
44820
|
+
? React__default.createElement('div', { dangerouslySetInnerHTML: { __html: he.decode(excursion.contents) } })
|
|
44821
|
+
: 'no contents',
|
|
44822
|
+
React__default.createElement(
|
|
44823
|
+
'div',
|
|
44824
|
+
{ className: 'search__result-card__footer' },
|
|
44825
|
+
React__default.createElement(
|
|
44826
|
+
'button',
|
|
44827
|
+
{
|
|
44828
|
+
type: 'button',
|
|
44829
|
+
className: 'cta cta--select',
|
|
44830
|
+
onClick: function () {
|
|
44831
|
+
return handleChange(excursion);
|
|
44832
|
+
}
|
|
44833
|
+
},
|
|
44834
|
+
translations === null || translations === void 0 ? void 0 : translations.SHARED.SELECT
|
|
44835
|
+
)
|
|
44836
|
+
)
|
|
44837
|
+
);
|
|
44838
|
+
})
|
|
44839
|
+
)
|
|
44840
|
+
)
|
|
44841
|
+
);
|
|
44842
|
+
};
|
|
44843
|
+
|
|
44844
|
+
var formatPrice = function (price, currencyCode) {
|
|
44845
|
+
if (typeof price !== 'number') return '';
|
|
44846
|
+
return new Intl.NumberFormat('nl-BE', {
|
|
44847
|
+
style: 'currency',
|
|
44848
|
+
currency: currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR'
|
|
44849
|
+
}).format(price);
|
|
44850
|
+
};
|
|
44851
|
+
var getExcursionDayKey = function (date) {
|
|
44852
|
+
var parsed = typeof date === 'string' ? parseISO(date) : date;
|
|
44853
|
+
return format$1(parsed, 'yyyy-MM-dd');
|
|
44854
|
+
};
|
|
44855
|
+
var getOptionPaxIds = function (option) {
|
|
44856
|
+
return Array.isArray(option.paxIds)
|
|
44857
|
+
? Array.from(new Set(option.paxIds)).sort(function (a, b) {
|
|
44858
|
+
return a - b;
|
|
44859
|
+
})
|
|
44860
|
+
: [];
|
|
44861
|
+
};
|
|
44862
|
+
var optionAppliesToPax = function (option, paxId) {
|
|
44863
|
+
return getOptionPaxIds(option).includes(paxId);
|
|
44864
|
+
};
|
|
44865
|
+
var optionAppliesToAllTravellers = function (option, travellerCount) {
|
|
44866
|
+
var paxIds = getOptionPaxIds(option);
|
|
44867
|
+
var expected = Array.from({ length: travellerCount }, function (_, i) {
|
|
44868
|
+
return i;
|
|
44869
|
+
});
|
|
44870
|
+
return (
|
|
44871
|
+
paxIds.length === expected.length &&
|
|
44872
|
+
paxIds.every(function (id, index) {
|
|
44873
|
+
return id === expected[index];
|
|
44874
|
+
})
|
|
44875
|
+
);
|
|
44876
|
+
};
|
|
44877
|
+
var groupOptionsByExcursion = function (options) {
|
|
44878
|
+
var groupedMap = new Map();
|
|
44879
|
+
options.forEach(function (option) {
|
|
44880
|
+
var key = option.accommodationCode;
|
|
44881
|
+
if (!groupedMap.has(key)) {
|
|
44882
|
+
groupedMap.set(key, {
|
|
44883
|
+
accommodationCode: option.accommodationCode,
|
|
44884
|
+
accommodationName: option.accommodationName,
|
|
44885
|
+
options: []
|
|
44886
|
+
});
|
|
44887
|
+
}
|
|
44888
|
+
groupedMap.get(key).options.push(option);
|
|
44889
|
+
});
|
|
44890
|
+
return Array.from(groupedMap.values());
|
|
44891
|
+
};
|
|
44892
|
+
var ExcursionDetails = function () {
|
|
44893
|
+
var _a;
|
|
44894
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
44895
|
+
var dispatch = useDispatch();
|
|
44896
|
+
var _b = useSelector(function (state) {
|
|
44897
|
+
return state.searchResults;
|
|
44898
|
+
}),
|
|
44899
|
+
selectedExcursionSearchResult = _b.selectedExcursionSearchResult,
|
|
44900
|
+
editablePackagingEntry = _b.editablePackagingEntry,
|
|
44901
|
+
excursionSearchParams = _b.excursionSearchParams;
|
|
44902
|
+
if (
|
|
44903
|
+
!context ||
|
|
44904
|
+
!selectedExcursionSearchResult ||
|
|
44905
|
+
!editablePackagingEntry ||
|
|
44906
|
+
!(excursionSearchParams === null || excursionSearchParams === void 0 ? void 0 : excursionSearchParams.date)
|
|
44907
|
+
) {
|
|
44908
|
+
return null;
|
|
44909
|
+
}
|
|
44910
|
+
var translations = getTranslations((_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
|
|
44911
|
+
var travellerCount = editablePackagingEntry.pax.length;
|
|
44912
|
+
var allOptions = useMemo(
|
|
44913
|
+
function () {
|
|
44914
|
+
return selectedExcursionSearchResult.rooms.flatMap(function (room) {
|
|
44915
|
+
var _a;
|
|
44916
|
+
return (_a = room.options) !== null && _a !== void 0 ? _a : [];
|
|
44917
|
+
});
|
|
44918
|
+
},
|
|
44919
|
+
[selectedExcursionSearchResult]
|
|
44920
|
+
);
|
|
44921
|
+
var sharedOptions = useMemo(
|
|
44922
|
+
function () {
|
|
44923
|
+
return allOptions.filter(function (option) {
|
|
44924
|
+
return optionAppliesToAllTravellers(option, travellerCount);
|
|
44925
|
+
});
|
|
44926
|
+
},
|
|
44927
|
+
[allOptions, travellerCount]
|
|
44928
|
+
);
|
|
44929
|
+
var sharedExcursions = useMemo(
|
|
44930
|
+
function () {
|
|
44931
|
+
return groupOptionsByExcursion(sharedOptions);
|
|
44932
|
+
},
|
|
44933
|
+
[sharedOptions]
|
|
44934
|
+
);
|
|
44935
|
+
var paxGroups = useMemo(
|
|
44936
|
+
function () {
|
|
44937
|
+
return editablePackagingEntry.pax.map(function (pax) {
|
|
44938
|
+
var paxOptions = allOptions.filter(function (option) {
|
|
44939
|
+
return optionAppliesToPax(option, pax.id) && !optionAppliesToAllTravellers(option, travellerCount);
|
|
44940
|
+
});
|
|
44941
|
+
return {
|
|
44942
|
+
pax: pax,
|
|
44943
|
+
paxId: pax.id,
|
|
44944
|
+
excursions: groupOptionsByExcursion(paxOptions)
|
|
44945
|
+
};
|
|
44946
|
+
});
|
|
44947
|
+
},
|
|
44948
|
+
[editablePackagingEntry.pax, allOptions, travellerCount]
|
|
44949
|
+
);
|
|
44950
|
+
var getSelectedSharedOption = function () {
|
|
44951
|
+
return sharedOptions.find(function (option) {
|
|
44952
|
+
return option.isSelected;
|
|
44953
|
+
});
|
|
44954
|
+
};
|
|
44955
|
+
var getSelectedSharedOptionForExcursion = function (accommodationCode) {
|
|
44956
|
+
return sharedOptions.find(function (option) {
|
|
44957
|
+
return option.accommodationCode === accommodationCode && option.isSelected;
|
|
44958
|
+
});
|
|
44959
|
+
};
|
|
44960
|
+
var getSelectedOptionForPax = function (paxId) {
|
|
44961
|
+
return allOptions.find(function (option) {
|
|
44962
|
+
return optionAppliesToPax(option, paxId) && !optionAppliesToAllTravellers(option, travellerCount) && option.isSelected;
|
|
44963
|
+
});
|
|
44964
|
+
};
|
|
44965
|
+
var getSelectedOptionForExcursion = function (paxId, accommodationCode) {
|
|
44966
|
+
return allOptions.find(function (option) {
|
|
44967
|
+
return (
|
|
44968
|
+
optionAppliesToPax(option, paxId) &&
|
|
44969
|
+
!optionAppliesToAllTravellers(option, travellerCount) &&
|
|
44970
|
+
option.accommodationCode === accommodationCode &&
|
|
44971
|
+
option.isSelected
|
|
44972
|
+
);
|
|
44973
|
+
});
|
|
44974
|
+
};
|
|
44975
|
+
var handlePick = function (selectedGuid, paxId) {
|
|
44976
|
+
var updatedExcursionSearchResult = __assign(__assign({}, selectedExcursionSearchResult), {
|
|
44977
|
+
rooms: selectedExcursionSearchResult.rooms.map(function (room) {
|
|
44978
|
+
return __assign(__assign({}, room), {
|
|
44979
|
+
options: room.options.map(function (option) {
|
|
44980
|
+
var isSharedOption = optionAppliesToAllTravellers(option, travellerCount);
|
|
44981
|
+
if (paxId === undefined) {
|
|
44982
|
+
if (!isSharedOption) {
|
|
44983
|
+
return option;
|
|
44984
|
+
}
|
|
44985
|
+
return __assign(__assign({}, option), { isSelected: option.guid === selectedGuid });
|
|
44986
|
+
}
|
|
44987
|
+
if (isSharedOption || !optionAppliesToPax(option, paxId)) {
|
|
44988
|
+
return option;
|
|
44989
|
+
}
|
|
44990
|
+
return __assign(__assign({}, option), { isSelected: option.guid === selectedGuid });
|
|
44991
|
+
})
|
|
44992
|
+
});
|
|
44993
|
+
})
|
|
44994
|
+
});
|
|
44995
|
+
dispatch(setSelectedExcursionSearchResult(updatedExcursionSearchResult));
|
|
44996
|
+
};
|
|
44997
|
+
var calculateTotalPrice = function () {
|
|
44998
|
+
var selectedOptions = allOptions.filter(function (option) {
|
|
44999
|
+
return option.isSelected;
|
|
45000
|
+
});
|
|
45001
|
+
var totalPrice = selectedOptions.reduce(function (total, option) {
|
|
45002
|
+
return total + (option.price || 0);
|
|
45003
|
+
}, 0);
|
|
45004
|
+
return formatPrice(totalPrice, selectedExcursionSearchResult.currencyCode);
|
|
45005
|
+
};
|
|
45006
|
+
var getSharedPriceDifference = function (accommodationCode) {
|
|
45007
|
+
var currentSelectedShared = getSelectedSharedOption();
|
|
45008
|
+
var targetPrice = 0;
|
|
45009
|
+
var selectedOption = getSelectedSharedOptionForExcursion(accommodationCode);
|
|
45010
|
+
if (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.price) {
|
|
45011
|
+
targetPrice = selectedOption.price;
|
|
45012
|
+
} else {
|
|
45013
|
+
var firstOption = sharedOptions.find(function (option) {
|
|
45014
|
+
return option.accommodationCode === accommodationCode;
|
|
45015
|
+
});
|
|
45016
|
+
targetPrice = (firstOption === null || firstOption === void 0 ? void 0 : firstOption.price) || 0;
|
|
45017
|
+
}
|
|
45018
|
+
return targetPrice - ((currentSelectedShared === null || currentSelectedShared === void 0 ? void 0 : currentSelectedShared.price) || 0);
|
|
45019
|
+
};
|
|
45020
|
+
var getPriceDifference = function (currentSelectedPrice, paxId, accommodationCode) {
|
|
45021
|
+
var targetPrice = 0;
|
|
45022
|
+
var selectedOption = getSelectedOptionForExcursion(paxId, accommodationCode);
|
|
45023
|
+
if (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.price) {
|
|
45024
|
+
targetPrice = selectedOption.price;
|
|
45025
|
+
} else {
|
|
45026
|
+
var firstOption = allOptions.find(function (option) {
|
|
45027
|
+
return optionAppliesToPax(option, paxId) && !optionAppliesToAllTravellers(option, travellerCount) && option.accommodationCode === accommodationCode;
|
|
45028
|
+
});
|
|
45029
|
+
targetPrice = (firstOption === null || firstOption === void 0 ? void 0 : firstOption.price) || 0;
|
|
45030
|
+
}
|
|
45031
|
+
return targetPrice - (currentSelectedPrice || 0);
|
|
45032
|
+
};
|
|
45033
|
+
var formatPriceDifference = function (difference, currencyCode) {
|
|
45034
|
+
if (difference === 0) {
|
|
45035
|
+
return null;
|
|
45036
|
+
}
|
|
45037
|
+
var formattedAbsoluteValue = formatPrice(Math.abs(difference), currencyCode);
|
|
45038
|
+
return ''.concat(difference > 0 ? '+' : '-', ' ').concat(formattedAbsoluteValue);
|
|
45039
|
+
};
|
|
45040
|
+
var getPriceDifferenceClassName = function (difference) {
|
|
45041
|
+
if (difference < 0) {
|
|
45042
|
+
return 'flyin__acco__price flyin__acco__price--decrease';
|
|
45043
|
+
}
|
|
45044
|
+
if (difference > 0) {
|
|
45045
|
+
return 'flyin__acco__price flyin__acco__price--increase';
|
|
45046
|
+
}
|
|
45047
|
+
return 'flyin__acco__price';
|
|
45048
|
+
};
|
|
45049
|
+
var handleConfirm = function () {
|
|
45050
|
+
var dayKey = getExcursionDayKey(excursionSearchParams.date);
|
|
45051
|
+
dispatch(
|
|
45052
|
+
confirmExcursionForDay({
|
|
45053
|
+
dayKey: dayKey,
|
|
45054
|
+
excursion: selectedExcursionSearchResult
|
|
45055
|
+
})
|
|
45056
|
+
);
|
|
45057
|
+
dispatch(setFlyInIsOpen(false));
|
|
45058
|
+
};
|
|
45059
|
+
return React__default.createElement(
|
|
45060
|
+
React__default.Fragment,
|
|
45061
|
+
null,
|
|
45062
|
+
React__default.createElement(
|
|
45063
|
+
'div',
|
|
45064
|
+
{ className: 'flyin__content' },
|
|
45065
|
+
sharedExcursions.length > 0 &&
|
|
45066
|
+
React__default.createElement(
|
|
45067
|
+
'div',
|
|
45068
|
+
{ className: 'flyin__acco' },
|
|
45069
|
+
React__default.createElement('h3', { className: 'flyin__acco__room-title' }, translations.QSM.ALL_TRAVELERS),
|
|
45070
|
+
React__default.createElement(
|
|
45071
|
+
'div',
|
|
45072
|
+
{ className: 'flyin__acco__cards' },
|
|
45073
|
+
sharedExcursions.map(function (excursion) {
|
|
45074
|
+
var selectedOption = getSelectedSharedOptionForExcursion(excursion.accommodationCode);
|
|
45075
|
+
var priceDifference = getSharedPriceDifference(excursion.accommodationCode);
|
|
45076
|
+
return React__default.createElement(
|
|
45077
|
+
'div',
|
|
45078
|
+
{ className: 'flyin__acco__card', key: 'all-'.concat(excursion.accommodationCode) },
|
|
45079
|
+
React__default.createElement(
|
|
45080
|
+
'div',
|
|
45081
|
+
{ className: 'flyin__acco__content' },
|
|
45082
|
+
React__default.createElement('h4', { className: 'flyin__acco__title' }, excursion.accommodationName)
|
|
45083
|
+
),
|
|
45084
|
+
React__default.createElement(
|
|
45085
|
+
'div',
|
|
45086
|
+
{ className: 'flyin__acco__footer' },
|
|
45087
|
+
React__default.createElement(
|
|
45088
|
+
'div',
|
|
45089
|
+
{ className: 'flyin__acco__footer__actions' },
|
|
45090
|
+
React__default.createElement(
|
|
45091
|
+
'button',
|
|
45092
|
+
{
|
|
45093
|
+
className: selectedOption ? 'cta cta--select cta--selected' : 'cta cta--select',
|
|
45094
|
+
onClick: function () {
|
|
45095
|
+
var _a;
|
|
45096
|
+
return handlePick(
|
|
45097
|
+
selectedOption ? selectedOption.guid : (_a = first(excursion.options)) === null || _a === void 0 ? void 0 : _a.guid
|
|
45098
|
+
);
|
|
45099
|
+
}
|
|
45100
|
+
},
|
|
45101
|
+
selectedOption
|
|
45102
|
+
? translations === null || translations === void 0
|
|
45103
|
+
? void 0
|
|
45104
|
+
: translations.SHARED.SELECTED
|
|
45105
|
+
: translations === null || translations === void 0
|
|
45106
|
+
? void 0
|
|
45107
|
+
: translations.SHARED.SELECT
|
|
45108
|
+
),
|
|
45109
|
+
React__default.createElement(
|
|
45110
|
+
'div',
|
|
45111
|
+
{ className: 'flyin__acco__price__wrapper' },
|
|
45112
|
+
React__default.createElement(
|
|
45113
|
+
'span',
|
|
45114
|
+
{ className: getPriceDifferenceClassName(priceDifference) },
|
|
45115
|
+
formatPriceDifference(priceDifference, selectedExcursionSearchResult.currencyCode)
|
|
45116
|
+
)
|
|
45117
|
+
)
|
|
45118
|
+
)
|
|
45119
|
+
)
|
|
45120
|
+
);
|
|
45121
|
+
})
|
|
45122
|
+
)
|
|
45123
|
+
),
|
|
45124
|
+
paxGroups.map(function (_a) {
|
|
45125
|
+
var pax = _a.pax,
|
|
45126
|
+
paxId = _a.paxId,
|
|
45127
|
+
excursions = _a.excursions;
|
|
45128
|
+
if (excursions.length === 0) {
|
|
45129
|
+
return null;
|
|
45130
|
+
}
|
|
45131
|
+
var selectedPaxOption = getSelectedOptionForPax(paxId);
|
|
45132
|
+
return React__default.createElement(
|
|
45133
|
+
'div',
|
|
45134
|
+
{ className: 'flyin__acco', key: 'pax-'.concat(pax.id) },
|
|
45135
|
+
React__default.createElement('h3', { className: 'flyin__acco__room-title' }, translations.SUMMARY.TRAVELER, ' ', pax.id + 1),
|
|
45136
|
+
React__default.createElement(
|
|
45137
|
+
'div',
|
|
45138
|
+
{ className: 'flyin__acco__cards' },
|
|
45139
|
+
excursions.map(function (excursion) {
|
|
45140
|
+
var selectedOption = getSelectedOptionForExcursion(paxId, excursion.accommodationCode);
|
|
45141
|
+
var priceDifference = getPriceDifference(
|
|
45142
|
+
selectedPaxOption === null || selectedPaxOption === void 0 ? void 0 : selectedPaxOption.price,
|
|
45143
|
+
paxId,
|
|
45144
|
+
excursion.accommodationCode
|
|
45145
|
+
);
|
|
45146
|
+
return React__default.createElement(
|
|
45147
|
+
'div',
|
|
45148
|
+
{ className: 'flyin__acco__card', key: ''.concat(pax.id, '-').concat(excursion.accommodationCode) },
|
|
45149
|
+
React__default.createElement(
|
|
45150
|
+
'div',
|
|
45151
|
+
{ className: 'flyin__acco__content' },
|
|
45152
|
+
React__default.createElement('h4', { className: 'flyin__acco__title' }, excursion.accommodationName)
|
|
45153
|
+
),
|
|
45154
|
+
React__default.createElement(
|
|
45155
|
+
'div',
|
|
45156
|
+
{ className: 'flyin__acco__footer' },
|
|
45157
|
+
React__default.createElement(
|
|
45158
|
+
'div',
|
|
45159
|
+
{ className: 'flyin__acco__footer__actions' },
|
|
45160
|
+
React__default.createElement(
|
|
45161
|
+
'button',
|
|
45162
|
+
{
|
|
45163
|
+
className:
|
|
45164
|
+
(selectedPaxOption === null || selectedPaxOption === void 0 ? void 0 : selectedPaxOption.accommodationCode) ===
|
|
45165
|
+
excursion.accommodationCode
|
|
45166
|
+
? 'cta cta--select cta--selected'
|
|
45167
|
+
: 'cta cta--select',
|
|
45168
|
+
onClick: function () {
|
|
45169
|
+
var _a;
|
|
45170
|
+
return handlePick(
|
|
45171
|
+
selectedOption ? selectedOption.guid : (_a = first(excursion.options)) === null || _a === void 0 ? void 0 : _a.guid,
|
|
45172
|
+
paxId
|
|
45173
|
+
);
|
|
45174
|
+
}
|
|
45175
|
+
},
|
|
45176
|
+
(selectedPaxOption === null || selectedPaxOption === void 0 ? void 0 : selectedPaxOption.accommodationCode) ===
|
|
45177
|
+
excursion.accommodationCode
|
|
45178
|
+
? translations === null || translations === void 0
|
|
45179
|
+
? void 0
|
|
45180
|
+
: translations.SHARED.SELECTED
|
|
45181
|
+
: translations === null || translations === void 0
|
|
45182
|
+
? void 0
|
|
45183
|
+
: translations.SHARED.SELECT
|
|
45184
|
+
),
|
|
45185
|
+
React__default.createElement(
|
|
45186
|
+
'div',
|
|
45187
|
+
{ className: 'flyin__acco__price__wrapper' },
|
|
45188
|
+
React__default.createElement(
|
|
45189
|
+
'span',
|
|
45190
|
+
{ className: getPriceDifferenceClassName(priceDifference) },
|
|
45191
|
+
formatPriceDifference(priceDifference, selectedExcursionSearchResult.currencyCode)
|
|
45192
|
+
)
|
|
45193
|
+
)
|
|
45194
|
+
)
|
|
45195
|
+
)
|
|
45196
|
+
);
|
|
45197
|
+
})
|
|
45198
|
+
)
|
|
45199
|
+
);
|
|
45200
|
+
})
|
|
45201
|
+
),
|
|
45202
|
+
React__default.createElement(
|
|
45203
|
+
'div',
|
|
45204
|
+
{ className: 'flyin__footer' },
|
|
45205
|
+
React__default.createElement('div', { className: 'flyin__footer__price' }, translations.SHARED.TOTAL_PRICE, ': ', calculateTotalPrice()),
|
|
45206
|
+
React__default.createElement(
|
|
45207
|
+
'button',
|
|
45208
|
+
{ type: 'button', className: 'cta cta--primary', onClick: handleConfirm },
|
|
45209
|
+
translations === null || translations === void 0 ? void 0 : translations.QSM.CONFIRM
|
|
45210
|
+
)
|
|
45211
|
+
)
|
|
45212
|
+
);
|
|
45213
|
+
};
|
|
45214
|
+
|
|
45215
|
+
var FlyIn = function (_a) {
|
|
45216
|
+
var _b;
|
|
45217
|
+
var srpType = _a.srpType,
|
|
45218
|
+
isOpen = _a.isOpen,
|
|
45219
|
+
setIsOpen = _a.setIsOpen,
|
|
45220
|
+
_c = _a.className,
|
|
45221
|
+
className = _c === void 0 ? '' : _c,
|
|
45222
|
+
onPanelRef = _a.onPanelRef,
|
|
45223
|
+
detailsLoading = _a.detailsLoading,
|
|
45224
|
+
flyInType = _a.flyInType,
|
|
45225
|
+
isPackageEditFlow = _a.isPackageEditFlow,
|
|
45226
|
+
handleConfirm = _a.handleConfirm,
|
|
45227
|
+
sortByTypes = _a.sortByTypes,
|
|
45228
|
+
activeSearchSeed = _a.activeSearchSeed;
|
|
45229
|
+
var dispatch = useDispatch();
|
|
45230
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
45231
|
+
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
45232
|
+
var translations = getTranslations(language);
|
|
45233
|
+
var _d = useSelector(function (state) {
|
|
45234
|
+
return state.searchResults;
|
|
45235
|
+
}),
|
|
45236
|
+
isLoading = _d.isLoading,
|
|
45237
|
+
initialFilters = _d.initialFilters,
|
|
45238
|
+
filters = _d.filters,
|
|
45239
|
+
filteredPackagingAccoResults = _d.filteredPackagingAccoResults,
|
|
45240
|
+
selectedSortType = _d.selectedSortType;
|
|
45241
|
+
var onCancelSearch = useFlightSearch().onCancelSearch;
|
|
45242
|
+
var panelRef = useRef(null);
|
|
45243
|
+
// expose DOM node if needed
|
|
45244
|
+
useEffect(
|
|
45245
|
+
function () {
|
|
45246
|
+
onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(panelRef.current);
|
|
45247
|
+
return function () {
|
|
45248
|
+
return onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(null);
|
|
45249
|
+
};
|
|
45250
|
+
},
|
|
45251
|
+
[onPanelRef]
|
|
45252
|
+
);
|
|
45253
|
+
useEffect(
|
|
45254
|
+
function () {
|
|
45255
|
+
// click outside detection
|
|
45256
|
+
var handleClickOutside = function (event) {
|
|
45257
|
+
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
45258
|
+
handleClose();
|
|
45259
|
+
}
|
|
45260
|
+
};
|
|
45261
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
45262
|
+
return function () {
|
|
45263
|
+
return document.removeEventListener('mousedown', handleClickOutside);
|
|
45264
|
+
};
|
|
45265
|
+
},
|
|
45266
|
+
[isOpen, setIsOpen]
|
|
45267
|
+
);
|
|
45268
|
+
// body scroll lock
|
|
45269
|
+
useEffect(
|
|
45270
|
+
function () {
|
|
45271
|
+
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
45272
|
+
return function () {
|
|
45273
|
+
document.body.style.overflow = '';
|
|
45274
|
+
};
|
|
45275
|
+
},
|
|
45276
|
+
[isOpen]
|
|
45277
|
+
);
|
|
45278
|
+
var handleClose = function () {
|
|
45279
|
+
if (isOpen && panelRef.current) {
|
|
45280
|
+
if (srpType === build.PortalQsmType.Flight) {
|
|
45281
|
+
dispatch(setSelectedFlight(null));
|
|
45282
|
+
dispatch(setSelectedFlightDetails(null));
|
|
45283
|
+
onCancelSearch();
|
|
45284
|
+
} else {
|
|
45285
|
+
dispatch(setSelectedSearchResult(null));
|
|
45286
|
+
}
|
|
45287
|
+
dispatch(setFlyInType('acco-details'));
|
|
45288
|
+
setIsOpen(false);
|
|
45289
|
+
}
|
|
45290
|
+
};
|
|
45291
|
+
var handleGoBack = function () {
|
|
45292
|
+
if (flyInType === 'acco-details') {
|
|
45293
|
+
dispatch(setFlyInType('acco-results'));
|
|
45294
|
+
} else if (flyInType === 'excursion-details') {
|
|
45295
|
+
dispatch(setFlyInType('excursion-results'));
|
|
45296
|
+
}
|
|
45297
|
+
};
|
|
45298
|
+
var handleSortChange = function (newSortKey, direction) {
|
|
45299
|
+
if (sortByTypes === undefined) return;
|
|
45300
|
+
var newSortByType = findSortByType(sortByTypes, newSortKey, direction !== null && direction !== void 0 ? direction : 'asc');
|
|
45301
|
+
if (newSortByType) {
|
|
45302
|
+
dispatch(setSortType(newSortByType));
|
|
45303
|
+
}
|
|
45304
|
+
};
|
|
45305
|
+
return React__default.createElement(
|
|
45306
|
+
'div',
|
|
45307
|
+
{
|
|
45308
|
+
className: 'flyin '
|
|
45309
|
+
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
45310
|
+
.concat(className, ' ')
|
|
45311
|
+
.concat(
|
|
45312
|
+
isPackageEditFlow || flyInType === 'flight-outward-results' || flyInType === 'flight-return-results' || flyInType === 'acco-results'
|
|
45313
|
+
? 'flyin--large'
|
|
45314
|
+
: ''
|
|
45315
|
+
)
|
|
45316
|
+
},
|
|
45317
|
+
React__default.createElement(
|
|
45318
|
+
'div',
|
|
45319
|
+
{ className: 'flyin__panel '.concat(isOpen ? 'flyin__panel--active' : ''), ref: panelRef },
|
|
45320
|
+
React__default.createElement(
|
|
45321
|
+
'div',
|
|
45322
|
+
{ className: 'flyin__content' },
|
|
45323
|
+
React__default.createElement(
|
|
45324
|
+
'div',
|
|
45325
|
+
{ className: 'flyin__content-title-row' },
|
|
45326
|
+
React__default.createElement(
|
|
45327
|
+
'h3',
|
|
45328
|
+
{ className: 'flyin__content-title' },
|
|
45329
|
+
srpType === build.PortalQsmType.Flight && 'Select your fare',
|
|
45330
|
+
srpType === build.PortalQsmType.Accommodation ||
|
|
45331
|
+
(srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45332
|
+
(flyInType === 'acco-results' || flyInType === 'acco-details') &&
|
|
45333
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.ACCOMMODATION)),
|
|
45334
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45335
|
+
flyInType === 'flight-outward-results' &&
|
|
45336
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.FLIGHTS_FORM.OUTWARD_FLIGHT),
|
|
45337
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45338
|
+
flyInType === 'flight-return-results' &&
|
|
45339
|
+
''.concat(translations.SRP.SELECT, ' ').concat(translations.FLIGHTS_FORM.RETURN_FLIGHT),
|
|
45340
|
+
srpType === build.PortalQsmType.AccommodationAndFlight && flyInType === 'flight-details' && 'Select your fare',
|
|
45341
|
+
flyInType === 'excursion-results' || (flyInType === 'excursion-details' && 'Select excursion')
|
|
45342
|
+
),
|
|
45343
|
+
React__default.createElement(
|
|
45344
|
+
'span',
|
|
45345
|
+
{
|
|
45346
|
+
className: 'flyin__close',
|
|
45347
|
+
onClick: function () {
|
|
45348
|
+
return handleClose();
|
|
45349
|
+
}
|
|
45350
|
+
},
|
|
45351
|
+
React__default.createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
45352
|
+
)
|
|
45353
|
+
),
|
|
45354
|
+
((isPackageEditFlow && flyInType === 'acco-details') || flyInType === 'excursion-details') &&
|
|
45355
|
+
React__default.createElement(
|
|
45356
|
+
'div',
|
|
45357
|
+
{ className: 'flyin__content-title-row' },
|
|
45358
|
+
React__default.createElement(
|
|
43696
45359
|
'div',
|
|
43697
45360
|
{ onClick: handleGoBack, className: 'flyin__content-title__back' },
|
|
43698
45361
|
React__default.createElement(Icon, { name: 'ui-chevron', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
@@ -43702,15 +45365,77 @@ var FlyIn = function (_a) {
|
|
|
43702
45365
|
),
|
|
43703
45366
|
srpType === build.PortalQsmType.Flight && React__default.createElement(FlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
43704
45367
|
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43705
|
-
|
|
45368
|
+
flyInType === 'acco-results' &&
|
|
43706
45369
|
React__default.createElement(
|
|
43707
45370
|
'div',
|
|
43708
|
-
{ className: 'flyin__content' },
|
|
43709
|
-
React__default.createElement(
|
|
45371
|
+
{ className: 'flyin__content flyin__content--columns' },
|
|
45372
|
+
React__default.createElement(Filters, {
|
|
45373
|
+
initialFilters: initialFilters,
|
|
45374
|
+
filters: filters,
|
|
45375
|
+
isOpen: false,
|
|
45376
|
+
handleSetIsOpen: function () {},
|
|
45377
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
45378
|
+
isLoading: isLoading,
|
|
45379
|
+
setFilters: function (filters) {
|
|
45380
|
+
return dispatch(setFilters(filters));
|
|
45381
|
+
},
|
|
45382
|
+
resetFilters: function (filters) {
|
|
45383
|
+
return dispatch(resetFilters(filters));
|
|
45384
|
+
}
|
|
45385
|
+
}),
|
|
45386
|
+
React__default.createElement(
|
|
45387
|
+
'div',
|
|
45388
|
+
{ className: 'search__results__wrapper' },
|
|
45389
|
+
React__default.createElement(
|
|
45390
|
+
'div',
|
|
45391
|
+
{ className: 'search__result-row' },
|
|
45392
|
+
React__default.createElement(
|
|
45393
|
+
'span',
|
|
45394
|
+
{ className: 'search__result-row-text' },
|
|
45395
|
+
!isLoading &&
|
|
45396
|
+
React__default.createElement(
|
|
45397
|
+
React__default.Fragment,
|
|
45398
|
+
null,
|
|
45399
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
45400
|
+
filteredPackagingAccoResults.length,
|
|
45401
|
+
'\u00A0',
|
|
45402
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
45403
|
+
)
|
|
45404
|
+
),
|
|
45405
|
+
sortByTypes &&
|
|
45406
|
+
sortByTypes.length > 0 &&
|
|
45407
|
+
React__default.createElement(
|
|
45408
|
+
'div',
|
|
45409
|
+
{ className: 'search__result-row-filter' },
|
|
45410
|
+
React__default.createElement(ItemPicker, {
|
|
45411
|
+
items: sortByTypes,
|
|
45412
|
+
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
45413
|
+
selectedSortByType: selectedSortType,
|
|
45414
|
+
label: translations.SRP.SORTBY,
|
|
45415
|
+
placeholder: translations.SRP.SORTBY,
|
|
45416
|
+
classModifier: 'travel-class-picker__items',
|
|
45417
|
+
valueFormatter: function (value, direction) {
|
|
45418
|
+
return getSortingName(translations, findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc'));
|
|
45419
|
+
},
|
|
45420
|
+
onPick: function (newSortKey, direction) {
|
|
45421
|
+
return handleSortChange(newSortKey, direction);
|
|
45422
|
+
}
|
|
45423
|
+
})
|
|
45424
|
+
)
|
|
45425
|
+
),
|
|
45426
|
+
React__default.createElement(HotelAccommodationResults, { isLoading: detailsLoading, isFlyIn: true })
|
|
45427
|
+
)
|
|
43710
45428
|
),
|
|
43711
45429
|
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43712
|
-
|
|
45430
|
+
flyInType === 'acco-details' &&
|
|
43713
45431
|
React__default.createElement(AccommodationFlyIn, { isLoading: detailsLoading, handleConfirm: handleConfirm }),
|
|
45432
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45433
|
+
(flyInType === 'flight-outward-results' || flyInType === 'flight-return-results') &&
|
|
45434
|
+
React__default.createElement(PackageingFlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
45435
|
+
srpType === build.PortalQsmType.AccommodationAndFlight &&
|
|
45436
|
+
flyInType === 'excursion-results' &&
|
|
45437
|
+
React__default.createElement(ExcursionResults, { isFlyIn: true, activeSearchSeed: activeSearchSeed }),
|
|
45438
|
+
srpType === build.PortalQsmType.AccommodationAndFlight && flyInType === 'excursion-details' && React__default.createElement(ExcursionDetails, null),
|
|
43714
45439
|
srpType === build.PortalQsmType.GroupTour &&
|
|
43715
45440
|
React__default.createElement(GroupTourFlyIn, { isLoading: detailsLoading, isOpen: isOpen, setIsOpen: setIsOpen })
|
|
43716
45441
|
)
|
|
@@ -44057,7 +45782,7 @@ var PairedFlightOption = function (_a) {
|
|
|
44057
45782
|
React__default.createElement(
|
|
44058
45783
|
'span',
|
|
44059
45784
|
{ className: 'price' },
|
|
44060
|
-
formatPrice$
|
|
45785
|
+
formatPrice$3(
|
|
44061
45786
|
item.price,
|
|
44062
45787
|
'EUR',
|
|
44063
45788
|
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
@@ -44448,258 +46173,6 @@ var PairedFlightSelection = function (_a) {
|
|
|
44448
46173
|
);
|
|
44449
46174
|
};
|
|
44450
46175
|
|
|
44451
|
-
var IndependentFlightOption = function (_a) {
|
|
44452
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
44453
|
-
var item = _a.item,
|
|
44454
|
-
onSelect = _a.onSelect,
|
|
44455
|
-
guid = _a.guid,
|
|
44456
|
-
selectedGuid = _a.selectedGuid,
|
|
44457
|
-
isOutward = _a.isOutward,
|
|
44458
|
-
showSelectedState = _a.showSelectedState,
|
|
44459
|
-
currentSelectedPrice = _a.currentSelectedPrice,
|
|
44460
|
-
price = _a.price;
|
|
44461
|
-
var context = useContext(SearchResultsConfigurationContext);
|
|
44462
|
-
var language = (_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB';
|
|
44463
|
-
var translations = getTranslations(language);
|
|
44464
|
-
var _p = useState(false),
|
|
44465
|
-
detailsOpen = _p[0],
|
|
44466
|
-
setDetailsOpen = _p[1];
|
|
44467
|
-
var priceDifference = price && currentSelectedPrice ? price - currentSelectedPrice : null;
|
|
44468
|
-
return React__default.createElement(
|
|
44469
|
-
'div',
|
|
44470
|
-
{ className: 'search__result-card', key: 'flight-'.concat(item.code) },
|
|
44471
|
-
React__default.createElement(
|
|
44472
|
-
'div',
|
|
44473
|
-
{ className: 'flight '.concat(showSelectedState && selectedGuid === guid ? 'flight--selected' : '') },
|
|
44474
|
-
React__default.createElement(
|
|
44475
|
-
'div',
|
|
44476
|
-
{ className: 'flight__option' },
|
|
44477
|
-
React__default.createElement(
|
|
44478
|
-
'div',
|
|
44479
|
-
{ className: 'flight__content' },
|
|
44480
|
-
React__default.createElement(
|
|
44481
|
-
'div',
|
|
44482
|
-
{ className: 'flight__flights' },
|
|
44483
|
-
React__default.createElement(
|
|
44484
|
-
'div',
|
|
44485
|
-
{ className: 'flight__flight' },
|
|
44486
|
-
React__default.createElement(
|
|
44487
|
-
'div',
|
|
44488
|
-
{ className: 'flight__flight__header' },
|
|
44489
|
-
React__default.createElement('div', { className: 'flight__status__container' }),
|
|
44490
|
-
React__default.createElement(
|
|
44491
|
-
'div',
|
|
44492
|
-
{ className: 'flight__price' },
|
|
44493
|
-
price != null &&
|
|
44494
|
-
price > 0 &&
|
|
44495
|
-
(isOutward
|
|
44496
|
-
? React__default.createElement(
|
|
44497
|
-
'span',
|
|
44498
|
-
{ className: 'price' },
|
|
44499
|
-
translations.QSM.ROUNDTRIP + ' ' + translations.SRP.PRICE,
|
|
44500
|
-
'\u00A0',
|
|
44501
|
-
formatPrice$2(
|
|
44502
|
-
price,
|
|
44503
|
-
'EUR',
|
|
44504
|
-
(_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB'
|
|
44505
|
-
)
|
|
44506
|
-
)
|
|
44507
|
-
: priceDifference != null &&
|
|
44508
|
-
Math.abs(priceDifference) > 0 &&
|
|
44509
|
-
React__default.createElement(
|
|
44510
|
-
'span',
|
|
44511
|
-
{ className: 'price' },
|
|
44512
|
-
priceDifference > 0 ? '+' : '-',
|
|
44513
|
-
'\u00A0',
|
|
44514
|
-
formatPrice$2(
|
|
44515
|
-
Math.abs(priceDifference),
|
|
44516
|
-
'EUR',
|
|
44517
|
-
(_d = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
44518
|
-
)
|
|
44519
|
-
)),
|
|
44520
|
-
React__default.createElement(
|
|
44521
|
-
'button',
|
|
44522
|
-
{
|
|
44523
|
-
type: 'button',
|
|
44524
|
-
className: 'cta '.concat(selectedGuid === guid ? 'cta--selected' : 'cta--select'),
|
|
44525
|
-
onClick: function () {
|
|
44526
|
-
return onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
44527
|
-
}
|
|
44528
|
-
},
|
|
44529
|
-
selectedGuid === guid ? 'Selected' : 'Select'
|
|
44530
|
-
)
|
|
44531
|
-
)
|
|
44532
|
-
)
|
|
44533
|
-
),
|
|
44534
|
-
React__default.createElement(
|
|
44535
|
-
'div',
|
|
44536
|
-
{ className: 'flight__flight' },
|
|
44537
|
-
React__default.createElement(
|
|
44538
|
-
'div',
|
|
44539
|
-
{ className: 'flight__flight__container' },
|
|
44540
|
-
React__default.createElement(
|
|
44541
|
-
'div',
|
|
44542
|
-
{ className: 'flight__flight__wrapper' },
|
|
44543
|
-
React__default.createElement(
|
|
44544
|
-
'div',
|
|
44545
|
-
{ className: 'flight__logo__wrapper' },
|
|
44546
|
-
React__default.createElement('img', {
|
|
44547
|
-
src: 'https://media.tidesoftware.be/media/shared/Airlines/'.concat(
|
|
44548
|
-
(_e = getDepartureSegment(item)) === null || _e === void 0 ? void 0 : _e.marketingAirlineCode,
|
|
44549
|
-
'.png?height=256'
|
|
44550
|
-
),
|
|
44551
|
-
alt: '',
|
|
44552
|
-
className: 'flight__logo'
|
|
44553
|
-
}),
|
|
44554
|
-
React__default.createElement('span', null, (_f = getDepartureSegment(item)) === null || _f === void 0 ? void 0 : _f.marketingAirlineName)
|
|
44555
|
-
),
|
|
44556
|
-
React__default.createElement(
|
|
44557
|
-
'div',
|
|
44558
|
-
{ className: 'flight__info' },
|
|
44559
|
-
React__default.createElement(
|
|
44560
|
-
'div',
|
|
44561
|
-
{ className: 'flight__info__times' },
|
|
44562
|
-
React__default.createElement(
|
|
44563
|
-
'strong',
|
|
44564
|
-
null,
|
|
44565
|
-
timeFromDateTime((_g = getDepartureSegment(item)) === null || _g === void 0 ? void 0 : _g.departureDateTime),
|
|
44566
|
-
' ',
|
|
44567
|
-
(_h = getDepartureSegment(item)) === null || _h === void 0 ? void 0 : _h.departureAirportCode
|
|
44568
|
-
),
|
|
44569
|
-
React__default.createElement(
|
|
44570
|
-
'p',
|
|
44571
|
-
null,
|
|
44572
|
-
longFormatDate((_j = getDepartureSegment(item)) === null || _j === void 0 ? void 0 : _j.departureDateTime, language)
|
|
44573
|
-
)
|
|
44574
|
-
),
|
|
44575
|
-
React__default.createElement(
|
|
44576
|
-
'div',
|
|
44577
|
-
{ className: 'flight__info__duration' },
|
|
44578
|
-
React__default.createElement('p', null, durationTicksInHoursString(item.durationInTicks)),
|
|
44579
|
-
React__default.createElement(
|
|
44580
|
-
'div',
|
|
44581
|
-
{ className: 'flight__info__duration__stops' },
|
|
44582
|
-
React__default.createElement('div', { className: 'flight__info__duration__stop' })
|
|
44583
|
-
),
|
|
44584
|
-
React__default.createElement(
|
|
44585
|
-
'span',
|
|
44586
|
-
null,
|
|
44587
|
-
getNumberOfStopsLabel(item, translations.SRP.DIRECT, translations.SRP.STOPS, translations.SRP.STOP)
|
|
44588
|
-
)
|
|
44589
|
-
),
|
|
44590
|
-
React__default.createElement(
|
|
44591
|
-
'div',
|
|
44592
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44593
|
-
React__default.createElement(
|
|
44594
|
-
'strong',
|
|
44595
|
-
null,
|
|
44596
|
-
timeFromDateTime((_k = getArrivalSegment(item)) === null || _k === void 0 ? void 0 : _k.arrivalDateTime),
|
|
44597
|
-
' ',
|
|
44598
|
-
(_l = getArrivalSegment(item)) === null || _l === void 0 ? void 0 : _l.arrivalAirportCode
|
|
44599
|
-
),
|
|
44600
|
-
React__default.createElement(
|
|
44601
|
-
'p',
|
|
44602
|
-
null,
|
|
44603
|
-
longFormatDate((_m = getArrivalSegment(item)) === null || _m === void 0 ? void 0 : _m.arrivalDateTime, language)
|
|
44604
|
-
)
|
|
44605
|
-
)
|
|
44606
|
-
)
|
|
44607
|
-
),
|
|
44608
|
-
React__default.createElement(
|
|
44609
|
-
'div',
|
|
44610
|
-
{ className: 'flight__detail__btn__wrapper' },
|
|
44611
|
-
React__default.createElement(
|
|
44612
|
-
'div',
|
|
44613
|
-
{
|
|
44614
|
-
className: 'flight__detail__btn '.concat(detailsOpen ? 'flight__detail__btn--active' : ''),
|
|
44615
|
-
onClick: function () {
|
|
44616
|
-
return setDetailsOpen(function (prev) {
|
|
44617
|
-
return !prev;
|
|
44618
|
-
});
|
|
44619
|
-
}
|
|
44620
|
-
},
|
|
44621
|
-
React__default.createElement(Icon$1, { name: 'ui-chevron', className: 'flight__detail__btn__arrow', width: 16, height: 16 })
|
|
44622
|
-
)
|
|
44623
|
-
)
|
|
44624
|
-
),
|
|
44625
|
-
React__default.createElement(
|
|
44626
|
-
'div',
|
|
44627
|
-
{ className: 'flight__detail '.concat(detailsOpen ? 'flight__detail--active' : '') },
|
|
44628
|
-
(_o = getFlightSegments(item)) === null || _o === void 0
|
|
44629
|
-
? void 0
|
|
44630
|
-
: _o.map(function (segment, index) {
|
|
44631
|
-
return React__default.createElement(
|
|
44632
|
-
React__default.Fragment,
|
|
44633
|
-
{ key: 'outward-segment-'.concat(index, '-').concat(segment.flightNumber) },
|
|
44634
|
-
React__default.createElement(
|
|
44635
|
-
'div',
|
|
44636
|
-
{ className: 'flight__info' },
|
|
44637
|
-
React__default.createElement(
|
|
44638
|
-
'div',
|
|
44639
|
-
{ className: 'flight__info__times__wrapper' },
|
|
44640
|
-
React__default.createElement(
|
|
44641
|
-
'div',
|
|
44642
|
-
{ className: 'flight__info__times' },
|
|
44643
|
-
React__default.createElement('p', null, timeFromDateTime(segment.departureDateTime)),
|
|
44644
|
-
React__default.createElement('strong', null, segment.departureAirportCode),
|
|
44645
|
-
React__default.createElement('p', null, longFormatDate(segment.departureDateTime, language))
|
|
44646
|
-
),
|
|
44647
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-depart', width: 30, height: 20 }))
|
|
44648
|
-
),
|
|
44649
|
-
React__default.createElement(
|
|
44650
|
-
'div',
|
|
44651
|
-
{ className: 'flight__info__duration' },
|
|
44652
|
-
React__default.createElement('p', null, durationTicksInHoursString(segment.durationInTicks)),
|
|
44653
|
-
React__default.createElement('div', { className: 'flight__info__duration__stops' }),
|
|
44654
|
-
React__default.createElement('span', null, segment.marketingAirlineName),
|
|
44655
|
-
React__default.createElement('strong', null, segment.operatingFlightNumber)
|
|
44656
|
-
),
|
|
44657
|
-
React__default.createElement(
|
|
44658
|
-
'div',
|
|
44659
|
-
{ className: 'flight__info__times__wrapper flight__info__times__wrapper--arrival' },
|
|
44660
|
-
React__default.createElement('div', null, React__default.createElement(Icon$1, { name: 'ui-plane-arrive', width: 30, height: 20 })),
|
|
44661
|
-
React__default.createElement(
|
|
44662
|
-
'div',
|
|
44663
|
-
{ className: 'flight__info__times flight__info__times--arrival' },
|
|
44664
|
-
React__default.createElement('p', null, timeFromDateTime(segment.arrivalDateTime)),
|
|
44665
|
-
React__default.createElement('strong', null, segment.arrivalAirportCode),
|
|
44666
|
-
React__default.createElement('p', null, longFormatDate(segment.arrivalDateTime, language))
|
|
44667
|
-
)
|
|
44668
|
-
)
|
|
44669
|
-
),
|
|
44670
|
-
segment.transferTimeInTicks &&
|
|
44671
|
-
React__default.createElement(
|
|
44672
|
-
'div',
|
|
44673
|
-
{ className: 'flight__info' },
|
|
44674
|
-
React__default.createElement('div', { className: 'flight__info__times' }),
|
|
44675
|
-
React__default.createElement(
|
|
44676
|
-
'div',
|
|
44677
|
-
{ className: 'flight__info__duration flight__info__duration--waittime' },
|
|
44678
|
-
React__default.createElement(
|
|
44679
|
-
'div',
|
|
44680
|
-
{ className: 'flight__info__duration__stops flight__info__duration__stops--stoptime' },
|
|
44681
|
-
React__default.createElement(Icon$1, { name: 'ui-clock', width: 24, height: 24 })
|
|
44682
|
-
),
|
|
44683
|
-
React__default.createElement(
|
|
44684
|
-
'div',
|
|
44685
|
-
{ className: 'flight__info__duration__stoptime' },
|
|
44686
|
-
React__default.createElement('span', null, 'Stop time'),
|
|
44687
|
-
React__default.createElement('strong', null, durationTicksInHoursString(segment.transferTimeInTicks))
|
|
44688
|
-
)
|
|
44689
|
-
),
|
|
44690
|
-
React__default.createElement('div', { className: 'flight__info__times flight__info__times--arrival' })
|
|
44691
|
-
)
|
|
44692
|
-
);
|
|
44693
|
-
})
|
|
44694
|
-
)
|
|
44695
|
-
)
|
|
44696
|
-
)
|
|
44697
|
-
)
|
|
44698
|
-
)
|
|
44699
|
-
)
|
|
44700
|
-
);
|
|
44701
|
-
};
|
|
44702
|
-
|
|
44703
46176
|
var IndependentFlightSelection = function (_a) {
|
|
44704
46177
|
var _b;
|
|
44705
46178
|
var searchResults = _a.searchResults;
|
|
@@ -44883,116 +46356,6 @@ var FlightSelection = function (_a) {
|
|
|
44883
46356
|
: React__default.createElement(IndependentFlightSelection, { searchResults: searchResults });
|
|
44884
46357
|
};
|
|
44885
46358
|
|
|
44886
|
-
var MultiRangeFilter = function (_a) {
|
|
44887
|
-
var min = _a.min,
|
|
44888
|
-
max = _a.max,
|
|
44889
|
-
selectedMin = _a.selectedMin,
|
|
44890
|
-
selectedMax = _a.selectedMax,
|
|
44891
|
-
valueFormatter = _a.valueFormatter,
|
|
44892
|
-
onChange = _a.onChange;
|
|
44893
|
-
var _b = useState(false),
|
|
44894
|
-
isDragging = _b[0],
|
|
44895
|
-
setIsDragging = _b[1];
|
|
44896
|
-
var _c = useState(0),
|
|
44897
|
-
leftPercentage = _c[0],
|
|
44898
|
-
setLeftPercentage = _c[1];
|
|
44899
|
-
var _d = useState(0),
|
|
44900
|
-
rightPercentage = _d[0],
|
|
44901
|
-
setRightPercentage = _d[1];
|
|
44902
|
-
var _e = useState(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min),
|
|
44903
|
-
minVal = _e[0],
|
|
44904
|
-
setMinVal = _e[1];
|
|
44905
|
-
var _f = useState(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max),
|
|
44906
|
-
maxVal = _f[0],
|
|
44907
|
-
setMaxVal = _f[1];
|
|
44908
|
-
var minGap = 5;
|
|
44909
|
-
// Sync internal state with external selectedMin/selectedMax changes
|
|
44910
|
-
useEffect(
|
|
44911
|
-
function () {
|
|
44912
|
-
setMinVal(selectedMin !== null && selectedMin !== void 0 ? selectedMin : min);
|
|
44913
|
-
setMaxVal(selectedMax !== null && selectedMax !== void 0 ? selectedMax : max);
|
|
44914
|
-
},
|
|
44915
|
-
[min, max, selectedMin, selectedMax]
|
|
44916
|
-
);
|
|
44917
|
-
// Recalculate slider track whenever values change
|
|
44918
|
-
useEffect(
|
|
44919
|
-
function () {
|
|
44920
|
-
var range = max - min || 1;
|
|
44921
|
-
var minPercent = ((minVal - min) / range) * 100;
|
|
44922
|
-
var maxPercent = ((maxVal - min) / range) * 100;
|
|
44923
|
-
setLeftPercentage(minPercent);
|
|
44924
|
-
setRightPercentage(100 - maxPercent);
|
|
44925
|
-
},
|
|
44926
|
-
[minVal, maxVal, min, max]
|
|
44927
|
-
);
|
|
44928
|
-
var slideMin = function (e) {
|
|
44929
|
-
var value = parseInt(e.target.value, 10);
|
|
44930
|
-
// Ensure the thumbs don’t cross and enforce minGap
|
|
44931
|
-
if (value <= maxVal - minGap) {
|
|
44932
|
-
setMinVal(value);
|
|
44933
|
-
}
|
|
44934
|
-
};
|
|
44935
|
-
var slideMax = function (e) {
|
|
44936
|
-
var value = parseInt(e.target.value, 10);
|
|
44937
|
-
// Ensure the thumbs don’t cross and enforce minGap
|
|
44938
|
-
if (value >= minVal + minGap) {
|
|
44939
|
-
setMaxVal(value);
|
|
44940
|
-
}
|
|
44941
|
-
};
|
|
44942
|
-
var startDrag = function () {
|
|
44943
|
-
setIsDragging(true);
|
|
44944
|
-
};
|
|
44945
|
-
var stopDrag = function () {
|
|
44946
|
-
setIsDragging(false);
|
|
44947
|
-
// Notify parent with the final values
|
|
44948
|
-
onChange(minVal, maxVal);
|
|
44949
|
-
};
|
|
44950
|
-
return React__default.createElement(
|
|
44951
|
-
'div',
|
|
44952
|
-
{ className: 'double-slider-box' },
|
|
44953
|
-
React__default.createElement(
|
|
44954
|
-
'div',
|
|
44955
|
-
{ className: 'input-box' },
|
|
44956
|
-
React__default.createElement('div', { className: 'min-box' }, valueFormatter(minVal)),
|
|
44957
|
-
React__default.createElement('div', { className: 'max-box' }, valueFormatter(maxVal))
|
|
44958
|
-
),
|
|
44959
|
-
React__default.createElement(
|
|
44960
|
-
'div',
|
|
44961
|
-
{ className: 'range-slider' },
|
|
44962
|
-
React__default.createElement('div', {
|
|
44963
|
-
className: 'slider-track',
|
|
44964
|
-
style: { left: ''.concat(leftPercentage, '%'), right: ''.concat(rightPercentage, '%') }
|
|
44965
|
-
}),
|
|
44966
|
-
React__default.createElement('input', {
|
|
44967
|
-
type: 'range',
|
|
44968
|
-
min: min,
|
|
44969
|
-
max: max,
|
|
44970
|
-
value: minVal,
|
|
44971
|
-
onChange: slideMin,
|
|
44972
|
-
onMouseDown: startDrag,
|
|
44973
|
-
onMouseUp: stopDrag,
|
|
44974
|
-
onTouchStart: startDrag,
|
|
44975
|
-
onTouchEnd: stopDrag,
|
|
44976
|
-
className: 'min-val'
|
|
44977
|
-
}),
|
|
44978
|
-
React__default.createElement('input', {
|
|
44979
|
-
type: 'range',
|
|
44980
|
-
min: min,
|
|
44981
|
-
max: max,
|
|
44982
|
-
value: maxVal,
|
|
44983
|
-
onChange: slideMax,
|
|
44984
|
-
onMouseDown: startDrag,
|
|
44985
|
-
onMouseUp: stopDrag,
|
|
44986
|
-
onTouchStart: startDrag,
|
|
44987
|
-
onTouchEnd: stopDrag,
|
|
44988
|
-
className: 'max-val'
|
|
44989
|
-
}),
|
|
44990
|
-
isDragging && React__default.createElement('div', { className: 'min-tooltip' }, valueFormatter(minVal)),
|
|
44991
|
-
isDragging && React__default.createElement('div', { className: 'max-tooltip' }, valueFormatter(maxVal))
|
|
44992
|
-
)
|
|
44993
|
-
);
|
|
44994
|
-
};
|
|
44995
|
-
|
|
44996
46359
|
var FlightFilters = function (_a) {
|
|
44997
46360
|
var _b;
|
|
44998
46361
|
var isOpen = _a.isOpen,
|
|
@@ -46081,228 +47444,6 @@ var FlightResultsContainer = function (_a) {
|
|
|
46081
47444
|
);
|
|
46082
47445
|
};
|
|
46083
47446
|
|
|
46084
|
-
var Filters = function (_a) {
|
|
46085
|
-
var _b;
|
|
46086
|
-
var initialFilters = _a.initialFilters,
|
|
46087
|
-
filters = _a.filters,
|
|
46088
|
-
isOpen = _a.isOpen,
|
|
46089
|
-
handleSetIsOpen = _a.handleSetIsOpen,
|
|
46090
|
-
isLoading = _a.isLoading;
|
|
46091
|
-
var context = useContext(SearchResultsConfigurationContext);
|
|
46092
|
-
if (!context || !context.showFilters) {
|
|
46093
|
-
return null;
|
|
46094
|
-
}
|
|
46095
|
-
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
46096
|
-
var _c = useState({}),
|
|
46097
|
-
visibleFilters = _c[0],
|
|
46098
|
-
setVisibleFilters = _c[1];
|
|
46099
|
-
var dispatch = useDispatch();
|
|
46100
|
-
var toggleFilterVisibility = function (filterId) {
|
|
46101
|
-
setVisibleFilters(function (prev) {
|
|
46102
|
-
var _a;
|
|
46103
|
-
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
46104
|
-
});
|
|
46105
|
-
};
|
|
46106
|
-
var handleCheckBoxFilter = function (filter, option) {
|
|
46107
|
-
var updated = filters.map(function (f) {
|
|
46108
|
-
var _a;
|
|
46109
|
-
if (f.property !== filter.property) return f;
|
|
46110
|
-
return __assign(__assign({}, f), {
|
|
46111
|
-
options:
|
|
46112
|
-
(_a = f.options) === null || _a === void 0
|
|
46113
|
-
? void 0
|
|
46114
|
-
: _a.map(function (opt) {
|
|
46115
|
-
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
46116
|
-
})
|
|
46117
|
-
});
|
|
46118
|
-
});
|
|
46119
|
-
dispatch(setFilters(updated));
|
|
46120
|
-
};
|
|
46121
|
-
var handleSliderChange = function (filter, newMin, newMax) {
|
|
46122
|
-
var updated = filters.map(function (f) {
|
|
46123
|
-
if (f.property !== filter.property) return f;
|
|
46124
|
-
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
46125
|
-
});
|
|
46126
|
-
dispatch(setFilters(updated));
|
|
46127
|
-
};
|
|
46128
|
-
var handleFullReset = function () {
|
|
46129
|
-
if (!isLoading) {
|
|
46130
|
-
dispatch(resetFilters(initialFilters));
|
|
46131
|
-
}
|
|
46132
|
-
};
|
|
46133
|
-
return React__default.createElement(
|
|
46134
|
-
'div',
|
|
46135
|
-
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
46136
|
-
React__default.createElement('div', {
|
|
46137
|
-
className: 'search__filters--background',
|
|
46138
|
-
onClick: function () {
|
|
46139
|
-
return handleSetIsOpen();
|
|
46140
|
-
}
|
|
46141
|
-
}),
|
|
46142
|
-
React__default.createElement(
|
|
46143
|
-
'button',
|
|
46144
|
-
{
|
|
46145
|
-
className: 'search__filters--close',
|
|
46146
|
-
onClick: function () {
|
|
46147
|
-
return handleSetIsOpen();
|
|
46148
|
-
}
|
|
46149
|
-
},
|
|
46150
|
-
React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
46151
|
-
),
|
|
46152
|
-
React__default.createElement(
|
|
46153
|
-
'div',
|
|
46154
|
-
{ className: 'search__filters' },
|
|
46155
|
-
React__default.createElement(
|
|
46156
|
-
'div',
|
|
46157
|
-
{ className: 'search__filter-row search__filter__header' },
|
|
46158
|
-
React__default.createElement(
|
|
46159
|
-
'div',
|
|
46160
|
-
{ className: 'search__filter-row-flex-title' },
|
|
46161
|
-
React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
46162
|
-
),
|
|
46163
|
-
!isLoading &&
|
|
46164
|
-
React__default.createElement(
|
|
46165
|
-
'a',
|
|
46166
|
-
{
|
|
46167
|
-
className: 'search__filter-reset',
|
|
46168
|
-
onClick: function () {
|
|
46169
|
-
return handleFullReset();
|
|
46170
|
-
}
|
|
46171
|
-
},
|
|
46172
|
-
translations.SRP.RESET
|
|
46173
|
-
)
|
|
46174
|
-
),
|
|
46175
|
-
isLoading
|
|
46176
|
-
? React__default.createElement(Spinner, null)
|
|
46177
|
-
: React__default.createElement(
|
|
46178
|
-
React__default.Fragment,
|
|
46179
|
-
null,
|
|
46180
|
-
React__default.createElement(
|
|
46181
|
-
'div',
|
|
46182
|
-
{ className: 'search__filters__group-container' },
|
|
46183
|
-
filters.map(function (filter, index) {
|
|
46184
|
-
var _a, _b;
|
|
46185
|
-
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
46186
|
-
return React__default.createElement(
|
|
46187
|
-
'div',
|
|
46188
|
-
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
46189
|
-
React__default.createElement(
|
|
46190
|
-
'div',
|
|
46191
|
-
{
|
|
46192
|
-
className: 'search__filter-row search__filter-row--underline',
|
|
46193
|
-
onClick: function () {
|
|
46194
|
-
return toggleFilterVisibility(filter.property);
|
|
46195
|
-
},
|
|
46196
|
-
role: 'button',
|
|
46197
|
-
tabIndex: 0
|
|
46198
|
-
},
|
|
46199
|
-
React__default.createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
46200
|
-
React__default.createElement(
|
|
46201
|
-
'svg',
|
|
46202
|
-
{
|
|
46203
|
-
id: 'search-chevron-up-icon',
|
|
46204
|
-
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
46205
|
-
viewBox: '0 0 10 6.063',
|
|
46206
|
-
width: 10,
|
|
46207
|
-
height: 6.063
|
|
46208
|
-
},
|
|
46209
|
-
React__default.createElement('path', {
|
|
46210
|
-
id: 'Path_62',
|
|
46211
|
-
'data-name': 'Path 62',
|
|
46212
|
-
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
46213
|
-
transform: 'translate(-240 624)',
|
|
46214
|
-
fill: '#707070'
|
|
46215
|
-
})
|
|
46216
|
-
)
|
|
46217
|
-
),
|
|
46218
|
-
isVisible &&
|
|
46219
|
-
filter.type === 'checkbox' &&
|
|
46220
|
-
React__default.createElement(
|
|
46221
|
-
'div',
|
|
46222
|
-
{ className: 'search__filter-rows' },
|
|
46223
|
-
filter.options &&
|
|
46224
|
-
filter.options.map(function (option, optionIndex) {
|
|
46225
|
-
return React__default.createElement(
|
|
46226
|
-
'div',
|
|
46227
|
-
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
46228
|
-
React__default.createElement(
|
|
46229
|
-
'div',
|
|
46230
|
-
{ className: 'checkbox' },
|
|
46231
|
-
React__default.createElement(
|
|
46232
|
-
'label',
|
|
46233
|
-
{ className: 'checkbox__label' },
|
|
46234
|
-
React__default.createElement('input', {
|
|
46235
|
-
type: 'checkbox',
|
|
46236
|
-
className: 'checkbox__input checkbox__input--parent',
|
|
46237
|
-
checked: option.isChecked,
|
|
46238
|
-
onChange: function (e) {
|
|
46239
|
-
return handleCheckBoxFilter(filter, option);
|
|
46240
|
-
}
|
|
46241
|
-
}),
|
|
46242
|
-
React__default.createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
46243
|
-
)
|
|
46244
|
-
)
|
|
46245
|
-
);
|
|
46246
|
-
})
|
|
46247
|
-
),
|
|
46248
|
-
isVisible &&
|
|
46249
|
-
filter.type === 'toggle' &&
|
|
46250
|
-
React__default.createElement(
|
|
46251
|
-
'div',
|
|
46252
|
-
{ className: 'search__filter-rows' },
|
|
46253
|
-
(_b = filter.options) === null || _b === void 0
|
|
46254
|
-
? void 0
|
|
46255
|
-
: _b.map(function (option, optionIndex) {
|
|
46256
|
-
return React__default.createElement(
|
|
46257
|
-
'div',
|
|
46258
|
-
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
46259
|
-
React__default.createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
46260
|
-
React__default.createElement('div', { className: 'checkbox' }),
|
|
46261
|
-
React__default.createElement(
|
|
46262
|
-
'label',
|
|
46263
|
-
{ className: 'checkbox__label' },
|
|
46264
|
-
React__default.createElement('input', {
|
|
46265
|
-
type: 'checkbox',
|
|
46266
|
-
className: 'checkbox__input',
|
|
46267
|
-
checked: option.isChecked,
|
|
46268
|
-
onChange: function () {
|
|
46269
|
-
return handleCheckBoxFilter(filter, option);
|
|
46270
|
-
}
|
|
46271
|
-
})
|
|
46272
|
-
)
|
|
46273
|
-
);
|
|
46274
|
-
})
|
|
46275
|
-
),
|
|
46276
|
-
isVisible &&
|
|
46277
|
-
filter &&
|
|
46278
|
-
filter.type === 'slider' &&
|
|
46279
|
-
(function () {
|
|
46280
|
-
var _a, _b, _c, _d;
|
|
46281
|
-
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
46282
|
-
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
46283
|
-
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
46284
|
-
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
46285
|
-
return React__default.createElement(MultiRangeFilter, {
|
|
46286
|
-
min: min,
|
|
46287
|
-
max: max,
|
|
46288
|
-
selectedMin: selectedMin,
|
|
46289
|
-
selectedMax: selectedMax,
|
|
46290
|
-
valueFormatter: function (value) {
|
|
46291
|
-
return ''.concat(value);
|
|
46292
|
-
},
|
|
46293
|
-
onChange: function (newMin, newMax) {
|
|
46294
|
-
handleSliderChange(filter, newMin, newMax);
|
|
46295
|
-
}
|
|
46296
|
-
});
|
|
46297
|
-
})()
|
|
46298
|
-
);
|
|
46299
|
-
})
|
|
46300
|
-
)
|
|
46301
|
-
)
|
|
46302
|
-
)
|
|
46303
|
-
);
|
|
46304
|
-
};
|
|
46305
|
-
|
|
46306
47447
|
var GroupTourCard = function (_a) {
|
|
46307
47448
|
var _b, _c, _d, _e, _f, _g;
|
|
46308
47449
|
var result = _a.result,
|
|
@@ -46443,7 +47584,7 @@ var GroupTourCard = function (_a) {
|
|
|
46443
47584
|
React__default.createElement(
|
|
46444
47585
|
'div',
|
|
46445
47586
|
{ className: 'search__result-card__allotment__price' },
|
|
46446
|
-
formatPrice$
|
|
47587
|
+
formatPrice$3(result.price, result.currencyCode, languageCode),
|
|
46447
47588
|
' ',
|
|
46448
47589
|
translations.PRODUCT.PER_PERSON
|
|
46449
47590
|
)
|
|
@@ -46620,80 +47761,245 @@ var enrichFiltersWithResults = function (results, filters, tags) {
|
|
|
46620
47761
|
return updatedFilter;
|
|
46621
47762
|
});
|
|
46622
47763
|
};
|
|
46623
|
-
var enrichFiltersWithPackageAccoResults = function (results,
|
|
46624
|
-
|
|
46625
|
-
|
|
46626
|
-
|
|
46627
|
-
|
|
46628
|
-
|
|
46629
|
-
|
|
46630
|
-
|
|
46631
|
-
|
|
46632
|
-
|
|
46633
|
-
|
|
46634
|
-
|
|
46635
|
-
|
|
46636
|
-
|
|
46637
|
-
|
|
46638
|
-
|
|
46639
|
-
|
|
46640
|
-
|
|
46641
|
-
|
|
46642
|
-
|
|
46643
|
-
|
|
46644
|
-
|
|
46645
|
-
results.forEach(function (r) {
|
|
46646
|
-
var rooms = flatMap(r.rooms);
|
|
46647
|
-
if (rooms) {
|
|
46648
|
-
rooms.map(function (room) {
|
|
46649
|
-
room.options.map(function (option) {
|
|
46650
|
-
if (option.accommodationCode) {
|
|
46651
|
-
map_4.set(option.accommodationCode, {
|
|
46652
|
-
name: option.accommodationName,
|
|
46653
|
-
code: option.accommodationCode
|
|
46654
|
-
});
|
|
46655
|
-
}
|
|
47764
|
+
var enrichFiltersWithPackageAccoResults = function (results, tags) {
|
|
47765
|
+
var filters = [];
|
|
47766
|
+
if (!results || results.length === 0) {
|
|
47767
|
+
return filters;
|
|
47768
|
+
}
|
|
47769
|
+
var regimeFilter = {
|
|
47770
|
+
property: 'regime',
|
|
47771
|
+
label: 'Regime',
|
|
47772
|
+
type: 'checkbox',
|
|
47773
|
+
options: [],
|
|
47774
|
+
isFrontendFilter: true
|
|
47775
|
+
};
|
|
47776
|
+
var map = new Map();
|
|
47777
|
+
results.forEach(function (r) {
|
|
47778
|
+
var rooms = flatMap(r.rooms);
|
|
47779
|
+
if (rooms) {
|
|
47780
|
+
rooms.map(function (room) {
|
|
47781
|
+
room.options.map(function (option) {
|
|
47782
|
+
if (option.regimeCode) {
|
|
47783
|
+
map.set(option.regimeCode, {
|
|
47784
|
+
name: option.regimeName,
|
|
47785
|
+
code: option.regimeCode
|
|
46656
47786
|
});
|
|
46657
|
-
}
|
|
46658
|
-
}
|
|
47787
|
+
}
|
|
47788
|
+
});
|
|
46659
47789
|
});
|
|
46660
|
-
|
|
46661
|
-
|
|
46662
|
-
|
|
46663
|
-
|
|
46664
|
-
|
|
46665
|
-
|
|
46666
|
-
|
|
47790
|
+
}
|
|
47791
|
+
});
|
|
47792
|
+
regimeFilter.options = Array.from(map.values()).map(function (regime) {
|
|
47793
|
+
var _a;
|
|
47794
|
+
return {
|
|
47795
|
+
label: (_a = regime.name) !== null && _a !== void 0 ? _a : regime.code,
|
|
47796
|
+
value: regime.code,
|
|
47797
|
+
isChecked: false
|
|
47798
|
+
};
|
|
47799
|
+
});
|
|
47800
|
+
filters.push(regimeFilter);
|
|
47801
|
+
var priceFilter = {
|
|
47802
|
+
property: 'price',
|
|
47803
|
+
label: 'Prijs',
|
|
47804
|
+
type: 'slider',
|
|
47805
|
+
isFrontendFilter: true
|
|
47806
|
+
};
|
|
47807
|
+
var prices = results
|
|
47808
|
+
.map(function (r) {
|
|
47809
|
+
var _a;
|
|
47810
|
+
return (_a = r.price) !== null && _a !== void 0 ? _a : 0;
|
|
47811
|
+
})
|
|
47812
|
+
.filter(function (p) {
|
|
47813
|
+
return p > 0;
|
|
47814
|
+
});
|
|
47815
|
+
priceFilter.min = Math.floor(Math.min.apply(Math, prices));
|
|
47816
|
+
priceFilter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
47817
|
+
filters.push(priceFilter);
|
|
47818
|
+
return filters;
|
|
47819
|
+
};
|
|
47820
|
+
var enrichFiltersWithPackageFlightResults = function (results, tags, translations) {
|
|
47821
|
+
var filters = [];
|
|
47822
|
+
if (!results || results.length === 0) {
|
|
47823
|
+
return filters;
|
|
47824
|
+
}
|
|
47825
|
+
// Airlines
|
|
47826
|
+
var airlinesFilter = {
|
|
47827
|
+
label: 'Airlines',
|
|
47828
|
+
property: 'airline',
|
|
47829
|
+
type: 'checkbox',
|
|
47830
|
+
isFrontendFilter: true,
|
|
47831
|
+
options: []
|
|
47832
|
+
};
|
|
47833
|
+
var airlinesFilterMap = new Map();
|
|
47834
|
+
results.map(function (r) {
|
|
47835
|
+
var airlineCode = r.airlineCode;
|
|
47836
|
+
var airlineName = r.airlineName;
|
|
47837
|
+
if (airlineCode && airlineName) {
|
|
47838
|
+
airlinesFilterMap.set(airlineCode, {
|
|
47839
|
+
name: airlineName,
|
|
47840
|
+
code: airlineCode
|
|
46667
47841
|
});
|
|
46668
47842
|
}
|
|
46669
|
-
|
|
46670
|
-
|
|
46671
|
-
|
|
46672
|
-
|
|
46673
|
-
|
|
46674
|
-
|
|
46675
|
-
|
|
46676
|
-
|
|
46677
|
-
|
|
46678
|
-
|
|
46679
|
-
|
|
46680
|
-
|
|
46681
|
-
|
|
46682
|
-
|
|
46683
|
-
|
|
46684
|
-
|
|
47843
|
+
});
|
|
47844
|
+
airlinesFilter.options = Array.from(airlinesFilterMap.values()).map(function (airline) {
|
|
47845
|
+
var _a;
|
|
47846
|
+
return {
|
|
47847
|
+
label: (_a = airline.name) !== null && _a !== void 0 ? _a : airline.code,
|
|
47848
|
+
value: airline.code,
|
|
47849
|
+
isChecked: false
|
|
47850
|
+
};
|
|
47851
|
+
});
|
|
47852
|
+
filters.push(airlinesFilter);
|
|
47853
|
+
// Number of stops
|
|
47854
|
+
var stopsFilter = {
|
|
47855
|
+
label: 'Number of Stops',
|
|
47856
|
+
property: 'numberOfStops',
|
|
47857
|
+
type: 'checkbox',
|
|
47858
|
+
isFrontendFilter: true,
|
|
47859
|
+
options: []
|
|
47860
|
+
};
|
|
47861
|
+
var stopsMap = new Map();
|
|
47862
|
+
results.map(function (result) {
|
|
47863
|
+
var numberOfStops = getNumberOfStops(result.outward);
|
|
47864
|
+
if (!stopsMap.has(numberOfStops)) {
|
|
47865
|
+
stopsMap.set(numberOfStops, { numberOfStops: numberOfStops });
|
|
47866
|
+
}
|
|
47867
|
+
});
|
|
47868
|
+
stopsFilter.options = Array.from(stopsMap.values()).map(function (stop) {
|
|
47869
|
+
return {
|
|
47870
|
+
label: ''.concat(stop.numberOfStops == 0 ? 'direct' : stop.numberOfStops + ' Stop'.concat(stop.numberOfStops !== 1 ? 's' : '')),
|
|
47871
|
+
value: stop.numberOfStops,
|
|
47872
|
+
isChecked: false
|
|
47873
|
+
};
|
|
47874
|
+
});
|
|
47875
|
+
filters.push(stopsFilter);
|
|
47876
|
+
// Departure range
|
|
47877
|
+
var departureRangeFilter = {
|
|
47878
|
+
label: 'Departure Range',
|
|
47879
|
+
property: 'departureRange',
|
|
47880
|
+
type: 'checkbox',
|
|
47881
|
+
isFrontendFilter: true,
|
|
47882
|
+
options: []
|
|
47883
|
+
};
|
|
47884
|
+
var departureRangeMap = new Map();
|
|
47885
|
+
results.map(function (result) {
|
|
47886
|
+
var _a;
|
|
47887
|
+
var departureRange = rangeFromDateTimeInMinutes((_a = getDepartureSegment(result.outward)) === null || _a === void 0 ? void 0 : _a.departureDateTime);
|
|
47888
|
+
if (!departureRangeMap.has(departureRange)) {
|
|
47889
|
+
departureRangeMap.set(departureRange, departureRange);
|
|
47890
|
+
}
|
|
47891
|
+
});
|
|
47892
|
+
departureRangeFilter.options = orderBy(Array.from(departureRangeMap.values()), ['id'], ['asc']).map(function (range) {
|
|
47893
|
+
return {
|
|
47894
|
+
label: getDepartureRangeName(translations, range),
|
|
47895
|
+
value: range,
|
|
47896
|
+
isChecked: false
|
|
47897
|
+
};
|
|
47898
|
+
});
|
|
47899
|
+
filters.push(departureRangeFilter);
|
|
47900
|
+
// Departure Airport
|
|
47901
|
+
var departureAirportFilter = {
|
|
47902
|
+
label: 'Departure Airport',
|
|
47903
|
+
property: 'departureAirport',
|
|
47904
|
+
type: 'checkbox',
|
|
47905
|
+
isFrontendFilter: true,
|
|
47906
|
+
options: []
|
|
47907
|
+
};
|
|
47908
|
+
var departureAirportsMap = new Map();
|
|
47909
|
+
results.map(function (result) {
|
|
47910
|
+
var departureSegment = getDepartureSegment(result.outward);
|
|
47911
|
+
var departureAirport = departureSegment === null || departureSegment === void 0 ? void 0 : departureSegment.departureAirportCode;
|
|
47912
|
+
if (departureAirport && !departureAirportsMap.has(departureAirport)) {
|
|
47913
|
+
departureAirportsMap.set(departureAirport, {
|
|
47914
|
+
name: (departureSegment === null || departureSegment === void 0 ? void 0 : departureSegment.departureAirportName) + ' (' + departureAirport + ')',
|
|
47915
|
+
code: departureAirport
|
|
46685
47916
|
});
|
|
46686
|
-
|
|
46687
|
-
|
|
46688
|
-
|
|
46689
|
-
|
|
46690
|
-
|
|
46691
|
-
|
|
46692
|
-
|
|
47917
|
+
}
|
|
47918
|
+
});
|
|
47919
|
+
departureAirportFilter.options = Array.from(departureAirportsMap.values()).map(function (airport) {
|
|
47920
|
+
var _a;
|
|
47921
|
+
return {
|
|
47922
|
+
label: (_a = airport.name) !== null && _a !== void 0 ? _a : airport.code,
|
|
47923
|
+
value: airport.code,
|
|
47924
|
+
isChecked: false
|
|
47925
|
+
};
|
|
47926
|
+
});
|
|
47927
|
+
filters.push(departureAirportFilter);
|
|
47928
|
+
// Arrival Airport
|
|
47929
|
+
var arrivalAirportFilter = {
|
|
47930
|
+
label: 'Arrival Airport',
|
|
47931
|
+
property: 'arrivalAirport',
|
|
47932
|
+
type: 'checkbox',
|
|
47933
|
+
isFrontendFilter: true,
|
|
47934
|
+
options: []
|
|
47935
|
+
};
|
|
47936
|
+
var arrivalAirportsMap = new Map();
|
|
47937
|
+
results.map(function (result) {
|
|
47938
|
+
var arrivalSegment = getArrivalSegment(result.outward);
|
|
47939
|
+
var arrivalAirport = arrivalSegment === null || arrivalSegment === void 0 ? void 0 : arrivalSegment.arrivalAirportCode;
|
|
47940
|
+
if (arrivalAirport && !arrivalAirportsMap.has(arrivalAirport)) {
|
|
47941
|
+
arrivalAirportsMap.set(arrivalAirport, {
|
|
47942
|
+
name: (arrivalSegment === null || arrivalSegment === void 0 ? void 0 : arrivalSegment.arrivalAirportName) + ' (' + arrivalAirport + ')',
|
|
47943
|
+
code: arrivalAirport
|
|
46693
47944
|
});
|
|
46694
47945
|
}
|
|
46695
|
-
return updatedFilter;
|
|
46696
47946
|
});
|
|
47947
|
+
arrivalAirportFilter.options = Array.from(arrivalAirportsMap.values()).map(function (airport) {
|
|
47948
|
+
var _a;
|
|
47949
|
+
return {
|
|
47950
|
+
label: (_a = airport.name) !== null && _a !== void 0 ? _a : airport.code,
|
|
47951
|
+
value: airport.code,
|
|
47952
|
+
isChecked: false
|
|
47953
|
+
};
|
|
47954
|
+
});
|
|
47955
|
+
filters.push(arrivalAirportFilter);
|
|
47956
|
+
// Price
|
|
47957
|
+
var priceFilter = {
|
|
47958
|
+
label: 'Price',
|
|
47959
|
+
property: 'price',
|
|
47960
|
+
type: 'slider',
|
|
47961
|
+
isFrontendFilter: true
|
|
47962
|
+
};
|
|
47963
|
+
var prices = results
|
|
47964
|
+
.map(function (r) {
|
|
47965
|
+
var _a;
|
|
47966
|
+
return (_a = r.price) !== null && _a !== void 0 ? _a : 0;
|
|
47967
|
+
})
|
|
47968
|
+
.filter(function (p) {
|
|
47969
|
+
return p > 0;
|
|
47970
|
+
});
|
|
47971
|
+
if (prices.length > 0) {
|
|
47972
|
+
priceFilter.min = Math.floor(Math.min.apply(Math, prices));
|
|
47973
|
+
priceFilter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
47974
|
+
}
|
|
47975
|
+
filters.push(priceFilter);
|
|
47976
|
+
// Travel duration
|
|
47977
|
+
var travelDurationFilter = {
|
|
47978
|
+
label: 'Travel Duration',
|
|
47979
|
+
property: 'travelDuration',
|
|
47980
|
+
type: 'slider',
|
|
47981
|
+
isFrontendFilter: true
|
|
47982
|
+
};
|
|
47983
|
+
var minTravelTimeDuration = Math.min.apply(
|
|
47984
|
+
Math,
|
|
47985
|
+
results.map(function (result) {
|
|
47986
|
+
return result.outward.durationInTicks;
|
|
47987
|
+
})
|
|
47988
|
+
);
|
|
47989
|
+
var maxTravelTimeDuration = Math.max.apply(
|
|
47990
|
+
Math,
|
|
47991
|
+
results.map(function (result) {
|
|
47992
|
+
return result.outward.durationInTicks;
|
|
47993
|
+
})
|
|
47994
|
+
);
|
|
47995
|
+
var minTravelTimeValue = durationInTicksInMinutes(minTravelTimeDuration);
|
|
47996
|
+
var maxTravelTimeValue = durationInTicksInMinutes(maxTravelTimeDuration);
|
|
47997
|
+
if (minTravelTimeValue != null && maxTravelTimeValue != null) {
|
|
47998
|
+
travelDurationFilter.min = minTravelTimeValue;
|
|
47999
|
+
travelDurationFilter.max = maxTravelTimeValue;
|
|
48000
|
+
}
|
|
48001
|
+
filters.push(travelDurationFilter);
|
|
48002
|
+
return filters;
|
|
46697
48003
|
};
|
|
46698
48004
|
var applyFilters = function (results, filters, sortBy) {
|
|
46699
48005
|
var filtered = results.filter(function (r) {
|
|
@@ -46835,6 +48141,147 @@ var applyFiltersToPackageAccoResults = function (results, filters, sortBy) {
|
|
|
46835
48141
|
return 0;
|
|
46836
48142
|
});
|
|
46837
48143
|
};
|
|
48144
|
+
var applyFiltersToPackageFlightResults = function (results, filters, sortBy) {
|
|
48145
|
+
var filtered = results.filter(function (result) {
|
|
48146
|
+
return filters.every(function (filter) {
|
|
48147
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
48148
|
+
if (!filter.isFrontendFilter) return true;
|
|
48149
|
+
// Airline
|
|
48150
|
+
if (filter.property === 'airline') {
|
|
48151
|
+
var selected =
|
|
48152
|
+
(_a = filter.options) === null || _a === void 0
|
|
48153
|
+
? void 0
|
|
48154
|
+
: _a
|
|
48155
|
+
.filter(function (o) {
|
|
48156
|
+
return o.isChecked;
|
|
48157
|
+
})
|
|
48158
|
+
.map(function (o) {
|
|
48159
|
+
return o.value;
|
|
48160
|
+
});
|
|
48161
|
+
if (!selected || selected.length === 0) return true;
|
|
48162
|
+
return selected.includes(result.airlineCode);
|
|
48163
|
+
}
|
|
48164
|
+
// Stops
|
|
48165
|
+
if (filter.property === 'numberOfStops') {
|
|
48166
|
+
var selected =
|
|
48167
|
+
(_b = filter.options) === null || _b === void 0
|
|
48168
|
+
? void 0
|
|
48169
|
+
: _b
|
|
48170
|
+
.filter(function (o) {
|
|
48171
|
+
return o.isChecked;
|
|
48172
|
+
})
|
|
48173
|
+
.map(function (o) {
|
|
48174
|
+
return o.value;
|
|
48175
|
+
});
|
|
48176
|
+
if (!selected || selected.length === 0) return true;
|
|
48177
|
+
return selected.includes(getNumberOfStops(result.outward)) && selected.includes(getNumberOfStops(result.return));
|
|
48178
|
+
}
|
|
48179
|
+
// Departure range
|
|
48180
|
+
if (filter.property === 'departureRange') {
|
|
48181
|
+
var selected =
|
|
48182
|
+
(_c = filter.options) === null || _c === void 0
|
|
48183
|
+
? void 0
|
|
48184
|
+
: _c
|
|
48185
|
+
.filter(function (o) {
|
|
48186
|
+
return o.isChecked;
|
|
48187
|
+
})
|
|
48188
|
+
.map(function (o) {
|
|
48189
|
+
return o.value;
|
|
48190
|
+
});
|
|
48191
|
+
if (!selected || selected.length === 0) return true;
|
|
48192
|
+
return selected.includes(
|
|
48193
|
+
rangeFromDateTimeInMinutes((_d = getDepartureSegment(result.outward)) === null || _d === void 0 ? void 0 : _d.departureDateTime)
|
|
48194
|
+
);
|
|
48195
|
+
}
|
|
48196
|
+
// Departure airport
|
|
48197
|
+
if (filter.property === 'departureAirport') {
|
|
48198
|
+
var selected =
|
|
48199
|
+
(_e = filter.options) === null || _e === void 0
|
|
48200
|
+
? void 0
|
|
48201
|
+
: _e
|
|
48202
|
+
.filter(function (o) {
|
|
48203
|
+
return o.isChecked;
|
|
48204
|
+
})
|
|
48205
|
+
.map(function (o) {
|
|
48206
|
+
return o.value;
|
|
48207
|
+
});
|
|
48208
|
+
if (!selected || selected.length === 0) return true;
|
|
48209
|
+
var departureAirportCode = (_f = getDepartureSegment(result.outward)) === null || _f === void 0 ? void 0 : _f.departureAirportCode;
|
|
48210
|
+
if (!departureAirportCode) return false;
|
|
48211
|
+
return selected.includes(departureAirportCode);
|
|
48212
|
+
}
|
|
48213
|
+
// Arrival airport
|
|
48214
|
+
if (filter.property === 'arrivalAirport') {
|
|
48215
|
+
var selected =
|
|
48216
|
+
(_g = filter.options) === null || _g === void 0
|
|
48217
|
+
? void 0
|
|
48218
|
+
: _g
|
|
48219
|
+
.filter(function (o) {
|
|
48220
|
+
return o.isChecked;
|
|
48221
|
+
})
|
|
48222
|
+
.map(function (o) {
|
|
48223
|
+
return o.value;
|
|
48224
|
+
});
|
|
48225
|
+
if (!selected || selected.length === 0) return true;
|
|
48226
|
+
var arrivalAirportCode = (_h = getArrivalSegment(result.outward)) === null || _h === void 0 ? void 0 : _h.arrivalAirportCode;
|
|
48227
|
+
if (!arrivalAirportCode) return false;
|
|
48228
|
+
return selected.includes(arrivalAirportCode);
|
|
48229
|
+
}
|
|
48230
|
+
// PRICE
|
|
48231
|
+
if (filter.property === 'price') {
|
|
48232
|
+
if (filter.selectedMin != null && result.price < filter.selectedMin) return false;
|
|
48233
|
+
if (filter.selectedMax != null && result.price > filter.selectedMax) return false;
|
|
48234
|
+
return true;
|
|
48235
|
+
}
|
|
48236
|
+
// Travel times
|
|
48237
|
+
if (filter.property === 'travelDuration') {
|
|
48238
|
+
if (
|
|
48239
|
+
filter.selectedMin != null &&
|
|
48240
|
+
durationInTicksInMinutes((_j = result.outward) === null || _j === void 0 ? void 0 : _j.durationInTicks) < filter.selectedMin
|
|
48241
|
+
)
|
|
48242
|
+
return false;
|
|
48243
|
+
if (
|
|
48244
|
+
filter.selectedMax != null &&
|
|
48245
|
+
durationInTicksInMinutes((_k = result.outward) === null || _k === void 0 ? void 0 : _k.durationInTicks) > filter.selectedMax
|
|
48246
|
+
)
|
|
48247
|
+
return false;
|
|
48248
|
+
return true;
|
|
48249
|
+
}
|
|
48250
|
+
return true;
|
|
48251
|
+
});
|
|
48252
|
+
});
|
|
48253
|
+
// SORTING
|
|
48254
|
+
if (!sortBy || sortBy.label === 'default') {
|
|
48255
|
+
return filtered;
|
|
48256
|
+
}
|
|
48257
|
+
if (sortBy.label === 'departureTime') {
|
|
48258
|
+
return orderBy(
|
|
48259
|
+
results,
|
|
48260
|
+
[
|
|
48261
|
+
function (result) {
|
|
48262
|
+
var _a;
|
|
48263
|
+
return (_a = getDepartureSegment(result.outward)) === null || _a === void 0 ? void 0 : _a.departureDateTime;
|
|
48264
|
+
}
|
|
48265
|
+
],
|
|
48266
|
+
[sortBy.direction] // or "desc"
|
|
48267
|
+
);
|
|
48268
|
+
} else if (sortBy.label === 'durationInTicks') {
|
|
48269
|
+
return orderBy(
|
|
48270
|
+
results,
|
|
48271
|
+
[
|
|
48272
|
+
function (result) {
|
|
48273
|
+
var _a, _b;
|
|
48274
|
+
return durationInTicksInMinutes(
|
|
48275
|
+
(_b = (_a = result.outward) === null || _a === void 0 ? void 0 : _a.durationInTicks) !== null && _b !== void 0 ? _b : 0
|
|
48276
|
+
);
|
|
48277
|
+
}
|
|
48278
|
+
],
|
|
48279
|
+
[sortBy.direction] // or "desc"
|
|
48280
|
+
);
|
|
48281
|
+
} else {
|
|
48282
|
+
return orderBy(results, [sortBy.label], [sortBy.direction]);
|
|
48283
|
+
}
|
|
48284
|
+
};
|
|
46838
48285
|
|
|
46839
48286
|
var getSelectedOptionsPerRoom = function (details) {
|
|
46840
48287
|
var _a;
|
|
@@ -47031,6 +48478,221 @@ var FullItinerary = function (_a) {
|
|
|
47031
48478
|
return React__default.createElement('div', { ref: hostRef });
|
|
47032
48479
|
};
|
|
47033
48480
|
|
|
48481
|
+
var getExcursionContentWithUpdatedPrice = function (contents, totalPrice, currencyCode) {
|
|
48482
|
+
if (!contents) return '';
|
|
48483
|
+
var decodedHtml = he.decode(contents);
|
|
48484
|
+
var parser = new DOMParser();
|
|
48485
|
+
var doc = parser.parseFromString(decodedHtml, 'text/html');
|
|
48486
|
+
var priceElement = doc.querySelector('[data-excursion-price]');
|
|
48487
|
+
if (priceElement) {
|
|
48488
|
+
priceElement.textContent = new Intl.NumberFormat('nl-BE', {
|
|
48489
|
+
style: 'currency',
|
|
48490
|
+
currency: currencyCode !== null && currencyCode !== void 0 ? currencyCode : 'EUR'
|
|
48491
|
+
}).format(totalPrice);
|
|
48492
|
+
}
|
|
48493
|
+
return doc.body.innerHTML;
|
|
48494
|
+
};
|
|
48495
|
+
var DayByDayExcursions = function () {
|
|
48496
|
+
var _a;
|
|
48497
|
+
var context = useContext(SearchResultsConfigurationContext);
|
|
48498
|
+
var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
|
|
48499
|
+
var dispatch = useDispatch();
|
|
48500
|
+
var confirmedExcursionsByDay = useSelector(function (state) {
|
|
48501
|
+
return state.searchResults;
|
|
48502
|
+
}).confirmedExcursionsByDay;
|
|
48503
|
+
var selectedPackagingAccoResult = useSelector(selectSelectedPackagingAccoResult);
|
|
48504
|
+
var stayDates = useMemo(
|
|
48505
|
+
function () {
|
|
48506
|
+
if (
|
|
48507
|
+
!(selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.fromDate) ||
|
|
48508
|
+
!(selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.toDate)
|
|
48509
|
+
) {
|
|
48510
|
+
return [];
|
|
48511
|
+
}
|
|
48512
|
+
return getDatesBetween(selectedPackagingAccoResult.fromDate, selectedPackagingAccoResult.toDate);
|
|
48513
|
+
},
|
|
48514
|
+
[
|
|
48515
|
+
selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.fromDate,
|
|
48516
|
+
selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.toDate
|
|
48517
|
+
]
|
|
48518
|
+
);
|
|
48519
|
+
var handleSearchExcursions = function (day) {
|
|
48520
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
48521
|
+
if (!selectedPackagingAccoResult) {
|
|
48522
|
+
return;
|
|
48523
|
+
}
|
|
48524
|
+
var searchParams = {
|
|
48525
|
+
date: day.toISOString(),
|
|
48526
|
+
fromDate: day.toISOString(),
|
|
48527
|
+
toDate: day.toISOString(),
|
|
48528
|
+
countryId: selectedPackagingAccoResult.countryId,
|
|
48529
|
+
regionId: selectedPackagingAccoResult.regionId,
|
|
48530
|
+
oordId: selectedPackagingAccoResult.oordId,
|
|
48531
|
+
locationId: selectedPackagingAccoResult.locationId,
|
|
48532
|
+
locationName: selectedPackagingAccoResult.locationName,
|
|
48533
|
+
accommodationCode:
|
|
48534
|
+
(_e =
|
|
48535
|
+
(_d =
|
|
48536
|
+
(_c =
|
|
48537
|
+
(_b = (_a = selectedPackagingAccoResult.rooms) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.options) ===
|
|
48538
|
+
null || _c === void 0
|
|
48539
|
+
? void 0
|
|
48540
|
+
: _c.find(function (option) {
|
|
48541
|
+
return option.isSelected;
|
|
48542
|
+
})) === null || _d === void 0
|
|
48543
|
+
? void 0
|
|
48544
|
+
: _d.accommodationCode) !== null && _e !== void 0
|
|
48545
|
+
? _e
|
|
48546
|
+
: null,
|
|
48547
|
+
accommodationName:
|
|
48548
|
+
(_k =
|
|
48549
|
+
(_j =
|
|
48550
|
+
(_h =
|
|
48551
|
+
(_g = (_f = selectedPackagingAccoResult.rooms) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.options) ===
|
|
48552
|
+
null || _h === void 0
|
|
48553
|
+
? void 0
|
|
48554
|
+
: _h.find(function (option) {
|
|
48555
|
+
return option.isSelected;
|
|
48556
|
+
})) === null || _j === void 0
|
|
48557
|
+
? void 0
|
|
48558
|
+
: _j.accommodationName) !== null && _k !== void 0
|
|
48559
|
+
? _k
|
|
48560
|
+
: null,
|
|
48561
|
+
hotelCode: selectedPackagingAccoResult.code,
|
|
48562
|
+
hotelName: selectedPackagingAccoResult.name,
|
|
48563
|
+
rooms:
|
|
48564
|
+
(_l = selectedPackagingAccoResult === null || selectedPackagingAccoResult === void 0 ? void 0 : selectedPackagingAccoResult.rooms) !== null &&
|
|
48565
|
+
_l !== void 0
|
|
48566
|
+
? _l
|
|
48567
|
+
: []
|
|
48568
|
+
};
|
|
48569
|
+
dispatch(setExcursionSearchParams(searchParams));
|
|
48570
|
+
dispatch(setFlyInIsOpen(true));
|
|
48571
|
+
dispatch(setFlyInType('excursion-results'));
|
|
48572
|
+
};
|
|
48573
|
+
var getSelectedOptionsSummary = function (excursion) {
|
|
48574
|
+
var options = excursion.rooms.flatMap(function (room) {
|
|
48575
|
+
var _a;
|
|
48576
|
+
return (_a = room.options) !== null && _a !== void 0 ? _a : [];
|
|
48577
|
+
});
|
|
48578
|
+
return options.filter(function (option) {
|
|
48579
|
+
return option.isSelected;
|
|
48580
|
+
});
|
|
48581
|
+
};
|
|
48582
|
+
if (!selectedPackagingAccoResult || stayDates.length === 0) {
|
|
48583
|
+
return null;
|
|
48584
|
+
}
|
|
48585
|
+
return React__default.createElement(
|
|
48586
|
+
React__default.Fragment,
|
|
48587
|
+
null,
|
|
48588
|
+
stayDates.map(function (day) {
|
|
48589
|
+
var _a;
|
|
48590
|
+
var dayKey = format$1(day, 'yyyy-MM-dd');
|
|
48591
|
+
var formattedDay = format$1(day, 'd');
|
|
48592
|
+
var formattedMonth = format$1(day, 'MMM');
|
|
48593
|
+
var confirmedExcursions = (_a = confirmedExcursionsByDay[dayKey]) !== null && _a !== void 0 ? _a : [];
|
|
48594
|
+
return React__default.createElement(
|
|
48595
|
+
React__default.Fragment,
|
|
48596
|
+
{ key: dayKey },
|
|
48597
|
+
React__default.createElement(
|
|
48598
|
+
'div',
|
|
48599
|
+
{ className: 'search__results__label search__results__label--secondary' },
|
|
48600
|
+
React__default.createElement(
|
|
48601
|
+
'div',
|
|
48602
|
+
{ className: 'search__results__label__date' },
|
|
48603
|
+
React__default.createElement('p', { className: 'search__results__label__date-date' }, formattedDay),
|
|
48604
|
+
React__default.createElement('p', null, formattedMonth)
|
|
48605
|
+
),
|
|
48606
|
+
React__default.createElement(
|
|
48607
|
+
'div',
|
|
48608
|
+
{ className: 'search__results__label__text' },
|
|
48609
|
+
React__default.createElement('h3', null, translations.SRP.SELECT, ' ', React__default.createElement('strong', null, translations.SRP.EXCURSION))
|
|
48610
|
+
)
|
|
48611
|
+
),
|
|
48612
|
+
React__default.createElement(
|
|
48613
|
+
'div',
|
|
48614
|
+
{ className: 'search__results__cards__actions' },
|
|
48615
|
+
React__default.createElement('span', null, 'Accommodation for this day: ', selectedPackagingAccoResult.name),
|
|
48616
|
+
React__default.createElement(
|
|
48617
|
+
'button',
|
|
48618
|
+
{
|
|
48619
|
+
type: 'button',
|
|
48620
|
+
className: 'cta cta--secondary',
|
|
48621
|
+
onClick: function () {
|
|
48622
|
+
return handleSearchExcursions(day);
|
|
48623
|
+
}
|
|
48624
|
+
},
|
|
48625
|
+
confirmedExcursions.length > 0 ? 'Add another excursion' : ''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.EXCURSION)
|
|
48626
|
+
)
|
|
48627
|
+
),
|
|
48628
|
+
React__default.createElement(
|
|
48629
|
+
'div',
|
|
48630
|
+
{ className: 'search__results__cards search__results__cards--compact' },
|
|
48631
|
+
confirmedExcursions &&
|
|
48632
|
+
confirmedExcursions.length > 0 &&
|
|
48633
|
+
confirmedExcursions.map(function (excursion) {
|
|
48634
|
+
var selectedOptions = getSelectedOptionsSummary(excursion);
|
|
48635
|
+
var totalPrice = selectedOptions.reduce(function (sum, option) {
|
|
48636
|
+
return sum + (option.price || 0);
|
|
48637
|
+
}, 0);
|
|
48638
|
+
var updatedContents = getExcursionContentWithUpdatedPrice(excursion.contents, totalPrice, excursion.currencyCode);
|
|
48639
|
+
return React__default.createElement(
|
|
48640
|
+
'div',
|
|
48641
|
+
{
|
|
48642
|
+
key: excursion.code,
|
|
48643
|
+
className: 'search__result-card__wrapper search__result-card__wrapper--custom',
|
|
48644
|
+
onMouseEnter: function (e) {
|
|
48645
|
+
return (e.currentTarget.style.transform = 'scale(1.02)');
|
|
48646
|
+
},
|
|
48647
|
+
onMouseLeave: function (e) {
|
|
48648
|
+
return (e.currentTarget.style.transform = 'scale(1)');
|
|
48649
|
+
}
|
|
48650
|
+
},
|
|
48651
|
+
React__default.createElement('div', { dangerouslySetInnerHTML: { __html: updatedContents } }),
|
|
48652
|
+
React__default.createElement(
|
|
48653
|
+
'div',
|
|
48654
|
+
{ className: 'search__result-card__content--extra' },
|
|
48655
|
+
React__default.createElement(
|
|
48656
|
+
'div',
|
|
48657
|
+
{ className: 'search__result-card__content__wrapper' },
|
|
48658
|
+
React__default.createElement(
|
|
48659
|
+
'div',
|
|
48660
|
+
{ className: 'search__result-card__options' },
|
|
48661
|
+
selectedOptions.length > 0 &&
|
|
48662
|
+
selectedOptions.map(function (option) {
|
|
48663
|
+
return React__default.createElement(
|
|
48664
|
+
'div',
|
|
48665
|
+
{ className: 'search__result-card__option', key: option.guid },
|
|
48666
|
+
React__default.createElement(Icon$1, { name: 'ui-ticket', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
48667
|
+
React__default.createElement('span', null, option.accommodationName)
|
|
48668
|
+
);
|
|
48669
|
+
})
|
|
48670
|
+
)
|
|
48671
|
+
)
|
|
48672
|
+
),
|
|
48673
|
+
React__default.createElement(
|
|
48674
|
+
'div',
|
|
48675
|
+
{ className: 'search__result-card__footer' },
|
|
48676
|
+
React__default.createElement(
|
|
48677
|
+
'button',
|
|
48678
|
+
{
|
|
48679
|
+
type: 'button',
|
|
48680
|
+
className: 'cta cta--remove',
|
|
48681
|
+
onClick: function () {
|
|
48682
|
+
return dispatch(removeConfirmedExcursionForDay({ dayKey: dayKey, excursionCode: excursion.code }));
|
|
48683
|
+
}
|
|
48684
|
+
},
|
|
48685
|
+
'Remove'
|
|
48686
|
+
)
|
|
48687
|
+
)
|
|
48688
|
+
);
|
|
48689
|
+
})
|
|
48690
|
+
)
|
|
48691
|
+
);
|
|
48692
|
+
})
|
|
48693
|
+
);
|
|
48694
|
+
};
|
|
48695
|
+
|
|
47034
48696
|
var SearchResultsContainer = function () {
|
|
47035
48697
|
var _a, _b;
|
|
47036
48698
|
var currentSearch = typeof window !== 'undefined' ? window.location.search : '';
|
|
@@ -47043,28 +48705,31 @@ var SearchResultsContainer = function () {
|
|
|
47043
48705
|
results = _c.results,
|
|
47044
48706
|
filteredResults = _c.filteredResults,
|
|
47045
48707
|
packagingAccoResults = _c.packagingAccoResults,
|
|
47046
|
-
filteredPackagingAccoResults = _c.filteredPackagingAccoResults
|
|
47047
|
-
|
|
47048
|
-
var isLoading = _c.isLoading,
|
|
48708
|
+
filteredPackagingAccoResults = _c.filteredPackagingAccoResults,
|
|
48709
|
+
isLoading = _c.isLoading,
|
|
47049
48710
|
flightsLoading = _c.flightsLoading,
|
|
48711
|
+
initialFilters = _c.initialFilters,
|
|
47050
48712
|
filters = _c.filters,
|
|
48713
|
+
flightFilters = _c.flightFilters,
|
|
47051
48714
|
selectedSortType = _c.selectedSortType,
|
|
48715
|
+
selectedFlightSortType = _c.selectedFlightSortType,
|
|
47052
48716
|
selectedSearchResult = _c.selectedSearchResult,
|
|
47053
48717
|
selectedPackagingAccoResultCode = _c.selectedPackagingAccoResultCode,
|
|
47054
48718
|
flyInIsOpen = _c.flyInIsOpen,
|
|
47055
48719
|
packagingAccoSearchDetails = _c.packagingAccoSearchDetails,
|
|
47056
48720
|
editablePackagingEntry = _c.editablePackagingEntry,
|
|
47057
48721
|
transactionId = _c.transactionId,
|
|
47058
|
-
|
|
48722
|
+
flyInType = _c.flyInType,
|
|
47059
48723
|
itinerary = _c.itinerary,
|
|
47060
|
-
packagingFlightResults = _c.packagingFlightResults
|
|
48724
|
+
packagingFlightResults = _c.packagingFlightResults,
|
|
48725
|
+
confirmedExcursionsByDay = _c.confirmedExcursionsByDay;
|
|
47061
48726
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
47062
48727
|
var _d = useState(false),
|
|
47063
48728
|
initialFiltersSet = _d[0],
|
|
47064
48729
|
setInitialFiltersSet = _d[1];
|
|
47065
|
-
var _e = useState(
|
|
47066
|
-
|
|
47067
|
-
|
|
48730
|
+
var _e = useState(false),
|
|
48731
|
+
initialFlightFiltersSet = _e[0],
|
|
48732
|
+
setInitialFlightFiltersSet = _e[1];
|
|
47068
48733
|
var _f = useState(false),
|
|
47069
48734
|
filtersOpen = _f[0],
|
|
47070
48735
|
setFiltersOpen = _f[1];
|
|
@@ -47084,9 +48749,6 @@ var SearchResultsContainer = function () {
|
|
|
47084
48749
|
selectedAccommodationSeed = _l[0],
|
|
47085
48750
|
setSelectedAccommodationSeed = _l[1];
|
|
47086
48751
|
var skipInitialPackagingAccoDetailsRef = useRef(false);
|
|
47087
|
-
var _m = useState(false),
|
|
47088
|
-
showAllOutwardFlights = _m[0],
|
|
47089
|
-
setShowAllOutwardFlights = _m[1];
|
|
47090
48752
|
var panelRef = useRef(null);
|
|
47091
48753
|
var sortByTypes = [
|
|
47092
48754
|
{ direction: 'asc', label: 'default' },
|
|
@@ -47403,7 +49065,7 @@ var SearchResultsContainer = function () {
|
|
|
47403
49065
|
if (!seed) return [2 /*return*/];
|
|
47404
49066
|
setDetailsIsLoading(true);
|
|
47405
49067
|
setSelectedAccommodationSeed(seed);
|
|
47406
|
-
dispatch(
|
|
49068
|
+
dispatch(setFlyInType('acco-results'));
|
|
47407
49069
|
handleFlyInToggle(true);
|
|
47408
49070
|
return [4 /*yield*/, getOrCreateTransactionId()];
|
|
47409
49071
|
case 1:
|
|
@@ -47561,7 +49223,7 @@ var SearchResultsContainer = function () {
|
|
|
47561
49223
|
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47562
49224
|
if (!initialFiltersSet) {
|
|
47563
49225
|
dispatch(resetFilters(enrichedFilters));
|
|
47564
|
-
setInitialFilters(enrichedFilters);
|
|
49226
|
+
dispatch(setInitialFilters(enrichedFilters));
|
|
47565
49227
|
setInitialFiltersSet(true);
|
|
47566
49228
|
}
|
|
47567
49229
|
dispatch(setResults(packageSearchResults));
|
|
@@ -47636,11 +49298,7 @@ var SearchResultsContainer = function () {
|
|
|
47636
49298
|
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47637
49299
|
case 1:
|
|
47638
49300
|
packageAccoSearchResults = _d.sent();
|
|
47639
|
-
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47640
|
-
packageAccoSearchResults,
|
|
47641
|
-
context.filters,
|
|
47642
|
-
(_a = context.tags) !== null && _a !== void 0 ? _a : []
|
|
47643
|
-
);
|
|
49301
|
+
enrichedFilters = enrichFiltersWithPackageAccoResults(packageAccoSearchResults, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47644
49302
|
if (!initialFiltersSet) {
|
|
47645
49303
|
dispatch(resetFilters(enrichedFilters));
|
|
47646
49304
|
setInitialFilters(enrichedFilters);
|
|
@@ -47686,11 +49344,12 @@ var SearchResultsContainer = function () {
|
|
|
47686
49344
|
};
|
|
47687
49345
|
var runFlightSearch = function (currentTransactionId, seed) {
|
|
47688
49346
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47689
|
-
var config, searchRequest, packageFlightSearchResults, firstResult, err_4;
|
|
47690
|
-
|
|
47691
|
-
|
|
49347
|
+
var config, searchRequest, packageFlightSearchResults, enrichedFilters, initialFilteredResults, firstResult, err_4;
|
|
49348
|
+
var _a;
|
|
49349
|
+
return __generator(this, function (_b) {
|
|
49350
|
+
switch (_b.label) {
|
|
47692
49351
|
case 0:
|
|
47693
|
-
|
|
49352
|
+
_b.trys.push([0, 2, , 3]);
|
|
47694
49353
|
if (!context) return [2 /*return*/];
|
|
47695
49354
|
dispatch(setFlightsLoading(true));
|
|
47696
49355
|
config = {
|
|
@@ -47701,17 +49360,31 @@ var SearchResultsContainer = function () {
|
|
|
47701
49360
|
searchRequest.agentId = context.agentId;
|
|
47702
49361
|
return [4 /*yield*/, build.searchPackagingFlights(config, searchRequest)];
|
|
47703
49362
|
case 1:
|
|
47704
|
-
packageFlightSearchResults =
|
|
49363
|
+
packageFlightSearchResults = _b.sent();
|
|
49364
|
+
enrichedFilters = enrichFiltersWithPackageFlightResults(
|
|
49365
|
+
packageFlightSearchResults,
|
|
49366
|
+
(_a = context.tags) !== null && _a !== void 0 ? _a : [],
|
|
49367
|
+
translations
|
|
49368
|
+
);
|
|
49369
|
+
if (!initialFlightFiltersSet) {
|
|
49370
|
+
dispatch(resetFlightFilters(enrichedFilters));
|
|
49371
|
+
dispatch(setInitialFlightFilters(enrichedFilters));
|
|
49372
|
+
setInitialFlightFiltersSet(true);
|
|
49373
|
+
}
|
|
47705
49374
|
dispatch(setPackagingFlightResults(packageFlightSearchResults));
|
|
47706
|
-
|
|
47707
|
-
|
|
47708
|
-
|
|
47709
|
-
|
|
49375
|
+
initialFilteredResults = applyFiltersToPackageFlightResults(packageFlightSearchResults, filters, null);
|
|
49376
|
+
dispatch(setFilteredPackagingFlightResults(initialFilteredResults));
|
|
49377
|
+
if (initialFilteredResults.length > 0) {
|
|
49378
|
+
firstResult = first(packageFlightSearchResults);
|
|
49379
|
+
if (firstResult) {
|
|
49380
|
+
dispatch(setSelectedOutwardKey(getFlightKey(firstResult.outward.segments)));
|
|
49381
|
+
dispatch(setSelectedReturnKey(getFlightKey(firstResult.return.segments)));
|
|
49382
|
+
}
|
|
47710
49383
|
}
|
|
47711
49384
|
dispatch(setFlightsLoading(false));
|
|
47712
49385
|
return [3 /*break*/, 3];
|
|
47713
49386
|
case 2:
|
|
47714
|
-
err_4 =
|
|
49387
|
+
err_4 = _b.sent();
|
|
47715
49388
|
console.error('FlightSearch failed', err_4);
|
|
47716
49389
|
dispatch(setFlightsLoading(false));
|
|
47717
49390
|
return [3 /*break*/, 3];
|
|
@@ -47933,6 +49606,7 @@ var SearchResultsContainer = function () {
|
|
|
47933
49606
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour
|
|
47934
49607
|
) {
|
|
47935
49608
|
handleFlyInToggle(true);
|
|
49609
|
+
dispatch(setFlyInType('acco-details'));
|
|
47936
49610
|
}
|
|
47937
49611
|
_f.label = 1;
|
|
47938
49612
|
case 1:
|
|
@@ -48024,13 +49698,15 @@ var SearchResultsContainer = function () {
|
|
|
48024
49698
|
if (selectedPackagingAccoResultCode) {
|
|
48025
49699
|
fetchPackagingAccoSearchDetails();
|
|
48026
49700
|
}
|
|
48027
|
-
dispatch(setAccommodationFlyInStep('details'));
|
|
48028
49701
|
},
|
|
48029
49702
|
[selectedSearchResult, selectedPackagingAccoResultCode]
|
|
48030
49703
|
);
|
|
48031
49704
|
useEffect(
|
|
48032
49705
|
function () {
|
|
48033
|
-
if (
|
|
49706
|
+
if (
|
|
49707
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
49708
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight
|
|
49709
|
+
) {
|
|
48034
49710
|
var filteredPackageAccoResults = applyFiltersToPackageAccoResults(packagingAccoResults, filters, selectedSortType);
|
|
48035
49711
|
dispatch(setFilteredPackagingAccoResults(filteredPackageAccoResults));
|
|
48036
49712
|
} else {
|
|
@@ -48040,6 +49716,15 @@ var SearchResultsContainer = function () {
|
|
|
48040
49716
|
},
|
|
48041
49717
|
[filters, results, packagingAccoResults, selectedSortType]
|
|
48042
49718
|
);
|
|
49719
|
+
useEffect(
|
|
49720
|
+
function () {
|
|
49721
|
+
if ((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight) {
|
|
49722
|
+
var filteredPackageFlightResults = applyFiltersToPackageFlightResults(packagingFlightResults, flightFilters, selectedFlightSortType);
|
|
49723
|
+
dispatch(setFilteredPackagingFlightResults(filteredPackageFlightResults));
|
|
49724
|
+
}
|
|
49725
|
+
},
|
|
49726
|
+
[flightFilters, packagingFlightResults, selectedFlightSortType]
|
|
49727
|
+
);
|
|
48043
49728
|
useEffect(
|
|
48044
49729
|
function () {
|
|
48045
49730
|
setInitialFiltersSet(false);
|
|
@@ -48114,7 +49799,6 @@ var SearchResultsContainer = function () {
|
|
|
48114
49799
|
return [4 /*yield*/, build.getItinerary(config, request)];
|
|
48115
49800
|
case 2:
|
|
48116
49801
|
itinerary_1 = _c.sent();
|
|
48117
|
-
console.log('Fetched itinerary', itinerary_1);
|
|
48118
49802
|
dispatch(setItinerary(itinerary_1));
|
|
48119
49803
|
setItineraryIsLoading(false);
|
|
48120
49804
|
return [3 /*break*/, 4];
|
|
@@ -48135,37 +49819,22 @@ var SearchResultsContainer = function () {
|
|
|
48135
49819
|
[editablePackagingEntry]
|
|
48136
49820
|
);
|
|
48137
49821
|
// Flight selection
|
|
48138
|
-
|
|
48139
|
-
|
|
48140
|
-
|
|
48141
|
-
var
|
|
48142
|
-
|
|
48143
|
-
|
|
48144
|
-
var
|
|
48145
|
-
|
|
48146
|
-
|
|
48147
|
-
packagingFlightResults.forEach(function (flight) {
|
|
48148
|
-
var key = getFlightKey(flight.outward.segments);
|
|
48149
|
-
if (!map.has(key)) {
|
|
48150
|
-
map.set(key, flight);
|
|
48151
|
-
}
|
|
48152
|
-
});
|
|
48153
|
-
return Array.from(map.values());
|
|
48154
|
-
},
|
|
48155
|
-
[packagingFlightResults]
|
|
48156
|
-
);
|
|
48157
|
-
var _q = useState([]),
|
|
48158
|
-
uniqueReturnFlights = _q[0],
|
|
48159
|
-
setUniqueReturnFlights = _q[1];
|
|
49822
|
+
// const [selectedOutwardKey, setSelectedOutwardKey] = useState<string | null>(null);
|
|
49823
|
+
// const [selectedReturnKey, setSelectedReturnKey] = useState<string | null>(null);
|
|
49824
|
+
var selectedOutwardKey = useSelector(selectSelectedOutwardKey);
|
|
49825
|
+
var selectedReturnKey = useSelector(selectSelectedReturnKey);
|
|
49826
|
+
var uniqueOutwardFlights = useSelector(selectUniqueOutwardFlights);
|
|
49827
|
+
var uniqueReturnFlights = useSelector(selectUniqueReturnFlights);
|
|
49828
|
+
var selectedOutward = useSelector(selectSelectedOutward);
|
|
49829
|
+
var selectedReturn = useSelector(selectSelectedReturn);
|
|
49830
|
+
var selectedCombinationFlight = useSelector(selectSelectedCombinationFlight);
|
|
48160
49831
|
useEffect(
|
|
48161
49832
|
function () {
|
|
48162
49833
|
var _a;
|
|
48163
49834
|
if (!selectedOutwardKey) {
|
|
48164
|
-
|
|
48165
|
-
setSelectedReturnKey(null);
|
|
49835
|
+
dispatch(setSelectedReturnKey(null));
|
|
48166
49836
|
return;
|
|
48167
49837
|
}
|
|
48168
|
-
// Filter combinations that match selected outward fare
|
|
48169
49838
|
var matchingCombinations = packagingFlightResults.filter(function (flight) {
|
|
48170
49839
|
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48171
49840
|
});
|
|
@@ -48177,44 +49846,26 @@ var SearchResultsContainer = function () {
|
|
|
48177
49846
|
}
|
|
48178
49847
|
});
|
|
48179
49848
|
var returns = Array.from(returnMap.values());
|
|
48180
|
-
|
|
48181
|
-
var firstReturnKey = returns.length > 0 ? getFlightKey(
|
|
48182
|
-
if (
|
|
48183
|
-
|
|
49849
|
+
var segments = (_a = first(returns)) === null || _a === void 0 ? void 0 : _a.return.segments;
|
|
49850
|
+
var firstReturnKey = returns.length > 0 && segments ? getFlightKey(segments) : null;
|
|
49851
|
+
if (
|
|
49852
|
+
!returns.some(function (x) {
|
|
49853
|
+
return getFlightKey(x.return.segments) === selectedReturnKey;
|
|
49854
|
+
})
|
|
49855
|
+
) {
|
|
49856
|
+
dispatch(setSelectedReturnKey(firstReturnKey));
|
|
48184
49857
|
}
|
|
48185
49858
|
},
|
|
48186
|
-
[selectedOutwardKey, packagingFlightResults]
|
|
49859
|
+
[selectedOutwardKey, packagingFlightResults, selectedReturnKey, dispatch]
|
|
48187
49860
|
);
|
|
48188
|
-
var
|
|
48189
|
-
function () {
|
|
48190
|
-
if (!selectedOutwardKey) return null;
|
|
48191
|
-
return (
|
|
48192
|
-
packagingFlightResults.find(function (flight) {
|
|
48193
|
-
return getFlightKey(flight.outward.segments) === selectedOutwardKey;
|
|
48194
|
-
}) || null
|
|
48195
|
-
);
|
|
48196
|
-
},
|
|
48197
|
-
[packagingFlightResults, selectedOutwardKey]
|
|
48198
|
-
);
|
|
48199
|
-
var selectedReturn = React__default.useMemo(
|
|
48200
|
-
function () {
|
|
48201
|
-
if (!selectedReturnKey) return null;
|
|
48202
|
-
return (
|
|
48203
|
-
packagingFlightResults.find(function (flight) {
|
|
48204
|
-
return getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
48205
|
-
}) || null
|
|
48206
|
-
);
|
|
48207
|
-
},
|
|
48208
|
-
[packagingFlightResults, selectedReturnKey]
|
|
48209
|
-
);
|
|
48210
|
-
var selectedCombinationFlight = React__default.useMemo(
|
|
49861
|
+
var visibleOutwardFlights = React__default.useMemo(
|
|
48211
49862
|
function () {
|
|
48212
|
-
|
|
48213
|
-
|
|
48214
|
-
return getFlightKey(flight.outward.segments) === selectedOutwardKey && getFlightKey(flight.return.segments) === selectedReturnKey;
|
|
49863
|
+
var withoutSelected = uniqueOutwardFlights.filter(function (x) {
|
|
49864
|
+
return getFlightKey(x.outward.segments) !== selectedOutwardKey;
|
|
48215
49865
|
});
|
|
49866
|
+
return withoutSelected.slice(0, 3);
|
|
48216
49867
|
},
|
|
48217
|
-
[
|
|
49868
|
+
[uniqueOutwardFlights, selectedOutwardKey]
|
|
48218
49869
|
);
|
|
48219
49870
|
// TODO: get details for selected combination flight and show in fly-in
|
|
48220
49871
|
// useEffect(() => {
|
|
@@ -48223,6 +49874,7 @@ var SearchResultsContainer = function () {
|
|
|
48223
49874
|
// // onFlightSearch(selectedCombinationFlight); // Trigger search to update accommodation options based on selected flight
|
|
48224
49875
|
// dispatch(setFlyInIsOpen(true));
|
|
48225
49876
|
// }, [selectedCombinationFlight, dispatch]);
|
|
49877
|
+
// Build packagingEntry
|
|
48226
49878
|
useEffect(
|
|
48227
49879
|
function () {
|
|
48228
49880
|
var _a, _b, _c, _d;
|
|
@@ -48238,6 +49890,7 @@ var SearchResultsContainer = function () {
|
|
|
48238
49890
|
selectedHotelCode: selectedPackagingAccoResultCode,
|
|
48239
49891
|
accommodationResults: packagingAccoResults,
|
|
48240
49892
|
selectedFlight: selectedCombinationFlight !== null && selectedCombinationFlight !== void 0 ? selectedCombinationFlight : null,
|
|
49893
|
+
confirmedExcursionsByDay: confirmedExcursionsByDay,
|
|
48241
49894
|
seed: seed,
|
|
48242
49895
|
transactionId:
|
|
48243
49896
|
(_c =
|
|
@@ -48250,6 +49903,7 @@ var SearchResultsContainer = function () {
|
|
|
48250
49903
|
: '',
|
|
48251
49904
|
language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
|
|
48252
49905
|
});
|
|
49906
|
+
console.log('Built nextEntry', nextEntry);
|
|
48253
49907
|
if (!nextEntry) return;
|
|
48254
49908
|
dispatch(setEditablePackagingEntry(nextEntry));
|
|
48255
49909
|
if (selectedCombinationFlight) {
|
|
@@ -48263,6 +49917,7 @@ var SearchResultsContainer = function () {
|
|
|
48263
49917
|
packagingAccoResults,
|
|
48264
49918
|
packagingAccoSearchDetails,
|
|
48265
49919
|
selectedCombinationFlight,
|
|
49920
|
+
confirmedExcursionsByDay,
|
|
48266
49921
|
transactionId,
|
|
48267
49922
|
dispatch
|
|
48268
49923
|
]
|
|
@@ -48277,56 +49932,103 @@ var SearchResultsContainer = function () {
|
|
|
48277
49932
|
return line.serviceType !== FLIGHT_SERVICE_TYPE;
|
|
48278
49933
|
});
|
|
48279
49934
|
};
|
|
49935
|
+
var removeExcursionLines = function (lines) {
|
|
49936
|
+
return lines.filter(function (line) {
|
|
49937
|
+
return line.serviceType !== EXCURSION_SERVICE_TYPE;
|
|
49938
|
+
});
|
|
49939
|
+
};
|
|
48280
49940
|
var buildAccommodationLinesFromSelection = function (selectedHotel, seed) {
|
|
48281
|
-
|
|
49941
|
+
return buildPackagingAccommodationLines(selectedHotel, seed, ACCOMMODATION_SERVICE_TYPE);
|
|
49942
|
+
};
|
|
49943
|
+
var buildExcursionLinesFromConfirmedDays = function (confirmedExcursionsByDay) {
|
|
49944
|
+
return Object.values(confirmedExcursionsByDay)
|
|
49945
|
+
.flat()
|
|
49946
|
+
.flatMap(function (excursion) {
|
|
49947
|
+
var selectedOptions = excursion.rooms.flatMap(function (room) {
|
|
49948
|
+
return room.options.filter(function (option) {
|
|
49949
|
+
return option.isSelected;
|
|
49950
|
+
});
|
|
49951
|
+
});
|
|
49952
|
+
var parentGuid = crypto.randomUUID();
|
|
49953
|
+
return selectedOptions.map(function (option, index) {
|
|
49954
|
+
var _a, _b, _c;
|
|
49955
|
+
return {
|
|
49956
|
+
guid: (_a = option.guid) !== null && _a !== void 0 ? _a : crypto.randomUUID(),
|
|
49957
|
+
moment: '',
|
|
49958
|
+
parentGuid: index === 0 ? null : parentGuid,
|
|
49959
|
+
order: index,
|
|
49960
|
+
isChanged: true,
|
|
49961
|
+
from: excursion.fromDate,
|
|
49962
|
+
to: excursion.toDate,
|
|
49963
|
+
serviceType: EXCURSION_SERVICE_TYPE,
|
|
49964
|
+
productName: excursion.name,
|
|
49965
|
+
productCode: excursion.code,
|
|
49966
|
+
accommodationName: option.accommodationName,
|
|
49967
|
+
accommodationCode: option.accommodationCode,
|
|
49968
|
+
regimeName: option.regimeName,
|
|
49969
|
+
regimeCode: option.regimeCode,
|
|
49970
|
+
country: excursion.countryId ? { id: excursion.countryId, name: excursion.countryName, localizations: [] } : null,
|
|
49971
|
+
region: excursion.regionId ? { id: excursion.regionId, name: excursion.regionName, localizations: [] } : null,
|
|
49972
|
+
oord: excursion.oordId ? { id: excursion.oordId, name: excursion.oordName, localizations: [] } : null,
|
|
49973
|
+
location: excursion.locationId ? { id: excursion.locationId, name: excursion.locationName, localizations: [] } : null,
|
|
49974
|
+
longitude: (_b = excursion.longitude) !== null && _b !== void 0 ? _b : null,
|
|
49975
|
+
latitude: (_c = excursion.latitude) !== null && _c !== void 0 ? _c : null,
|
|
49976
|
+
pax: Array.isArray(option.paxIds)
|
|
49977
|
+
? option.paxIds.map(function (paxId, paxIndex) {
|
|
49978
|
+
return {
|
|
49979
|
+
paxId: paxId,
|
|
49980
|
+
room: 0,
|
|
49981
|
+
order: paxIndex
|
|
49982
|
+
};
|
|
49983
|
+
})
|
|
49984
|
+
: [],
|
|
49985
|
+
flightInformation: null
|
|
49986
|
+
};
|
|
49987
|
+
});
|
|
49988
|
+
});
|
|
49989
|
+
};
|
|
49990
|
+
var buildPackagingAccommodationLines = function (selectedItem, seed, serviceType) {
|
|
49991
|
+
if (!selectedItem) return [];
|
|
48282
49992
|
var parentGuid = crypto.randomUUID();
|
|
48283
|
-
return
|
|
49993
|
+
return selectedItem.rooms
|
|
48284
49994
|
.filter(function (room) {
|
|
48285
49995
|
return room.options.some(function (o) {
|
|
48286
49996
|
return o.isSelected;
|
|
48287
49997
|
});
|
|
48288
49998
|
})
|
|
48289
49999
|
.map(function (room, index) {
|
|
48290
|
-
var _a, _b, _c
|
|
50000
|
+
var _a, _b, _c;
|
|
48291
50001
|
var option = room.options.find(function (o) {
|
|
48292
50002
|
return o.isSelected;
|
|
48293
50003
|
});
|
|
48294
|
-
var pax =
|
|
48295
|
-
|
|
48296
|
-
|
|
48297
|
-
|
|
48298
|
-
|
|
48299
|
-
|
|
48300
|
-
|
|
48301
|
-
paxId: p.id,
|
|
48302
|
-
room: roomIndex,
|
|
48303
|
-
order: paxIndex
|
|
48304
|
-
};
|
|
48305
|
-
});
|
|
48306
|
-
})) !== null && _b !== void 0
|
|
48307
|
-
? _b
|
|
48308
|
-
: [];
|
|
50004
|
+
var pax = option.paxIds.map(function (p, paxIndex) {
|
|
50005
|
+
return {
|
|
50006
|
+
paxId: p,
|
|
50007
|
+
room: index,
|
|
50008
|
+
order: paxIndex
|
|
50009
|
+
};
|
|
50010
|
+
});
|
|
48309
50011
|
return {
|
|
48310
|
-
guid: (
|
|
50012
|
+
guid: (_a = option.guid) !== null && _a !== void 0 ? _a : crypto.randomUUID(),
|
|
48311
50013
|
moment: '',
|
|
48312
50014
|
parentGuid: index === 0 ? null : parentGuid,
|
|
48313
50015
|
order: index,
|
|
48314
50016
|
isChanged: true,
|
|
48315
|
-
from:
|
|
48316
|
-
to:
|
|
48317
|
-
serviceType:
|
|
48318
|
-
productName:
|
|
48319
|
-
productCode:
|
|
50017
|
+
from: selectedItem.fromDate,
|
|
50018
|
+
to: selectedItem.toDate,
|
|
50019
|
+
serviceType: serviceType,
|
|
50020
|
+
productName: selectedItem.name,
|
|
50021
|
+
productCode: selectedItem.code,
|
|
48320
50022
|
accommodationName: option.accommodationName,
|
|
48321
50023
|
accommodationCode: option.accommodationCode,
|
|
48322
50024
|
regimeName: option.regimeName,
|
|
48323
50025
|
regimeCode: option.regimeCode,
|
|
48324
|
-
country:
|
|
48325
|
-
region:
|
|
48326
|
-
oord:
|
|
48327
|
-
location:
|
|
48328
|
-
longitude: (
|
|
48329
|
-
latitude: (
|
|
50026
|
+
country: selectedItem.countryId ? { id: selectedItem.countryId, name: selectedItem.countryName, localizations: [] } : null,
|
|
50027
|
+
region: selectedItem.regionId ? { id: selectedItem.regionId, name: selectedItem.regionName, localizations: [] } : null,
|
|
50028
|
+
oord: selectedItem.oordId ? { id: selectedItem.oordId, name: selectedItem.oordName, localizations: [] } : null,
|
|
50029
|
+
location: selectedItem.locationId ? { id: selectedItem.locationId, name: selectedItem.locationName, localizations: [] } : null,
|
|
50030
|
+
longitude: (_b = selectedItem.longitude) !== null && _b !== void 0 ? _b : null,
|
|
50031
|
+
latitude: (_c = selectedItem.latitude) !== null && _c !== void 0 ? _c : null,
|
|
48330
50032
|
pax: pax,
|
|
48331
50033
|
flightInformation: null
|
|
48332
50034
|
};
|
|
@@ -48454,6 +50156,7 @@ var SearchResultsContainer = function () {
|
|
|
48454
50156
|
selectedHotelCode = _a.selectedHotelCode,
|
|
48455
50157
|
accommodationResults = _a.accommodationResults,
|
|
48456
50158
|
selectedFlight = _a.selectedFlight,
|
|
50159
|
+
confirmedExcursionsByDay = _a.confirmedExcursionsByDay,
|
|
48457
50160
|
seed = _a.seed,
|
|
48458
50161
|
transactionId = _a.transactionId,
|
|
48459
50162
|
language = _a.language;
|
|
@@ -48481,6 +50184,12 @@ var SearchResultsContainer = function () {
|
|
|
48481
50184
|
nextLines = __spreadArray(__spreadArray([], nextLines, true), flightLines, true);
|
|
48482
50185
|
}
|
|
48483
50186
|
}
|
|
50187
|
+
// excursions
|
|
50188
|
+
var excursionLines = buildExcursionLinesFromConfirmedDays(confirmedExcursionsByDay);
|
|
50189
|
+
nextLines = removeExcursionLines(nextLines);
|
|
50190
|
+
if (excursionLines.length) {
|
|
50191
|
+
nextLines = __spreadArray(__spreadArray([], nextLines, true), excursionLines, true);
|
|
50192
|
+
}
|
|
48484
50193
|
nextLines = nextLines.map(function (line, index) {
|
|
48485
50194
|
return __assign(__assign({}, line), { order: index });
|
|
48486
50195
|
});
|
|
@@ -48491,7 +50200,7 @@ var SearchResultsContainer = function () {
|
|
|
48491
50200
|
if (sourceEntry) {
|
|
48492
50201
|
return structuredClone(sourceEntry);
|
|
48493
50202
|
}
|
|
48494
|
-
var paxId =
|
|
50203
|
+
var paxId = 0;
|
|
48495
50204
|
var pax =
|
|
48496
50205
|
(_b =
|
|
48497
50206
|
(_a = seed.rooms) === null || _a === void 0
|
|
@@ -48521,12 +50230,10 @@ var SearchResultsContainer = function () {
|
|
|
48521
50230
|
lines: []
|
|
48522
50231
|
};
|
|
48523
50232
|
};
|
|
48524
|
-
var
|
|
48525
|
-
|
|
48526
|
-
|
|
48527
|
-
|
|
48528
|
-
[showAllOutwardFlights, uniqueOutwardFlights]
|
|
48529
|
-
);
|
|
50233
|
+
var handleShowMoreFlights = function (flyInType) {
|
|
50234
|
+
dispatch(setFlyInType(flyInType));
|
|
50235
|
+
dispatch(setFlyInIsOpen(true));
|
|
50236
|
+
};
|
|
48530
50237
|
return React__default.createElement(
|
|
48531
50238
|
'div',
|
|
48532
50239
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -48543,7 +50250,6 @@ var SearchResultsContainer = function () {
|
|
|
48543
50250
|
{ tideConnection: context.tideConnection },
|
|
48544
50251
|
React__default.createElement(FlightResultsContainer, { isMobile: isMobile }),
|
|
48545
50252
|
React__default.createElement(FlyIn, {
|
|
48546
|
-
title: 'Select your fare',
|
|
48547
50253
|
srpType: context.searchConfiguration.qsmType,
|
|
48548
50254
|
isOpen: flyInIsOpen,
|
|
48549
50255
|
setIsOpen: handleFlyInToggle,
|
|
@@ -48570,7 +50276,13 @@ var SearchResultsContainer = function () {
|
|
|
48570
50276
|
return setFiltersOpen(!filtersOpen);
|
|
48571
50277
|
},
|
|
48572
50278
|
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
48573
|
-
isLoading: isLoading
|
|
50279
|
+
isLoading: isLoading,
|
|
50280
|
+
setFilters: function (filters) {
|
|
50281
|
+
return dispatch(setFilters(filters));
|
|
50282
|
+
},
|
|
50283
|
+
resetFilters: function (filters) {
|
|
50284
|
+
return dispatch(resetFilters(filters));
|
|
50285
|
+
}
|
|
48574
50286
|
}),
|
|
48575
50287
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48576
50288
|
React__default.createElement(Itinerary, {
|
|
@@ -48637,53 +50349,53 @@ var SearchResultsContainer = function () {
|
|
|
48637
50349
|
}
|
|
48638
50350
|
})
|
|
48639
50351
|
),
|
|
48640
|
-
|
|
48641
|
-
'div',
|
|
48642
|
-
{ className: 'search__result-row' },
|
|
50352
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.AccommodationAndFlight &&
|
|
48643
50353
|
React__default.createElement(
|
|
48644
|
-
'
|
|
48645
|
-
{ className: 'search__result-row
|
|
48646
|
-
|
|
48647
|
-
|
|
50354
|
+
'div',
|
|
50355
|
+
{ className: 'search__result-row' },
|
|
50356
|
+
React__default.createElement(
|
|
50357
|
+
'span',
|
|
50358
|
+
{ className: 'search__result-row-text' },
|
|
50359
|
+
!isLoading &&
|
|
50360
|
+
React__default.createElement(
|
|
50361
|
+
React__default.Fragment,
|
|
50362
|
+
null,
|
|
50363
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation &&
|
|
50364
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length) &&
|
|
50365
|
+
(filteredPackagingAccoResults === null || filteredPackagingAccoResults === void 0 ? void 0 : filteredPackagingAccoResults.length),
|
|
50366
|
+
context.searchConfiguration.qsmType !== build.PortalQsmType.Accommodation &&
|
|
50367
|
+
(filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults.length) &&
|
|
50368
|
+
filteredResults.length,
|
|
50369
|
+
'\u00A0',
|
|
50370
|
+
translations.SRP.TOTAL_RESULTS_LABEL
|
|
50371
|
+
)
|
|
50372
|
+
),
|
|
50373
|
+
!context.packagingEntry &&
|
|
50374
|
+
!isMobile &&
|
|
50375
|
+
sortByTypes &&
|
|
50376
|
+
sortByTypes.length > 0 &&
|
|
48648
50377
|
React__default.createElement(
|
|
48649
|
-
|
|
48650
|
-
|
|
48651
|
-
|
|
48652
|
-
|
|
48653
|
-
(
|
|
48654
|
-
|
|
48655
|
-
|
|
48656
|
-
|
|
48657
|
-
|
|
48658
|
-
|
|
50378
|
+
'div',
|
|
50379
|
+
{ className: 'search__result-row-filter' },
|
|
50380
|
+
React__default.createElement(ItemPicker, {
|
|
50381
|
+
items: sortByTypes,
|
|
50382
|
+
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
50383
|
+
selectedSortByType: selectedSortType,
|
|
50384
|
+
label: translations.SRP.SORTBY,
|
|
50385
|
+
placeholder: translations.SRP.SORTBY,
|
|
50386
|
+
classModifier: 'travel-class-picker__items',
|
|
50387
|
+
valueFormatter: function (value, direction) {
|
|
50388
|
+
return getSortingName(
|
|
50389
|
+
translations,
|
|
50390
|
+
findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc')
|
|
50391
|
+
);
|
|
50392
|
+
},
|
|
50393
|
+
onPick: function (newSortKey, direction) {
|
|
50394
|
+
return handleSortChange(newSortKey, direction);
|
|
50395
|
+
}
|
|
50396
|
+
})
|
|
48659
50397
|
)
|
|
48660
50398
|
),
|
|
48661
|
-
!context.packagingEntry &&
|
|
48662
|
-
!isMobile &&
|
|
48663
|
-
sortByTypes &&
|
|
48664
|
-
sortByTypes.length > 0 &&
|
|
48665
|
-
React__default.createElement(
|
|
48666
|
-
'div',
|
|
48667
|
-
{ className: 'search__result-row-filter' },
|
|
48668
|
-
React__default.createElement(ItemPicker, {
|
|
48669
|
-
items: sortByTypes,
|
|
48670
|
-
selection: (selectedSortType === null || selectedSortType === void 0 ? void 0 : selectedSortType.label) || undefined,
|
|
48671
|
-
selectedSortByType: selectedSortType,
|
|
48672
|
-
label: translations.SRP.SORTBY,
|
|
48673
|
-
placeholder: translations.SRP.SORTBY,
|
|
48674
|
-
classModifier: 'travel-class-picker__items',
|
|
48675
|
-
valueFormatter: function (value, direction) {
|
|
48676
|
-
return getSortingName(
|
|
48677
|
-
translations,
|
|
48678
|
-
findSortByType(sortByTypes, value, direction !== null && direction !== void 0 ? direction : 'asc')
|
|
48679
|
-
);
|
|
48680
|
-
},
|
|
48681
|
-
onPick: function (newSortKey, direction) {
|
|
48682
|
-
return handleSortChange(newSortKey, direction);
|
|
48683
|
-
}
|
|
48684
|
-
})
|
|
48685
|
-
)
|
|
48686
|
-
),
|
|
48687
50399
|
React__default.createElement(
|
|
48688
50400
|
'div',
|
|
48689
50401
|
{ className: 'search__results__wrapper' },
|
|
@@ -48697,8 +50409,6 @@ var SearchResultsContainer = function () {
|
|
|
48697
50409
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48698
50410
|
!context.packagingEntry &&
|
|
48699
50411
|
context.showFlightResults &&
|
|
48700
|
-
// bookingPackageDetails?.outwardFlights &&
|
|
48701
|
-
// <FlightResults flights={bookingPackageDetails?.outwardFlights} isDeparture={true} />
|
|
48702
50412
|
React__default.createElement(
|
|
48703
50413
|
React__default.Fragment,
|
|
48704
50414
|
null,
|
|
@@ -48737,7 +50447,7 @@ var SearchResultsContainer = function () {
|
|
|
48737
50447
|
item: selectedOutward.outward,
|
|
48738
50448
|
guid: selectedOutward.outwardGuid,
|
|
48739
50449
|
onSelect: function () {
|
|
48740
|
-
return setSelectedOutwardKey(null);
|
|
50450
|
+
return dispatch(setSelectedOutwardKey(null));
|
|
48741
50451
|
},
|
|
48742
50452
|
selectedGuid: selectedOutward.outwardGuid,
|
|
48743
50453
|
isOutward: true,
|
|
@@ -48749,7 +50459,7 @@ var SearchResultsContainer = function () {
|
|
|
48749
50459
|
key: 'flight-'.concat(result.outwardGuid),
|
|
48750
50460
|
item: result.outward,
|
|
48751
50461
|
onSelect: function () {
|
|
48752
|
-
return setSelectedOutwardKey(getFlightKey(result.outward.segments));
|
|
50462
|
+
return dispatch(setSelectedOutwardKey(getFlightKey(result.outward.segments)));
|
|
48753
50463
|
},
|
|
48754
50464
|
guid: result.outwardGuid,
|
|
48755
50465
|
isOutward: true,
|
|
@@ -48768,10 +50478,10 @@ var SearchResultsContainer = function () {
|
|
|
48768
50478
|
{
|
|
48769
50479
|
className: 'cta cta--secondary',
|
|
48770
50480
|
onClick: function () {
|
|
48771
|
-
return
|
|
50481
|
+
return handleShowMoreFlights('flight-outward-results');
|
|
48772
50482
|
}
|
|
48773
50483
|
},
|
|
48774
|
-
|
|
50484
|
+
translations.SRP.SHOW_MORE
|
|
48775
50485
|
)
|
|
48776
50486
|
)
|
|
48777
50487
|
)
|
|
@@ -48779,11 +50489,12 @@ var SearchResultsContainer = function () {
|
|
|
48779
50489
|
context.showHotelAccommodationResults &&
|
|
48780
50490
|
!context.packagingEntry &&
|
|
48781
50491
|
React__default.createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
50492
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
50493
|
+
!context.packagingEntry &&
|
|
50494
|
+
React__default.createElement(DayByDayExcursions, null),
|
|
48782
50495
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48783
50496
|
!context.packagingEntry &&
|
|
48784
50497
|
context.showFlightResults &&
|
|
48785
|
-
// bookingPackageDetails?.returnFlights &&
|
|
48786
|
-
// <FlightResults flights={bookingPackageDetails?.returnFlights} isDeparture={false} />
|
|
48787
50498
|
React__default.createElement(
|
|
48788
50499
|
React__default.Fragment,
|
|
48789
50500
|
null,
|
|
@@ -48826,7 +50537,7 @@ var SearchResultsContainer = function () {
|
|
|
48826
50537
|
key: 'flight-'.concat(result.outwardGuid),
|
|
48827
50538
|
item: result.return,
|
|
48828
50539
|
onSelect: function () {
|
|
48829
|
-
return setSelectedReturnKey(getFlightKey(result.return.segments));
|
|
50540
|
+
return dispatch(setSelectedReturnKey(getFlightKey(result.return.segments)));
|
|
48830
50541
|
},
|
|
48831
50542
|
guid: result.outwardGuid,
|
|
48832
50543
|
isOutward: false,
|
|
@@ -48843,7 +50554,6 @@ var SearchResultsContainer = function () {
|
|
|
48843
50554
|
)
|
|
48844
50555
|
),
|
|
48845
50556
|
React__default.createElement(FlyIn, {
|
|
48846
|
-
title: ''.concat(translations.SRP.SELECT, ' ').concat(translations.SRP.ACCOMMODATION),
|
|
48847
50557
|
srpType: context.searchConfiguration.qsmType,
|
|
48848
50558
|
isOpen: flyInIsOpen,
|
|
48849
50559
|
setIsOpen: handleFlyInToggle,
|
|
@@ -48854,8 +50564,10 @@ var SearchResultsContainer = function () {
|
|
|
48854
50564
|
return (panelRef.current = el);
|
|
48855
50565
|
},
|
|
48856
50566
|
detailsLoading: detailsIsLoading,
|
|
48857
|
-
|
|
48858
|
-
isPackageEditFlow: !!context.packagingEntry
|
|
50567
|
+
flyInType: flyInType,
|
|
50568
|
+
isPackageEditFlow: !!context.packagingEntry,
|
|
50569
|
+
sortByTypes: sortByTypes,
|
|
50570
|
+
activeSearchSeed: activeSearchSeed
|
|
48859
50571
|
})
|
|
48860
50572
|
)
|
|
48861
50573
|
)
|