@qite/tide-booking-component 1.4.68 → 1.4.70
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 +658 -463
- package/build/build-cjs/src/qsm/store/qsm-slice.d.ts +4 -4
- package/build/build-cjs/src/qsm/types.d.ts +2 -3
- package/build/build-cjs/src/search-results/components/filters/filters.d.ts +1 -1
- package/build/build-cjs/src/search-results/components/filters/utility.d.ts +2 -2
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-results.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -2
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +3 -6
- package/build/build-cjs/src/search-results/types.d.ts +7 -2
- package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +3 -0
- package/build/build-cjs/src/shared/components/flyin.d.ts +1 -1
- package/build/build-cjs/src/shared/types.d.ts +12 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +4 -0
- package/build/build-esm/index.js +656 -462
- package/build/build-esm/src/qsm/store/qsm-slice.d.ts +4 -4
- package/build/build-esm/src/qsm/types.d.ts +2 -3
- package/build/build-esm/src/search-results/components/filters/filters.d.ts +1 -1
- package/build/build-esm/src/search-results/components/filters/utility.d.ts +2 -2
- package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +8 -0
- package/build/build-esm/src/search-results/components/group-tour/group-tour-results.d.ts +6 -0
- package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -2
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +3 -6
- package/build/build-esm/src/search-results/types.d.ts +7 -2
- package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +3 -0
- package/build/build-esm/src/shared/components/flyin.d.ts +1 -1
- package/build/build-esm/src/shared/types.d.ts +12 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +4 -0
- package/package.json +1 -1
- package/src/qsm/components/QSMContainer/qsm-container.tsx +18 -7
- package/src/qsm/components/icon.tsx +16 -0
- package/src/qsm/store/qsm-slice.ts +4 -4
- package/src/qsm/types.ts +2 -4
- package/src/search-results/components/filters/filters.tsx +136 -293
- package/src/search-results/components/filters/utility.tsx +61 -2
- package/src/search-results/components/group-tour/group-tour-card.tsx +86 -0
- package/src/search-results/components/group-tour/group-tour-results.tsx +40 -0
- package/src/search-results/components/hotel/hotel-accommodation-results.tsx +13 -16
- package/src/search-results/components/icon.tsx +18 -0
- package/src/search-results/components/search-results-container/search-results-container.tsx +31 -19
- package/src/search-results/store/search-results-slice.ts +8 -2
- package/src/search-results/types.ts +9 -2
- package/src/search-results/utils/search-results-utils.ts +42 -0
- package/src/shared/components/flyin.tsx +2 -1
- 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/types.ts +13 -0
- package/src/shared/utils/localization-util.ts +16 -0
package/build/build-cjs/index.js
CHANGED
|
@@ -571,7 +571,8 @@ var QSM$g = {
|
|
|
571
571
|
DEPARTURE_DATE: 'تاريخ المغادرة',
|
|
572
572
|
RETURN_DATE: 'تاريخ العودة',
|
|
573
573
|
CONFIRM: 'تأكيد',
|
|
574
|
-
TRAVELERS: 'المسافرون'
|
|
574
|
+
TRAVELERS: 'المسافرون',
|
|
575
|
+
GROUP_TOUR: 'جولة جماعية'
|
|
575
576
|
};
|
|
576
577
|
var SRP$f = {
|
|
577
578
|
NO_RESULTS: 'لم يتم العثور على نتائج.',
|
|
@@ -619,7 +620,8 @@ var SRP$f = {
|
|
|
619
620
|
DEPARTURE_TIME_ASC: 'وقت المغادرة تصاعدياً',
|
|
620
621
|
DEPARTURE_TIME_DESC: 'وقت المغادرة تنازلياً',
|
|
621
622
|
DURATION_ASC: 'المدة تصاعدياً',
|
|
622
|
-
DURATION_DESC: 'المدة تنازلياً'
|
|
623
|
+
DURATION_DESC: 'المدة تنازلياً',
|
|
624
|
+
TRAVEL_GROUP: 'مجموعة المسافرين'
|
|
623
625
|
};
|
|
624
626
|
var arJson = {
|
|
625
627
|
STEPS: STEPS$f,
|
|
@@ -969,7 +971,8 @@ var QSM$f = {
|
|
|
969
971
|
DEPARTURE_DATE: 'Afrejsedato',
|
|
970
972
|
RETURN_DATE: 'Hjemrejsedato',
|
|
971
973
|
CONFIRM: 'Bekræft',
|
|
972
|
-
TRAVELERS: 'Rejsende'
|
|
974
|
+
TRAVELERS: 'Rejsende',
|
|
975
|
+
GROUP_TOUR: 'Grupperejse'
|
|
973
976
|
};
|
|
974
977
|
var SRP$e = {
|
|
975
978
|
NO_RESULTS: 'Ingen resultater fundet.',
|
|
@@ -1017,7 +1020,8 @@ var SRP$e = {
|
|
|
1017
1020
|
DEPARTURE_TIME_ASC: 'Afgangstid stigende',
|
|
1018
1021
|
DEPARTURE_TIME_DESC: 'Afgangstid faldende',
|
|
1019
1022
|
DURATION_ASC: 'Varighed stigende',
|
|
1020
|
-
DURATION_DESC: 'Varighed faldende'
|
|
1023
|
+
DURATION_DESC: 'Varighed faldende',
|
|
1024
|
+
TRAVEL_GROUP: 'Rejseselskab'
|
|
1021
1025
|
};
|
|
1022
1026
|
var daJson = {
|
|
1023
1027
|
STEPS: STEPS$e,
|
|
@@ -1368,7 +1372,8 @@ var QSM$e = {
|
|
|
1368
1372
|
DEPARTURE_DATE: 'Abreisedatum',
|
|
1369
1373
|
RETURN_DATE: 'Rückreisedatum',
|
|
1370
1374
|
CONFIRM: 'Bestätigen',
|
|
1371
|
-
TRAVELERS: 'Reisende'
|
|
1375
|
+
TRAVELERS: 'Reisende',
|
|
1376
|
+
GROUP_TOUR: 'Gruppentour'
|
|
1372
1377
|
};
|
|
1373
1378
|
var SRP$d = {
|
|
1374
1379
|
NO_RESULTS: 'Keine Ergebnisse gefunden.',
|
|
@@ -1416,7 +1421,8 @@ var SRP$d = {
|
|
|
1416
1421
|
DEPARTURE_RANGE: 'Abflugzeitraum',
|
|
1417
1422
|
DEPARTURE_AIRPORTS: 'Abflughäfen',
|
|
1418
1423
|
ARRIVAL_AIRPORTS: 'Ankunftsflughäfen',
|
|
1419
|
-
PRICE: 'Preis'
|
|
1424
|
+
PRICE: 'Preis',
|
|
1425
|
+
TRAVEL_GROUP: 'Reisegruppe'
|
|
1420
1426
|
};
|
|
1421
1427
|
var deJson = {
|
|
1422
1428
|
STEPS: STEPS$d,
|
|
@@ -1770,7 +1776,8 @@ var QSM$d = {
|
|
|
1770
1776
|
DEPARTURE_DATE: 'Departure date',
|
|
1771
1777
|
RETURN_DATE: 'Return date',
|
|
1772
1778
|
CONFIRM: 'Confirm',
|
|
1773
|
-
TRAVELERS: 'Travelers'
|
|
1779
|
+
TRAVELERS: 'Travelers',
|
|
1780
|
+
GROUP_TOUR: 'Group tour'
|
|
1774
1781
|
};
|
|
1775
1782
|
var SRP$c = {
|
|
1776
1783
|
NO_RESULTS: 'No results found.',
|
|
@@ -1818,7 +1825,8 @@ var SRP$c = {
|
|
|
1818
1825
|
NIGHT_RANGE: 'Night',
|
|
1819
1826
|
DEPARTURE_RANGE: 'Departure range',
|
|
1820
1827
|
DEPARTURE_AIRPORTS: 'Departure airports',
|
|
1821
|
-
ARRIVAL_AIRPORTS: 'Arrival airports'
|
|
1828
|
+
ARRIVAL_AIRPORTS: 'Arrival airports',
|
|
1829
|
+
TRAVEL_GROUP: 'Travel group'
|
|
1822
1830
|
};
|
|
1823
1831
|
var enJson = {
|
|
1824
1832
|
STEPS: STEPS$c,
|
|
@@ -2169,7 +2177,8 @@ var QSM$c = {
|
|
|
2169
2177
|
DEPARTURE_DATE: 'Fecha de salida',
|
|
2170
2178
|
RETURN_DATE: 'Fecha de regreso',
|
|
2171
2179
|
CONFIRM: 'Confirmar',
|
|
2172
|
-
TRAVELERS: 'Viajeros'
|
|
2180
|
+
TRAVELERS: 'Viajeros',
|
|
2181
|
+
GROUP_TOUR: 'Tour grupal'
|
|
2173
2182
|
};
|
|
2174
2183
|
var SRP$b = {
|
|
2175
2184
|
NO_RESULTS: 'No se han encontrado resultados.',
|
|
@@ -2217,7 +2226,8 @@ var SRP$b = {
|
|
|
2217
2226
|
DEPARTURE_RANGE: 'Franja de salida',
|
|
2218
2227
|
DEPARTURE_AIRPORTS: 'Aeropuertos de salida',
|
|
2219
2228
|
ARRIVAL_AIRPORTS: 'Aeropuertos de llegada',
|
|
2220
|
-
PRICE: 'Precio'
|
|
2229
|
+
PRICE: 'Precio',
|
|
2230
|
+
TRAVEL_GROUP: 'Grupo de viaje'
|
|
2221
2231
|
};
|
|
2222
2232
|
var esJson = {
|
|
2223
2233
|
STEPS: STEPS$b,
|
|
@@ -2572,7 +2582,8 @@ var QSM$b = {
|
|
|
2572
2582
|
DEPARTURE_DATE: 'Date de départ',
|
|
2573
2583
|
RETURN_DATE: 'Date de retour',
|
|
2574
2584
|
CONFIRM: 'Confirmer',
|
|
2575
|
-
TRAVELERS: 'Voyageurs'
|
|
2585
|
+
TRAVELERS: 'Voyageurs',
|
|
2586
|
+
GROUP_TOUR: 'Tour en groupe'
|
|
2576
2587
|
};
|
|
2577
2588
|
var SRP$a = {
|
|
2578
2589
|
NO_RESULTS: 'Aucun résultat trouvé.',
|
|
@@ -2620,7 +2631,8 @@ var SRP$a = {
|
|
|
2620
2631
|
DEPARTURE_RANGE: 'Plage de départ',
|
|
2621
2632
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
2622
2633
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
2623
|
-
PRICE: 'Prix'
|
|
2634
|
+
PRICE: 'Prix',
|
|
2635
|
+
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
2624
2636
|
};
|
|
2625
2637
|
var frBeJson = {
|
|
2626
2638
|
STEPS: STEPS$a,
|
|
@@ -2970,7 +2982,8 @@ var QSM$a = {
|
|
|
2970
2982
|
DEPARTURE_DATE: 'Date de départ',
|
|
2971
2983
|
RETURN_DATE: 'Date de retour',
|
|
2972
2984
|
CONFIRM: 'Confirmer',
|
|
2973
|
-
TRAVELERS: 'Voyageurs'
|
|
2985
|
+
TRAVELERS: 'Voyageurs',
|
|
2986
|
+
GROUP_TOUR: 'Tour en groupe'
|
|
2974
2987
|
};
|
|
2975
2988
|
var SRP$9 = {
|
|
2976
2989
|
NO_RESULTS: 'Aucun résultat trouvé.',
|
|
@@ -3018,7 +3031,8 @@ var SRP$9 = {
|
|
|
3018
3031
|
DEPARTURE_RANGE: 'Plage de départ',
|
|
3019
3032
|
DEPARTURE_AIRPORTS: 'Aéroports de départ',
|
|
3020
3033
|
ARRIVAL_AIRPORTS: 'Aéroports d’arrivée',
|
|
3021
|
-
PRICE: 'Prix'
|
|
3034
|
+
PRICE: 'Prix',
|
|
3035
|
+
TRAVEL_GROUP: 'Groupe de voyageurs'
|
|
3022
3036
|
};
|
|
3023
3037
|
var frFrJson = {
|
|
3024
3038
|
STEPS: STEPS$9,
|
|
@@ -3368,7 +3382,8 @@ var QSM$9 = {
|
|
|
3368
3382
|
DEPARTURE_DATE: 'Brottfarardagur',
|
|
3369
3383
|
RETURN_DATE: 'Heimkomudagur',
|
|
3370
3384
|
CONFIRM: 'Staðfesta',
|
|
3371
|
-
TRAVELERS: 'Ferðalangar'
|
|
3385
|
+
TRAVELERS: 'Ferðalangar',
|
|
3386
|
+
GROUP_TOUR: 'Ferð í hóp'
|
|
3372
3387
|
};
|
|
3373
3388
|
var SRP$8 = {
|
|
3374
3389
|
NO_RESULTS: 'Engar niðurstöður fundust.',
|
|
@@ -3416,7 +3431,8 @@ var SRP$8 = {
|
|
|
3416
3431
|
DEPARTURE_RANGE: 'Brottfarartímabil',
|
|
3417
3432
|
DEPARTURE_AIRPORTS: 'Brottfararflugvellir',
|
|
3418
3433
|
ARRIVAL_AIRPORTS: 'Komuflugvellir',
|
|
3419
|
-
PRICE: 'Verð'
|
|
3434
|
+
PRICE: 'Verð',
|
|
3435
|
+
TRAVEL_GROUP: 'Ferðahópur'
|
|
3420
3436
|
};
|
|
3421
3437
|
var isJson = {
|
|
3422
3438
|
STEPS: STEPS$8,
|
|
@@ -3767,7 +3783,8 @@ var QSM$8 = {
|
|
|
3767
3783
|
DEPARTURE_DATE: 'Data di partenza',
|
|
3768
3784
|
RETURN_DATE: 'Data di ritorno',
|
|
3769
3785
|
CONFIRM: 'Conferma',
|
|
3770
|
-
TRAVELERS: 'Viaggiatori'
|
|
3786
|
+
TRAVELERS: 'Viaggiatori',
|
|
3787
|
+
GROUP_TOUR: 'Tour di gruppo'
|
|
3771
3788
|
};
|
|
3772
3789
|
var SRP$7 = {
|
|
3773
3790
|
NO_RESULTS: 'Nessun risultato trovato.',
|
|
@@ -3815,7 +3832,8 @@ var SRP$7 = {
|
|
|
3815
3832
|
DEPARTURE_RANGE: 'Fascia di partenza',
|
|
3816
3833
|
DEPARTURE_AIRPORTS: 'Aeroporti di partenza',
|
|
3817
3834
|
ARRIVAL_AIRPORTS: 'Aeroporti di arrivo',
|
|
3818
|
-
PRICE: 'Prezzo'
|
|
3835
|
+
PRICE: 'Prezzo',
|
|
3836
|
+
TRAVEL_GROUP: 'Gruppo di viaggio'
|
|
3819
3837
|
};
|
|
3820
3838
|
var itJson = {
|
|
3821
3839
|
STEPS: STEPS$7,
|
|
@@ -4170,7 +4188,8 @@ var QSM$7 = {
|
|
|
4170
4188
|
DEPARTURE_DATE: 'Vertrekdatum',
|
|
4171
4189
|
RETURN_DATE: 'Terugkeerdatum',
|
|
4172
4190
|
CONFIRM: 'Bevestigen',
|
|
4173
|
-
TRAVELERS: 'Reizigers'
|
|
4191
|
+
TRAVELERS: 'Reizigers',
|
|
4192
|
+
GROUP_TOUR: 'Groepsreis'
|
|
4174
4193
|
};
|
|
4175
4194
|
var SRP$6 = {
|
|
4176
4195
|
NO_RESULTS: 'Geen resultaten gevonden.',
|
|
@@ -4218,7 +4237,8 @@ var SRP$6 = {
|
|
|
4218
4237
|
DEPARTURE_RANGE: 'Vertrektijdstip',
|
|
4219
4238
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4220
4239
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4221
|
-
PRICE: 'Prijs'
|
|
4240
|
+
PRICE: 'Prijs',
|
|
4241
|
+
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4222
4242
|
};
|
|
4223
4243
|
var nlBeJson = {
|
|
4224
4244
|
STEPS: STEPS$6,
|
|
@@ -4569,7 +4589,8 @@ var QSM$6 = {
|
|
|
4569
4589
|
DEPARTURE_DATE: 'Vertrekdatum',
|
|
4570
4590
|
RETURN_DATE: 'Terugkeerdatum',
|
|
4571
4591
|
CONFIRM: 'Bevestigen',
|
|
4572
|
-
TRAVELERS: 'Reizigers'
|
|
4592
|
+
TRAVELERS: 'Reizigers',
|
|
4593
|
+
GROUP_TOUR: 'Groepsreis'
|
|
4573
4594
|
};
|
|
4574
4595
|
var SRP$5 = {
|
|
4575
4596
|
NO_RESULTS: 'Geen resultaten gevonden.',
|
|
@@ -4617,7 +4638,8 @@ var SRP$5 = {
|
|
|
4617
4638
|
DEPARTURE_RANGE: 'Vertrektijdstip',
|
|
4618
4639
|
DEPARTURE_AIRPORTS: 'Vertrekluchthavens',
|
|
4619
4640
|
ARRIVAL_AIRPORTS: 'Aankomstluchthavens',
|
|
4620
|
-
PRICE: 'Prijs'
|
|
4641
|
+
PRICE: 'Prijs',
|
|
4642
|
+
TRAVEL_GROUP: 'Reisgezelschap'
|
|
4621
4643
|
};
|
|
4622
4644
|
var nlNlJson = {
|
|
4623
4645
|
STEPS: STEPS$5,
|
|
@@ -4968,7 +4990,8 @@ var QSM$5 = {
|
|
|
4968
4990
|
DEPARTURE_DATE: 'Avreisedato',
|
|
4969
4991
|
RETURN_DATE: 'Returdato',
|
|
4970
4992
|
CONFIRM: 'Bekreft',
|
|
4971
|
-
TRAVELERS: 'Reisende'
|
|
4993
|
+
TRAVELERS: 'Reisende',
|
|
4994
|
+
GROUP_TOUR: 'Gruppetur'
|
|
4972
4995
|
};
|
|
4973
4996
|
var SRP$4 = {
|
|
4974
4997
|
NO_RESULTS: 'Ingen resultater funnet.',
|
|
@@ -5016,7 +5039,8 @@ var SRP$4 = {
|
|
|
5016
5039
|
DEPARTURE_RANGE: 'Avgangsperiode',
|
|
5017
5040
|
DEPARTURE_AIRPORTS: 'Avgangsflyplasser',
|
|
5018
5041
|
ARRIVAL_AIRPORTS: 'Ankomstflyplasser',
|
|
5019
|
-
PRICE: 'Pris'
|
|
5042
|
+
PRICE: 'Pris',
|
|
5043
|
+
TRAVEL_GROUP: 'Reisefølge'
|
|
5020
5044
|
};
|
|
5021
5045
|
var noJson = {
|
|
5022
5046
|
STEPS: STEPS$4,
|
|
@@ -5367,7 +5391,8 @@ var QSM$4 = {
|
|
|
5367
5391
|
DEPARTURE_DATE: 'Data wyjazdu',
|
|
5368
5392
|
RETURN_DATE: 'Data powrotu',
|
|
5369
5393
|
CONFIRM: 'Potwierdź',
|
|
5370
|
-
TRAVELERS: 'Podróżni'
|
|
5394
|
+
TRAVELERS: 'Podróżni',
|
|
5395
|
+
GROUP_TOUR: 'Tour w grupie'
|
|
5371
5396
|
};
|
|
5372
5397
|
var SRP$3 = {
|
|
5373
5398
|
NO_RESULTS: 'Nie znaleziono wyników.',
|
|
@@ -5415,7 +5440,8 @@ var SRP$3 = {
|
|
|
5415
5440
|
DEPARTURE_RANGE: 'Zakres wylotu',
|
|
5416
5441
|
DEPARTURE_AIRPORTS: 'Lotniska wylotu',
|
|
5417
5442
|
ARRIVAL_AIRPORTS: 'Lotniska przylotu',
|
|
5418
|
-
PRICE: 'Cena'
|
|
5443
|
+
PRICE: 'Cena',
|
|
5444
|
+
TRAVEL_GROUP: 'Grupa podróżnych'
|
|
5419
5445
|
};
|
|
5420
5446
|
var plJson = {
|
|
5421
5447
|
STEPS: STEPS$3,
|
|
@@ -5766,7 +5792,8 @@ var QSM$3 = {
|
|
|
5766
5792
|
DEPARTURE_DATE: 'Data de partida',
|
|
5767
5793
|
RETURN_DATE: 'Data de regresso',
|
|
5768
5794
|
CONFIRM: 'Confirmar',
|
|
5769
|
-
TRAVELERS: 'Viajantes'
|
|
5795
|
+
TRAVELERS: 'Viajantes',
|
|
5796
|
+
GROUP_TOUR: 'Tour em grupo'
|
|
5770
5797
|
};
|
|
5771
5798
|
var SRP$2 = {
|
|
5772
5799
|
NO_RESULTS: 'Nenhum resultado encontrado.',
|
|
@@ -5814,7 +5841,8 @@ var SRP$2 = {
|
|
|
5814
5841
|
DEPARTURE_RANGE: 'Intervalo de partida',
|
|
5815
5842
|
DEPARTURE_AIRPORTS: 'Aeroportos de partida',
|
|
5816
5843
|
ARRIVAL_AIRPORTS: 'Aeroportos de chegada',
|
|
5817
|
-
PRICE: 'Preço'
|
|
5844
|
+
PRICE: 'Preço',
|
|
5845
|
+
TRAVEL_GROUP: 'Grupo de viajantes'
|
|
5818
5846
|
};
|
|
5819
5847
|
var ptJson = {
|
|
5820
5848
|
STEPS: STEPS$2,
|
|
@@ -6165,7 +6193,8 @@ var QSM$2 = {
|
|
|
6165
6193
|
DEPARTURE_DATE: 'Avresedatum',
|
|
6166
6194
|
RETURN_DATE: 'Hemresedatum',
|
|
6167
6195
|
CONFIRM: 'Bekräfta',
|
|
6168
|
-
TRAVELERS: 'Resenärer'
|
|
6196
|
+
TRAVELERS: 'Resenärer',
|
|
6197
|
+
GROUP_TOUR: 'Gruppresa'
|
|
6169
6198
|
};
|
|
6170
6199
|
var SRP$1 = {
|
|
6171
6200
|
NO_RESULTS: 'Inga resultat hittades.',
|
|
@@ -6213,7 +6242,8 @@ var SRP$1 = {
|
|
|
6213
6242
|
DEPARTURE_RANGE: 'Avgångsintervall',
|
|
6214
6243
|
DEPARTURE_AIRPORTS: 'Avgångsflygplatser',
|
|
6215
6244
|
ARRIVAL_AIRPORTS: 'Ankomstflygplatser',
|
|
6216
|
-
PRICE: 'Pris'
|
|
6245
|
+
PRICE: 'Pris',
|
|
6246
|
+
TRAVEL_GROUP: 'Resesällskap'
|
|
6217
6247
|
};
|
|
6218
6248
|
var svJson = {
|
|
6219
6249
|
STEPS: STEPS$1,
|
|
@@ -6562,7 +6592,8 @@ var QSM$1 = {
|
|
|
6562
6592
|
DEPARTURE_DATE: '出発日',
|
|
6563
6593
|
RETURN_DATE: '帰着日',
|
|
6564
6594
|
CONFIRM: '確認',
|
|
6565
|
-
TRAVELERS: '旅行者'
|
|
6595
|
+
TRAVELERS: '旅行者',
|
|
6596
|
+
GROUP_TOUR: 'グループツアー'
|
|
6566
6597
|
};
|
|
6567
6598
|
var SRP = {
|
|
6568
6599
|
NO_RESULTS: '結果が見つかりませんでした。',
|
|
@@ -6610,7 +6641,8 @@ var SRP = {
|
|
|
6610
6641
|
DEPARTURE_RANGE: '出発時間帯',
|
|
6611
6642
|
DEPARTURE_AIRPORTS: '出発空港',
|
|
6612
6643
|
ARRIVAL_AIRPORTS: '到着空港',
|
|
6613
|
-
PRICE: '価格'
|
|
6644
|
+
PRICE: '価格',
|
|
6645
|
+
TRAVEL_GROUP: '旅行グループ'
|
|
6614
6646
|
};
|
|
6615
6647
|
var jaJson = {
|
|
6616
6648
|
STEPS: STEPS,
|
|
@@ -6817,6 +6849,18 @@ var rangeFromDateTimeInMinutes = function (dateTime) {
|
|
|
6817
6849
|
return exports.DepartureRange.Night;
|
|
6818
6850
|
}
|
|
6819
6851
|
};
|
|
6852
|
+
var calculateNights = function (fromDate, toDate) {
|
|
6853
|
+
var from = new Date(fromDate);
|
|
6854
|
+
var to = new Date(toDate);
|
|
6855
|
+
// Normalize to midnight to avoid time issues
|
|
6856
|
+
from.setHours(0, 0, 0, 0);
|
|
6857
|
+
to.setHours(0, 0, 0, 0);
|
|
6858
|
+
var diffTime = to.getTime() - from.getTime();
|
|
6859
|
+
return diffTime / (1000 * 60 * 60 * 24);
|
|
6860
|
+
};
|
|
6861
|
+
var calculateDays = function (fromDate, toDate) {
|
|
6862
|
+
return calculateNights(fromDate, toDate) + 1;
|
|
6863
|
+
};
|
|
6820
6864
|
|
|
6821
6865
|
var getDateFromParams = function (params, name) {
|
|
6822
6866
|
var dateString = params.get(name);
|
|
@@ -30993,6 +31037,28 @@ var Icon$2 = function (_a) {
|
|
|
30993
31037
|
fill: 'currentColor'
|
|
30994
31038
|
})
|
|
30995
31039
|
);
|
|
31040
|
+
case 'ui-group':
|
|
31041
|
+
return React__default['default'].createElement(
|
|
31042
|
+
'svg',
|
|
31043
|
+
{
|
|
31044
|
+
className: ['icon', 'icon--'.concat(name), className]
|
|
31045
|
+
.filter(function (className) {
|
|
31046
|
+
return !lodash.isEmpty(className);
|
|
31047
|
+
})
|
|
31048
|
+
.join(' '),
|
|
31049
|
+
width: width,
|
|
31050
|
+
height: height,
|
|
31051
|
+
viewBox: '0 0 640 512'
|
|
31052
|
+
},
|
|
31053
|
+
React__default['default'].createElement(HTMLComment, {
|
|
31054
|
+
text: '!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.'
|
|
31055
|
+
}),
|
|
31056
|
+
title && React__default['default'].createElement('title', null, title),
|
|
31057
|
+
React__default['default'].createElement('path', {
|
|
31058
|
+
d: 'M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z',
|
|
31059
|
+
fill: 'currentColor'
|
|
31060
|
+
})
|
|
31061
|
+
);
|
|
30996
31062
|
default:
|
|
30997
31063
|
return null;
|
|
30998
31064
|
}
|
|
@@ -33110,6 +33176,22 @@ var QSMContainer = function () {
|
|
|
33110
33176
|
),
|
|
33111
33177
|
translations.QSM.TRANSPORTS
|
|
33112
33178
|
),
|
|
33179
|
+
React__default['default'].createElement(
|
|
33180
|
+
'button',
|
|
33181
|
+
{
|
|
33182
|
+
type: 'button',
|
|
33183
|
+
className: 'qsm__tab '.concat(qsmType == 'groupTour' ? 'qsm__tab--active' : ''),
|
|
33184
|
+
onClick: function () {
|
|
33185
|
+
return handleQsmTypeChange('groupTour');
|
|
33186
|
+
}
|
|
33187
|
+
},
|
|
33188
|
+
React__default['default'].createElement(
|
|
33189
|
+
'span',
|
|
33190
|
+
{ className: 'qsm__tab__icons' },
|
|
33191
|
+
React__default['default'].createElement(Icon$2, { name: 'ui-group', height: 16 })
|
|
33192
|
+
),
|
|
33193
|
+
translations.QSM.GROUP_TOUR
|
|
33194
|
+
),
|
|
33113
33195
|
React__default['default'].createElement(
|
|
33114
33196
|
'button',
|
|
33115
33197
|
{
|
|
@@ -33178,7 +33260,7 @@ var QSMContainer = function () {
|
|
|
33178
33260
|
React__default['default'].createElement(
|
|
33179
33261
|
'div',
|
|
33180
33262
|
{ className: 'qsm__filter' },
|
|
33181
|
-
(qsmType === 'hotel' || qsmType === 'hotel-flight') &&
|
|
33263
|
+
(qsmType === 'hotel' || qsmType === 'hotel-flight' || qsmType === 'groupTour') &&
|
|
33182
33264
|
React__default['default'].createElement(
|
|
33183
33265
|
'div',
|
|
33184
33266
|
{ className: 'radiobutton-group qsm__filter__inputgroup' },
|
|
@@ -33293,6 +33375,7 @@ var QSMContainer = function () {
|
|
|
33293
33375
|
qsmType !== 'ticket' &&
|
|
33294
33376
|
qsmType !== 'cruises' &&
|
|
33295
33377
|
qsmType !== 'transfers' &&
|
|
33378
|
+
qsmType !== 'groupTour' &&
|
|
33296
33379
|
askTravelClass &&
|
|
33297
33380
|
React__default['default'].createElement(TravelClassPicker, null),
|
|
33298
33381
|
qsmType !== 'multidestination' &&
|
|
@@ -33320,7 +33403,7 @@ var QSMContainer = function () {
|
|
|
33320
33403
|
fieldConfig: openJawReturnDestinationField,
|
|
33321
33404
|
showReverse: openJawReturnDestinationField.showReverse
|
|
33322
33405
|
}),
|
|
33323
|
-
(qsmType == 'hotel' || qsmType == 'hotel-flight') &&
|
|
33406
|
+
(qsmType == 'hotel' || qsmType == 'hotel-flight' || qsmType == 'groupTour') &&
|
|
33324
33407
|
destination &&
|
|
33325
33408
|
React__default['default'].createElement(SearchInputGroup, { fieldConfig: destination }),
|
|
33326
33409
|
React__default['default'].createElement(Dates, { value: dateRange, onChange: handleDateChange }),
|
|
@@ -33370,6 +33453,7 @@ var SearchResultsConfigurationContext = React__default['default'].createContext(
|
|
|
33370
33453
|
var _a;
|
|
33371
33454
|
var initialState$1 = {
|
|
33372
33455
|
results: [],
|
|
33456
|
+
filteredResults: [],
|
|
33373
33457
|
selectedHotelId: null,
|
|
33374
33458
|
selectedFlight: null,
|
|
33375
33459
|
selectedFlightDetails: null,
|
|
@@ -33387,7 +33471,10 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33387
33471
|
initialState: initialState$1,
|
|
33388
33472
|
reducers: {
|
|
33389
33473
|
setResults: function (state, action) {
|
|
33390
|
-
state.results = action.payload
|
|
33474
|
+
state.results = action.payload;
|
|
33475
|
+
},
|
|
33476
|
+
setFilteredResults: function (state, action) {
|
|
33477
|
+
state.filteredResults = action.payload;
|
|
33391
33478
|
},
|
|
33392
33479
|
setSelectedHotel: function (state, action) {
|
|
33393
33480
|
state.selectedHotelId = action.payload;
|
|
@@ -33456,6 +33543,7 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33456
33543
|
}
|
|
33457
33544
|
});
|
|
33458
33545
|
var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
33546
|
+
setFilteredResults = _a.setFilteredResults,
|
|
33459
33547
|
setSelectedHotel = _a.setSelectedHotel,
|
|
33460
33548
|
setSelectedFlight = _a.setSelectedFlight,
|
|
33461
33549
|
setSelectedFlightDetails = _a.setSelectedFlightDetails,
|
|
@@ -34472,6 +34560,27 @@ var Icon$1 = function (_a) {
|
|
|
34472
34560
|
fill: 'currentColor'
|
|
34473
34561
|
})
|
|
34474
34562
|
);
|
|
34563
|
+
case 'ui-other':
|
|
34564
|
+
return React__default['default'].createElement(
|
|
34565
|
+
'svg',
|
|
34566
|
+
{
|
|
34567
|
+
className: ['icon', 'icon--'.concat(name), className]
|
|
34568
|
+
.filter(function (className) {
|
|
34569
|
+
return !lodash.isEmpty(className);
|
|
34570
|
+
})
|
|
34571
|
+
.join(' '),
|
|
34572
|
+
width: width,
|
|
34573
|
+
height: height,
|
|
34574
|
+
viewBox: '0 0 640 512',
|
|
34575
|
+
fill: fill !== null && fill !== void 0 ? fill : 'currentColor'
|
|
34576
|
+
},
|
|
34577
|
+
React__default['default'].createElement(HTMLComment, { text: '!Font Awesome Free 6.7.2 - mars-and-venus' }),
|
|
34578
|
+
title && React__default['default'].createElement('title', null, title),
|
|
34579
|
+
React__default['default'].createElement('path', {
|
|
34580
|
+
d: 'M320 32c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-64.2 64.2c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304s78.8-176 176-176c37.1 0 71.4 11.5 99.8 31l64.2-64.2L320 96c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z',
|
|
34581
|
+
fill: 'currentColor'
|
|
34582
|
+
})
|
|
34583
|
+
);
|
|
34475
34584
|
default:
|
|
34476
34585
|
return null;
|
|
34477
34586
|
}
|
|
@@ -37981,7 +38090,9 @@ var mapSearchResult = function (searchResult, cmsItem, languageCode, translation
|
|
|
37981
38090
|
: ((_h = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.parentItem) === null || _h === void 0 ? void 0 : _h.name) || '',
|
|
37982
38091
|
price: formatPrice(searchResult.price, searchResult.currencyCode, languageCode),
|
|
37983
38092
|
ctaText: translations === null || translations === void 0 ? void 0 : translations.SRP.VIEW_DETAILS,
|
|
37984
|
-
days:
|
|
38093
|
+
days: ''
|
|
38094
|
+
.concat(calculateNights(searchResult.stayFromDate, searchResult.stayToDate), ' ')
|
|
38095
|
+
.concat(translations === null || translations === void 0 ? void 0 : translations.SRP.NIGHTS),
|
|
37985
38096
|
accommodation: searchResult.accommodationName,
|
|
37986
38097
|
regime: searchResult.regimeName,
|
|
37987
38098
|
stars:
|
|
@@ -37990,17 +38101,13 @@ var mapSearchResult = function (searchResult, cmsItem, languageCode, translation
|
|
|
37990
38101
|
: _k.stars) || searchResult.hotelStars
|
|
37991
38102
|
};
|
|
37992
38103
|
};
|
|
37993
|
-
var calculateNights = function (fromDate, toDate, translations) {
|
|
37994
|
-
var from = new Date(fromDate).getTime(); // returns a number
|
|
37995
|
-
var to = new Date(toDate).getTime(); // returns a number
|
|
37996
|
-
var diffTime = Math.abs(to - from);
|
|
37997
|
-
var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
37998
|
-
return ''.concat(diffDays, ' ').concat(translations === null || translations === void 0 ? void 0 : translations.SRP.NIGHTS);
|
|
37999
|
-
};
|
|
38000
38104
|
var HotelAccommodationResults = function (_a) {
|
|
38001
38105
|
var _b, _c;
|
|
38002
|
-
var isLoading = _a.isLoading
|
|
38003
|
-
|
|
38106
|
+
var isLoading = _a.isLoading;
|
|
38107
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
38108
|
+
if (!context) {
|
|
38109
|
+
return;
|
|
38110
|
+
}
|
|
38004
38111
|
if (context.showMockup) {
|
|
38005
38112
|
return showMocukups(context);
|
|
38006
38113
|
}
|
|
@@ -38017,9 +38124,9 @@ var HotelAccommodationResults = function (_a) {
|
|
|
38017
38124
|
var _d = reactRedux.useSelector(function (state) {
|
|
38018
38125
|
return state.searchResults;
|
|
38019
38126
|
}),
|
|
38020
|
-
|
|
38127
|
+
filteredResults = _d.filteredResults,
|
|
38021
38128
|
activeTab = _d.activeTab;
|
|
38022
|
-
if (!
|
|
38129
|
+
if (!filteredResults.length) {
|
|
38023
38130
|
return React__default['default'].createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS);
|
|
38024
38131
|
}
|
|
38025
38132
|
var cmsMap = React__default['default'].useMemo(
|
|
@@ -38043,7 +38150,7 @@ var HotelAccommodationResults = function (_a) {
|
|
|
38043
38150
|
},
|
|
38044
38151
|
[context.cmsHotelData]
|
|
38045
38152
|
);
|
|
38046
|
-
var firstResult =
|
|
38153
|
+
var firstResult = filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults[0];
|
|
38047
38154
|
var firstResultDay = (firstResult === null || firstResult === void 0 ? void 0 : firstResult.fromDate)
|
|
38048
38155
|
? dateFns.format(dateFns.parseISO(firstResult.fromDate), 'd')
|
|
38049
38156
|
: null;
|
|
@@ -38074,7 +38181,7 @@ var HotelAccommodationResults = function (_a) {
|
|
|
38074
38181
|
)
|
|
38075
38182
|
)
|
|
38076
38183
|
),
|
|
38077
|
-
renderResults(
|
|
38184
|
+
renderResults(filteredResults, context, cmsMap, activeTab, translations)
|
|
38078
38185
|
);
|
|
38079
38186
|
};
|
|
38080
38187
|
var showMocukups = function (context) {
|
|
@@ -38417,12 +38524,11 @@ var RoundTripResults = function () {
|
|
|
38417
38524
|
);
|
|
38418
38525
|
};
|
|
38419
38526
|
|
|
38420
|
-
var enrichFiltersWithResults = function (results, filters) {
|
|
38527
|
+
var enrichFiltersWithResults = function (results, filters, tags) {
|
|
38421
38528
|
if (!results || results.length === 0 || !filters) {
|
|
38422
38529
|
return filters !== null && filters !== void 0 ? filters : [];
|
|
38423
38530
|
}
|
|
38424
|
-
|
|
38425
|
-
var filter = filters_1[_i];
|
|
38531
|
+
var _loop_1 = function (filter) {
|
|
38426
38532
|
if (filter.property === 'price' && (filter.min == null || filter.max == null)) {
|
|
38427
38533
|
var prices = results
|
|
38428
38534
|
.map(function (r) {
|
|
@@ -38437,6 +38543,72 @@ var enrichFiltersWithResults = function (results, filters) {
|
|
|
38437
38543
|
filter.max = Math.ceil(Math.max.apply(Math, prices));
|
|
38438
38544
|
}
|
|
38439
38545
|
}
|
|
38546
|
+
if (filter.property === 'accommodation') {
|
|
38547
|
+
var map_1 = new Map();
|
|
38548
|
+
results.forEach(function (r) {
|
|
38549
|
+
if (r.accommodationCode) {
|
|
38550
|
+
map_1.set(r.accommodationCode, {
|
|
38551
|
+
name: r.accommodationName,
|
|
38552
|
+
code: r.accommodationCode
|
|
38553
|
+
});
|
|
38554
|
+
}
|
|
38555
|
+
});
|
|
38556
|
+
console.log('map', map_1);
|
|
38557
|
+
filter.options = Array.from(map_1.values()).map(function (accommodation) {
|
|
38558
|
+
var _a;
|
|
38559
|
+
return {
|
|
38560
|
+
label: (_a = accommodation.name) !== null && _a !== void 0 ? _a : accommodation.code,
|
|
38561
|
+
value: accommodation.code,
|
|
38562
|
+
isChecked: false
|
|
38563
|
+
};
|
|
38564
|
+
});
|
|
38565
|
+
}
|
|
38566
|
+
if (filter.property === 'regime') {
|
|
38567
|
+
var map_2 = new Map();
|
|
38568
|
+
results.forEach(function (r) {
|
|
38569
|
+
if (r.regimeCode) {
|
|
38570
|
+
map_2.set(r.regimeCode, {
|
|
38571
|
+
name: r.regimeName,
|
|
38572
|
+
code: r.regimeCode
|
|
38573
|
+
});
|
|
38574
|
+
}
|
|
38575
|
+
});
|
|
38576
|
+
filter.options = Array.from(map_2.values()).map(function (regime) {
|
|
38577
|
+
var _a;
|
|
38578
|
+
return {
|
|
38579
|
+
label: (_a = regime.name) !== null && _a !== void 0 ? _a : regime.code,
|
|
38580
|
+
value: regime.code,
|
|
38581
|
+
isChecked: false
|
|
38582
|
+
};
|
|
38583
|
+
});
|
|
38584
|
+
}
|
|
38585
|
+
if (filter.property === 'theme') {
|
|
38586
|
+
var map_3 = new Map();
|
|
38587
|
+
results.forEach(function (r) {
|
|
38588
|
+
var _a;
|
|
38589
|
+
(_a = r.tagIds) === null || _a === void 0
|
|
38590
|
+
? void 0
|
|
38591
|
+
: _a.forEach(function (tagId) {
|
|
38592
|
+
var tag = tags.find(function (t) {
|
|
38593
|
+
return t.id === tagId;
|
|
38594
|
+
});
|
|
38595
|
+
if (tag && tag.id != null && tag.name != null) {
|
|
38596
|
+
map_3.set(tag.id, { name: tag.name, id: tag.id });
|
|
38597
|
+
}
|
|
38598
|
+
});
|
|
38599
|
+
});
|
|
38600
|
+
filter.options = Array.from(map_3.values()).map(function (theme) {
|
|
38601
|
+
return {
|
|
38602
|
+
label: theme.name,
|
|
38603
|
+
value: theme.id,
|
|
38604
|
+
isChecked: false
|
|
38605
|
+
};
|
|
38606
|
+
});
|
|
38607
|
+
}
|
|
38608
|
+
};
|
|
38609
|
+
for (var _i = 0, filters_1 = filters; _i < filters_1.length; _i++) {
|
|
38610
|
+
var filter = filters_1[_i];
|
|
38611
|
+
_loop_1(filter);
|
|
38440
38612
|
}
|
|
38441
38613
|
return filters;
|
|
38442
38614
|
};
|
|
@@ -40808,101 +40980,21 @@ var FlightResultsContainer = function (_a) {
|
|
|
40808
40980
|
);
|
|
40809
40981
|
};
|
|
40810
40982
|
|
|
40811
|
-
var initialFilters = [
|
|
40812
|
-
{
|
|
40813
|
-
property: 'regime',
|
|
40814
|
-
label: 'Regime',
|
|
40815
|
-
type: 'checkbox',
|
|
40816
|
-
options: [
|
|
40817
|
-
{
|
|
40818
|
-
label: 'Room only',
|
|
40819
|
-
value: ['RO', 'LO', 'OB'],
|
|
40820
|
-
isChecked: false
|
|
40821
|
-
},
|
|
40822
|
-
{
|
|
40823
|
-
label: 'Bed & Beakfast',
|
|
40824
|
-
value: ['BB', 'KO'],
|
|
40825
|
-
isChecked: false
|
|
40826
|
-
},
|
|
40827
|
-
{
|
|
40828
|
-
label: 'Half board',
|
|
40829
|
-
value: ['HB'],
|
|
40830
|
-
isChecked: false
|
|
40831
|
-
},
|
|
40832
|
-
{
|
|
40833
|
-
label: 'Full board',
|
|
40834
|
-
value: ['FB'],
|
|
40835
|
-
isChecked: false
|
|
40836
|
-
}
|
|
40837
|
-
],
|
|
40838
|
-
isFrontendFilter: false
|
|
40839
|
-
},
|
|
40840
|
-
{
|
|
40841
|
-
property: 'price',
|
|
40842
|
-
label: 'Prijs',
|
|
40843
|
-
type: 'slider',
|
|
40844
|
-
isFrontendFilter: false,
|
|
40845
|
-
min: 2244,
|
|
40846
|
-
max: 6785
|
|
40847
|
-
},
|
|
40848
|
-
{
|
|
40849
|
-
property: 'rating',
|
|
40850
|
-
label: 'Rating',
|
|
40851
|
-
type: 'star-rating',
|
|
40852
|
-
isFrontendFilter: true
|
|
40853
|
-
},
|
|
40854
|
-
{
|
|
40855
|
-
property: 'theme',
|
|
40856
|
-
label: "Thema's",
|
|
40857
|
-
type: 'toggle',
|
|
40858
|
-
options: [
|
|
40859
|
-
{
|
|
40860
|
-
label: 'Adults',
|
|
40861
|
-
value: 1,
|
|
40862
|
-
isChecked: false
|
|
40863
|
-
},
|
|
40864
|
-
{
|
|
40865
|
-
label: 'Luxury',
|
|
40866
|
-
value: 2,
|
|
40867
|
-
isChecked: false
|
|
40868
|
-
},
|
|
40869
|
-
{
|
|
40870
|
-
label: 'Welness & Spa',
|
|
40871
|
-
value: 3,
|
|
40872
|
-
isChecked: false
|
|
40873
|
-
},
|
|
40874
|
-
{
|
|
40875
|
-
label: 'familie',
|
|
40876
|
-
value: 4,
|
|
40877
|
-
isChecked: false
|
|
40878
|
-
}
|
|
40879
|
-
],
|
|
40880
|
-
isFrontendFilter: false
|
|
40881
|
-
}
|
|
40882
|
-
];
|
|
40883
40983
|
var Filters = function (_a) {
|
|
40884
40984
|
var _b;
|
|
40885
|
-
var
|
|
40985
|
+
var initialFilters = _a.initialFilters,
|
|
40986
|
+
filters = _a.filters,
|
|
40886
40987
|
isOpen = _a.isOpen,
|
|
40887
40988
|
handleSetIsOpen = _a.handleSetIsOpen,
|
|
40888
|
-
handleApplyFilters = _a.handleApplyFilters,
|
|
40889
40989
|
isLoading = _a.isLoading;
|
|
40890
40990
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
40991
|
+
if (!context || !context.showFilters) {
|
|
40992
|
+
return null;
|
|
40993
|
+
}
|
|
40891
40994
|
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
40892
40995
|
var _c = React.useState({}),
|
|
40893
40996
|
visibleFilters = _c[0],
|
|
40894
40997
|
setVisibleFilters = _c[1];
|
|
40895
|
-
var _d = React.useState([]),
|
|
40896
|
-
pendingFilters = _d[0],
|
|
40897
|
-
setPendingFilters = _d[1];
|
|
40898
|
-
React.useEffect(
|
|
40899
|
-
function () {
|
|
40900
|
-
if (initialFilters.length > 0) {
|
|
40901
|
-
setPendingFilters(initialFilters);
|
|
40902
|
-
}
|
|
40903
|
-
},
|
|
40904
|
-
[initialFilters]
|
|
40905
|
-
);
|
|
40906
40998
|
var dispatch = reactRedux.useDispatch();
|
|
40907
40999
|
var toggleFilterVisibility = function (filterId) {
|
|
40908
41000
|
setVisibleFilters(function (prev) {
|
|
@@ -40910,331 +41002,429 @@ var Filters = function (_a) {
|
|
|
40910
41002
|
return __assign(__assign({}, prev), ((_a = {}), (_a[filterId] = !prev[filterId]), _a));
|
|
40911
41003
|
});
|
|
40912
41004
|
};
|
|
40913
|
-
var updatePendingFilter = function (updatedFilter) {
|
|
40914
|
-
setPendingFilters(function (prevFilters) {
|
|
40915
|
-
var index = prevFilters.findIndex(function (f) {
|
|
40916
|
-
return f.property === updatedFilter.property;
|
|
40917
|
-
});
|
|
40918
|
-
if (index !== -1) {
|
|
40919
|
-
var newFilters = __spreadArray([], prevFilters, true);
|
|
40920
|
-
newFilters[index] = updatedFilter;
|
|
40921
|
-
return newFilters;
|
|
40922
|
-
} else {
|
|
40923
|
-
return __spreadArray(__spreadArray([], prevFilters, true), [updatedFilter], false);
|
|
40924
|
-
}
|
|
40925
|
-
});
|
|
40926
|
-
};
|
|
40927
41005
|
var handleCheckBoxFilter = function (filter, option) {
|
|
40928
|
-
|
|
41006
|
+
var updated = filters.map(function (f) {
|
|
40929
41007
|
var _a;
|
|
40930
|
-
|
|
40931
|
-
|
|
40932
|
-
|
|
40933
|
-
|
|
40934
|
-
|
|
40935
|
-
|
|
40936
|
-
|
|
40937
|
-
|
|
40938
|
-
? void 0
|
|
40939
|
-
: _a.map(function (opt) {
|
|
40940
|
-
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
40941
|
-
})
|
|
40942
|
-
});
|
|
41008
|
+
if (f.property !== filter.property) return f;
|
|
41009
|
+
return __assign(__assign({}, f), {
|
|
41010
|
+
options:
|
|
41011
|
+
(_a = f.options) === null || _a === void 0
|
|
41012
|
+
? void 0
|
|
41013
|
+
: _a.map(function (opt) {
|
|
41014
|
+
return opt.value === option.value ? __assign(__assign({}, opt), { isChecked: !opt.isChecked }) : opt;
|
|
41015
|
+
})
|
|
40943
41016
|
});
|
|
40944
|
-
if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
|
|
40945
|
-
dispatch(setFilters(updated));
|
|
40946
|
-
(_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, updated);
|
|
40947
|
-
}
|
|
40948
|
-
return updated;
|
|
40949
41017
|
});
|
|
41018
|
+
dispatch(setFilters(updated));
|
|
40950
41019
|
};
|
|
40951
|
-
var
|
|
40952
|
-
var
|
|
40953
|
-
|
|
40954
|
-
|
|
40955
|
-
|
|
40956
|
-
|
|
40957
|
-
applyFilters();
|
|
40958
|
-
}
|
|
40959
|
-
}
|
|
40960
|
-
};
|
|
40961
|
-
var handleSliderMaxChange = function (filter, value) {
|
|
40962
|
-
var _a, _b;
|
|
40963
|
-
if (value > ((_b = (_a = filter.selectedMin) !== null && _a !== void 0 ? _a : filter.min) !== null && _b !== void 0 ? _b : 0)) {
|
|
40964
|
-
var updatedFilter = __assign(__assign({}, filter), { selectedMax: value });
|
|
40965
|
-
updatePendingFilter(updatedFilter);
|
|
40966
|
-
if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
|
|
40967
|
-
applyFilters();
|
|
40968
|
-
}
|
|
40969
|
-
}
|
|
40970
|
-
};
|
|
40971
|
-
var applyFilters = function () {
|
|
40972
|
-
var _a;
|
|
40973
|
-
dispatch(setFilters(pendingFilters));
|
|
40974
|
-
(_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, pendingFilters);
|
|
40975
|
-
handleApplyFilters();
|
|
40976
|
-
if (isOpen) {
|
|
40977
|
-
handleSetIsOpen();
|
|
40978
|
-
}
|
|
41020
|
+
var handleSliderChange = function (filter, newMin, newMax) {
|
|
41021
|
+
var updated = filters.map(function (f) {
|
|
41022
|
+
if (f.property !== filter.property) return f;
|
|
41023
|
+
return __assign(__assign({}, f), { selectedMin: newMin, selectedMax: newMax });
|
|
41024
|
+
});
|
|
41025
|
+
dispatch(setFilters(updated));
|
|
40979
41026
|
};
|
|
40980
41027
|
var handleFullReset = function () {
|
|
40981
41028
|
if (!isLoading) {
|
|
40982
|
-
setPendingFilters(initialFilters);
|
|
40983
41029
|
dispatch(resetFilters(initialFilters));
|
|
40984
41030
|
}
|
|
40985
41031
|
};
|
|
40986
|
-
var handleResetPendingChanges = function () {
|
|
40987
|
-
setPendingFilters(filters); // ← back to last applied
|
|
40988
|
-
};
|
|
40989
|
-
var hasPendingChanges = function () {
|
|
40990
|
-
return JSON.stringify(pendingFilters) !== JSON.stringify(filters);
|
|
40991
|
-
};
|
|
40992
|
-
if (!context || !context.showFilters) {
|
|
40993
|
-
return null;
|
|
40994
|
-
}
|
|
40995
41032
|
return React__default['default'].createElement(
|
|
40996
|
-
|
|
40997
|
-
|
|
41033
|
+
'div',
|
|
41034
|
+
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
41035
|
+
React__default['default'].createElement('div', {
|
|
41036
|
+
className: 'search__filters--background',
|
|
41037
|
+
onClick: function () {
|
|
41038
|
+
return handleSetIsOpen();
|
|
41039
|
+
}
|
|
41040
|
+
}),
|
|
40998
41041
|
React__default['default'].createElement(
|
|
40999
|
-
'
|
|
41000
|
-
{
|
|
41001
|
-
|
|
41002
|
-
className: 'search__filters--background',
|
|
41042
|
+
'button',
|
|
41043
|
+
{
|
|
41044
|
+
className: 'search__filters--close',
|
|
41003
41045
|
onClick: function () {
|
|
41004
41046
|
return handleSetIsOpen();
|
|
41005
41047
|
}
|
|
41006
|
-
}
|
|
41007
|
-
React__default['default'].createElement(
|
|
41008
|
-
|
|
41009
|
-
|
|
41010
|
-
|
|
41011
|
-
|
|
41012
|
-
return handleSetIsOpen();
|
|
41013
|
-
}
|
|
41014
|
-
},
|
|
41015
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
41016
|
-
),
|
|
41048
|
+
},
|
|
41049
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
41050
|
+
),
|
|
41051
|
+
React__default['default'].createElement(
|
|
41052
|
+
'div',
|
|
41053
|
+
{ className: 'search__filters' },
|
|
41017
41054
|
React__default['default'].createElement(
|
|
41018
41055
|
'div',
|
|
41019
|
-
{ className: '
|
|
41056
|
+
{ className: 'search__filter-row search__filter__header' },
|
|
41020
41057
|
React__default['default'].createElement(
|
|
41021
41058
|
'div',
|
|
41022
|
-
{ className: 'search__filter-row
|
|
41059
|
+
{ className: 'search__filter-row-flex-title' },
|
|
41060
|
+
React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.FILTERS)
|
|
41061
|
+
),
|
|
41062
|
+
!isLoading &&
|
|
41023
41063
|
React__default['default'].createElement(
|
|
41024
|
-
'
|
|
41025
|
-
{
|
|
41026
|
-
|
|
41027
|
-
|
|
41028
|
-
|
|
41064
|
+
'a',
|
|
41065
|
+
{
|
|
41066
|
+
className: 'search__filter-reset',
|
|
41067
|
+
onClick: function () {
|
|
41068
|
+
return handleFullReset();
|
|
41069
|
+
}
|
|
41070
|
+
},
|
|
41071
|
+
translations.SRP.RESET
|
|
41072
|
+
)
|
|
41073
|
+
),
|
|
41074
|
+
isLoading
|
|
41075
|
+
? React__default['default'].createElement(Spinner, null)
|
|
41076
|
+
: React__default['default'].createElement(
|
|
41077
|
+
React__default['default'].Fragment,
|
|
41078
|
+
null,
|
|
41029
41079
|
React__default['default'].createElement(
|
|
41030
|
-
'
|
|
41031
|
-
{
|
|
41032
|
-
|
|
41033
|
-
|
|
41034
|
-
|
|
41035
|
-
|
|
41036
|
-
|
|
41037
|
-
|
|
41038
|
-
|
|
41039
|
-
),
|
|
41040
|
-
isLoading
|
|
41041
|
-
? React__default['default'].createElement(Spinner, null)
|
|
41042
|
-
: React__default['default'].createElement(
|
|
41043
|
-
React__default['default'].Fragment,
|
|
41044
|
-
null,
|
|
41045
|
-
React__default['default'].createElement(
|
|
41046
|
-
'div',
|
|
41047
|
-
{ className: 'search__filters__group-container' },
|
|
41048
|
-
pendingFilters.map(function (filter, index) {
|
|
41049
|
-
var _a, _b;
|
|
41050
|
-
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
41051
|
-
return React__default['default'].createElement(
|
|
41080
|
+
'div',
|
|
41081
|
+
{ className: 'search__filters__group-container' },
|
|
41082
|
+
filters.map(function (filter, index) {
|
|
41083
|
+
var _a, _b;
|
|
41084
|
+
var isVisible = (_a = visibleFilters[filter.property]) !== null && _a !== void 0 ? _a : true;
|
|
41085
|
+
return React__default['default'].createElement(
|
|
41086
|
+
'div',
|
|
41087
|
+
{ key: ''.concat(filter.property, '-').concat(index), className: 'search__filter-group' },
|
|
41088
|
+
React__default['default'].createElement(
|
|
41052
41089
|
'div',
|
|
41053
|
-
{
|
|
41090
|
+
{
|
|
41091
|
+
className: 'search__filter-row search__filter-row--underline',
|
|
41092
|
+
onClick: function () {
|
|
41093
|
+
return toggleFilterVisibility(filter.property);
|
|
41094
|
+
},
|
|
41095
|
+
role: 'button',
|
|
41096
|
+
tabIndex: 0
|
|
41097
|
+
},
|
|
41098
|
+
React__default['default'].createElement('h6', { className: 'search__filter-large-title' }, filter.label),
|
|
41054
41099
|
React__default['default'].createElement(
|
|
41055
|
-
'
|
|
41100
|
+
'svg',
|
|
41056
41101
|
{
|
|
41057
|
-
|
|
41058
|
-
|
|
41059
|
-
|
|
41060
|
-
|
|
41061
|
-
|
|
41062
|
-
tabIndex: 0
|
|
41102
|
+
id: 'search-chevron-up-icon',
|
|
41103
|
+
className: 'search__filter-chevron-icon '.concat(isVisible ? 'search__filter-chevron-icon--flipped' : '', ' '),
|
|
41104
|
+
viewBox: '0 0 10 6.063',
|
|
41105
|
+
width: 10,
|
|
41106
|
+
height: 6.063
|
|
41063
41107
|
},
|
|
41064
|
-
React__default['default'].createElement('
|
|
41065
|
-
|
|
41066
|
-
'
|
|
41067
|
-
|
|
41068
|
-
|
|
41069
|
-
|
|
41070
|
-
|
|
41071
|
-
|
|
41072
|
-
|
|
41073
|
-
|
|
41074
|
-
|
|
41075
|
-
|
|
41076
|
-
|
|
41077
|
-
|
|
41078
|
-
|
|
41079
|
-
|
|
41108
|
+
React__default['default'].createElement('path', {
|
|
41109
|
+
id: 'Path_62',
|
|
41110
|
+
'data-name': 'Path 62',
|
|
41111
|
+
d: 'M245-617.937l-5-5L241.063-624,245-620.062,248.938-624,250-622.937Z',
|
|
41112
|
+
transform: 'translate(-240 624)',
|
|
41113
|
+
fill: '#707070'
|
|
41114
|
+
})
|
|
41115
|
+
)
|
|
41116
|
+
),
|
|
41117
|
+
isVisible &&
|
|
41118
|
+
filter.type === 'checkbox' &&
|
|
41119
|
+
React__default['default'].createElement(
|
|
41120
|
+
'div',
|
|
41121
|
+
{ className: 'search__filter-rows' },
|
|
41122
|
+
filter.options &&
|
|
41123
|
+
filter.options.map(function (option, optionIndex) {
|
|
41124
|
+
return React__default['default'].createElement(
|
|
41125
|
+
'div',
|
|
41126
|
+
{ className: 'search__filter-row search__filter-row--checkbox', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
41127
|
+
React__default['default'].createElement(
|
|
41128
|
+
'div',
|
|
41129
|
+
{ className: 'checkbox' },
|
|
41130
|
+
React__default['default'].createElement(
|
|
41131
|
+
'label',
|
|
41132
|
+
{ className: 'checkbox__label' },
|
|
41133
|
+
React__default['default'].createElement('input', {
|
|
41134
|
+
type: 'checkbox',
|
|
41135
|
+
className: 'checkbox__input checkbox__input--parent',
|
|
41136
|
+
checked: option.isChecked,
|
|
41137
|
+
onChange: function (e) {
|
|
41138
|
+
return handleCheckBoxFilter(filter, option);
|
|
41139
|
+
}
|
|
41140
|
+
}),
|
|
41141
|
+
React__default['default'].createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
41142
|
+
)
|
|
41143
|
+
)
|
|
41144
|
+
);
|
|
41080
41145
|
})
|
|
41081
|
-
)
|
|
41082
41146
|
),
|
|
41083
|
-
|
|
41084
|
-
|
|
41085
|
-
|
|
41086
|
-
|
|
41087
|
-
|
|
41088
|
-
|
|
41089
|
-
|
|
41147
|
+
isVisible &&
|
|
41148
|
+
filter.type === 'toggle' &&
|
|
41149
|
+
React__default['default'].createElement(
|
|
41150
|
+
'div',
|
|
41151
|
+
{ className: 'search__filter-rows' },
|
|
41152
|
+
(_b = filter.options) === null || _b === void 0
|
|
41153
|
+
? void 0
|
|
41154
|
+
: _b.map(function (option, optionIndex) {
|
|
41090
41155
|
return React__default['default'].createElement(
|
|
41091
41156
|
'div',
|
|
41092
|
-
{ className: 'search__filter-row
|
|
41157
|
+
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
41158
|
+
React__default['default'].createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
41159
|
+
React__default['default'].createElement('div', { className: 'checkbox' }),
|
|
41093
41160
|
React__default['default'].createElement(
|
|
41094
|
-
'
|
|
41095
|
-
{ className: '
|
|
41096
|
-
React__default['default'].createElement(
|
|
41097
|
-
'
|
|
41098
|
-
|
|
41099
|
-
|
|
41100
|
-
|
|
41101
|
-
|
|
41102
|
-
|
|
41103
|
-
|
|
41104
|
-
return handleCheckBoxFilter(filter, option);
|
|
41105
|
-
}
|
|
41106
|
-
}),
|
|
41107
|
-
React__default['default'].createElement('span', { className: 'radiobutton__label-text' }, option.label)
|
|
41108
|
-
)
|
|
41161
|
+
'label',
|
|
41162
|
+
{ className: 'checkbox__label' },
|
|
41163
|
+
React__default['default'].createElement('input', {
|
|
41164
|
+
type: 'checkbox',
|
|
41165
|
+
className: 'checkbox__input',
|
|
41166
|
+
checked: option.isChecked,
|
|
41167
|
+
onChange: function () {
|
|
41168
|
+
return handleCheckBoxFilter(filter, option);
|
|
41169
|
+
}
|
|
41170
|
+
})
|
|
41109
41171
|
)
|
|
41110
41172
|
);
|
|
41111
41173
|
})
|
|
41112
|
-
),
|
|
41113
|
-
isVisible &&
|
|
41114
|
-
filter.type === 'toggle' &&
|
|
41115
|
-
React__default['default'].createElement(
|
|
41116
|
-
'div',
|
|
41117
|
-
{ className: 'search__filter-rows' },
|
|
41118
|
-
(_b = filter.options) === null || _b === void 0
|
|
41119
|
-
? void 0
|
|
41120
|
-
: _b.map(function (option, optionIndex) {
|
|
41121
|
-
return React__default['default'].createElement(
|
|
41122
|
-
'div',
|
|
41123
|
-
{ className: 'search__filter-row', key: ''.concat(option.label, '-').concat(optionIndex) },
|
|
41124
|
-
React__default['default'].createElement('span', { className: 'search__filter-toggle-label' }, option.label),
|
|
41125
|
-
React__default['default'].createElement('div', { className: 'checkbox' }),
|
|
41126
|
-
React__default['default'].createElement(
|
|
41127
|
-
'label',
|
|
41128
|
-
{ className: 'checkbox__label' },
|
|
41129
|
-
React__default['default'].createElement('input', {
|
|
41130
|
-
type: 'checkbox',
|
|
41131
|
-
className: 'checkbox__input',
|
|
41132
|
-
checked: option.isChecked,
|
|
41133
|
-
onChange: function () {
|
|
41134
|
-
return handleCheckBoxFilter(filter, option);
|
|
41135
|
-
}
|
|
41136
|
-
})
|
|
41137
|
-
)
|
|
41138
|
-
);
|
|
41139
|
-
})
|
|
41140
|
-
),
|
|
41141
|
-
isVisible &&
|
|
41142
|
-
filter &&
|
|
41143
|
-
filter.type === 'slider' &&
|
|
41144
|
-
(function () {
|
|
41145
|
-
var _a, _b, _c, _d;
|
|
41146
|
-
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
41147
|
-
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
41148
|
-
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
41149
|
-
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
41150
|
-
return React__default['default'].createElement(MultiRangeFilter, {
|
|
41151
|
-
min: min,
|
|
41152
|
-
max: max,
|
|
41153
|
-
selectedMin: selectedMin,
|
|
41154
|
-
selectedMax: selectedMax,
|
|
41155
|
-
valueFormatter: function (value) {
|
|
41156
|
-
return ''.concat(value);
|
|
41157
|
-
},
|
|
41158
|
-
onChange: function (newMin, newMax) {
|
|
41159
|
-
handleSliderMinChange(filter, newMin);
|
|
41160
|
-
handleSliderMaxChange(filter, newMax);
|
|
41161
|
-
}
|
|
41162
|
-
});
|
|
41163
|
-
})(),
|
|
41164
|
-
isVisible &&
|
|
41165
|
-
filter.property === 'rating' &&
|
|
41166
|
-
filter.type === 'star-rating' &&
|
|
41167
|
-
(function () {
|
|
41168
|
-
var _a;
|
|
41169
|
-
var selectedRating = (_a = filter.selectedRating) !== null && _a !== void 0 ? _a : 0;
|
|
41170
|
-
var handleRatingChange = function (rating) {
|
|
41171
|
-
var updatedFilter = __assign(__assign({}, filter), { selectedRating: rating });
|
|
41172
|
-
updatePendingFilter(updatedFilter);
|
|
41173
|
-
if (!(context === null || context === void 0 ? void 0 : context.useGlobalApplyFilterButton) && !filter.useApplyFilterButton) {
|
|
41174
|
-
applyFilters();
|
|
41175
|
-
}
|
|
41176
|
-
};
|
|
41177
|
-
return React__default['default'].createElement(
|
|
41178
|
-
'div',
|
|
41179
|
-
{ className: 'search__filter-row star-rating-filter' },
|
|
41180
|
-
[5, 4, 3, 2, 1].map(function (star) {
|
|
41181
|
-
return React__default['default'].createElement(
|
|
41182
|
-
'span',
|
|
41183
|
-
{
|
|
41184
|
-
key: star,
|
|
41185
|
-
className: 'star '.concat(star <= selectedRating ? 'filled' : ''),
|
|
41186
|
-
onClick: function () {
|
|
41187
|
-
return handleRatingChange(star);
|
|
41188
|
-
},
|
|
41189
|
-
role: 'button',
|
|
41190
|
-
tabIndex: 0,
|
|
41191
|
-
onKeyDown: function (e) {
|
|
41192
|
-
if (e.key === 'Enter' || e.key === ' ') handleRatingChange(star);
|
|
41193
|
-
}
|
|
41194
|
-
},
|
|
41195
|
-
'\u2605'
|
|
41196
|
-
);
|
|
41197
|
-
})
|
|
41198
|
-
);
|
|
41199
|
-
})()
|
|
41200
|
-
);
|
|
41201
|
-
}),
|
|
41202
|
-
context.useGlobalApplyFilterButton &&
|
|
41203
|
-
hasPendingChanges() &&
|
|
41204
|
-
React__default['default'].createElement(
|
|
41205
|
-
'div',
|
|
41206
|
-
{ className: 'search__filters__actions' },
|
|
41207
|
-
React__default['default'].createElement(
|
|
41208
|
-
'button',
|
|
41209
|
-
{
|
|
41210
|
-
className: 'cta--secondary ',
|
|
41211
|
-
onClick: function () {
|
|
41212
|
-
handleResetPendingChanges();
|
|
41213
|
-
handleSetIsOpen();
|
|
41214
|
-
},
|
|
41215
|
-
disabled: isLoading
|
|
41216
|
-
},
|
|
41217
|
-
translations.SRP.CANCEL
|
|
41218
41174
|
),
|
|
41219
|
-
|
|
41220
|
-
|
|
41221
|
-
|
|
41222
|
-
|
|
41223
|
-
|
|
41224
|
-
|
|
41175
|
+
isVisible &&
|
|
41176
|
+
filter &&
|
|
41177
|
+
filter.type === 'slider' &&
|
|
41178
|
+
(function () {
|
|
41179
|
+
var _a, _b, _c, _d;
|
|
41180
|
+
var min = (_a = filter.min) !== null && _a !== void 0 ? _a : 0;
|
|
41181
|
+
var max = (_b = filter.max) !== null && _b !== void 0 ? _b : 100;
|
|
41182
|
+
var selectedMin = (_c = filter.selectedMin) !== null && _c !== void 0 ? _c : min;
|
|
41183
|
+
var selectedMax = (_d = filter.selectedMax) !== null && _d !== void 0 ? _d : max;
|
|
41184
|
+
return React__default['default'].createElement(MultiRangeFilter, {
|
|
41185
|
+
min: min,
|
|
41186
|
+
max: max,
|
|
41187
|
+
selectedMin: selectedMin,
|
|
41188
|
+
selectedMax: selectedMax,
|
|
41189
|
+
valueFormatter: function (value) {
|
|
41190
|
+
return ''.concat(value);
|
|
41225
41191
|
},
|
|
41226
|
-
|
|
41227
|
-
|
|
41228
|
-
|
|
41229
|
-
|
|
41230
|
-
|
|
41192
|
+
onChange: function (newMin, newMax) {
|
|
41193
|
+
handleSliderChange(filter, newMin, newMax);
|
|
41194
|
+
}
|
|
41195
|
+
});
|
|
41196
|
+
})()
|
|
41197
|
+
);
|
|
41198
|
+
})
|
|
41199
|
+
)
|
|
41200
|
+
)
|
|
41201
|
+
)
|
|
41202
|
+
);
|
|
41203
|
+
};
|
|
41204
|
+
|
|
41205
|
+
var GroupTourCard = function (_a) {
|
|
41206
|
+
var _b;
|
|
41207
|
+
var result = _a.result,
|
|
41208
|
+
languageCode = _a.languageCode;
|
|
41209
|
+
var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
|
|
41210
|
+
var genders = ((_b = result.allotment) === null || _b === void 0 ? void 0 : _b.travellerGenders) || [];
|
|
41211
|
+
var maleCount = genders.filter(function (g) {
|
|
41212
|
+
return g === 0;
|
|
41213
|
+
}).length;
|
|
41214
|
+
var femaleCount = genders.filter(function (g) {
|
|
41215
|
+
return g === 1;
|
|
41216
|
+
}).length;
|
|
41217
|
+
var otherCount = genders.filter(function (g) {
|
|
41218
|
+
return g === 2;
|
|
41219
|
+
}).length;
|
|
41220
|
+
return React__default['default'].createElement(
|
|
41221
|
+
'div',
|
|
41222
|
+
{ className: 'search__result-card' },
|
|
41223
|
+
React__default['default'].createElement(
|
|
41224
|
+
'div',
|
|
41225
|
+
{ className: 'search__result-card__allotment' },
|
|
41226
|
+
React__default['default'].createElement(
|
|
41227
|
+
'div',
|
|
41228
|
+
{ className: 'search__result-card__allotment__title__wrapper' },
|
|
41229
|
+
React__default['default'].createElement(
|
|
41230
|
+
'h3',
|
|
41231
|
+
{ className: 'search__result-card__allotment__title' },
|
|
41232
|
+
result.name,
|
|
41233
|
+
React__default['default'].createElement(
|
|
41234
|
+
'span',
|
|
41235
|
+
{ className: 'search__result-card__allotment__badge' },
|
|
41236
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-circle-check', width: 14, height: 14 }),
|
|
41237
|
+
'GAR'
|
|
41238
|
+
)
|
|
41239
|
+
),
|
|
41240
|
+
React__default['default'].createElement(
|
|
41241
|
+
'div',
|
|
41242
|
+
{ className: 'search__result-card__allotment__container' },
|
|
41243
|
+
React__default['default'].createElement(
|
|
41244
|
+
'div',
|
|
41245
|
+
{ className: 'search__result-card__allotment__header' },
|
|
41246
|
+
React__default['default'].createElement(
|
|
41247
|
+
'div',
|
|
41248
|
+
{ className: 'search__result-card__allotment__wrapper' },
|
|
41249
|
+
React__default['default'].createElement(
|
|
41250
|
+
'div',
|
|
41251
|
+
{ className: 'search__result-card__allotment__date' },
|
|
41252
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 16 }),
|
|
41253
|
+
React__default['default'].createElement(
|
|
41254
|
+
'div',
|
|
41255
|
+
{ className: 'search__result-card__allotment__date--from' },
|
|
41256
|
+
dateFns.format(new Date(result.fromDate), 'dd/MM/yyyy')
|
|
41257
|
+
)
|
|
41258
|
+
),
|
|
41259
|
+
React__default['default'].createElement(
|
|
41260
|
+
'div',
|
|
41261
|
+
{ className: 'search__result-card__allotment__info' },
|
|
41262
|
+
React__default['default'].createElement('span', null, React__default['default'].createElement(Icon$1, { name: 'ui-calendar', height: 16 })),
|
|
41263
|
+
' ',
|
|
41264
|
+
calculateDays(result.stayFromDate, result.stayToDate),
|
|
41265
|
+
' ',
|
|
41266
|
+
translations.PRODUCT.DAYS,
|
|
41267
|
+
' -',
|
|
41268
|
+
' ',
|
|
41269
|
+
React__default['default'].createElement('span', null, React__default['default'].createElement(Icon$1, { name: 'ui-moon', height: 16 })),
|
|
41270
|
+
calculateNights(result.stayFromDate, result.stayToDate),
|
|
41271
|
+
' ',
|
|
41272
|
+
translations.SRP.NIGHTS
|
|
41273
|
+
)
|
|
41274
|
+
)
|
|
41275
|
+
),
|
|
41276
|
+
result.allotment &&
|
|
41277
|
+
React__default['default'].createElement(
|
|
41278
|
+
'div',
|
|
41279
|
+
{ className: 'search__result-card__allotment__info' },
|
|
41280
|
+
React__default['default'].createElement(
|
|
41281
|
+
'span',
|
|
41282
|
+
{ className: 'search__result-card__allotment__info__group' },
|
|
41283
|
+
translations === null || translations === void 0 ? void 0 : translations.SRP.TRAVEL_GROUP
|
|
41284
|
+
),
|
|
41285
|
+
React__default['default'].createElement(
|
|
41286
|
+
'div',
|
|
41287
|
+
{ className: 'search__result-card__allotment__persons' },
|
|
41288
|
+
React__default['default'].createElement(
|
|
41289
|
+
'div',
|
|
41290
|
+
{ className: 'search__result-card__allotment__person' },
|
|
41291
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-men', width: 16, height: 16 }),
|
|
41292
|
+
React__default['default'].createElement('span', null, maleCount, ' p.')
|
|
41293
|
+
),
|
|
41294
|
+
React__default['default'].createElement(
|
|
41295
|
+
'div',
|
|
41296
|
+
{ className: 'search__result-card__allotment__person' },
|
|
41297
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-women', width: 16, height: 16 }),
|
|
41298
|
+
React__default['default'].createElement('span', null, femaleCount, ' p.')
|
|
41299
|
+
),
|
|
41300
|
+
React__default['default'].createElement(
|
|
41301
|
+
'div',
|
|
41302
|
+
{ className: 'search__result-card__allotment__person' },
|
|
41303
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-other', width: 16, height: 16 }),
|
|
41304
|
+
React__default['default'].createElement('span', null, otherCount, ' p.')
|
|
41305
|
+
)
|
|
41231
41306
|
)
|
|
41232
41307
|
)
|
|
41308
|
+
)
|
|
41309
|
+
),
|
|
41310
|
+
React__default['default'].createElement(
|
|
41311
|
+
'div',
|
|
41312
|
+
{ className: 'search__result-card__allotment__footer' },
|
|
41313
|
+
React__default['default'].createElement(
|
|
41314
|
+
'div',
|
|
41315
|
+
{ className: 'search__result-card__allotment__price__wrapper' },
|
|
41316
|
+
React__default['default'].createElement(
|
|
41317
|
+
'div',
|
|
41318
|
+
{ className: 'search__result-card__allotment__price' },
|
|
41319
|
+
formatPrice(result.price, result.currencyCode, languageCode),
|
|
41320
|
+
' ',
|
|
41321
|
+
translations.PRODUCT.PER_PERSON
|
|
41322
|
+
)
|
|
41323
|
+
),
|
|
41324
|
+
React__default['default'].createElement('button', { className: 'cta cta--select' }, 'Bekijk reis')
|
|
41233
41325
|
)
|
|
41234
41326
|
)
|
|
41235
41327
|
);
|
|
41236
41328
|
};
|
|
41237
41329
|
|
|
41330
|
+
var GroupTourResults = function (_a) {
|
|
41331
|
+
var _b, _c;
|
|
41332
|
+
var isLoading = _a.isLoading;
|
|
41333
|
+
var context = React.useContext(SearchResultsConfigurationContext);
|
|
41334
|
+
if (!context) {
|
|
41335
|
+
return;
|
|
41336
|
+
}
|
|
41337
|
+
if (isLoading) {
|
|
41338
|
+
return React__default['default'].createElement(
|
|
41339
|
+
React__default['default'].Fragment,
|
|
41340
|
+
null,
|
|
41341
|
+
(_b = context.customSpinner) !== null && _b !== void 0 ? _b : React__default['default'].createElement(Spinner, null)
|
|
41342
|
+
);
|
|
41343
|
+
}
|
|
41344
|
+
var translations = getTranslations((_c = context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB');
|
|
41345
|
+
var _d = reactRedux.useSelector(function (state) {
|
|
41346
|
+
return state.searchResults;
|
|
41347
|
+
}),
|
|
41348
|
+
filteredResults = _d.filteredResults;
|
|
41349
|
+
_d.activeTab;
|
|
41350
|
+
if (lodash.isEmpty(filteredResults)) {
|
|
41351
|
+
return React__default['default'].createElement('div', { className: 'no-results' }, translations.SRP.NO_RESULTS);
|
|
41352
|
+
}
|
|
41353
|
+
return React__default['default'].createElement(
|
|
41354
|
+
'div',
|
|
41355
|
+
{ className: 'search__results__cards search__results__cards--list' },
|
|
41356
|
+
filteredResults.map(function (result, index) {
|
|
41357
|
+
return React__default['default'].createElement(GroupTourCard, { key: index, result: result });
|
|
41358
|
+
})
|
|
41359
|
+
);
|
|
41360
|
+
};
|
|
41361
|
+
|
|
41362
|
+
var applyFilters = function (results, filters) {
|
|
41363
|
+
return results.filter(function (r) {
|
|
41364
|
+
return filters.every(function (filter) {
|
|
41365
|
+
var _a, _b, _c, _d;
|
|
41366
|
+
if (!filter.isFrontendFilter) return true;
|
|
41367
|
+
// ACCOMMODATION
|
|
41368
|
+
if (filter.property === 'accommodation') {
|
|
41369
|
+
var selected =
|
|
41370
|
+
(_a = filter.options) === null || _a === void 0
|
|
41371
|
+
? void 0
|
|
41372
|
+
: _a
|
|
41373
|
+
.filter(function (o) {
|
|
41374
|
+
return o.isChecked;
|
|
41375
|
+
})
|
|
41376
|
+
.map(function (o) {
|
|
41377
|
+
return o.value;
|
|
41378
|
+
});
|
|
41379
|
+
if (!selected || selected.length === 0) return true;
|
|
41380
|
+
return selected.includes(r.accommodationCode);
|
|
41381
|
+
}
|
|
41382
|
+
// REGIME
|
|
41383
|
+
if (filter.property === 'regime') {
|
|
41384
|
+
var selected =
|
|
41385
|
+
(_b = filter.options) === null || _b === void 0
|
|
41386
|
+
? void 0
|
|
41387
|
+
: _b
|
|
41388
|
+
.filter(function (o) {
|
|
41389
|
+
return o.isChecked;
|
|
41390
|
+
})
|
|
41391
|
+
.map(function (o) {
|
|
41392
|
+
return o.value;
|
|
41393
|
+
});
|
|
41394
|
+
if (!selected || selected.length === 0) return true;
|
|
41395
|
+
if (!r.regimeCode) return false;
|
|
41396
|
+
return selected.includes(r.regimeCode);
|
|
41397
|
+
}
|
|
41398
|
+
// PRICE
|
|
41399
|
+
if (filter.property === 'price') {
|
|
41400
|
+
if (filter.selectedMin != null && r.price < filter.selectedMin) return false;
|
|
41401
|
+
if (filter.selectedMax != null && r.price > filter.selectedMax) return false;
|
|
41402
|
+
return true;
|
|
41403
|
+
}
|
|
41404
|
+
// THEME
|
|
41405
|
+
if (filter.property === 'theme') {
|
|
41406
|
+
var selected_1 =
|
|
41407
|
+
(_c = filter.options) === null || _c === void 0
|
|
41408
|
+
? void 0
|
|
41409
|
+
: _c
|
|
41410
|
+
.filter(function (o) {
|
|
41411
|
+
return o.isChecked;
|
|
41412
|
+
})
|
|
41413
|
+
.map(function (o) {
|
|
41414
|
+
return o.value;
|
|
41415
|
+
});
|
|
41416
|
+
if (!selected_1 || selected_1.length === 0) return true;
|
|
41417
|
+
return (_d = r.tagIds) === null || _d === void 0
|
|
41418
|
+
? void 0
|
|
41419
|
+
: _d.some(function (tagId) {
|
|
41420
|
+
return selected_1.includes(tagId);
|
|
41421
|
+
});
|
|
41422
|
+
}
|
|
41423
|
+
return true;
|
|
41424
|
+
});
|
|
41425
|
+
});
|
|
41426
|
+
};
|
|
41427
|
+
|
|
41238
41428
|
var SearchResultsContainer = function () {
|
|
41239
41429
|
var _a;
|
|
41240
41430
|
var dispatch = reactRedux.useDispatch();
|
|
@@ -41244,6 +41434,7 @@ var SearchResultsContainer = function () {
|
|
|
41244
41434
|
return state.searchResults;
|
|
41245
41435
|
}),
|
|
41246
41436
|
results = _b.results,
|
|
41437
|
+
filteredResults = _b.filteredResults,
|
|
41247
41438
|
bookingPackageDetails = _b.bookingPackageDetails,
|
|
41248
41439
|
entry = _b.entry,
|
|
41249
41440
|
isLoading = _b.isLoading,
|
|
@@ -41252,21 +41443,18 @@ var SearchResultsContainer = function () {
|
|
|
41252
41443
|
selectedHotelId = _b.selectedHotelId,
|
|
41253
41444
|
flyInIsOpen = _b.flyInIsOpen;
|
|
41254
41445
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
41255
|
-
var _c = React.useState(
|
|
41256
|
-
|
|
41257
|
-
|
|
41258
|
-
var _d = React.useState(
|
|
41259
|
-
|
|
41260
|
-
|
|
41261
|
-
var _e = React.useState(
|
|
41262
|
-
|
|
41263
|
-
|
|
41446
|
+
var _c = React.useState(false),
|
|
41447
|
+
initialFiltersSet = _c[0],
|
|
41448
|
+
setInitialFiltersSet = _c[1];
|
|
41449
|
+
var _d = React.useState([]),
|
|
41450
|
+
initialFilters = _d[0],
|
|
41451
|
+
setInitialFilters = _d[1];
|
|
41452
|
+
var _e = React.useState(false),
|
|
41453
|
+
filtersOpen = _e[0],
|
|
41454
|
+
setFiltersOpen = _e[1];
|
|
41264
41455
|
var _f = React.useState(false),
|
|
41265
|
-
|
|
41266
|
-
|
|
41267
|
-
var _g = React.useState(false),
|
|
41268
|
-
itineraryOpen = _g[0],
|
|
41269
|
-
setItineraryOpen = _g[1];
|
|
41456
|
+
itineraryOpen = _f[0],
|
|
41457
|
+
setItineraryOpen = _f[1];
|
|
41270
41458
|
var panelRef = React.useRef(null);
|
|
41271
41459
|
var sortByTypes = [
|
|
41272
41460
|
{ direction: 'asc', label: 'price' },
|
|
@@ -41370,7 +41558,6 @@ var SearchResultsContainer = function () {
|
|
|
41370
41558
|
var city = getNumberFromParams(params, 'location');
|
|
41371
41559
|
var hotel = getNumberFromParams(params, 'hotel');
|
|
41372
41560
|
var tagId = getNumberFromParams(params, 'tagId');
|
|
41373
|
-
// temp hardcoded params
|
|
41374
41561
|
if (!from || !to) {
|
|
41375
41562
|
console.error('Missing fromDate or toDate in query params, using default values');
|
|
41376
41563
|
return null;
|
|
@@ -41400,8 +41587,9 @@ var SearchResultsContainer = function () {
|
|
|
41400
41587
|
officeId: 1,
|
|
41401
41588
|
payload: {
|
|
41402
41589
|
catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
|
|
41403
|
-
serviceType:
|
|
41404
|
-
|
|
41590
|
+
serviceType:
|
|
41591
|
+
context.type === 'hotel' || context.type === 'hotel-flight' ? 3 : context.type === 'flight' ? 7 : context.type === 'roundTrip' ? 1 : undefined,
|
|
41592
|
+
searchType: context.type === 'groupTour' ? 1 : 0,
|
|
41405
41593
|
destination: {
|
|
41406
41594
|
id: Number(destinationId),
|
|
41407
41595
|
isCountry: destinationIsCountry,
|
|
@@ -41422,7 +41610,7 @@ var SearchResultsContainer = function () {
|
|
|
41422
41610
|
// .flatMap((o) => o.value.toString()) || [],
|
|
41423
41611
|
// minPrice: filters.find((f) => f.property === 'price')?.selectedMin,
|
|
41424
41612
|
// maxPrice: filters.find((f) => f.property === 'price')?.selectedMax,
|
|
41425
|
-
useExactDates: true,
|
|
41613
|
+
useExactDates: (context === null || context === void 0 ? void 0 : context.type) === 'groupTour' ? false : true,
|
|
41426
41614
|
onlyCachedResults: false,
|
|
41427
41615
|
includeAllAllotments: true,
|
|
41428
41616
|
productIds: hotel ? [hotel] : [],
|
|
@@ -41498,17 +41686,17 @@ var SearchResultsContainer = function () {
|
|
|
41498
41686
|
// seperate Search
|
|
41499
41687
|
React.useEffect(
|
|
41500
41688
|
function () {
|
|
41501
|
-
var
|
|
41689
|
+
var runSearch = function () {
|
|
41502
41690
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
41503
|
-
var config, params, entryId, entryLight, searchRequest, rq, packageSearchResults, enrichedFilters, matching, err_1;
|
|
41504
|
-
var _a;
|
|
41505
|
-
return __generator(this, function (
|
|
41506
|
-
switch (
|
|
41691
|
+
var config, params, entryId, entryLight, searchRequest, rq, packageSearchResults, enrichedFilters, initialFilteredResults, matching, err_1;
|
|
41692
|
+
var _a, _b;
|
|
41693
|
+
return __generator(this, function (_c) {
|
|
41694
|
+
switch (_c.label) {
|
|
41507
41695
|
case 0:
|
|
41508
41696
|
dispatch(setIsLoading(true));
|
|
41509
|
-
|
|
41697
|
+
_c.label = 1;
|
|
41510
41698
|
case 1:
|
|
41511
|
-
|
|
41699
|
+
_c.trys.push([1, 6, , 7]);
|
|
41512
41700
|
if (!context) {
|
|
41513
41701
|
return [2 /*return*/];
|
|
41514
41702
|
}
|
|
@@ -41523,7 +41711,7 @@ var SearchResultsContainer = function () {
|
|
|
41523
41711
|
if (!entryId) return [3 /*break*/, 3];
|
|
41524
41712
|
return [4 /*yield*/, build.getEntryLight(config, entryId)];
|
|
41525
41713
|
case 2:
|
|
41526
|
-
entryLight =
|
|
41714
|
+
entryLight = _c.sent();
|
|
41527
41715
|
// populate itinerary store
|
|
41528
41716
|
dispatch(setEntry({ entry: entryLight }));
|
|
41529
41717
|
searchRequest = buildSearchFromEntry(entryLight);
|
|
@@ -41534,19 +41722,21 @@ var SearchResultsContainer = function () {
|
|
|
41534
41722
|
throw new Error('Invalid search parameters');
|
|
41535
41723
|
}
|
|
41536
41724
|
searchRequest = rq;
|
|
41537
|
-
|
|
41725
|
+
_c.label = 4;
|
|
41538
41726
|
case 4:
|
|
41539
41727
|
return [4 /*yield*/, build.search(config, searchRequest)];
|
|
41540
41728
|
case 5:
|
|
41541
|
-
packageSearchResults =
|
|
41729
|
+
packageSearchResults = _c.sent();
|
|
41542
41730
|
console.log('Search results', packageSearchResults);
|
|
41543
|
-
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters);
|
|
41731
|
+
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
41544
41732
|
if (!initialFiltersSet) {
|
|
41545
41733
|
dispatch(resetFilters(enrichedFilters));
|
|
41546
41734
|
setInitialFilters(enrichedFilters);
|
|
41547
41735
|
setInitialFiltersSet(true);
|
|
41548
41736
|
}
|
|
41549
|
-
dispatch(setResults(
|
|
41737
|
+
dispatch(setResults(packageSearchResults));
|
|
41738
|
+
initialFilteredResults = applyFilters(packageSearchResults, filters);
|
|
41739
|
+
dispatch(setFilteredResults(initialFilteredResults));
|
|
41550
41740
|
if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
|
|
41551
41741
|
if (entryId) {
|
|
41552
41742
|
matching = packageSearchResults.find(function (r) {
|
|
@@ -41556,13 +41746,13 @@ var SearchResultsContainer = function () {
|
|
|
41556
41746
|
dispatch(setSelectedHotel(matching.productId));
|
|
41557
41747
|
}
|
|
41558
41748
|
} else {
|
|
41559
|
-
dispatch(setSelectedHotel((
|
|
41749
|
+
dispatch(setSelectedHotel((_b = packageSearchResults[0]) === null || _b === void 0 ? void 0 : _b.productId));
|
|
41560
41750
|
}
|
|
41561
41751
|
}
|
|
41562
41752
|
dispatch(setIsLoading(false));
|
|
41563
41753
|
return [3 /*break*/, 7];
|
|
41564
41754
|
case 6:
|
|
41565
|
-
err_1 =
|
|
41755
|
+
err_1 = _c.sent();
|
|
41566
41756
|
console.error('Search failed', err_1);
|
|
41567
41757
|
dispatch(setIsLoading(false));
|
|
41568
41758
|
return [3 /*break*/, 7];
|
|
@@ -41575,13 +41765,14 @@ var SearchResultsContainer = function () {
|
|
|
41575
41765
|
if (!(context === null || context === void 0 ? void 0 : context.showMockup)) {
|
|
41576
41766
|
if (
|
|
41577
41767
|
(context === null || context === void 0 ? void 0 : context.type) === 'hotel-flight' ||
|
|
41578
|
-
(context === null || context === void 0 ? void 0 : context.type) === 'hotel'
|
|
41768
|
+
(context === null || context === void 0 ? void 0 : context.type) === 'hotel' ||
|
|
41769
|
+
(context === null || context === void 0 ? void 0 : context.type) === 'groupTour'
|
|
41579
41770
|
) {
|
|
41580
|
-
|
|
41771
|
+
runSearch();
|
|
41581
41772
|
}
|
|
41582
41773
|
}
|
|
41583
41774
|
},
|
|
41584
|
-
[location.search
|
|
41775
|
+
[location.search]
|
|
41585
41776
|
);
|
|
41586
41777
|
// Seperate detailsCall
|
|
41587
41778
|
React.useEffect(
|
|
@@ -41682,6 +41873,13 @@ var SearchResultsContainer = function () {
|
|
|
41682
41873
|
},
|
|
41683
41874
|
[selectedHotelId]
|
|
41684
41875
|
);
|
|
41876
|
+
React.useEffect(
|
|
41877
|
+
function () {
|
|
41878
|
+
var filteredResults = applyFilters(results, filters);
|
|
41879
|
+
dispatch(setFilteredResults(filteredResults));
|
|
41880
|
+
},
|
|
41881
|
+
[filters, results]
|
|
41882
|
+
);
|
|
41685
41883
|
return React__default['default'].createElement(
|
|
41686
41884
|
'div',
|
|
41687
41885
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -41706,23 +41904,20 @@ var SearchResultsContainer = function () {
|
|
|
41706
41904
|
}
|
|
41707
41905
|
})
|
|
41708
41906
|
),
|
|
41709
|
-
(context.type === 'hotel-flight' || context.type === 'hotel' || context.type === 'roundTrip') &&
|
|
41907
|
+
(context.type === 'hotel-flight' || context.type === 'hotel' || context.type === 'groupTour' || context.type === 'roundTrip') &&
|
|
41710
41908
|
React__default['default'].createElement(
|
|
41711
41909
|
React__default['default'].Fragment,
|
|
41712
41910
|
null,
|
|
41713
41911
|
context.type != 'hotel-flight' &&
|
|
41714
41912
|
context.showFilters &&
|
|
41715
41913
|
React__default['default'].createElement(Filters, {
|
|
41914
|
+
initialFilters: initialFilters,
|
|
41716
41915
|
filters: filters,
|
|
41717
41916
|
isOpen: filtersOpen,
|
|
41718
41917
|
handleSetIsOpen: function () {
|
|
41719
41918
|
return setFiltersOpen(!filtersOpen);
|
|
41720
41919
|
},
|
|
41721
|
-
handleApplyFilters
|
|
41722
|
-
return setSearchTrigger(function (prev) {
|
|
41723
|
-
return prev + 1;
|
|
41724
|
-
});
|
|
41725
|
-
},
|
|
41920
|
+
// handleApplyFilters={() => setSearchTrigger((prev) => prev + 1)}
|
|
41726
41921
|
isLoading: isLoading
|
|
41727
41922
|
}),
|
|
41728
41923
|
context.type === 'hotel-flight' &&
|
|
@@ -41790,7 +41985,7 @@ var SearchResultsContainer = function () {
|
|
|
41790
41985
|
React__default['default'].createElement(
|
|
41791
41986
|
React__default['default'].Fragment,
|
|
41792
41987
|
null,
|
|
41793
|
-
(
|
|
41988
|
+
(filteredResults === null || filteredResults === void 0 ? void 0 : filteredResults.length) && filteredResults.length,
|
|
41794
41989
|
' ',
|
|
41795
41990
|
translations.SRP.TOTAL_RESULTS_LABEL
|
|
41796
41991
|
)
|
|
@@ -41816,6 +42011,7 @@ var SearchResultsContainer = function () {
|
|
|
41816
42011
|
{ className: 'search__results__wrapper' },
|
|
41817
42012
|
context.showTabViews && React__default['default'].createElement(TabViews, null),
|
|
41818
42013
|
context.showRoundTripResults && context.showMockup && React__default['default'].createElement(RoundTripResults, null),
|
|
42014
|
+
context.type === 'groupTour' && React__default['default'].createElement(GroupTourResults, { isLoading: isLoading }),
|
|
41819
42015
|
context.type === 'hotel-flight' &&
|
|
41820
42016
|
context.showFlightResults &&
|
|
41821
42017
|
(bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) &&
|
|
@@ -41823,8 +42019,7 @@ var SearchResultsContainer = function () {
|
|
|
41823
42019
|
flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights,
|
|
41824
42020
|
isDeparture: true
|
|
41825
42021
|
}),
|
|
41826
|
-
context.showHotelAccommodationResults &&
|
|
41827
|
-
React__default['default'].createElement(HotelAccommodationResults, { isLoading: isLoading, context: context }),
|
|
42022
|
+
context.showHotelAccommodationResults && React__default['default'].createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
41828
42023
|
context.type === 'hotel-flight' &&
|
|
41829
42024
|
context.showFlightResults &&
|
|
41830
42025
|
(bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) &&
|