@qite/tide-booking-component 1.4.33 → 1.4.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/build/build-cjs/index.js +1674 -416
  2. package/build/build-cjs/qsm/types.d.ts +0 -1
  3. package/build/build-cjs/search-results/components/filters/filters.d.ts +2 -2
  4. package/build/build-cjs/search-results/components/flight/flight-results.d.ts +2 -0
  5. package/build/build-cjs/search-results/components/hotel/hotel-card.d.ts +1 -0
  6. package/build/build-cjs/search-results/components/itinerary/index.d.ts +2 -2
  7. package/build/build-cjs/search-results/store/search-results-slice.d.ts +11 -2
  8. package/build/build-cjs/search-results/types.d.ts +0 -14
  9. package/build/build-esm/index.js +1674 -416
  10. package/build/build-esm/qsm/types.d.ts +0 -1
  11. package/build/build-esm/search-results/components/filters/filters.d.ts +2 -2
  12. package/build/build-esm/search-results/components/flight/flight-results.d.ts +2 -0
  13. package/build/build-esm/search-results/components/hotel/hotel-card.d.ts +1 -0
  14. package/build/build-esm/search-results/components/itinerary/index.d.ts +2 -2
  15. package/build/build-esm/search-results/store/search-results-slice.d.ts +11 -2
  16. package/build/build-esm/search-results/types.d.ts +0 -14
  17. package/package.json +77 -77
  18. package/src/booking-product/components/product.tsx +26 -22
  19. package/src/booking-wizard/features/booking/booking-self-contained.tsx +303 -304
  20. package/src/booking-wizard/features/travelers-form/controls/gender-control.tsx +5 -5
  21. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +10 -10
  22. package/src/content/components/icon.tsx +1 -1
  23. package/src/content/features/content-page/content-page-self-contained.tsx +0 -1
  24. package/src/qsm/components/QSMContainer/qsm-container.tsx +217 -218
  25. package/src/qsm/components/mobile-filter-modal/index.tsx +12 -10
  26. package/src/qsm/components/travel-class-picker/index.tsx +5 -3
  27. package/src/qsm/components/travel-input/index.tsx +15 -12
  28. package/src/qsm/components/travel-input-group/index.tsx +14 -3
  29. package/src/qsm/components/travel-nationality-picker/index.tsx +5 -3
  30. package/src/qsm/components/travel-type-picker/index.tsx +5 -3
  31. package/src/qsm/qsm-configuration-context.ts +0 -1
  32. package/src/qsm/store/qsm-slice.ts +261 -261
  33. package/src/qsm/types.ts +144 -145
  34. package/src/search-results/components/filters/filters.tsx +15 -16
  35. package/src/search-results/components/flight/flight-results.tsx +168 -1099
  36. package/src/search-results/components/hotel/hotel-accommodation-results.tsx +21 -24
  37. package/src/search-results/components/hotel/hotel-card.tsx +4 -3
  38. package/src/search-results/components/icon.tsx +1 -1
  39. package/src/search-results/components/itinerary/index.tsx +229 -129
  40. package/src/search-results/components/round-trip/round-trip-results.tsx +1 -1
  41. package/src/search-results/components/search-results-container/search-results-container.tsx +353 -337
  42. package/src/search-results/components/spinner/spinner.tsx +3 -1
  43. package/src/search-results/components/tab-views/index.tsx +13 -7
  44. package/src/search-results/features/flights/flight-search-results-self-contained.tsx +1 -14
  45. package/src/search-results/features/hotels/hotel-search-results-self-contained.tsx +1 -14
  46. package/src/search-results/store/search-results-slice.ts +37 -3
  47. package/src/search-results/types.ts +0 -15
  48. package/src/shared/translations/ar-SA.json +70 -0
  49. package/src/shared/translations/da-DK.json +70 -0
  50. package/src/shared/translations/de-DE.json +70 -0
  51. package/src/shared/translations/en-GB.json +71 -1
  52. package/src/shared/translations/es-ES.json +70 -0
  53. package/src/shared/translations/fr-BE.json +71 -1
  54. package/src/shared/translations/fr-FR.json +70 -0
  55. package/src/shared/translations/is-IS.json +72 -2
  56. package/src/shared/translations/it-IT.json +70 -0
  57. package/src/shared/translations/ja-JP.json +72 -2
  58. package/src/shared/translations/nl-BE.json +70 -0
  59. package/src/shared/translations/nl-NL.json +70 -0
  60. package/src/shared/translations/no-NO.json +72 -2
  61. package/src/shared/translations/pl-PL.json +70 -0
  62. package/src/shared/translations/pt-PT.json +70 -0
  63. package/src/shared/translations/sv-SE.json +72 -2
  64. package/styles/components/_search.scss +7 -1
@@ -237,8 +237,11 @@ var TRAVELERS_FORM$f = {
237
237
  CHILD: "طفل",
238
238
  CHILDREN: "أطفال",
239
239
  GENDER: "اللقب",
240
+ GENDER_ID: "الجنس حسب جواز السفر/بطاقة الهوية",
240
241
  MALE: "السيد",
242
+ MALE_GENDER: "ذكر",
241
243
  FEMALE: "السيدة",
244
+ FEMALE_GENDER: "أنثى",
242
245
  OTHER: "آخر",
243
246
  MAIN_BOOKER: "الحاجز الرئيسي",
244
247
  FIRST_NAME: "الاسم الأول",
@@ -349,6 +352,73 @@ var PRINT_OFFER_BUTTON$f = {
349
352
  LABEL_CREATING: "جارٍ إنشاء العرض…",
350
353
  LABEL_PRINTING: "جارٍ إنشاء ملف PDF…"
351
354
  };
355
+ var QSM$g = {
356
+ MULTIDESTINATION: "وجهات متعددة",
357
+ PACKAGES: "باقات",
358
+ TRANSPORT_HOTEL: "النقل + الفندق",
359
+ ACCOMMODATION: "الإقامة",
360
+ TRANSPORTS: "وسائل النقل",
361
+ TICKET_ONLY: "تذكرة فقط",
362
+ RENT_A_CAR: "تأجير سيارة",
363
+ TRANSFERS: "خدمات النقل",
364
+ CRUISES: "رحلات بحرية",
365
+ ONE_ACCOMMODATION: "إقامة واحدة",
366
+ MULTIPLE_ACCOMMODATIONS: "إقامات متعددة",
367
+ TRAVEL_CLASS_LABEL: "درجة السفر",
368
+ TRAVEL_CLASS_PLACEHOLDER: "اختر درجة السفر",
369
+ TRAVEL_TYPE_LABEL: "نوع السفر",
370
+ TRAVEL_TYPE_PLACEHOLDER: "اختر نوع السفر",
371
+ NATIONALITY_LABEL: "الجنسية",
372
+ NATIONALITY_PLACEHOLDER: "اختر الجنسية",
373
+ TRAVELERS_LABEL: "من المسافر؟",
374
+ ADD_ROOM: "إضافة غرفة",
375
+ REMOVE_ROOM: "إزالة غرفة",
376
+ MAX_TRAVELERS_REACHED: "لقد وصلت إلى الحد الأقصى لعدد المسافرين",
377
+ ADULTS: "البالغون",
378
+ CHILDREN: "الأطفال",
379
+ BABIES: "الرضع",
380
+ CHOOSE_DATES: "اختر التواريخ",
381
+ DEPARTURE_DATE: "تاريخ المغادرة",
382
+ RETURN_DATE: "تاريخ العودة",
383
+ CONFIRM: "تأكيد",
384
+ TRAVELERS: "المسافرون"
385
+ };
386
+ var SRP$f = {
387
+ NO_RESULTS: "لم يتم العثور على نتائج.",
388
+ TOTAL_RESULTS_LABEL: "تم العثور على باقات",
389
+ RESET: "إعادة تعيين",
390
+ LUGGAGEINCLUDED: "الأمتعة مشمولة",
391
+ CANCEL: "إلغاء",
392
+ APPLY: "تطبيق",
393
+ LOADING: "جارٍ التحميل...",
394
+ SEARCHRESULTCTA: "عرض التفاصيل",
395
+ SORTBY: "ترتيب حسب",
396
+ PRICE_ASC: "السعر (من الأقل إلى الأعلى)",
397
+ PRICE_DESC: "السعر (من الأعلى إلى الأقل)",
398
+ DEPARTURE_ASC: "تاريخ المغادرة (الأقرب أولاً)",
399
+ FILTERS: "عوامل التصفية",
400
+ SHOW_ITINERARY: "عرض خط سير الرحلة",
401
+ ITINERARY_TITLE: "ملخص رحلتك",
402
+ DOSSIER_NUMBER: "رقم الملف",
403
+ PACKAGE_PRICE_PER_PERSON: "سعر الباقة للشخص الواحد",
404
+ TOTAL: "الإجمالي",
405
+ DAY_BY_DAY: "رحلتك يوماً بيوم",
406
+ START: "البداية",
407
+ END: "النهاية",
408
+ EXTENDED: "موسع",
409
+ COMPACT: "مضغوط",
410
+ LIST: "قائمة",
411
+ SELECT: "اختيار",
412
+ DEPARTURE: "المغادرة",
413
+ RETURN: "العودة",
414
+ DIRECT: "مباشر",
415
+ STOPS: "محطات",
416
+ STOP: "محطة",
417
+ STOP_TIME: "مدة التوقف",
418
+ ACCOMMODATION: "الإقامة",
419
+ VIEW_DETAILS: "عرض التفاصيل",
420
+ NIGHTS: "ليالٍ"
421
+ };
352
422
  var arJson = {
353
423
  STEPS: STEPS$f,
354
424
  INPUT: INPUT$f,
@@ -363,7 +433,9 @@ var arJson = {
363
433
  SUMMARY: SUMMARY$f,
364
434
  CONFIRMATION: CONFIRMATION$f,
365
435
  ERROR: ERROR$f,
366
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$f
436
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$f,
437
+ QSM: QSM$g,
438
+ SRP: SRP$f
367
439
  };
368
440
 
369
441
  var STEPS$e = {
@@ -501,8 +573,11 @@ var TRAVELERS_FORM$e = {
501
573
  CHILD: "barn",
502
574
  CHILDREN: "børn",
503
575
  GENDER: "Tiltaleform",
576
+ GENDER_ID: "Køn ifølge pas/ID-kort",
504
577
  MALE: "Hr.",
578
+ MALE_GENDER: "Mand",
505
579
  FEMALE: "Fr.",
580
+ FEMALE_GENDER: "Kvinde",
506
581
  OTHER: "Andet",
507
582
  MAIN_BOOKER: "Hovedbooker",
508
583
  FIRST_NAME: "Fornavn",
@@ -613,6 +688,73 @@ var PRINT_OFFER_BUTTON$e = {
613
688
  LABEL_CREATING: "Genererer tilbud…",
614
689
  LABEL_PRINTING: "Genererer PDF…"
615
690
  };
691
+ var QSM$f = {
692
+ MULTIDESTINATION: "Flere destinationer",
693
+ PACKAGES: "Pakkerejser",
694
+ TRANSPORT_HOTEL: "Transport + hotel",
695
+ ACCOMMODATION: "Indkvartering",
696
+ TRANSPORTS: "Transport",
697
+ TICKET_ONLY: "Kun billet",
698
+ RENT_A_CAR: "Lej en bil",
699
+ TRANSFERS: "Transportservice",
700
+ CRUISES: "Krydstogter",
701
+ ONE_ACCOMMODATION: "Én indkvartering",
702
+ MULTIPLE_ACCOMMODATIONS: "Flere indkvarteringer",
703
+ TRAVEL_CLASS_LABEL: "Rejseklasse",
704
+ TRAVEL_CLASS_PLACEHOLDER: "Vælg rejseklasse",
705
+ TRAVEL_TYPE_LABEL: "Rejsetype",
706
+ TRAVEL_TYPE_PLACEHOLDER: "Vælg rejsetype",
707
+ NATIONALITY_LABEL: "Nationalitet",
708
+ NATIONALITY_PLACEHOLDER: "Vælg nationalitet",
709
+ TRAVELERS_LABEL: "Hvem rejser?",
710
+ ADD_ROOM: "Tilføj værelse",
711
+ REMOVE_ROOM: "Fjern værelse",
712
+ MAX_TRAVELERS_REACHED: "Du har nået det maksimale antal rejsende",
713
+ ADULTS: "Voksne",
714
+ CHILDREN: "Børn",
715
+ BABIES: "Spædbørn",
716
+ CHOOSE_DATES: "Vælg datoer",
717
+ DEPARTURE_DATE: "Afrejsedato",
718
+ RETURN_DATE: "Hjemrejsedato",
719
+ CONFIRM: "Bekræft",
720
+ TRAVELERS: "Rejsende"
721
+ };
722
+ var SRP$e = {
723
+ NO_RESULTS: "Ingen resultater fundet.",
724
+ TOTAL_RESULTS_LABEL: "Fundne pakker",
725
+ RESET: "Nulstil",
726
+ LUGGAGEINCLUDED: "Bagage inkluderet",
727
+ CANCEL: "Annuller",
728
+ APPLY: "Anvend",
729
+ LOADING: "Indlæser...",
730
+ SEARCHRESULTCTA: "Se detaljer",
731
+ SORTBY: "Sorter efter",
732
+ PRICE_ASC: "Pris (lav til høj)",
733
+ PRICE_DESC: "Pris (høj til lav)",
734
+ DEPARTURE_ASC: "Afrejsedato (snarest først)",
735
+ FILTERS: "Filtre",
736
+ SHOW_ITINERARY: "Vis rejseplan",
737
+ ITINERARY_TITLE: "Din rejseoversigt",
738
+ DOSSIER_NUMBER: "Sagsnummer",
739
+ PACKAGE_PRICE_PER_PERSON: "pakkepris pr. person",
740
+ TOTAL: "i alt",
741
+ DAY_BY_DAY: "Din rejse dag for dag",
742
+ START: "start",
743
+ END: "slut",
744
+ EXTENDED: "Udvidet",
745
+ COMPACT: "Kompakt",
746
+ LIST: "Liste",
747
+ SELECT: "Vælg",
748
+ DEPARTURE: "Afrejse",
749
+ RETURN: "Hjemrejse",
750
+ DIRECT: "Direkte",
751
+ STOPS: "stop",
752
+ STOP: "stop",
753
+ STOP_TIME: "Skiftetid",
754
+ ACCOMMODATION: "Indkvartering",
755
+ VIEW_DETAILS: "Se detaljer",
756
+ NIGHTS: "nætter"
757
+ };
616
758
  var daJson = {
617
759
  STEPS: STEPS$e,
618
760
  INPUT: INPUT$e,
@@ -627,7 +769,9 @@ var daJson = {
627
769
  SUMMARY: SUMMARY$e,
628
770
  CONFIRMATION: CONFIRMATION$e,
629
771
  ERROR: ERROR$e,
630
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$e
772
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$e,
773
+ QSM: QSM$f,
774
+ SRP: SRP$e
631
775
  };
632
776
 
633
777
  var STEPS$d = {
@@ -765,8 +909,11 @@ var TRAVELERS_FORM$d = {
765
909
  CHILD: "Kind",
766
910
  CHILDREN: "Kinder",
767
911
  GENDER: "Anrede",
912
+ GENDER_ID: "Geschlecht laut Reisepass/Personalausweis",
768
913
  MALE: "Herr",
914
+ MALE_GENDER: "Männlich",
769
915
  FEMALE: "Frau",
916
+ FEMALE_GENDER: "Weiblich",
770
917
  OTHER: "Andere",
771
918
  MAIN_BOOKER: "Hauptbucher",
772
919
  FIRST_NAME: "Vorname",
@@ -877,6 +1024,73 @@ var PRINT_OFFER_BUTTON$d = {
877
1024
  LABEL_CREATING: "Angebot wird erstellt…",
878
1025
  LABEL_PRINTING: "PDF wird erstellt…"
879
1026
  };
1027
+ var QSM$e = {
1028
+ MULTIDESTINATION: "Mehrere Reiseziele",
1029
+ PACKAGES: "Reisepakete",
1030
+ TRANSPORT_HOTEL: "Transport + Hotel",
1031
+ ACCOMMODATION: "Unterkunft",
1032
+ TRANSPORTS: "Transport",
1033
+ TICKET_ONLY: "Nur Ticket",
1034
+ RENT_A_CAR: "Mietwagen",
1035
+ TRANSFERS: "Transfers",
1036
+ CRUISES: "Kreuzfahrten",
1037
+ ONE_ACCOMMODATION: "Eine Unterkunft",
1038
+ MULTIPLE_ACCOMMODATIONS: "Mehrere Unterkünfte",
1039
+ TRAVEL_CLASS_LABEL: "Reiseklasse",
1040
+ TRAVEL_CLASS_PLACEHOLDER: "Reiseklasse auswählen",
1041
+ TRAVEL_TYPE_LABEL: "Reiseart",
1042
+ TRAVEL_TYPE_PLACEHOLDER: "Reiseart auswählen",
1043
+ NATIONALITY_LABEL: "Staatsangehörigkeit",
1044
+ NATIONALITY_PLACEHOLDER: "Staatsangehörigkeit auswählen",
1045
+ TRAVELERS_LABEL: "Wer reist?",
1046
+ ADD_ROOM: "Zimmer hinzufügen",
1047
+ REMOVE_ROOM: "Zimmer entfernen",
1048
+ MAX_TRAVELERS_REACHED: "Sie haben die maximale Anzahl an Reisenden erreicht",
1049
+ ADULTS: "Erwachsene",
1050
+ CHILDREN: "Kinder",
1051
+ BABIES: "Babys",
1052
+ CHOOSE_DATES: "Daten auswählen",
1053
+ DEPARTURE_DATE: "Abreisedatum",
1054
+ RETURN_DATE: "Rückreisedatum",
1055
+ CONFIRM: "Bestätigen",
1056
+ TRAVELERS: "Reisende"
1057
+ };
1058
+ var SRP$d = {
1059
+ NO_RESULTS: "Keine Ergebnisse gefunden.",
1060
+ TOTAL_RESULTS_LABEL: "Gefundene Pakete",
1061
+ RESET: "Zurücksetzen",
1062
+ LUGGAGEINCLUDED: "Gepäck inklusive",
1063
+ CANCEL: "Abbrechen",
1064
+ APPLY: "Anwenden",
1065
+ LOADING: "Wird geladen...",
1066
+ SEARCHRESULTCTA: "Details anzeigen",
1067
+ SORTBY: "Sortieren nach",
1068
+ PRICE_ASC: "Preis (aufsteigend)",
1069
+ PRICE_DESC: "Preis (absteigend)",
1070
+ DEPARTURE_ASC: "Abreisedatum (früheste zuerst)",
1071
+ FILTERS: "Filter",
1072
+ SHOW_ITINERARY: "Reiseverlauf anzeigen",
1073
+ ITINERARY_TITLE: "Ihre Reiseübersicht",
1074
+ DOSSIER_NUMBER: "Vorgangsnummer",
1075
+ PACKAGE_PRICE_PER_PERSON: "Paketpreis pro Person",
1076
+ TOTAL: "Gesamt",
1077
+ DAY_BY_DAY: "Ihre Reise Tag für Tag",
1078
+ START: "Start",
1079
+ END: "Ende",
1080
+ EXTENDED: "Erweitert",
1081
+ COMPACT: "Kompakt",
1082
+ LIST: "Liste",
1083
+ SELECT: "Auswählen",
1084
+ DEPARTURE: "Abreise",
1085
+ RETURN: "Rückreise",
1086
+ DIRECT: "Direkt",
1087
+ STOPS: "Stopps",
1088
+ STOP: "Stopp",
1089
+ STOP_TIME: "Umsteigezeit",
1090
+ ACCOMMODATION: "Unterkunft",
1091
+ VIEW_DETAILS: "Details anzeigen",
1092
+ NIGHTS: "Nächte"
1093
+ };
880
1094
  var deJson = {
881
1095
  STEPS: STEPS$d,
882
1096
  INPUT: INPUT$d,
@@ -891,7 +1105,9 @@ var deJson = {
891
1105
  SUMMARY: SUMMARY$d,
892
1106
  CONFIRMATION: CONFIRMATION$d,
893
1107
  ERROR: ERROR$d,
894
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$d
1108
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$d,
1109
+ QSM: QSM$e,
1110
+ SRP: SRP$d
895
1111
  };
896
1112
 
897
1113
  var STEPS$c = {
@@ -1030,8 +1246,11 @@ var TRAVELERS_FORM$c = {
1030
1246
  CHILD: "child",
1031
1247
  CHILDREN: "children",
1032
1248
  GENDER: "Salutation",
1249
+ GENDER_ID: "Gender according to passport/ID card",
1033
1250
  MALE: "Mr.",
1034
- FEMALE: "Mrs.",
1251
+ MALE_GENDER: "Male",
1252
+ FEMALE: "Ms.",
1253
+ FEMALE_GENDER: "Female",
1035
1254
  OTHER: "Other",
1036
1255
  MAIN_BOOKER: "Main booker",
1037
1256
  FIRST_NAME: "First name",
@@ -1145,6 +1364,73 @@ var PRINT_OFFER_BUTTON$c = {
1145
1364
  LABEL_CREATING: "Generating offer…",
1146
1365
  LABEL_PRINTING: "Generating PDF…"
1147
1366
  };
1367
+ var QSM$d = {
1368
+ MULTIDESTINATION: "Multidestination",
1369
+ PACKAGES: "Packages",
1370
+ TRANSPORT_HOTEL: "Transport + hotel",
1371
+ ACCOMMODATION: "Accommodation",
1372
+ TRANSPORTS: "Transports",
1373
+ TICKET_ONLY: "Ticket Only",
1374
+ RENT_A_CAR: "Rent a car",
1375
+ TRANSFERS: "Transfers",
1376
+ CRUISES: "Cruises",
1377
+ ONE_ACCOMMODATION: "One accommodation",
1378
+ MULTIPLE_ACCOMMODATIONS: "Multiple accommodations",
1379
+ TRAVEL_CLASS_LABEL: "Travel class",
1380
+ TRAVEL_CLASS_PLACEHOLDER: "Select travel class",
1381
+ TRAVEL_TYPE_LABEL: "Travel type",
1382
+ TRAVEL_TYPE_PLACEHOLDER: "Select travel type",
1383
+ NATIONALITY_LABEL: "Nationality",
1384
+ NATIONALITY_PLACEHOLDER: "Select nationality",
1385
+ TRAVELERS_LABEL: "Who is traveling?",
1386
+ ADD_ROOM: "Add room",
1387
+ REMOVE_ROOM: "Remove room",
1388
+ MAX_TRAVELERS_REACHED: "You have reached the maximum number of travelers",
1389
+ ADULTS: "Adults",
1390
+ CHILDREN: "Children",
1391
+ BABIES: "Babies",
1392
+ CHOOSE_DATES: "Choose dates",
1393
+ DEPARTURE_DATE: "Departure date",
1394
+ RETURN_DATE: "Return date",
1395
+ CONFIRM: "Confirm",
1396
+ TRAVELERS: "Travelers"
1397
+ };
1398
+ var SRP$c = {
1399
+ NO_RESULTS: "No results found.",
1400
+ TOTAL_RESULTS_LABEL: "Packages found",
1401
+ RESET: "Reset",
1402
+ LUGGAGEINCLUDED: "Luggage included",
1403
+ CANCEL: "Cancel",
1404
+ APPLY: "Apply",
1405
+ LOADING: "Loading...",
1406
+ SEARCHRESULTCTA: "View details",
1407
+ SORTBY: "Sort by",
1408
+ PRICE_ASC: "Price (low to high)",
1409
+ PRICE_DESC: "Price (high to low)",
1410
+ DEPARTURE_ASC: "Departure date (soonest first)",
1411
+ FILTERS: "Filters",
1412
+ SHOW_ITINERARY: "Show itinerary",
1413
+ ITINERARY_TITLE: "Your trip summary",
1414
+ DOSSIER_NUMBER: "File number",
1415
+ PACKAGE_PRICE_PER_PERSON: "package price per person",
1416
+ TOTAL: "total",
1417
+ DAY_BY_DAY: "Your trip day by day",
1418
+ START: "start",
1419
+ END: "end",
1420
+ EXTENDED: "Extended",
1421
+ COMPACT: "Compact",
1422
+ LIST: "List",
1423
+ SELECT: "Select",
1424
+ DEPARTURE: "Departure",
1425
+ RETURN: "Return",
1426
+ DIRECT: "Direct",
1427
+ STOPS: "stops",
1428
+ STOP: "stop",
1429
+ STOP_TIME: "Change time",
1430
+ ACCOMMODATION: "Accommodation",
1431
+ VIEW_DETAILS: "View details",
1432
+ NIGHTS: "nights"
1433
+ };
1148
1434
  var enJson = {
1149
1435
  STEPS: STEPS$c,
1150
1436
  INPUT: INPUT$c,
@@ -1159,7 +1445,9 @@ var enJson = {
1159
1445
  SUMMARY: SUMMARY$c,
1160
1446
  CONFIRMATION: CONFIRMATION$c,
1161
1447
  ERROR: ERROR$c,
1162
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$c
1448
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$c,
1449
+ QSM: QSM$d,
1450
+ SRP: SRP$c
1163
1451
  };
1164
1452
 
1165
1453
  var STEPS$b = {
@@ -1297,8 +1585,11 @@ var TRAVELERS_FORM$b = {
1297
1585
  CHILD: "niño",
1298
1586
  CHILDREN: "niños",
1299
1587
  GENDER: "Tratamiento",
1588
+ GENDER_ID: "Sexo según pasaporte/documento de identidad",
1300
1589
  MALE: "Sr.",
1590
+ MALE_GENDER: "Hombre",
1301
1591
  FEMALE: "Sra.",
1592
+ FEMALE_GENDER: "Mujer",
1302
1593
  OTHER: "Otro",
1303
1594
  MAIN_BOOKER: "Titular de la reserva",
1304
1595
  FIRST_NAME: "Nombre",
@@ -1409,6 +1700,73 @@ var PRINT_OFFER_BUTTON$b = {
1409
1700
  LABEL_CREATING: "Generando presupuesto…",
1410
1701
  LABEL_PRINTING: "Generando PDF…"
1411
1702
  };
1703
+ var QSM$c = {
1704
+ MULTIDESTINATION: "Multidestino",
1705
+ PACKAGES: "Paquetes",
1706
+ TRANSPORT_HOTEL: "Transporte + hotel",
1707
+ ACCOMMODATION: "Alojamiento",
1708
+ TRANSPORTS: "Transportes",
1709
+ TICKET_ONLY: "Solo billete",
1710
+ RENT_A_CAR: "Alquilar un coche",
1711
+ TRANSFERS: "Traslados",
1712
+ CRUISES: "Cruceros",
1713
+ ONE_ACCOMMODATION: "Un alojamiento",
1714
+ MULTIPLE_ACCOMMODATIONS: "Varios alojamientos",
1715
+ TRAVEL_CLASS_LABEL: "Clase de viaje",
1716
+ TRAVEL_CLASS_PLACEHOLDER: "Selecciona clase de viaje",
1717
+ TRAVEL_TYPE_LABEL: "Tipo de viaje",
1718
+ TRAVEL_TYPE_PLACEHOLDER: "Selecciona tipo de viaje",
1719
+ NATIONALITY_LABEL: "Nacionalidad",
1720
+ NATIONALITY_PLACEHOLDER: "Selecciona nacionalidad",
1721
+ TRAVELERS_LABEL: "¿Quién viaja?",
1722
+ ADD_ROOM: "Añadir habitación",
1723
+ REMOVE_ROOM: "Eliminar habitación",
1724
+ MAX_TRAVELERS_REACHED: "Has alcanzado el número máximo de viajeros",
1725
+ ADULTS: "Adultos",
1726
+ CHILDREN: "Niños",
1727
+ BABIES: "Bebés",
1728
+ CHOOSE_DATES: "Selecciona fechas",
1729
+ DEPARTURE_DATE: "Fecha de salida",
1730
+ RETURN_DATE: "Fecha de regreso",
1731
+ CONFIRM: "Confirmar",
1732
+ TRAVELERS: "Viajeros"
1733
+ };
1734
+ var SRP$b = {
1735
+ NO_RESULTS: "No se han encontrado resultados.",
1736
+ TOTAL_RESULTS_LABEL: "Paquetes encontrados",
1737
+ RESET: "Restablecer",
1738
+ LUGGAGEINCLUDED: "Equipaje incluido",
1739
+ CANCEL: "Cancelar",
1740
+ APPLY: "Aplicar",
1741
+ LOADING: "Cargando...",
1742
+ SEARCHRESULTCTA: "Ver detalles",
1743
+ SORTBY: "Ordenar por",
1744
+ PRICE_ASC: "Precio (de menor a mayor)",
1745
+ PRICE_DESC: "Precio (de mayor a menor)",
1746
+ DEPARTURE_ASC: "Fecha de salida (más próxima primero)",
1747
+ FILTERS: "Filtros",
1748
+ SHOW_ITINERARY: "Mostrar itinerario",
1749
+ ITINERARY_TITLE: "Resumen de tu viaje",
1750
+ DOSSIER_NUMBER: "Número de expediente",
1751
+ PACKAGE_PRICE_PER_PERSON: "precio del paquete por persona",
1752
+ TOTAL: "total",
1753
+ DAY_BY_DAY: "Tu viaje día a día",
1754
+ START: "inicio",
1755
+ END: "fin",
1756
+ EXTENDED: "Extendido",
1757
+ COMPACT: "Compacto",
1758
+ LIST: "Lista",
1759
+ SELECT: "Seleccionar",
1760
+ DEPARTURE: "Salida",
1761
+ RETURN: "Regreso",
1762
+ DIRECT: "Directo",
1763
+ STOPS: "escalas",
1764
+ STOP: "escala",
1765
+ STOP_TIME: "Tiempo de escala",
1766
+ ACCOMMODATION: "Alojamiento",
1767
+ VIEW_DETAILS: "Ver detalles",
1768
+ NIGHTS: "noches"
1769
+ };
1412
1770
  var esJson = {
1413
1771
  STEPS: STEPS$b,
1414
1772
  INPUT: INPUT$b,
@@ -1423,7 +1781,9 @@ var esJson = {
1423
1781
  SUMMARY: SUMMARY$b,
1424
1782
  CONFIRMATION: CONFIRMATION$b,
1425
1783
  ERROR: ERROR$b,
1426
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$b
1784
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$b,
1785
+ QSM: QSM$c,
1786
+ SRP: SRP$b
1427
1787
  };
1428
1788
 
1429
1789
  var STEPS$a = {
@@ -1561,9 +1921,12 @@ var TRAVELERS_FORM$a = {
1561
1921
  ADULTS: "adultes",
1562
1922
  CHILD: "enfant",
1563
1923
  CHILDREN: "enfants",
1564
- GENDER: "Titre",
1924
+ GENDER: "Civilité",
1925
+ GENDER_ID: "Sexe selon passeport/carte d'identité",
1565
1926
  MALE: "Monsieur",
1927
+ MALE_GENDER: "Homme",
1566
1928
  FEMALE: "Madame",
1929
+ FEMALE_GENDER: "Femme",
1567
1930
  OTHER: "Autre",
1568
1931
  MAIN_BOOKER: "Principal réservant",
1569
1932
  FIRST_NAME: "Prénom",
@@ -1677,6 +2040,73 @@ var PRINT_OFFER_BUTTON$a = {
1677
2040
  LABEL_CREATING: "Génération du devis…",
1678
2041
  LABEL_PRINTING: "Génération du PDF…"
1679
2042
  };
2043
+ var QSM$b = {
2044
+ MULTIDESTINATION: "Multi-destinations",
2045
+ PACKAGES: "Forfaits",
2046
+ TRANSPORT_HOTEL: "Transport + hôtel",
2047
+ ACCOMMODATION: "Hébergement",
2048
+ TRANSPORTS: "Transports",
2049
+ TICKET_ONLY: "Billet uniquement",
2050
+ RENT_A_CAR: "Location de voiture",
2051
+ TRANSFERS: "Transferts",
2052
+ CRUISES: "Croisières",
2053
+ ONE_ACCOMMODATION: "Un hébergement",
2054
+ MULTIPLE_ACCOMMODATIONS: "Plusieurs hébergements",
2055
+ TRAVEL_CLASS_LABEL: "Classe de voyage",
2056
+ TRAVEL_CLASS_PLACEHOLDER: "Sélectionnez la classe",
2057
+ TRAVEL_TYPE_LABEL: "Type de voyage",
2058
+ TRAVEL_TYPE_PLACEHOLDER: "Sélectionnez le type de voyage",
2059
+ NATIONALITY_LABEL: "Nationalité",
2060
+ NATIONALITY_PLACEHOLDER: "Sélectionnez la nationalité",
2061
+ TRAVELERS_LABEL: "Qui voyage ?",
2062
+ ADD_ROOM: "Ajouter une chambre",
2063
+ REMOVE_ROOM: "Supprimer la chambre",
2064
+ MAX_TRAVELERS_REACHED: "Vous avez atteint le nombre maximum de voyageurs",
2065
+ ADULTS: "Adultes",
2066
+ CHILDREN: "Enfants",
2067
+ BABIES: "Bébés",
2068
+ CHOOSE_DATES: "Choisir les dates",
2069
+ DEPARTURE_DATE: "Date de départ",
2070
+ RETURN_DATE: "Date de retour",
2071
+ CONFIRM: "Confirmer",
2072
+ TRAVELERS: "Voyageurs"
2073
+ };
2074
+ var SRP$a = {
2075
+ NO_RESULTS: "Aucun résultat trouvé.",
2076
+ TOTAL_RESULTS_LABEL: "Forfaits trouvés",
2077
+ RESET: "Réinitialiser",
2078
+ LUGGAGEINCLUDED: "Bagages inclus",
2079
+ CANCEL: "Annuler",
2080
+ APPLY: "Appliquer",
2081
+ LOADING: "Chargement...",
2082
+ SEARCHRESULTCTA: "Voir les détails",
2083
+ SORTBY: "Trier par",
2084
+ PRICE_ASC: "Prix (croissant)",
2085
+ PRICE_DESC: "Prix (décroissant)",
2086
+ DEPARTURE_ASC: "Date de départ (la plus proche d’abord)",
2087
+ FILTERS: "Filtres",
2088
+ SHOW_ITINERARY: "Afficher l’itinéraire",
2089
+ ITINERARY_TITLE: "Résumé de votre voyage",
2090
+ DOSSIER_NUMBER: "Numéro de dossier",
2091
+ PACKAGE_PRICE_PER_PERSON: "prix du forfait par personne",
2092
+ TOTAL: "total",
2093
+ DAY_BY_DAY: "Votre voyage jour par jour",
2094
+ START: "début",
2095
+ END: "fin",
2096
+ EXTENDED: "Étendu",
2097
+ COMPACT: "Compact",
2098
+ LIST: "Liste",
2099
+ SELECT: "Sélectionner",
2100
+ DEPARTURE: "Départ",
2101
+ RETURN: "Retour",
2102
+ DIRECT: "Direct",
2103
+ STOPS: "escales",
2104
+ STOP: "escale",
2105
+ STOP_TIME: "Temps d’escale",
2106
+ ACCOMMODATION: "Hébergement",
2107
+ VIEW_DETAILS: "Voir les détails",
2108
+ NIGHTS: "nuits"
2109
+ };
1680
2110
  var frBeJson = {
1681
2111
  STEPS: STEPS$a,
1682
2112
  INPUT: INPUT$a,
@@ -1691,7 +2121,9 @@ var frBeJson = {
1691
2121
  SUMMARY: SUMMARY$a,
1692
2122
  CONFIRMATION: CONFIRMATION$a,
1693
2123
  ERROR: ERROR$a,
1694
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$a
2124
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$a,
2125
+ QSM: QSM$b,
2126
+ SRP: SRP$a
1695
2127
  };
1696
2128
 
1697
2129
  var STEPS$9 = {
@@ -1829,8 +2261,11 @@ var TRAVELERS_FORM$9 = {
1829
2261
  CHILD: "enfant",
1830
2262
  CHILDREN: "enfants",
1831
2263
  GENDER: "Civilité",
2264
+ GENDER_ID: "Sexe selon passeport/carte d'identité",
1832
2265
  MALE: "M.",
2266
+ MALE_GENDER: "Homme",
1833
2267
  FEMALE: "Mme",
2268
+ FEMALE_GENDER: "Femme",
1834
2269
  OTHER: "Autre",
1835
2270
  MAIN_BOOKER: "Titulaire de la réservation",
1836
2271
  FIRST_NAME: "Prénom",
@@ -1941,6 +2376,73 @@ var PRINT_OFFER_BUTTON$9 = {
1941
2376
  LABEL_CREATING: "Génération du devis…",
1942
2377
  LABEL_PRINTING: "Génération du PDF…"
1943
2378
  };
2379
+ var QSM$a = {
2380
+ MULTIDESTINATION: "Multi-destinations",
2381
+ PACKAGES: "Forfaits",
2382
+ TRANSPORT_HOTEL: "Transport + hôtel",
2383
+ ACCOMMODATION: "Hébergement",
2384
+ TRANSPORTS: "Transports",
2385
+ TICKET_ONLY: "Billet uniquement",
2386
+ RENT_A_CAR: "Location de voiture",
2387
+ TRANSFERS: "Transferts",
2388
+ CRUISES: "Croisières",
2389
+ ONE_ACCOMMODATION: "Un hébergement",
2390
+ MULTIPLE_ACCOMMODATIONS: "Plusieurs hébergements",
2391
+ TRAVEL_CLASS_LABEL: "Classe de voyage",
2392
+ TRAVEL_CLASS_PLACEHOLDER: "Sélectionnez la classe",
2393
+ TRAVEL_TYPE_LABEL: "Type de voyage",
2394
+ TRAVEL_TYPE_PLACEHOLDER: "Sélectionnez le type de voyage",
2395
+ NATIONALITY_LABEL: "Nationalité",
2396
+ NATIONALITY_PLACEHOLDER: "Sélectionnez la nationalité",
2397
+ TRAVELERS_LABEL: "Qui voyage ?",
2398
+ ADD_ROOM: "Ajouter une chambre",
2399
+ REMOVE_ROOM: "Supprimer la chambre",
2400
+ MAX_TRAVELERS_REACHED: "Vous avez atteint le nombre maximum de voyageurs",
2401
+ ADULTS: "Adultes",
2402
+ CHILDREN: "Enfants",
2403
+ BABIES: "Bébés",
2404
+ CHOOSE_DATES: "Choisir les dates",
2405
+ DEPARTURE_DATE: "Date de départ",
2406
+ RETURN_DATE: "Date de retour",
2407
+ CONFIRM: "Confirmer",
2408
+ TRAVELERS: "Voyageurs"
2409
+ };
2410
+ var SRP$9 = {
2411
+ NO_RESULTS: "Aucun résultat trouvé.",
2412
+ TOTAL_RESULTS_LABEL: "Forfaits trouvés",
2413
+ RESET: "Réinitialiser",
2414
+ LUGGAGEINCLUDED: "Bagages inclus",
2415
+ CANCEL: "Annuler",
2416
+ APPLY: "Appliquer",
2417
+ LOADING: "Chargement...",
2418
+ SEARCHRESULTCTA: "Voir les détails",
2419
+ SORTBY: "Trier par",
2420
+ PRICE_ASC: "Prix (croissant)",
2421
+ PRICE_DESC: "Prix (décroissant)",
2422
+ DEPARTURE_ASC: "Date de départ (la plus proche d’abord)",
2423
+ FILTERS: "Filtres",
2424
+ SHOW_ITINERARY: "Afficher l’itinéraire",
2425
+ ITINERARY_TITLE: "Résumé de votre voyage",
2426
+ DOSSIER_NUMBER: "Numéro de dossier",
2427
+ PACKAGE_PRICE_PER_PERSON: "prix du forfait par personne",
2428
+ TOTAL: "total",
2429
+ DAY_BY_DAY: "Votre voyage jour par jour",
2430
+ START: "début",
2431
+ END: "fin",
2432
+ EXTENDED: "Étendu",
2433
+ COMPACT: "Compact",
2434
+ LIST: "Liste",
2435
+ SELECT: "Sélectionner",
2436
+ DEPARTURE: "Départ",
2437
+ RETURN: "Retour",
2438
+ DIRECT: "Direct",
2439
+ STOPS: "escales",
2440
+ STOP: "escale",
2441
+ STOP_TIME: "Temps d’escale",
2442
+ ACCOMMODATION: "Hébergement",
2443
+ VIEW_DETAILS: "Voir les détails",
2444
+ NIGHTS: "nuits"
2445
+ };
1944
2446
  var frFrJson = {
1945
2447
  STEPS: STEPS$9,
1946
2448
  INPUT: INPUT$9,
@@ -1955,7 +2457,9 @@ var frFrJson = {
1955
2457
  SUMMARY: SUMMARY$9,
1956
2458
  CONFIRMATION: CONFIRMATION$9,
1957
2459
  ERROR: ERROR$9,
1958
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$9
2460
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$9,
2461
+ QSM: QSM$a,
2462
+ SRP: SRP$9
1959
2463
  };
1960
2464
 
1961
2465
  var STEPS$8 = {
@@ -2092,9 +2596,12 @@ var TRAVELERS_FORM$8 = {
2092
2596
  ADULTS: "fullorðnir",
2093
2597
  CHILD: "barn",
2094
2598
  CHILDREN: "börn",
2095
- GENDER: "Kyn",
2096
- MALE: "Hr.",
2599
+ GENDER: "Ávarp",
2600
+ GENDER_ID: "Kyn samkvæmt vegabréfi/skilríki",
2601
+ MALE: "Herra",
2602
+ MALE_GENDER: "Karl",
2097
2603
  FEMALE: "Frú",
2604
+ FEMALE_GENDER: "Kona",
2098
2605
  OTHER: "Annað",
2099
2606
  MAIN_BOOKER: "Aðal bókari",
2100
2607
  FIRST_NAME: "Fornafn",
@@ -2205,6 +2712,73 @@ var PRINT_OFFER_BUTTON$8 = {
2205
2712
  LABEL_CREATING: "Búið til tilboð…",
2206
2713
  LABEL_PRINTING: "Búið til PDF…"
2207
2714
  };
2715
+ var QSM$9 = {
2716
+ MULTIDESTINATION: "Margir áfangastaðir",
2717
+ PACKAGES: "Pakkar",
2718
+ TRANSPORT_HOTEL: "Flug + hótel",
2719
+ ACCOMMODATION: "Gisting",
2720
+ TRANSPORTS: "Samgöngur",
2721
+ TICKET_ONLY: "Aðeins miði",
2722
+ RENT_A_CAR: "Leigja bíl",
2723
+ TRANSFERS: "Akstur",
2724
+ CRUISES: "Siglingar",
2725
+ ONE_ACCOMMODATION: "Ein gisting",
2726
+ MULTIPLE_ACCOMMODATIONS: "Margar gistingar",
2727
+ TRAVEL_CLASS_LABEL: "Farrými",
2728
+ TRAVEL_CLASS_PLACEHOLDER: "Veldu farrými",
2729
+ TRAVEL_TYPE_LABEL: "Ferðategund",
2730
+ TRAVEL_TYPE_PLACEHOLDER: "Veldu ferðategund",
2731
+ NATIONALITY_LABEL: "Þjóðerni",
2732
+ NATIONALITY_PLACEHOLDER: "Veldu þjóðerni",
2733
+ TRAVELERS_LABEL: "Hverjir ferðast?",
2734
+ ADD_ROOM: "Bæta við herbergi",
2735
+ REMOVE_ROOM: "Fjarlægja herbergi",
2736
+ MAX_TRAVELERS_REACHED: "Hámarksfjölda ferðalanga náð",
2737
+ ADULTS: "Fullorðnir",
2738
+ CHILDREN: "Börn",
2739
+ BABIES: "Ungbörn",
2740
+ CHOOSE_DATES: "Veldu dagsetningar",
2741
+ DEPARTURE_DATE: "Brottfarardagur",
2742
+ RETURN_DATE: "Heimkomudagur",
2743
+ CONFIRM: "Staðfesta",
2744
+ TRAVELERS: "Ferðalangar"
2745
+ };
2746
+ var SRP$8 = {
2747
+ NO_RESULTS: "Engar niðurstöður fundust.",
2748
+ TOTAL_RESULTS_LABEL: "Fundnar pakkar",
2749
+ RESET: "Endurstilla",
2750
+ LUGGAGEINCLUDED: "Farangur innifalinn",
2751
+ CANCEL: "Hætta við",
2752
+ APPLY: "Staðfesta",
2753
+ LOADING: "Hleðst...",
2754
+ SEARCHRESULTCTA: "Skoða upplýsingar",
2755
+ SORTBY: "Raða eftir",
2756
+ PRICE_ASC: "Verð (lægst til hæst)",
2757
+ PRICE_DESC: "Verð (hæst til lægst)",
2758
+ DEPARTURE_ASC: "Brottfarardagur (nærst fyrst)",
2759
+ FILTERS: "Síur",
2760
+ SHOW_ITINERARY: "Sýna ferðaráætlun",
2761
+ ITINERARY_TITLE: "Yfirlit ferðarinnar",
2762
+ DOSSIER_NUMBER: "Skrárnúmer",
2763
+ PACKAGE_PRICE_PER_PERSON: "pakka verð á mann",
2764
+ TOTAL: "samtals",
2765
+ DAY_BY_DAY: "Ferðin þín dag fyrir dag",
2766
+ START: "byrjun",
2767
+ END: "lok",
2768
+ EXTENDED: "Útvíkkað",
2769
+ COMPACT: "Þjappað",
2770
+ LIST: "Listi",
2771
+ SELECT: "Velja",
2772
+ DEPARTURE: "Brottför",
2773
+ RETURN: "Afturferð",
2774
+ DIRECT: "Beint",
2775
+ STOPS: "stöðvar",
2776
+ STOP: "stöð",
2777
+ STOP_TIME: "Skipti tími",
2778
+ ACCOMMODATION: "Gisting",
2779
+ VIEW_DETAILS: "Skoða upplýsingar",
2780
+ NIGHTS: "nætur"
2781
+ };
2208
2782
  var isJson = {
2209
2783
  STEPS: STEPS$8,
2210
2784
  INPUT: INPUT$8,
@@ -2219,7 +2793,9 @@ var isJson = {
2219
2793
  SUMMARY: SUMMARY$8,
2220
2794
  CONFIRMATION: CONFIRMATION$8,
2221
2795
  ERROR: ERROR$8,
2222
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$8
2796
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$8,
2797
+ QSM: QSM$9,
2798
+ SRP: SRP$8
2223
2799
  };
2224
2800
 
2225
2801
  var STEPS$7 = {
@@ -2357,8 +2933,11 @@ var TRAVELERS_FORM$7 = {
2357
2933
  CHILD: "bambino",
2358
2934
  CHILDREN: "bambini",
2359
2935
  GENDER: "Titolo",
2936
+ GENDER_ID: "Sesso secondo passaporto/carta d'identità",
2360
2937
  MALE: "Sig.",
2938
+ MALE_GENDER: "Uomo",
2361
2939
  FEMALE: "Sig.ra",
2940
+ FEMALE_GENDER: "Donna",
2362
2941
  OTHER: "Altro",
2363
2942
  MAIN_BOOKER: "Intestatario della prenotazione",
2364
2943
  FIRST_NAME: "Nome",
@@ -2469,6 +3048,73 @@ var PRINT_OFFER_BUTTON$7 = {
2469
3048
  LABEL_CREATING: "Generazione del preventivo…",
2470
3049
  LABEL_PRINTING: "Generazione del PDF…"
2471
3050
  };
3051
+ var QSM$8 = {
3052
+ MULTIDESTINATION: "Multidestinazione",
3053
+ PACKAGES: "Pacchetti",
3054
+ TRANSPORT_HOTEL: "Trasporto + hotel",
3055
+ ACCOMMODATION: "Alloggio",
3056
+ TRANSPORTS: "Trasporti",
3057
+ TICKET_ONLY: "Solo biglietto",
3058
+ RENT_A_CAR: "Noleggio auto",
3059
+ TRANSFERS: "Trasferimenti",
3060
+ CRUISES: "Crociere",
3061
+ ONE_ACCOMMODATION: "Un alloggio",
3062
+ MULTIPLE_ACCOMMODATIONS: "Più alloggi",
3063
+ TRAVEL_CLASS_LABEL: "Classe di viaggio",
3064
+ TRAVEL_CLASS_PLACEHOLDER: "Seleziona classe di viaggio",
3065
+ TRAVEL_TYPE_LABEL: "Tipo di viaggio",
3066
+ TRAVEL_TYPE_PLACEHOLDER: "Seleziona tipo di viaggio",
3067
+ NATIONALITY_LABEL: "Nazionalità",
3068
+ NATIONALITY_PLACEHOLDER: "Seleziona nazionalità",
3069
+ TRAVELERS_LABEL: "Chi viaggia?",
3070
+ ADD_ROOM: "Aggiungi camera",
3071
+ REMOVE_ROOM: "Rimuovi camera",
3072
+ MAX_TRAVELERS_REACHED: "Hai raggiunto il numero massimo di viaggiatori",
3073
+ ADULTS: "Adulti",
3074
+ CHILDREN: "Bambini",
3075
+ BABIES: "Neonati",
3076
+ CHOOSE_DATES: "Seleziona date",
3077
+ DEPARTURE_DATE: "Data di partenza",
3078
+ RETURN_DATE: "Data di ritorno",
3079
+ CONFIRM: "Conferma",
3080
+ TRAVELERS: "Viaggiatori"
3081
+ };
3082
+ var SRP$7 = {
3083
+ NO_RESULTS: "Nessun risultato trovato.",
3084
+ TOTAL_RESULTS_LABEL: "Pacchetti trovati",
3085
+ RESET: "Reimposta",
3086
+ LUGGAGEINCLUDED: "Bagaglio incluso",
3087
+ CANCEL: "Annulla",
3088
+ APPLY: "Applica",
3089
+ LOADING: "Caricamento...",
3090
+ SEARCHRESULTCTA: "Visualizza dettagli",
3091
+ SORTBY: "Ordina per",
3092
+ PRICE_ASC: "Prezzo (dal più basso al più alto)",
3093
+ PRICE_DESC: "Prezzo (dal più alto al più basso)",
3094
+ DEPARTURE_ASC: "Data di partenza (prima la più vicina)",
3095
+ FILTERS: "Filtri",
3096
+ SHOW_ITINERARY: "Mostra itinerario",
3097
+ ITINERARY_TITLE: "Riepilogo del tuo viaggio",
3098
+ DOSSIER_NUMBER: "Numero di pratica",
3099
+ PACKAGE_PRICE_PER_PERSON: "prezzo pacchetto per persona",
3100
+ TOTAL: "totale",
3101
+ DAY_BY_DAY: "Il tuo viaggio giorno per giorno",
3102
+ START: "inizio",
3103
+ END: "fine",
3104
+ EXTENDED: "Esteso",
3105
+ COMPACT: "Compatto",
3106
+ LIST: "Lista",
3107
+ SELECT: "Seleziona",
3108
+ DEPARTURE: "Partenza",
3109
+ RETURN: "Ritorno",
3110
+ DIRECT: "Diretto",
3111
+ STOPS: "scali",
3112
+ STOP: "scalo",
3113
+ STOP_TIME: "Tempo di cambio",
3114
+ ACCOMMODATION: "Alloggio",
3115
+ VIEW_DETAILS: "Visualizza dettagli",
3116
+ NIGHTS: "notti"
3117
+ };
2472
3118
  var itJson = {
2473
3119
  STEPS: STEPS$7,
2474
3120
  INPUT: INPUT$7,
@@ -2483,7 +3129,9 @@ var itJson = {
2483
3129
  SUMMARY: SUMMARY$7,
2484
3130
  CONFIRMATION: CONFIRMATION$7,
2485
3131
  ERROR: ERROR$7,
2486
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$7
3132
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$7,
3133
+ QSM: QSM$8,
3134
+ SRP: SRP$7
2487
3135
  };
2488
3136
 
2489
3137
  var STEPS$6 = {
@@ -2622,8 +3270,11 @@ var TRAVELERS_FORM$6 = {
2622
3270
  CHILD: "kind",
2623
3271
  CHILDREN: "kinderen",
2624
3272
  GENDER: "Aanspreking",
3273
+ GENDER_ID: "Geslacht volgens paspoort/identiteitskaart",
2625
3274
  MALE: "Meneer",
3275
+ MALE_GENDER: "Man",
2626
3276
  FEMALE: "Mevrouw",
3277
+ FEMALE_GENDER: "Vrouw",
2627
3278
  OTHER: "Anders",
2628
3279
  MAIN_BOOKER: "Hoofdboeker",
2629
3280
  FIRST_NAME: "Voornaam",
@@ -2737,6 +3388,73 @@ var PRINT_OFFER_BUTTON$6 = {
2737
3388
  LABEL_CREATING: "Offerte genereren...",
2738
3389
  LABEL_PRINTING: "PDF genereren..."
2739
3390
  };
3391
+ var QSM$7 = {
3392
+ MULTIDESTINATION: "Meerdere bestemmingen",
3393
+ PACKAGES: "Pakketten",
3394
+ TRANSPORT_HOTEL: "Vervoer + hotel",
3395
+ ACCOMMODATION: "Accommodatie",
3396
+ TRANSPORTS: "Vervoer",
3397
+ TICKET_ONLY: "Alleen ticket",
3398
+ RENT_A_CAR: "Auto huren",
3399
+ TRANSFERS: "Transfers",
3400
+ CRUISES: "Cruises",
3401
+ ONE_ACCOMMODATION: "Eén accommodatie",
3402
+ MULTIPLE_ACCOMMODATIONS: "Meerdere accommodaties",
3403
+ TRAVEL_CLASS_LABEL: "Reisklasse",
3404
+ TRAVEL_CLASS_PLACEHOLDER: "Selecteer reisklasse",
3405
+ TRAVEL_TYPE_LABEL: "Reistype",
3406
+ TRAVEL_TYPE_PLACEHOLDER: "Selecteer reistype",
3407
+ NATIONALITY_LABEL: "Nationaliteit",
3408
+ NATIONALITY_PLACEHOLDER: "Selecteer nationaliteit",
3409
+ TRAVELERS_LABEL: "Wie reist er?",
3410
+ ADD_ROOM: "Kamer toevoegen",
3411
+ REMOVE_ROOM: "Kamer verwijderen",
3412
+ MAX_TRAVELERS_REACHED: "Je hebt het maximale aantal reizigers bereikt",
3413
+ ADULTS: "Volwassenen",
3414
+ CHILDREN: "Kinderen",
3415
+ BABIES: "Baby’s",
3416
+ CHOOSE_DATES: "Selecteer datums",
3417
+ DEPARTURE_DATE: "Vertrekdatum",
3418
+ RETURN_DATE: "Terugkeerdatum",
3419
+ CONFIRM: "Bevestigen",
3420
+ TRAVELERS: "Reizigers"
3421
+ };
3422
+ var SRP$6 = {
3423
+ NO_RESULTS: "Geen resultaten gevonden.",
3424
+ TOTAL_RESULTS_LABEL: "Gevonden pakketten",
3425
+ RESET: "Resetten",
3426
+ LUGGAGEINCLUDED: "Bagage inbegrepen",
3427
+ CANCEL: "Annuleren",
3428
+ APPLY: "Toepassen",
3429
+ LOADING: "Laden...",
3430
+ SEARCHRESULTCTA: "Bekijk details",
3431
+ SORTBY: "Sorteren op",
3432
+ PRICE_ASC: "Prijs (laag naar hoog)",
3433
+ PRICE_DESC: "Prijs (hoog naar laag)",
3434
+ DEPARTURE_ASC: "Vertrekdatum (dichtstbij eerst)",
3435
+ FILTERS: "Filters",
3436
+ SHOW_ITINERARY: "Toon reisplan",
3437
+ ITINERARY_TITLE: "Overzicht van je reis",
3438
+ DOSSIER_NUMBER: "Dossiernummer",
3439
+ PACKAGE_PRICE_PER_PERSON: "pakketprijs per persoon",
3440
+ TOTAL: "totaal",
3441
+ DAY_BY_DAY: "Je reis dag voor dag",
3442
+ START: "start",
3443
+ END: "einde",
3444
+ EXTENDED: "Uitgebreid",
3445
+ COMPACT: "Compact",
3446
+ LIST: "Lijst",
3447
+ SELECT: "Selecteer",
3448
+ DEPARTURE: "Vertrek",
3449
+ RETURN: "Terugkeer",
3450
+ DIRECT: "Direct",
3451
+ STOPS: "stops",
3452
+ STOP: "stop",
3453
+ STOP_TIME: "Wachttijd",
3454
+ ACCOMMODATION: "Accommodatie",
3455
+ VIEW_DETAILS: "Bekijk details",
3456
+ NIGHTS: "nachten"
3457
+ };
2740
3458
  var nlBeJson = {
2741
3459
  STEPS: STEPS$6,
2742
3460
  INPUT: INPUT$6,
@@ -2751,7 +3469,9 @@ var nlBeJson = {
2751
3469
  SUMMARY: SUMMARY$6,
2752
3470
  CONFIRMATION: CONFIRMATION$6,
2753
3471
  ERROR: ERROR$6,
2754
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$6
3472
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$6,
3473
+ QSM: QSM$7,
3474
+ SRP: SRP$6
2755
3475
  };
2756
3476
 
2757
3477
  var STEPS$5 = {
@@ -2889,8 +3609,11 @@ var TRAVELERS_FORM$5 = {
2889
3609
  CHILD: "kind",
2890
3610
  CHILDREN: "kinderen",
2891
3611
  GENDER: "Aanhef",
3612
+ GENDER_ID: "Geslacht volgens paspoort/identiteitskaart",
2892
3613
  MALE: "Dhr.",
3614
+ MALE_GENDER: "Man",
2893
3615
  FEMALE: "Mevr.",
3616
+ FEMALE_GENDER: "Vrouw",
2894
3617
  OTHER: "Anders",
2895
3618
  MAIN_BOOKER: "Hoofdboeker",
2896
3619
  FIRST_NAME: "Voornaam",
@@ -3001,6 +3724,73 @@ var PRINT_OFFER_BUTTON$5 = {
3001
3724
  LABEL_CREATING: "Offerte genereren…",
3002
3725
  LABEL_PRINTING: "PDF genereren…"
3003
3726
  };
3727
+ var QSM$6 = {
3728
+ MULTIDESTINATION: "Meerdere bestemmingen",
3729
+ PACKAGES: "Pakketten",
3730
+ TRANSPORT_HOTEL: "Vervoer + hotel",
3731
+ ACCOMMODATION: "Accommodatie",
3732
+ TRANSPORTS: "Vervoer",
3733
+ TICKET_ONLY: "Alleen ticket",
3734
+ RENT_A_CAR: "Auto huren",
3735
+ TRANSFERS: "Transfers",
3736
+ CRUISES: "Cruises",
3737
+ ONE_ACCOMMODATION: "Eén accommodatie",
3738
+ MULTIPLE_ACCOMMODATIONS: "Meerdere accommodaties",
3739
+ TRAVEL_CLASS_LABEL: "Reisklasse",
3740
+ TRAVEL_CLASS_PLACEHOLDER: "Selecteer reisklasse",
3741
+ TRAVEL_TYPE_LABEL: "Reistype",
3742
+ TRAVEL_TYPE_PLACEHOLDER: "Selecteer reistype",
3743
+ NATIONALITY_LABEL: "Nationaliteit",
3744
+ NATIONALITY_PLACEHOLDER: "Selecteer nationaliteit",
3745
+ TRAVELERS_LABEL: "Wie reist er?",
3746
+ ADD_ROOM: "Kamer toevoegen",
3747
+ REMOVE_ROOM: "Kamer verwijderen",
3748
+ MAX_TRAVELERS_REACHED: "Je hebt het maximale aantal reizigers bereikt",
3749
+ ADULTS: "Volwassenen",
3750
+ CHILDREN: "Kinderen",
3751
+ BABIES: "Baby’s",
3752
+ CHOOSE_DATES: "Selecteer datums",
3753
+ DEPARTURE_DATE: "Vertrekdatum",
3754
+ RETURN_DATE: "Terugkeerdatum",
3755
+ CONFIRM: "Bevestigen",
3756
+ TRAVELERS: "Reizigers"
3757
+ };
3758
+ var SRP$5 = {
3759
+ NO_RESULTS: "Geen resultaten gevonden.",
3760
+ TOTAL_RESULTS_LABEL: "Gevonden pakketten",
3761
+ RESET: "Resetten",
3762
+ LUGGAGEINCLUDED: "Bagage inbegrepen",
3763
+ CANCEL: "Annuleren",
3764
+ APPLY: "Toepassen",
3765
+ LOADING: "Laden...",
3766
+ SEARCHRESULTCTA: "Bekijk details",
3767
+ SORTBY: "Sorteren op",
3768
+ PRICE_ASC: "Prijs (laag naar hoog)",
3769
+ PRICE_DESC: "Prijs (hoog naar laag)",
3770
+ DEPARTURE_ASC: "Vertrekdatum (dichtstbij eerst)",
3771
+ FILTERS: "Filters",
3772
+ SHOW_ITINERARY: "Toon reisplan",
3773
+ ITINERARY_TITLE: "Overzicht van je reis",
3774
+ DOSSIER_NUMBER: "Dossiernummer",
3775
+ PACKAGE_PRICE_PER_PERSON: "pakketprijs per persoon",
3776
+ TOTAL: "totaal",
3777
+ DAY_BY_DAY: "Je reis dag voor dag",
3778
+ START: "start",
3779
+ END: "einde",
3780
+ EXTENDED: "Uitgebreid",
3781
+ COMPACT: "Compact",
3782
+ LIST: "Lijst",
3783
+ SELECT: "Selecteer",
3784
+ DEPARTURE: "Vertrek",
3785
+ RETURN: "Terugkeer",
3786
+ DIRECT: "Direct",
3787
+ STOPS: "stops",
3788
+ STOP: "stop",
3789
+ STOP_TIME: "Wachttijd",
3790
+ ACCOMMODATION: "Accommodatie",
3791
+ VIEW_DETAILS: "Bekijk details",
3792
+ NIGHTS: "nachten"
3793
+ };
3004
3794
  var nlNlJson = {
3005
3795
  STEPS: STEPS$5,
3006
3796
  INPUT: INPUT$5,
@@ -3015,7 +3805,9 @@ var nlNlJson = {
3015
3805
  SUMMARY: SUMMARY$5,
3016
3806
  CONFIRMATION: CONFIRMATION$5,
3017
3807
  ERROR: ERROR$5,
3018
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$5
3808
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$5,
3809
+ QSM: QSM$6,
3810
+ SRP: SRP$5
3019
3811
  };
3020
3812
 
3021
3813
  var STEPS$4 = {
@@ -3152,9 +3944,12 @@ var TRAVELERS_FORM$4 = {
3152
3944
  ADULTS: "voksne",
3153
3945
  CHILD: "barn",
3154
3946
  CHILDREN: "barn",
3155
- GENDER: "Tiltale",
3156
- MALE: "Hr.",
3947
+ GENDER: "Tiltaleform",
3948
+ GENDER_ID: "Kjønn ifølge pass/ID-kort",
3949
+ MALE: "Herr",
3950
+ MALE_GENDER: "Mann",
3157
3951
  FEMALE: "Fru",
3952
+ FEMALE_GENDER: "Kvinne",
3158
3953
  OTHER: "Annet",
3159
3954
  MAIN_BOOKER: "Hovedbestiller",
3160
3955
  FIRST_NAME: "Fornavn",
@@ -3265,6 +4060,73 @@ var PRINT_OFFER_BUTTON$4 = {
3265
4060
  LABEL_CREATING: "Genererer tilbud…",
3266
4061
  LABEL_PRINTING: "Genererer PDF…"
3267
4062
  };
4063
+ var QSM$5 = {
4064
+ MULTIDESTINATION: "Flere destinasjoner",
4065
+ PACKAGES: "Pakker",
4066
+ TRANSPORT_HOTEL: "Transport + hotell",
4067
+ ACCOMMODATION: "Overnatting",
4068
+ TRANSPORTS: "Transport",
4069
+ TICKET_ONLY: "Kun billett",
4070
+ RENT_A_CAR: "Lei bil",
4071
+ TRANSFERS: "Transporttjenester",
4072
+ CRUISES: "Cruise",
4073
+ ONE_ACCOMMODATION: "Én overnatting",
4074
+ MULTIPLE_ACCOMMODATIONS: "Flere overnattinger",
4075
+ TRAVEL_CLASS_LABEL: "Reiseklasse",
4076
+ TRAVEL_CLASS_PLACEHOLDER: "Velg reiseklasse",
4077
+ TRAVEL_TYPE_LABEL: "Reisetype",
4078
+ TRAVEL_TYPE_PLACEHOLDER: "Velg reisetype",
4079
+ NATIONALITY_LABEL: "Nasjonalitet",
4080
+ NATIONALITY_PLACEHOLDER: "Velg nasjonalitet",
4081
+ TRAVELERS_LABEL: "Hvem reiser?",
4082
+ ADD_ROOM: "Legg til rom",
4083
+ REMOVE_ROOM: "Fjern rom",
4084
+ MAX_TRAVELERS_REACHED: "Du har nådd maksimalt antall reisende",
4085
+ ADULTS: "Voksne",
4086
+ CHILDREN: "Barn",
4087
+ BABIES: "Spedbarn",
4088
+ CHOOSE_DATES: "Velg datoer",
4089
+ DEPARTURE_DATE: "Avreisedato",
4090
+ RETURN_DATE: "Returdato",
4091
+ CONFIRM: "Bekreft",
4092
+ TRAVELERS: "Reisende"
4093
+ };
4094
+ var SRP$4 = {
4095
+ NO_RESULTS: "Ingen resultater funnet.",
4096
+ TOTAL_RESULTS_LABEL: "Fant pakker",
4097
+ RESET: "Tilbakestill",
4098
+ LUGGAGEINCLUDED: "Bagasje inkludert",
4099
+ CANCEL: "Avbryt",
4100
+ APPLY: "Bruk",
4101
+ LOADING: "Laster...",
4102
+ SEARCHRESULTCTA: "Se detaljer",
4103
+ SORTBY: "Sorter etter",
4104
+ PRICE_ASC: "Pris (lav til høy)",
4105
+ PRICE_DESC: "Pris (høy til lav)",
4106
+ DEPARTURE_ASC: "Avreisedato (nærmeste først)",
4107
+ FILTERS: "Filtre",
4108
+ SHOW_ITINERARY: "Vis reiserute",
4109
+ ITINERARY_TITLE: "Din reisemåloversikt",
4110
+ DOSSIER_NUMBER: "Saksnummer",
4111
+ PACKAGE_PRICE_PER_PERSON: "pakkepris per person",
4112
+ TOTAL: "totalt",
4113
+ DAY_BY_DAY: "Din reise dag for dag",
4114
+ START: "start",
4115
+ END: "slutt",
4116
+ EXTENDED: "Utvidet",
4117
+ COMPACT: "Kompakt",
4118
+ LIST: "Liste",
4119
+ SELECT: "Velg",
4120
+ DEPARTURE: "Avreise",
4121
+ RETURN: "Retur",
4122
+ DIRECT: "Direkte",
4123
+ STOPS: "stopp",
4124
+ STOP: "stopp",
4125
+ STOP_TIME: "Byttetid",
4126
+ ACCOMMODATION: "Overnatting",
4127
+ VIEW_DETAILS: "Se detaljer",
4128
+ NIGHTS: "netter"
4129
+ };
3268
4130
  var noJson = {
3269
4131
  STEPS: STEPS$4,
3270
4132
  INPUT: INPUT$4,
@@ -3279,7 +4141,9 @@ var noJson = {
3279
4141
  SUMMARY: SUMMARY$4,
3280
4142
  CONFIRMATION: CONFIRMATION$4,
3281
4143
  ERROR: ERROR$4,
3282
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$4
4144
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$4,
4145
+ QSM: QSM$5,
4146
+ SRP: SRP$4
3283
4147
  };
3284
4148
 
3285
4149
  var STEPS$3 = {
@@ -3417,8 +4281,11 @@ var TRAVELERS_FORM$3 = {
3417
4281
  CHILD: "dziecko",
3418
4282
  CHILDREN: "dzieci",
3419
4283
  GENDER: "Forma grzecznościowa",
4284
+ GENDER_ID: "Płeć według paszportu/dowodu osobistego",
3420
4285
  MALE: "Pan",
4286
+ MALE_GENDER: "Mężczyzna",
3421
4287
  FEMALE: "Pani",
4288
+ FEMALE_GENDER: "Kobieta",
3422
4289
  OTHER: "Inne",
3423
4290
  MAIN_BOOKER: "Główny rezerwujący",
3424
4291
  FIRST_NAME: "Imię",
@@ -3529,6 +4396,73 @@ var PRINT_OFFER_BUTTON$3 = {
3529
4396
  LABEL_CREATING: "Generowanie oferty…",
3530
4397
  LABEL_PRINTING: "Generowanie PDF…"
3531
4398
  };
4399
+ var QSM$4 = {
4400
+ MULTIDESTINATION: "Wiele kierunków",
4401
+ PACKAGES: "Pakiety",
4402
+ TRANSPORT_HOTEL: "Transport + hotel",
4403
+ ACCOMMODATION: "Zakwaterowanie",
4404
+ TRANSPORTS: "Transport",
4405
+ TICKET_ONLY: "Tylko bilet",
4406
+ RENT_A_CAR: "Wynajem samochodu",
4407
+ TRANSFERS: "Transfery",
4408
+ CRUISES: "Rejsy",
4409
+ ONE_ACCOMMODATION: "Jedno zakwaterowanie",
4410
+ MULTIPLE_ACCOMMODATIONS: "Wiele zakwaterowań",
4411
+ TRAVEL_CLASS_LABEL: "Klasa podróży",
4412
+ TRAVEL_CLASS_PLACEHOLDER: "Wybierz klasę podróży",
4413
+ TRAVEL_TYPE_LABEL: "Typ podróży",
4414
+ TRAVEL_TYPE_PLACEHOLDER: "Wybierz typ podróży",
4415
+ NATIONALITY_LABEL: "Narodowość",
4416
+ NATIONALITY_PLACEHOLDER: "Wybierz narodowość",
4417
+ TRAVELERS_LABEL: "Kto podróżuje?",
4418
+ ADD_ROOM: "Dodaj pokój",
4419
+ REMOVE_ROOM: "Usuń pokój",
4420
+ MAX_TRAVELERS_REACHED: "Osiągnięto maksymalną liczbę podróżnych",
4421
+ ADULTS: "Dorośli",
4422
+ CHILDREN: "Dzieci",
4423
+ BABIES: "Niemowlęta",
4424
+ CHOOSE_DATES: "Wybierz daty",
4425
+ DEPARTURE_DATE: "Data wyjazdu",
4426
+ RETURN_DATE: "Data powrotu",
4427
+ CONFIRM: "Potwierdź",
4428
+ TRAVELERS: "Podróżni"
4429
+ };
4430
+ var SRP$3 = {
4431
+ NO_RESULTS: "Nie znaleziono wyników.",
4432
+ TOTAL_RESULTS_LABEL: "Znalezione pakiety",
4433
+ RESET: "Resetuj",
4434
+ LUGGAGEINCLUDED: "Bagaż wliczony",
4435
+ CANCEL: "Anuluj",
4436
+ APPLY: "Zastosuj",
4437
+ LOADING: "Ładowanie...",
4438
+ SEARCHRESULTCTA: "Zobacz szczegóły",
4439
+ SORTBY: "Sortuj według",
4440
+ PRICE_ASC: "Cena (od najniższej do najwyższej)",
4441
+ PRICE_DESC: "Cena (od najwyższej do najniższej)",
4442
+ DEPARTURE_ASC: "Data wyjazdu (najbliższa najpierw)",
4443
+ FILTERS: "Filtry",
4444
+ SHOW_ITINERARY: "Pokaż plan podróży",
4445
+ ITINERARY_TITLE: "Podsumowanie Twojej podróży",
4446
+ DOSSIER_NUMBER: "Numer pliku",
4447
+ PACKAGE_PRICE_PER_PERSON: "cena pakietu za osobę",
4448
+ TOTAL: "łącznie",
4449
+ DAY_BY_DAY: "Twoja podróż dzień po dniu",
4450
+ START: "początek",
4451
+ END: "koniec",
4452
+ EXTENDED: "Rozszerzony",
4453
+ COMPACT: "Kompaktowy",
4454
+ LIST: "Lista",
4455
+ SELECT: "Wybierz",
4456
+ DEPARTURE: "Wyjazd",
4457
+ RETURN: "Powrót",
4458
+ DIRECT: "Bezpośredni",
4459
+ STOPS: "przesiadki",
4460
+ STOP: "przesiadka",
4461
+ STOP_TIME: "Czas przesiadki",
4462
+ ACCOMMODATION: "Zakwaterowanie",
4463
+ VIEW_DETAILS: "Zobacz szczegóły",
4464
+ NIGHTS: "noce"
4465
+ };
3532
4466
  var plJson = {
3533
4467
  STEPS: STEPS$3,
3534
4468
  INPUT: INPUT$3,
@@ -3543,7 +4477,9 @@ var plJson = {
3543
4477
  SUMMARY: SUMMARY$3,
3544
4478
  CONFIRMATION: CONFIRMATION$3,
3545
4479
  ERROR: ERROR$3,
3546
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$3
4480
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$3,
4481
+ QSM: QSM$4,
4482
+ SRP: SRP$3
3547
4483
  };
3548
4484
 
3549
4485
  var STEPS$2 = {
@@ -3681,8 +4617,11 @@ var TRAVELERS_FORM$2 = {
3681
4617
  CHILD: "criança",
3682
4618
  CHILDREN: "crianças",
3683
4619
  GENDER: "Tratamento",
4620
+ GENDER_ID: "Sexo conforme passaporte/documento de identidade",
3684
4621
  MALE: "Sr.",
4622
+ MALE_GENDER: "Homem",
3685
4623
  FEMALE: "Sra.",
4624
+ FEMALE_GENDER: "Mulher",
3686
4625
  OTHER: "Outro",
3687
4626
  MAIN_BOOKER: "Titular da reserva",
3688
4627
  FIRST_NAME: "Nome",
@@ -3793,6 +4732,73 @@ var PRINT_OFFER_BUTTON$2 = {
3793
4732
  LABEL_CREATING: "A gerar orçamento…",
3794
4733
  LABEL_PRINTING: "A gerar PDF…"
3795
4734
  };
4735
+ var QSM$3 = {
4736
+ MULTIDESTINATION: "Multidestino",
4737
+ PACKAGES: "Pacotes",
4738
+ TRANSPORT_HOTEL: "Transporte + hotel",
4739
+ ACCOMMODATION: "Alojamento",
4740
+ TRANSPORTS: "Transportes",
4741
+ TICKET_ONLY: "Só bilhete",
4742
+ RENT_A_CAR: "Alugar carro",
4743
+ TRANSFERS: "Transferes",
4744
+ CRUISES: "Cruzeiros",
4745
+ ONE_ACCOMMODATION: "Um alojamento",
4746
+ MULTIPLE_ACCOMMODATIONS: "Vários alojamentos",
4747
+ TRAVEL_CLASS_LABEL: "Classe de viagem",
4748
+ TRAVEL_CLASS_PLACEHOLDER: "Selecionar classe de viagem",
4749
+ TRAVEL_TYPE_LABEL: "Tipo de viagem",
4750
+ TRAVEL_TYPE_PLACEHOLDER: "Selecionar tipo de viagem",
4751
+ NATIONALITY_LABEL: "Nacionalidade",
4752
+ NATIONALITY_PLACEHOLDER: "Selecionar nacionalidade",
4753
+ TRAVELERS_LABEL: "Quem viaja?",
4754
+ ADD_ROOM: "Adicionar quarto",
4755
+ REMOVE_ROOM: "Remover quarto",
4756
+ MAX_TRAVELERS_REACHED: "Atingiu o número máximo de viajantes",
4757
+ ADULTS: "Adultos",
4758
+ CHILDREN: "Crianças",
4759
+ BABIES: "Bebés",
4760
+ CHOOSE_DATES: "Selecionar datas",
4761
+ DEPARTURE_DATE: "Data de partida",
4762
+ RETURN_DATE: "Data de regresso",
4763
+ CONFIRM: "Confirmar",
4764
+ TRAVELERS: "Viajantes"
4765
+ };
4766
+ var SRP$2 = {
4767
+ NO_RESULTS: "Nenhum resultado encontrado.",
4768
+ TOTAL_RESULTS_LABEL: "Pacotes encontrados",
4769
+ RESET: "Redefinir",
4770
+ LUGGAGEINCLUDED: "Bagagem incluída",
4771
+ CANCEL: "Cancelar",
4772
+ APPLY: "Aplicar",
4773
+ LOADING: "A carregar...",
4774
+ SEARCHRESULTCTA: "Ver detalhes",
4775
+ SORTBY: "Ordenar por",
4776
+ PRICE_ASC: "Preço (do mais baixo para o mais alto)",
4777
+ PRICE_DESC: "Preço (do mais alto para o mais baixo)",
4778
+ DEPARTURE_ASC: "Data de partida (mais próxima primeiro)",
4779
+ FILTERS: "Filtros",
4780
+ SHOW_ITINERARY: "Mostrar itinerário",
4781
+ ITINERARY_TITLE: "Resumo da sua viagem",
4782
+ DOSSIER_NUMBER: "Número do processo",
4783
+ PACKAGE_PRICE_PER_PERSON: "preço do pacote por pessoa",
4784
+ TOTAL: "total",
4785
+ DAY_BY_DAY: "A sua viagem dia a dia",
4786
+ START: "início",
4787
+ END: "fim",
4788
+ EXTENDED: "Estendido",
4789
+ COMPACT: "Compacto",
4790
+ LIST: "Lista",
4791
+ SELECT: "Selecionar",
4792
+ DEPARTURE: "Partida",
4793
+ RETURN: "Regresso",
4794
+ DIRECT: "Direto",
4795
+ STOPS: "escalas",
4796
+ STOP: "escala",
4797
+ STOP_TIME: "Tempo de escala",
4798
+ ACCOMMODATION: "Alojamento",
4799
+ VIEW_DETAILS: "Ver detalhes",
4800
+ NIGHTS: "noites"
4801
+ };
3796
4802
  var ptJson = {
3797
4803
  STEPS: STEPS$2,
3798
4804
  INPUT: INPUT$2,
@@ -3807,7 +4813,9 @@ var ptJson = {
3807
4813
  SUMMARY: SUMMARY$2,
3808
4814
  CONFIRMATION: CONFIRMATION$2,
3809
4815
  ERROR: ERROR$2,
3810
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$2
4816
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$2,
4817
+ QSM: QSM$3,
4818
+ SRP: SRP$2
3811
4819
  };
3812
4820
 
3813
4821
  var STEPS$1 = {
@@ -3849,7 +4857,7 @@ var FLIGHTS_FORM$1 = {
3849
4857
  CHANGE_TIME: "Bytestid",
3850
4858
  FLIGHT_RETURN: "Returresa",
3851
4859
  NO_FLIGHTS_FOUND: "Inga flyg hittades.",
3852
- STARTING: "Från",
4860
+ STARTING: "",
3853
4861
  LOWEST_PRICE: "Lägsta pris",
3854
4862
  CHOOSE_YOUR_CLASS: "Välj klass:",
3855
4863
  PLUS_ONE_DAY: "+1 dag",
@@ -3944,9 +4952,12 @@ var TRAVELERS_FORM$1 = {
3944
4952
  ADULTS: "vuxna",
3945
4953
  CHILD: "barn",
3946
4954
  CHILDREN: "barn",
3947
- GENDER: "Tilltal",
4955
+ GENDER: "Tilltalsform",
4956
+ GENDER_ID: "Kön enligt pass/ID-kort",
3948
4957
  MALE: "Herr",
4958
+ MALE_GENDER: "Man",
3949
4959
  FEMALE: "Fru",
4960
+ FEMALE_GENDER: "Kvinna",
3950
4961
  OTHER: "Annat",
3951
4962
  MAIN_BOOKER: "Huvudbokare",
3952
4963
  FIRST_NAME: "Förnamn",
@@ -4057,6 +5068,73 @@ var PRINT_OFFER_BUTTON$1 = {
4057
5068
  LABEL_CREATING: "Skapar offert…",
4058
5069
  LABEL_PRINTING: "Skapar PDF…"
4059
5070
  };
5071
+ var QSM$2 = {
5072
+ MULTIDESTINATION: "Flera destinationer",
5073
+ PACKAGES: "Paket",
5074
+ TRANSPORT_HOTEL: "Transport + hotell",
5075
+ ACCOMMODATION: "Boende",
5076
+ TRANSPORTS: "Transport",
5077
+ TICKET_ONLY: "Endast biljett",
5078
+ RENT_A_CAR: "Hyr bil",
5079
+ TRANSFERS: "Transfer",
5080
+ CRUISES: "Kryssningar",
5081
+ ONE_ACCOMMODATION: "Ett boende",
5082
+ MULTIPLE_ACCOMMODATIONS: "Flera boenden",
5083
+ TRAVEL_CLASS_LABEL: "Reseklass",
5084
+ TRAVEL_CLASS_PLACEHOLDER: "Välj reseklass",
5085
+ TRAVEL_TYPE_LABEL: "Restyp",
5086
+ TRAVEL_TYPE_PLACEHOLDER: "Välj restyp",
5087
+ NATIONALITY_LABEL: "Nationalitet",
5088
+ NATIONALITY_PLACEHOLDER: "Välj nationalitet",
5089
+ TRAVELERS_LABEL: "Vem reser?",
5090
+ ADD_ROOM: "Lägg till rum",
5091
+ REMOVE_ROOM: "Ta bort rum",
5092
+ MAX_TRAVELERS_REACHED: "Du har nått maximalt antal resenärer",
5093
+ ADULTS: "Vuxna",
5094
+ CHILDREN: "Barn",
5095
+ BABIES: "Spädbarn",
5096
+ CHOOSE_DATES: "Välj datum",
5097
+ DEPARTURE_DATE: "Avresedatum",
5098
+ RETURN_DATE: "Hemresedatum",
5099
+ CONFIRM: "Bekräfta",
5100
+ TRAVELERS: "Resenärer"
5101
+ };
5102
+ var SRP$1 = {
5103
+ NO_RESULTS: "Inga resultat hittades.",
5104
+ TOTAL_RESULTS_LABEL: "Hittade paket",
5105
+ RESET: "Återställ",
5106
+ LUGGAGEINCLUDED: "Bagage ingår",
5107
+ CANCEL: "Avbryt",
5108
+ APPLY: "Tillämpa",
5109
+ LOADING: "Laddar...",
5110
+ SEARCHRESULTCTA: "Visa detaljer",
5111
+ SORTBY: "Sortera efter",
5112
+ PRICE_ASC: "Pris (lågt till högt)",
5113
+ PRICE_DESC: "Pris (högt till lågt)",
5114
+ DEPARTURE_ASC: "Avresedatum (närmast först)",
5115
+ FILTERS: "Filter",
5116
+ SHOW_ITINERARY: "Visa resplan",
5117
+ ITINERARY_TITLE: "Din resesammanfattning",
5118
+ DOSSIER_NUMBER: "Filnummer",
5119
+ PACKAGE_PRICE_PER_PERSON: "paketpris per person",
5120
+ TOTAL: "totalt",
5121
+ DAY_BY_DAY: "Din resa dag för dag",
5122
+ START: "start",
5123
+ END: "slut",
5124
+ EXTENDED: "Utökad",
5125
+ COMPACT: "Kompakt",
5126
+ LIST: "Lista",
5127
+ SELECT: "Välj",
5128
+ DEPARTURE: "Avresa",
5129
+ RETURN: "Återkomst",
5130
+ DIRECT: "Direkt",
5131
+ STOPS: "stopp",
5132
+ STOP: "stopp",
5133
+ STOP_TIME: "Bytestid",
5134
+ ACCOMMODATION: "Boende",
5135
+ VIEW_DETAILS: "Visa detaljer",
5136
+ NIGHTS: "nätter"
5137
+ };
4060
5138
  var svJson = {
4061
5139
  STEPS: STEPS$1,
4062
5140
  INPUT: INPUT$1,
@@ -4071,7 +5149,9 @@ var svJson = {
4071
5149
  SUMMARY: SUMMARY$1,
4072
5150
  CONFIRMATION: CONFIRMATION$1,
4073
5151
  ERROR: ERROR$1,
4074
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$1
5152
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$1,
5153
+ QSM: QSM$2,
5154
+ SRP: SRP$1
4075
5155
  };
4076
5156
 
4077
5157
  var STEPS = {
@@ -4209,8 +5289,11 @@ var TRAVELERS_FORM = {
4209
5289
  CHILD: "子供",
4210
5290
  CHILDREN: "子供",
4211
5291
  GENDER: "敬称",
4212
- MALE: "様(男性)",
4213
- FEMALE: "様(女性)",
5292
+ GENDER_ID: "パスポート/身分証明書上の性別",
5293
+ MALE: "男性",
5294
+ MALE_GENDER: "男性",
5295
+ FEMALE: "女性",
5296
+ FEMALE_GENDER: "女性",
4214
5297
  OTHER: "その他",
4215
5298
  MAIN_BOOKER: "代表予約者",
4216
5299
  FIRST_NAME: "名",
@@ -4321,6 +5404,73 @@ var PRINT_OFFER_BUTTON = {
4321
5404
  LABEL_CREATING: "見積もりを生成中…",
4322
5405
  LABEL_PRINTING: "PDFを生成中…"
4323
5406
  };
5407
+ var QSM$1 = {
5408
+ MULTIDESTINATION: "複数都市",
5409
+ PACKAGES: "パッケージ",
5410
+ TRANSPORT_HOTEL: "交通 + ホテル",
5411
+ ACCOMMODATION: "宿泊",
5412
+ TRANSPORTS: "交通",
5413
+ TICKET_ONLY: "チケットのみ",
5414
+ RENT_A_CAR: "レンタカー",
5415
+ TRANSFERS: "送迎",
5416
+ CRUISES: "クルーズ",
5417
+ ONE_ACCOMMODATION: "1つの宿泊先",
5418
+ MULTIPLE_ACCOMMODATIONS: "複数の宿泊先",
5419
+ TRAVEL_CLASS_LABEL: "座席クラス",
5420
+ TRAVEL_CLASS_PLACEHOLDER: "座席クラスを選択",
5421
+ TRAVEL_TYPE_LABEL: "旅行タイプ",
5422
+ TRAVEL_TYPE_PLACEHOLDER: "旅行タイプを選択",
5423
+ NATIONALITY_LABEL: "国籍",
5424
+ NATIONALITY_PLACEHOLDER: "国籍を選択",
5425
+ TRAVELERS_LABEL: "旅行者は誰ですか?",
5426
+ ADD_ROOM: "部屋を追加",
5427
+ REMOVE_ROOM: "部屋を削除",
5428
+ MAX_TRAVELERS_REACHED: "旅行者の最大人数に達しました",
5429
+ ADULTS: "大人",
5430
+ CHILDREN: "子供",
5431
+ BABIES: "乳児",
5432
+ CHOOSE_DATES: "日付を選択",
5433
+ DEPARTURE_DATE: "出発日",
5434
+ RETURN_DATE: "帰着日",
5435
+ CONFIRM: "確認",
5436
+ TRAVELERS: "旅行者"
5437
+ };
5438
+ var SRP = {
5439
+ NO_RESULTS: "結果が見つかりませんでした。",
5440
+ TOTAL_RESULTS_LABEL: "見つかったパッケージ",
5441
+ RESET: "リセット",
5442
+ LUGGAGEINCLUDED: "手荷物込み",
5443
+ CANCEL: "キャンセル",
5444
+ APPLY: "適用",
5445
+ LOADING: "読み込み中...",
5446
+ SEARCHRESULTCTA: "詳細を見る",
5447
+ SORTBY: "並び替え",
5448
+ PRICE_ASC: "価格(安い順)",
5449
+ PRICE_DESC: "価格(高い順)",
5450
+ DEPARTURE_ASC: "出発日(早い順)",
5451
+ FILTERS: "フィルター",
5452
+ SHOW_ITINERARY: "旅程を表示",
5453
+ ITINERARY_TITLE: "あなたの旅行概要",
5454
+ DOSSIER_NUMBER: "ファイル番号",
5455
+ PACKAGE_PRICE_PER_PERSON: "1人あたりのパッケージ料金",
5456
+ TOTAL: "合計",
5457
+ DAY_BY_DAY: "日ごとの旅程",
5458
+ START: "開始",
5459
+ END: "終了",
5460
+ EXTENDED: "拡張",
5461
+ COMPACT: "コンパクト",
5462
+ LIST: "リスト",
5463
+ SELECT: "選択",
5464
+ DEPARTURE: "出発",
5465
+ RETURN: "帰り",
5466
+ DIRECT: "直行",
5467
+ STOPS: "停車",
5468
+ STOP: "停車",
5469
+ STOP_TIME: "乗り換え時間",
5470
+ ACCOMMODATION: "宿泊",
5471
+ VIEW_DETAILS: "詳細を見る",
5472
+ NIGHTS: "泊"
5473
+ };
4324
5474
  var jaJson = {
4325
5475
  STEPS: STEPS,
4326
5476
  INPUT: INPUT,
@@ -4335,10 +5485,12 @@ var jaJson = {
4335
5485
  SUMMARY: SUMMARY,
4336
5486
  CONFIRMATION: CONFIRMATION,
4337
5487
  ERROR: ERROR,
4338
- PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON
5488
+ PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON,
5489
+ QSM: QSM$1,
5490
+ SRP: SRP
4339
5491
  };
4340
5492
 
4341
- var formatPrice$1 = function (price, currencyCode, locale) {
5493
+ var formatPrice = function (price, currencyCode, locale) {
4342
5494
  if (locale === void 0) { locale = 'nl-BE'; }
4343
5495
  var priceFormat = Intl.NumberFormat(locale, {
4344
5496
  style: 'currency',
@@ -4443,7 +5595,7 @@ function getLocale(code) {
4443
5595
  }
4444
5596
  }
4445
5597
  var getPriceDifferenceText = function (price, currencyCode) {
4446
- return price > 0 ? "+ ".concat(formatPrice$1(Math.abs(price), currencyCode)) : "- ".concat(formatPrice$1(Math.abs(price), currencyCode));
5598
+ return price > 0 ? "+ ".concat(formatPrice(Math.abs(price), currencyCode)) : "- ".concat(formatPrice(Math.abs(price), currencyCode));
4447
5599
  };
4448
5600
  function format(text, args) {
4449
5601
  return text.replace(/{([0-9]+)}/g, function (match, index) {
@@ -10808,6 +11960,7 @@ var ENDPOINT_SEARCH_WITH_ERROR_MAPPING =
10808
11960
  ENDPOINT$7 + "/search-with-error-mapping";
10809
11961
  // const ENDPOINT_ELASTIC = `${ENDPOINT}/elastic`; // TODO
10810
11962
  var ENDPOINT_DETAILS = ENDPOINT$7 + "/details";
11963
+ var ENDPOINT_DETAILS_WL = ENDPOINT$7 + "/details-wl";
10811
11964
  var ENDPOINT_VALIDATE_VOUCHER = ENDPOINT$7 + "/validate-voucher";
10812
11965
  var ENDPOINT_ALTERNATE_HOTELS = function (transactionId, optionId) {
10813
11966
  return (
@@ -10895,6 +12048,12 @@ var details = function (config, request, signal, languageCode) {
10895
12048
  var body = JSON.stringify(request);
10896
12049
  return post(url, apiKey, body, config.token, signal, true, languageCode);
10897
12050
  };
12051
+ var detailsWL = function (config, request, signal, languageCode) {
12052
+ var url = "" + config.host + ENDPOINT_DETAILS_WL;
12053
+ var apiKey = config.apiKey;
12054
+ var body = JSON.stringify(request);
12055
+ return post(url, apiKey, body, config.token, signal, true, languageCode);
12056
+ };
10898
12057
  var validateVoucher = function (config, request, signal) {
10899
12058
  var url = "" + config.host + ENDPOINT_VALIDATE_VOUCHER;
10900
12059
  var apiKey = config.apiKey;
@@ -11474,6 +12633,7 @@ exports.contactHasTag = contactHasTag;
11474
12633
  exports.createCrmContact = createCrmContact;
11475
12634
  exports.createParams = createParams;
11476
12635
  exports.details = details;
12636
+ exports.detailsWL = detailsWL;
11477
12637
  exports.feedXml = feedXml;
11478
12638
  exports.feedXmlFolder = feedXmlFolder;
11479
12639
  exports.flightLines = flightLines;
@@ -11573,16 +12733,16 @@ var formatPriceByMode = function (price, priceMode, personCount, duration, perPe
11573
12733
  return '';
11574
12734
  switch (priceMode) {
11575
12735
  case 0:
11576
- return "".concat(formatPrice$1(price, currencyCode));
12736
+ return "".concat(formatPrice(price, currencyCode));
11577
12737
  case 1:
11578
12738
  var perPersonPrice = price / personCount;
11579
- return "".concat(formatPrice$1(perPersonPrice, currencyCode), " / ").concat(perPersonLabel);
12739
+ return "".concat(formatPrice(perPersonPrice, currencyCode), " / ").concat(perPersonLabel);
11580
12740
  case 2:
11581
12741
  var perNightPrice = price / duration;
11582
- return "".concat(formatPrice$1(perNightPrice, currencyCode), " / ").concat(perNightLabel);
12742
+ return "".concat(formatPrice(perNightPrice, currencyCode), " / ").concat(perNightLabel);
11583
12743
  case 3:
11584
12744
  var perPersonPerNightPrice = price / duration;
11585
- return "".concat(formatPrice$1(perPersonPerNightPrice, currencyCode), " / ").concat(perPersonPerNightLabel);
12745
+ return "".concat(formatPrice(perPersonPerNightPrice, currencyCode), " / ").concat(perPersonPerNightLabel);
11586
12746
  }
11587
12747
  };
11588
12748
 
@@ -13345,15 +14505,16 @@ var Product = function (_a) {
13345
14505
  var _m = React.useState(false), hasTransfer = _m[0], setHasTransfer = _m[1];
13346
14506
  var _o = React.useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _o[0], setRooms = _o[1];
13347
14507
  var _p = React.useState([]), searchResponse = _p[0], setSearchResponse = _p[1];
13348
- var _q = React.useState(), dateRange = _q[0], setDateRange = _q[1];
13349
- var _r = React.useState(productName), packageProductName = _r[0], setPackageProductName = _r[1];
13350
- var _s = React.useState(''), currencyCode = _s[0], setCurrencyCode = _s[1];
13351
- var _t = React.useState([]), searchResults = _t[0], setSearchResults = _t[1];
14508
+ var _q = React.useState(), detailResponse = _q[0], setDetailResponse = _q[1];
14509
+ var _r = React.useState(), dateRange = _r[0], setDateRange = _r[1];
14510
+ var _s = React.useState(productName), packageProductName = _s[0], setPackageProductName = _s[1];
14511
+ var _t = React.useState(''), currencyCode = _t[0], setCurrencyCode = _t[1];
14512
+ var _u = React.useState([]), searchResults = _u[0], setSearchResults = _u[1];
13352
14513
  var skipNextFetchRef = React.useRef(false);
13353
14514
  var fetchPackage = function (signal) { return __awaiter(void 0, void 0, void 0, function () {
13354
- var apiSettingsState, startDate, endDate, requestRooms, detailsRequest, searchRequest, detailResponse, _a, selectedOption, hasFlight_1, hasTranfer;
13355
- return __generator(this, function (_b) {
13356
- switch (_b.label) {
14515
+ var apiSettingsState, startDate, endDate, requestRooms, detailsRequest, searchRequest, _a, _b;
14516
+ return __generator(this, function (_c) {
14517
+ switch (_c.label) {
13357
14518
  case 0:
13358
14519
  if (displayMode === 'list' && searchType !== 1) {
13359
14520
  console.error('The combination of searchType and displayMode is not supported.' + " Please set searchType to 1 when using displayMode 'list'.");
@@ -13415,40 +14576,22 @@ var Product = function (_a) {
13415
14576
  }
13416
14577
  };
13417
14578
  setIsLoading(true);
13418
- detailResponse = void 0;
13419
14579
  if (!(displayMode === 'calendar' && searchType === 0)) return [3 /*break*/, 2];
14580
+ _a = setDetailResponse;
13420
14581
  return [4 /*yield*/, packageApi$1.fetchDetails(detailsRequest, signal, language, apiSettingsState)];
13421
14582
  case 1:
13422
- detailResponse = _b.sent();
13423
- _b.label = 2;
14583
+ _a.apply(void 0, [_c.sent()]);
14584
+ _c.label = 2;
13424
14585
  case 2:
13425
14586
  if (!(searchType === 1)) return [3 /*break*/, 4];
13426
- _a = setSearchResponse;
14587
+ _b = setSearchResponse;
13427
14588
  return [4 /*yield*/, packageApi$1.fetchSearch(searchRequest, signal, apiSettingsState)];
13428
14589
  case 3:
13429
- _a.apply(void 0, [_b.sent()]);
13430
- _b.label = 4;
14590
+ _b.apply(void 0, [_c.sent()]);
14591
+ _c.label = 4;
13431
14592
  case 4:
13432
- if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
13433
- selectedOption = detailResponse.payload.options.find(function (x) { return x.isSelected; });
13434
- if (selectedOption) {
13435
- hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
13436
- hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
13437
- setPrice(selectedOption.price);
13438
- setHasFlight(hasFlight_1);
13439
- setHasTransfer(hasTranfer);
13440
- setCurrencyCode(detailResponse.payload.currencyCode);
13441
- setPackageProductName(selectedOption.name);
13442
- }
13443
- }
13444
- else {
13445
- setPrice(undefined);
13446
- setHasFlight(false);
13447
- setHasTransfer(false);
13448
- setCurrencyCode('');
13449
- }
13450
14593
  setIsLoading(false);
13451
- _b.label = 5;
14594
+ _c.label = 5;
13452
14595
  case 5: return [2 /*return*/];
13453
14596
  }
13454
14597
  });
@@ -13519,10 +14662,12 @@ var Product = function (_a) {
13519
14662
  if (selectedItem) {
13520
14663
  setPrice(selectedItem.price);
13521
14664
  setPackageProductName(selectedItem.name);
14665
+ setCurrencyCode(selectedItem.currencyCode);
13522
14666
  }
13523
14667
  else {
13524
14668
  setPrice(searchResponse[0].price);
13525
14669
  setPackageProductName(searchResponse[0].name);
14670
+ setCurrencyCode(searchResponse[0].currencyCode);
13526
14671
  }
13527
14672
  }
13528
14673
  else {
@@ -13531,6 +14676,26 @@ var Product = function (_a) {
13531
14676
  setPackageProductName(translations.PRODUCT.NOT_AVAILABLE);
13532
14677
  }
13533
14678
  }, [searchResponse]);
14679
+ React.useEffect(function () {
14680
+ if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
14681
+ var selectedOption = detailResponse.payload.options.find(function (x) { return x.isSelected; });
14682
+ if (selectedOption) {
14683
+ var hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
14684
+ var hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
14685
+ setPrice(selectedOption.price);
14686
+ setHasFlight(hasFlight_1);
14687
+ setHasTransfer(hasTranfer);
14688
+ setCurrencyCode(detailResponse.payload.currencyCode);
14689
+ setPackageProductName(selectedOption.name);
14690
+ }
14691
+ }
14692
+ else if (detailResponse !== undefined) {
14693
+ setPrice(undefined);
14694
+ setHasFlight(false);
14695
+ setHasTransfer(false);
14696
+ setCurrencyCode('');
14697
+ }
14698
+ }, [detailResponse]);
13534
14699
  React.useEffect(function () {
13535
14700
  if (searchType === 1 && skipNextFetchRef.current) {
13536
14701
  skipNextFetchRef.current = false;
@@ -15275,7 +16440,7 @@ var getFlightDetails = function (flight) {
15275
16440
  arrivalDate: lastLine.arrivalDate,
15276
16441
  arrivalTime: lastLine.arrivalTime,
15277
16442
  arrivalAirport: lastLine.arrivalAirportDescription,
15278
- travelDuration: formatDuration(flight.flightMetaData.durationInTicks),
16443
+ travelDuration: formatDuration$1(flight.flightMetaData.durationInTicks),
15279
16444
  travelDurationMinutes: minutesFromTicks(flight.flightMetaData.durationInTicks),
15280
16445
  changeDurationMinutes: getTotalChangeDuration(flight),
15281
16446
  numberOfStops: flight.flightMetaData.flightLines.length - 1,
@@ -15290,7 +16455,7 @@ var getFlightDetails = function (flight) {
15290
16455
  arrivalTime: x.arrivalTime,
15291
16456
  arrivalAirport: x.arrivalAirportDescription,
15292
16457
  number: "".concat(x.airlineCode, " ").concat(x.number),
15293
- travelDuration: formatDuration(x.durationInTicks),
16458
+ travelDuration: formatDuration$1(x.durationInTicks),
15294
16459
  waitDuration: waitDurations.length - 1 <= i ? waitDurations[i] : undefined
15295
16460
  }); })
15296
16461
  };
@@ -15366,7 +16531,7 @@ var minutesFromTicks = function (ticks) {
15366
16531
  var totalSeconds = ticks / 10000000;
15367
16532
  return Math.floor(totalSeconds / 60);
15368
16533
  };
15369
- var formatDuration = function (ticks) {
16534
+ var formatDuration$1 = function (ticks) {
15370
16535
  if (!ticks)
15371
16536
  return '';
15372
16537
  var totalSeconds = ticks / 10000000;
@@ -16128,7 +17293,7 @@ var NoneOption = function (_a) {
16128
17293
  var selectedOption = group.options.find(function (x) { return x.isSelected; });
16129
17294
  var showNoneOption = group.options.some(function (x) { return x.requirementType === 2; });
16130
17295
  var noneSelected = !selectedOption;
16131
- var priceDifferencetext = selectedOption ? "- ".concat(formatPrice$1(Math.abs(selectedOption.line.price), currencyCode)) : '';
17296
+ var priceDifferencetext = selectedOption ? "- ".concat(formatPrice(Math.abs(selectedOption.line.price), currencyCode)) : '';
16132
17297
  return (React__default["default"].createElement(React__default["default"].Fragment, null, showNoneOption && (React__default["default"].createElement("tr", null,
16133
17298
  React__default["default"].createElement("td", null,
16134
17299
  React__default["default"].createElement("div", { className: buildClassName(['tree', noneSelected && 'tree--selected']) },
@@ -16680,7 +17845,7 @@ var OptionRoom = function (_a) {
16680
17845
  e.preventDefault();
16681
17846
  };
16682
17847
  var getPriceDifferenceText = function (price) {
16683
- return price > 0 ? "+ ".concat(formatPrice$1(Math.abs(price), currencyCode)) : "- ".concat(formatPrice$1(Math.abs(price), currencyCode));
17848
+ return price > 0 ? "+ ".concat(formatPrice(Math.abs(price), currencyCode)) : "- ".concat(formatPrice(Math.abs(price), currencyCode));
16684
17849
  };
16685
17850
  var getAccommodationPriceDifference = function (accommodation) {
16686
17851
  var _a;
@@ -17327,7 +18492,7 @@ var Sidebar = function (_a) {
17327
18492
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17328
18493
  React__default["default"].createElement("div", { className: "pricing-summary__property" },
17329
18494
  React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.BASE_PRICE)),
17330
- React__default["default"].createElement("div", { className: "pricing-summary__value" }, formatPrice$1(basePrice, currencyCode))))),
18495
+ React__default["default"].createElement("div", { className: "pricing-summary__value" }, formatPrice(basePrice, currencyCode))))),
17331
18496
  !lodash.isEmpty(includedCosts) && (React__default["default"].createElement("div", { className: "pricing-summary__group" },
17332
18497
  React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.INCLUDED_COSTS), includedCosts === null || includedCosts === void 0 ? void 0 :
17333
18498
  includedCosts.map(function (priceDetail, index) {
@@ -17335,7 +18500,7 @@ var Sidebar = function (_a) {
17335
18500
  return (React__default["default"].createElement(React__default["default"].Fragment, { key: lodash.compact([priceDetail.productCode, priceDetail.accommodationCode, index]).join('_') },
17336
18501
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17337
18502
  React__default["default"].createElement("div", { className: "pricing-summary__property" }, priceDetail.productName),
17338
- priceDetail.showPrice && (React__default["default"].createElement("div", { className: "pricing-summary__value" }, formatPrice$1(priceDetail.price * priceDetail.amount, currencyCode)))),
18503
+ priceDetail.showPrice && (React__default["default"].createElement("div", { className: "pricing-summary__value" }, formatPrice(priceDetail.price * priceDetail.amount, currencyCode)))),
17339
18504
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17340
18505
  React__default["default"].createElement("div", { className: "price-summary__property" }, (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode))));
17341
18506
  }))),
@@ -17346,7 +18511,7 @@ var Sidebar = function (_a) {
17346
18511
  return (React__default["default"].createElement(React__default["default"].Fragment, { key: lodash.compact([priceDetail.productCode, priceDetail.accommodationCode, index]).join('_') },
17347
18512
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17348
18513
  React__default["default"].createElement("div", { className: "pricing-summary__property" }, priceDetail.productName),
17349
- priceDetail.showPrice && (React__default["default"].createElement("div", { className: "pricing-summary__value" }, formatPrice$1(priceDetail.price * priceDetail.amount, currencyCode)))),
18514
+ priceDetail.showPrice && (React__default["default"].createElement("div", { className: "pricing-summary__value" }, formatPrice(priceDetail.price * priceDetail.amount, currencyCode)))),
17350
18515
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17351
18516
  React__default["default"].createElement("div", { className: "price-summary__property" }, (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode))));
17352
18517
  }))))))) : (React__default["default"].createElement("div", { className: "pricing-summary__region" },
@@ -17357,20 +18522,20 @@ var Sidebar = function (_a) {
17357
18522
  React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SHARED.TOTAL_PRICE)),
17358
18523
  React__default["default"].createElement("div", { className: "pricing-summary__value" },
17359
18524
  React__default["default"].createElement("div", { className: "pricing" },
17360
- React__default["default"].createElement("div", { className: "pricing__price" }, formatPrice$1(totalPrice, currencyCode)))))),
18525
+ React__default["default"].createElement("div", { className: "pricing__price" }, formatPrice(totalPrice, currencyCode)))))),
17361
18526
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17362
18527
  React__default["default"].createElement("div", { className: "pricing-summary__property" },
17363
18528
  React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.DEPOSIT)),
17364
18529
  React__default["default"].createElement("div", { className: "pricing-summary__value" },
17365
18530
  React__default["default"].createElement("div", { className: "pricing" },
17366
- React__default["default"].createElement("div", { className: "pricing__price" }, formatPrice$1(deposit, currencyCode))))),
18531
+ React__default["default"].createElement("div", { className: "pricing__price" }, formatPrice(deposit, currencyCode))))),
17367
18532
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
17368
18533
  React__default["default"].createElement("small", null,
17369
18534
  React__default["default"].createElement("em", null,
17370
18535
  translations.SIDEBAR.DEPOSIT_TEXT1,
17371
18536
  React__default["default"].createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT2),
17372
18537
  translations.SIDEBAR.DEPOSIT_TEXT3,
17373
- formatPrice$1(remainingAmount, currencyCode),
18538
+ formatPrice(remainingAmount, currencyCode),
17374
18539
  translations.SIDEBAR.DEPOSIT_TEXT4,
17375
18540
  React__default["default"].createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT5),
17376
18541
  translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React__default["default"].createElement("div", { className: "pricing-summary__group" }, totalPrice !== undefined && totalPrice > 0 && (React__default["default"].createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
@@ -17378,7 +18543,7 @@ var Sidebar = function (_a) {
17378
18543
  React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SHARED.TOTAL_PRICE)),
17379
18544
  React__default["default"].createElement("div", { className: "pricing-summary__value" },
17380
18545
  React__default["default"].createElement("div", { className: "pricing" },
17381
- React__default["default"].createElement("div", { className: "pricing__price" }, formatPrice$1(totalPrice, currencyCode)))))))))),
18546
+ React__default["default"].createElement("div", { className: "pricing__price" }, formatPrice(totalPrice, currencyCode)))))))))),
17382
18547
  footerComponent))));
17383
18548
  };
17384
18549
 
@@ -17881,21 +19046,17 @@ var GenderControl = function (_a) {
17881
19046
  var translations = _a.translations, value = _a.value, formik = _a.formik, name = _a.name;
17882
19047
  return (React__default["default"].createElement("div", { className: buildClassName(['form__group', hasVisibleError(formik, name) && 'form__group--error']) },
17883
19048
  React__default["default"].createElement("label", { className: "form__label" },
17884
- translations.TRAVELERS_FORM.GENDER,
19049
+ translations.TRAVELERS_FORM.GENDER_ID,
17885
19050
  " *"),
17886
19051
  React__default["default"].createElement("div", { className: "radiobutton-group" },
17887
19052
  React__default["default"].createElement("div", { className: "radiobutton" },
17888
19053
  React__default["default"].createElement("label", { className: "radiobutton__label" },
17889
19054
  React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: name, onChange: formik.handleChange, onBlur: formik.handleBlur, value: "m", checked: value.gender === 'm' }),
17890
- translations.TRAVELERS_FORM.MALE)),
19055
+ translations.TRAVELERS_FORM.MALE_GENDER)),
17891
19056
  React__default["default"].createElement("div", { className: "radiobutton" },
17892
19057
  React__default["default"].createElement("label", { className: "radiobutton__label" },
17893
19058
  React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: name, onChange: formik.handleChange, onBlur: formik.handleBlur, value: "f", checked: value.gender === 'f' }),
17894
- translations.TRAVELERS_FORM.FEMALE)),
17895
- React__default["default"].createElement("div", { className: "radiobutton" },
17896
- React__default["default"].createElement("label", { className: "radiobutton__label" },
17897
- React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: name, onChange: formik.handleChange, onBlur: formik.handleBlur, value: "x", checked: value.gender === 'x' }),
17898
- translations.TRAVELERS_FORM.OTHER)))));
19059
+ translations.TRAVELERS_FORM.FEMALE_GENDER)))));
17899
19060
  };
17900
19061
 
17901
19062
  var TypeAheadInput = function (_a) {
@@ -18525,21 +19686,17 @@ var TravelersForm = function () {
18525
19686
  React__default["default"].createElement("div", { className: "form__row" },
18526
19687
  React__default["default"].createElement("div", { className: buildClassName(['form__group', hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].gender")) && 'form__group--error']) },
18527
19688
  React__default["default"].createElement("label", { className: "form__label" },
18528
- translations.TRAVELERS_FORM.GENDER,
19689
+ translations.TRAVELERS_FORM.GENDER_ID,
18529
19690
  " *"),
18530
19691
  React__default["default"].createElement("div", { className: "radiobutton-group" },
18531
19692
  React__default["default"].createElement("div", { className: "radiobutton" },
18532
19693
  React__default["default"].createElement("label", { className: "radiobutton__label" },
18533
19694
  React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: "m", checked: travelerValues.gender === 'm' }),
18534
- translations.TRAVELERS_FORM.MALE)),
19695
+ translations.TRAVELERS_FORM.MALE_GENDER)),
18535
19696
  React__default["default"].createElement("div", { className: "radiobutton" },
18536
19697
  React__default["default"].createElement("label", { className: "radiobutton__label" },
18537
19698
  React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: "f", checked: travelerValues.gender === 'f' }),
18538
- translations.TRAVELERS_FORM.FEMALE)),
18539
- React__default["default"].createElement("div", { className: "radiobutton" },
18540
- React__default["default"].createElement("label", { className: "radiobutton__label" },
18541
- React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: "x", checked: travelerValues.gender === 'x' }),
18542
- translations.TRAVELERS_FORM.OTHER))))),
19699
+ translations.TRAVELERS_FORM.FEMALE_GENDER))))),
18543
19700
  React__default["default"].createElement("div", { className: "form__row" },
18544
19701
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].firstName")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.FIRST_NAME, required: true, name: "rooms[".concat(rIndex, "].adults[").concat(index, "].firstName"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.firstName }),
18545
19702
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].lastName")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.LAST_NAME, required: true, name: "rooms[".concat(rIndex, "].adults[").concat(index, "].lastName"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.lastName }),
@@ -18560,21 +19717,17 @@ var TravelersForm = function () {
18560
19717
  React__default["default"].createElement("div", { className: "form__row" },
18561
19718
  React__default["default"].createElement("div", { className: buildClassName(['form__group', hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].gender")) && 'form__group--error']) },
18562
19719
  React__default["default"].createElement("label", { className: "form__label" },
18563
- translations.TRAVELERS_FORM.GENDER,
19720
+ translations.TRAVELERS_FORM.GENDER_ID,
18564
19721
  " *"),
18565
19722
  React__default["default"].createElement("div", { className: "radiobutton-group" },
18566
19723
  React__default["default"].createElement("div", { className: "radiobutton" },
18567
19724
  React__default["default"].createElement("label", { className: "radiobutton__label" },
18568
19725
  React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: "m", checked: travelerValues.gender === 'm' }),
18569
- translations.TRAVELERS_FORM.MALE)),
19726
+ translations.TRAVELERS_FORM.MALE_GENDER)),
18570
19727
  React__default["default"].createElement("div", { className: "radiobutton" },
18571
19728
  React__default["default"].createElement("label", { className: "radiobutton__label" },
18572
19729
  React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: "f", checked: travelerValues.gender === 'f' }),
18573
- translations.TRAVELERS_FORM.FEMALE)),
18574
- React__default["default"].createElement("div", { className: "radiobutton" },
18575
- React__default["default"].createElement("label", { className: "radiobutton__label" },
18576
- React__default["default"].createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: "x", checked: travelerValues.gender === 'x' }),
18577
- translations.TRAVELERS_FORM.OTHER))))),
19730
+ translations.TRAVELERS_FORM.FEMALE_GENDER))))),
18578
19731
  React__default["default"].createElement("div", { className: "form__row" },
18579
19732
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].firstName")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.FIRST_NAME, required: true, name: "rooms[".concat(rIndex, "].children[").concat(index, "].firstName"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.firstName }),
18580
19733
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].lastName")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.LAST_NAME, required: true, name: "rooms[".concat(rIndex, "].children[").concat(index, "].lastName"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.lastName }),
@@ -19021,7 +20174,7 @@ var Icon$2 = function (_a) {
19021
20174
  React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
19022
20175
  title && React__default["default"].createElement("title", null, title),
19023
20176
  React__default["default"].createElement("path", { d: "M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z", fill: "currentColor" })));
19024
- case 'ui-comparator':
20177
+ case 'ui-list':
19025
20178
  return (React__default["default"].createElement("svg", { className: ['icon', "icon--".concat(name), className].filter(function (className) { return !lodash.isEmpty(className); }).join(' '), width: width, height: height, viewBox: "0 0 512 512" },
19026
20179
  React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
19027
20180
  title && React__default["default"].createElement("title", null, title),
@@ -19612,7 +20765,6 @@ var QSMConfigurationContext = React__default["default"].createContext({
19612
20765
  showReturnDate: false,
19613
20766
  datesIcon: '',
19614
20767
  onSubmit: function () { },
19615
- submitLabel: 'Zoeken',
19616
20768
  submitIcon: ''
19617
20769
  });
19618
20770
 
@@ -20271,10 +21423,11 @@ var DateRangePicker = function (_a) {
20271
21423
  };
20272
21424
 
20273
21425
  var TravelInput = function () {
20274
- var _a = React.useContext(QSMConfigurationContext), type = _a.type, askRooms = _a.askRooms, maxTravelers = _a.maxTravelers, defaultTravelers = _a.defaultTravelers, maxChildAge = _a.maxChildAge, maxInfantAge = _a.maxInfantAge; _a.askTravelType; _a.askTravelClass;
21426
+ var _a = React.useContext(QSMConfigurationContext), type = _a.type, askRooms = _a.askRooms, maxTravelers = _a.maxTravelers, defaultTravelers = _a.defaultTravelers, maxChildAge = _a.maxChildAge, maxInfantAge = _a.maxInfantAge; _a.askTravelType; _a.askTravelClass; var languageCode = _a.languageCode;
20275
21427
  var areTravelersInRooms = type !== 'flight' && askRooms;
20276
21428
  var dispatch = reactRedux.useDispatch();
20277
21429
  var _b = reactRedux.useSelector(function (state) { return state.qsm; }), adults = _b.adults, kids = _b.kids, babies = _b.babies, rooms = _b.rooms;
21430
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20278
21431
  var getTravelerButtonClass = function (disabled) { return "button button--increment ".concat(disabled ? 'button--disabled' : ''); };
20279
21432
  var totalTravelers = areTravelersInRooms ? rooms.reduce(function (sum, room) { return sum + room.adults + room.kids + room.babies; }, 0) : adults + kids + babies;
20280
21433
  var safeMaxTravelers = maxTravelers !== null && maxTravelers !== void 0 ? maxTravelers : Infinity;
@@ -20316,20 +21469,21 @@ var TravelInput = function () {
20316
21469
  };
20317
21470
  // Compute age labels dynamically
20318
21471
  var ageLabels = {
20319
- adults: maxChildAge ? "".concat(maxChildAge + 1, "+ jaar") : '12+ jaar',
20320
- kids: maxChildAge && maxInfantAge ? "".concat(maxInfantAge + 1, "-").concat(maxChildAge, " jaar") : '2-11 jaar',
20321
- babies: maxInfantAge !== undefined ? "0-".concat(maxInfantAge, " jaar") : '0-1 jaar'
21472
+ adults: maxChildAge ? "".concat(maxChildAge + 1, "+ ").concat(translations.PRODUCT.YEAR) : "12+ ".concat(translations.PRODUCT.YEAR),
21473
+ kids: maxChildAge && maxInfantAge ? "".concat(maxInfantAge + 1, "-").concat(maxChildAge, " ").concat(translations.PRODUCT.YEAR) : "2-11 ".concat(translations.PRODUCT.YEAR),
21474
+ babies: maxInfantAge !== undefined ? "0-".concat(maxInfantAge, " ").concat(translations.PRODUCT.YEAR) : "0-1 ".concat(translations.PRODUCT.YEAR)
20322
21475
  };
20323
21476
  return (React__default["default"].createElement("div", { className: "passenger-picker" }, areTravelersInRooms ? (React__default["default"].createElement("div", null,
20324
21477
  React__default["default"].createElement("div", { className: "passenger-picker__rooms-header" },
20325
21478
  React__default["default"].createElement("h4", { className: "passenger-picker__rooms-header-title" },
20326
- "Kamers: ",
21479
+ translations.SHARED.ROOMS,
21480
+ ": ",
20327
21481
  React__default["default"].createElement("span", { className: "passenger-picker__rooms-header-count" }, rooms.length)),
20328
21482
  rooms.length < 4 && (React__default["default"].createElement("div", { className: "cta--secondary".concat(!canAddTraveler ? ' cta--disabled' : ''), onClick: function () {
20329
21483
  if (canAddTraveler) {
20330
21484
  handleAddRoom();
20331
21485
  }
20332
- } }, "Kamer toevoegen"))),
21486
+ } }, translations.QSM.ADD_ROOM))),
20333
21487
  React__default["default"].createElement("div", { className: "passenger-picker__rooms-wrapper" }, rooms.map(function (room, idx) { return (React__default["default"].createElement("div", { key: idx, className: "passenger-picker__room" },
20334
21488
  React__default["default"].createElement("h6", { className: "passenger-picker__room-title" },
20335
21489
  "Kamer ",
@@ -20345,16 +21499,16 @@ var TravelInput = function () {
20345
21499
  React__default["default"].createElement("button", { className: getTravelerButtonClass(!canAddTraveler), onClick: function () { return canAddTraveler && handleTravelerChange(idx, type, room[type] + 1); } },
20346
21500
  React__default["default"].createElement(Icon$1, { name: "ui-plus" }))))); }),
20347
21501
  rooms.length > 1 && (React__default["default"].createElement("div", { className: "passenger-picker__remove-room" },
20348
- React__default["default"].createElement("button", { type: "button", className: "cta--remove", onClick: function () { return handleRemoveRoom(idx); } }, "Verwijder kamer"))),
21502
+ React__default["default"].createElement("button", { type: "button", className: "cta--remove", onClick: function () { return handleRemoveRoom(idx); } }, translations.QSM.REMOVE_ROOM))),
20349
21503
  !canAddTraveler && (React__default["default"].createElement("div", { className: "passenger-picker__info-message" },
20350
21504
  React__default["default"].createElement("svg", { className: "passenger-picker__info-message-icon", width: 16, height: 16, viewBox: "0 0 15.967 15.967" },
20351
21505
  React__default["default"].createElement("path", { id: "error_16dp_UNDEFINED_FILL0_wght400_GRAD0_opsz20", d: "M103.979-852.024a.735.735,0,0,0,.535-.214.713.713,0,0,0,.218-.53.735.735,0,0,0-.214-.535.712.712,0,0,0-.53-.218.735.735,0,0,0-.535.214.713.713,0,0,0-.218.53.734.734,0,0,0,.214.535A.712.712,0,0,0,103.979-852.024Zm-.744-2.994h1.5v-4.99h-1.5Zm.754,6.986a7.8,7.8,0,0,1-3.1-.624,8.048,8.048,0,0,1-2.547-1.715,8.051,8.051,0,0,1-1.715-2.546A7.8,7.8,0,0,1,96-856.026a7.735,7.735,0,0,1,.624-3.1,8.079,8.079,0,0,1,1.715-2.536,8.051,8.051,0,0,1,2.546-1.715,7.8,7.8,0,0,1,3.108-.624,7.735,7.735,0,0,1,3.1.624,8.081,8.081,0,0,1,2.536,1.715,8.066,8.066,0,0,1,1.715,2.541,7.755,7.755,0,0,1,.624,3.1,7.8,7.8,0,0,1-.624,3.1,8.048,8.048,0,0,1-1.715,2.547,8.066,8.066,0,0,1-2.541,1.715A7.754,7.754,0,0,1,103.99-848.033Zm-.006-1.5a6.255,6.255,0,0,0,4.595-1.892,6.256,6.256,0,0,0,1.892-4.595,6.255,6.255,0,0,0-1.892-4.595,6.255,6.255,0,0,0-4.595-1.892,6.255,6.255,0,0,0-4.595,1.892,6.255,6.255,0,0,0-1.892,4.595,6.256,6.256,0,0,0,1.892,4.595A6.256,6.256,0,0,0,103.984-849.529ZM103.984-856.016Z", transform: "translate(-96 864)" })),
20352
- React__default["default"].createElement("span", { className: "passenger-picker__info-message-explanation" }, "Je zit aan het maximale aantal personen"))),
21506
+ React__default["default"].createElement("span", { className: "passenger-picker__info-message-explanation" }, translations.QSM.MAX_TRAVELERS_REACHED))),
20353
21507
  React__default["default"].createElement("div", { className: "passenger-picker__line passenger-picker__line--room" }))); })))) : (React__default["default"].createElement("div", null,
20354
21508
  React__default["default"].createElement("div", { className: "passenger-picker__items" },
20355
21509
  React__default["default"].createElement("div", { className: "passenger-picker__item" },
20356
21510
  React__default["default"].createElement("div", { className: "passenger-picker__item-text" },
20357
- React__default["default"].createElement("span", null, "Volwassenen"),
21511
+ React__default["default"].createElement("span", null, translations.QSM.ADULTS),
20358
21512
  React__default["default"].createElement("span", { className: "passenger-picker__item-text-age" }, ageLabels.adults)),
20359
21513
  React__default["default"].createElement("div", { className: "decrement-increment__ui" },
20360
21514
  React__default["default"].createElement("div", { className: "button button--decrement ".concat(adults === 0 ? 'button--disabled' : ''), onClick: function () { return adults > 0 && dispatch(setAdults(adults - 1)); } },
@@ -20364,7 +21518,7 @@ var TravelInput = function () {
20364
21518
  React__default["default"].createElement(Icon$1, { name: "ui-plus" })))),
20365
21519
  React__default["default"].createElement("div", { className: "passenger-picker__item" },
20366
21520
  React__default["default"].createElement("div", { className: "passenger-picker__item-text" },
20367
- React__default["default"].createElement("span", null, "Kinderen"),
21521
+ React__default["default"].createElement("span", null, translations.QSM.CHILDREN),
20368
21522
  React__default["default"].createElement("span", { className: "passenger-picker__item-text-age" }, ageLabels.kids)),
20369
21523
  React__default["default"].createElement("div", { className: "decrement-increment__ui" },
20370
21524
  React__default["default"].createElement("div", { className: getTravelerButtonClass(!canAddTraveler), onClick: function () { return kids > 0 && dispatch(setKids(kids - 1)); } },
@@ -20374,7 +21528,7 @@ var TravelInput = function () {
20374
21528
  React__default["default"].createElement(Icon$1, { name: "ui-plus" })))),
20375
21529
  React__default["default"].createElement("div", { className: "passenger-picker__item" },
20376
21530
  React__default["default"].createElement("div", { className: "passenger-picker__item-text" },
20377
- React__default["default"].createElement("span", null, "Baby&squot;s"),
21531
+ React__default["default"].createElement("span", null, translations.QSM.BABIES),
20378
21532
  React__default["default"].createElement("span", { className: "passenger-picker__item-text-age" }, ageLabels.babies)),
20379
21533
  React__default["default"].createElement("div", { className: "decrement-increment__ui" },
20380
21534
  React__default["default"].createElement("div", { className: "button button--decrement ".concat(babies === 0 ? 'button--disabled' : ''), onClick: function () { return babies > 0 && dispatch(setBabies(babies - 1)); } },
@@ -20385,16 +21539,17 @@ var TravelInput = function () {
20385
21539
  !canAddTraveler && (React__default["default"].createElement("div", { className: "passenger-picker__info-message" },
20386
21540
  React__default["default"].createElement("svg", { className: "passenger-picker__info-message-icon", width: 16, height: 16, viewBox: "0 0 15.967 15.967" },
20387
21541
  React__default["default"].createElement("path", { id: "error_16dp_UNDEFINED_FILL0_wght400_GRAD0_opsz20", d: "M103.979-852.024a.735.735,0,0,0,.535-.214.713.713,0,0,0,.218-.53.735.735,0,0,0-.214-.535.712.712,0,0,0-.53-.218.735.735,0,0,0-.535.214.713.713,0,0,0-.218.53.734.734,0,0,0,.214.535A.712.712,0,0,0,103.979-852.024Zm-.744-2.994h1.5v-4.99h-1.5Zm.754,6.986a7.8,7.8,0,0,1-3.1-.624,8.048,8.048,0,0,1-2.547-1.715,8.051,8.051,0,0,1-1.715-2.546A7.8,7.8,0,0,1,96-856.026a7.735,7.735,0,0,1,.624-3.1,8.079,8.079,0,0,1,1.715-2.536,8.051,8.051,0,0,1,2.546-1.715,7.8,7.8,0,0,1,3.108-.624,7.735,7.735,0,0,1,3.1.624,8.081,8.081,0,0,1,2.536,1.715,8.066,8.066,0,0,1,1.715,2.541,7.755,7.755,0,0,1,.624,3.1,7.8,7.8,0,0,1-.624,3.1,8.048,8.048,0,0,1-1.715,2.547,8.066,8.066,0,0,1-2.541,1.715A7.754,7.754,0,0,1,103.99-848.033Zm-.006-1.5a6.255,6.255,0,0,0,4.595-1.892,6.256,6.256,0,0,0,1.892-4.595,6.255,6.255,0,0,0-1.892-4.595,6.255,6.255,0,0,0-4.595-1.892,6.255,6.255,0,0,0-4.595,1.892,6.255,6.255,0,0,0-1.892,4.595,6.256,6.256,0,0,0,1.892,4.595A6.256,6.256,0,0,0,103.984-849.529ZM103.984-856.016Z", transform: "translate(-96 864)" })),
20388
- React__default["default"].createElement("span", { className: "passenger-picker__info-message-explanation" }, "Je zit aan het maximale aantal personen"))),
21542
+ React__default["default"].createElement("span", { className: "passenger-picker__info-message-explanation" }, translations.QSM.MAX_TRAVELERS_REACHED))),
20389
21543
  React__default["default"].createElement("div", { className: "passenger-picker__line" })))));
20390
21544
  };
20391
21545
 
20392
21546
  var MobileFilterModal = function () {
20393
- var datesIcon = React.useContext(QSMConfigurationContext).datesIcon;
21547
+ var _a = React.useContext(QSMConfigurationContext), datesIcon = _a.datesIcon, languageCode = _a.languageCode;
21548
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20394
21549
  var dispatch = reactRedux.useDispatch();
20395
- var _a = reactRedux.useSelector(function (state) { return state.qsm; }), mobileFilterType = _a.mobileFilterType, mobileDatePickerMode = _a.mobileDatePickerMode, activeSearchFieldProps = _a.activeSearchFieldProps, fromDate = _a.fromDate, toDate = _a.toDate;
20396
- var _b = React.useState(''), inputValue = _b[0], setInputValue = _b[1];
20397
- var _c = React.useState([]), searchResultsLocal = _c[0], setSearchResultsLocal = _c[1];
21550
+ var _b = reactRedux.useSelector(function (state) { return state.qsm; }), mobileFilterType = _b.mobileFilterType, mobileDatePickerMode = _b.mobileDatePickerMode, activeSearchFieldProps = _b.activeSearchFieldProps, fromDate = _b.fromDate, toDate = _b.toDate;
21551
+ var _c = React.useState(''), inputValue = _c[0], setInputValue = _c[1];
21552
+ var _d = React.useState([]), searchResultsLocal = _d[0], setSearchResultsLocal = _d[1];
20398
21553
  var hasTypedRef = React.useRef(false);
20399
21554
  /* ---------------------------------------------------------------- */
20400
21555
  /* Sync local state when a new field is opened */
@@ -20460,19 +21615,19 @@ var MobileFilterModal = function () {
20460
21615
  return (React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal" },
20461
21616
  React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal-header" },
20462
21617
  React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal-header-row" },
20463
- React__default["default"].createElement("span", { className: "mobile-qsm-filter__modal-header-title" }, "Kies data"),
21618
+ React__default["default"].createElement("span", { className: "mobile-qsm-filter__modal-header-title" }, translations.QSM.CHOOSE_DATES),
20464
21619
  React__default["default"].createElement("span", { className: "mobile-qsm-filter__modal-header-close", onClick: closeModal }))),
20465
21620
  React__default["default"].createElement("div", { className: "qsm__double-input qsm__double-input--date-modal" },
20466
21621
  React__default["default"].createElement("div", { className: "qsm__double-input__wrapper" },
20467
21622
  React__default["default"].createElement("label", { className: "qsm__input-wrapper" },
20468
21623
  datesIcon && React__default["default"].createElement("span", { className: "qsm__input-icon" }, datesIcon),
20469
- React__default["default"].createElement("span", { className: "qsm__label" }, "Vertrek"),
20470
- React__default["default"].createElement("input", { type: "text", id: "vertrek", className: "qsm__input u-ps-2", placeholder: "Datum", readOnly: true, value: fromDate ? dateFns.format(new Date(fromDate), 'dd/MM/yyyy') : '' }),
21624
+ React__default["default"].createElement("span", { className: "qsm__label" }, translations.QSM.DEPARTURE_DATE),
21625
+ React__default["default"].createElement("input", { type: "text", id: "vertrek", className: "qsm__input u-ps-2", placeholder: translations.QSM.DEPARTURE_DATE, readOnly: true, value: fromDate ? dateFns.format(new Date(fromDate), 'dd/MM/yyyy') : '' }),
20471
21626
  mobileDatePickerMode === 'range' && React__default["default"].createElement("div", { className: "qsm__input-line qsm__input-line--datepicker" })),
20472
21627
  mobileDatePickerMode === 'range' && (React__default["default"].createElement("label", { className: "qsm__input-wrapper" },
20473
21628
  datesIcon && React__default["default"].createElement("span", { className: "qsm__input-icon" }, datesIcon),
20474
- React__default["default"].createElement("span", { className: "qsm__label qsm__label--second-input-label" }, "Retour"),
20475
- React__default["default"].createElement("input", { type: "text", id: "retour", className: "qsm__input", placeholder: "Datum", readOnly: true, value: toDate ? dateFns.format(new Date(toDate), 'dd/MM/yyyy') : '' })))),
21629
+ React__default["default"].createElement("span", { className: "qsm__label qsm__label--second-input-label" }, translations.QSM.RETURN_DATE),
21630
+ React__default["default"].createElement("input", { type: "text", id: "retour", className: "qsm__input", placeholder: translations.QSM.RETURN_DATE, readOnly: true, value: toDate ? dateFns.format(new Date(toDate), 'dd/MM/yyyy') : '' })))),
20476
21631
  React__default["default"].createElement(DateRangePicker, { fromDate: fromDate ? new Date(fromDate) : undefined, toDate: mobileDatePickerMode === 'range' && toDate ? new Date(toDate) : undefined, isSingleDate: mobileDatePickerMode === 'single', onSelectionChange: function (from, to) {
20477
21632
  if (from) {
20478
21633
  dispatch(setFromDate(from.toISOString()));
@@ -20489,7 +21644,7 @@ var MobileFilterModal = function () {
20489
21644
  if (hasValidDates) {
20490
21645
  closeModal();
20491
21646
  }
20492
- } }, "Bevestigen"))));
21647
+ } }, translations.QSM.CONFIRM))));
20493
21648
  };
20494
21649
  var renderSearchInputModal = function () {
20495
21650
  if (!activeSearchFieldProps) {
@@ -20505,18 +21660,18 @@ var MobileFilterModal = function () {
20505
21660
  React__default["default"].createElement("input", { type: "text", id: "search", value: inputValue, onChange: function (e) { return handleLocationChange(e.target.value); }, className: "qsm__input qsm__input--modal qsm__from-to u-ps-2", placeholder: activeSearchFieldProps.placeholder }),
20506
21661
  React__default["default"].createElement(SearchInput, { onChange: handleLocationChange, searchResults: searchResultsLocal, onOptionSelect: handleLocationSelect, highlightTarget: inputValue, label: activeSearchFieldProps.label }))),
20507
21662
  React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal-footer" },
20508
- React__default["default"].createElement("button", { className: "cta", onClick: closeModal }, "Bevestigen"))));
21663
+ React__default["default"].createElement("button", { className: "cta", onClick: closeModal }, translations.QSM.CONFIRM))));
20509
21664
  };
20510
21665
  var renderTravelerModal = function () { return (React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal" },
20511
21666
  React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal-header" },
20512
21667
  React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal-header-row" },
20513
- React__default["default"].createElement("span", { className: "mobile-qsm-filter__modal-header-title" }, "Reizigers"),
21668
+ React__default["default"].createElement("span", { className: "mobile-qsm-filter__modal-header-title" }, translations.QSM.TRAVELERS),
20514
21669
  React__default["default"].createElement("span", { className: "mobile-qsm-filter__modal-header-close", onClick: closeModal }))),
20515
21670
  React__default["default"].createElement("div", { className: "qsm__double-input qsm__double-input--travel-modal" },
20516
21671
  React__default["default"].createElement("div", { className: "qsm__input-wrapper qsm__input-wrapper--rooms" },
20517
21672
  React__default["default"].createElement(TravelInput, null))),
20518
21673
  React__default["default"].createElement("div", { className: "mobile-qsm-filter__modal-footer" },
20519
- React__default["default"].createElement("button", { className: "cta", onClick: closeModal }, "Bevestigen")))); };
21674
+ React__default["default"].createElement("button", { className: "cta", onClick: closeModal }, translations.QSM.CONFIRM)))); };
20520
21675
  /* ---------------------------------------------------------------- */
20521
21676
  /* Switch modal type */
20522
21677
  /* ---------------------------------------------------------------- */
@@ -20733,7 +21888,8 @@ var TravelInputGroup = function () {
20733
21888
  var isSmallScreen = useMediaQuery('(max-width: 768px)');
20734
21889
  var _a = React.useState(false), isOpen = _a[0], setIsOpen = _a[1];
20735
21890
  var wrapperRef = React.useRef(null);
20736
- var _b = React.useContext(QSMConfigurationContext), type = _b.type, askRooms = _b.askRooms, defaultTravelers = _b.defaultTravelers, maxTravelers = _b.maxTravelers;
21891
+ var _b = React.useContext(QSMConfigurationContext), type = _b.type, askRooms = _b.askRooms, defaultTravelers = _b.defaultTravelers, maxTravelers = _b.maxTravelers, languageCode = _b.languageCode;
21892
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20737
21893
  var areTravelersInRooms = type !== 'flight' && askRooms;
20738
21894
  var _c = reactRedux.useSelector(function (s) { return s.qsm; }), adults = _c.adults, rooms = _c.rooms;
20739
21895
  var initDone = React.useRef(false);
@@ -20779,8 +21935,8 @@ var TravelInputGroup = function () {
20779
21935
  }, [defaultTravelers, maxTravelers]);
20780
21936
  return (React__default["default"].createElement("div", { ref: wrapperRef, className: "qsm__single-input-wrapper qsm__single-input-wrapper--travel" },
20781
21937
  React__default["default"].createElement(Icon$1, { name: "ui-user", height: 16 }),
20782
- React__default["default"].createElement("span", { className: "qsm__label" }, "Met wie ga je?"),
20783
- React__default["default"].createElement("input", { type: "text", id: "traveler", className: "qsm__input u-ps-2", placeholder: "Met wie ga je?", readOnly: true, onClick: handleClick, value: travelerSummary }),
21938
+ React__default["default"].createElement("span", { className: "qsm__label" }, translations.QSM.TRAVELERS_LABEL),
21939
+ React__default["default"].createElement("input", { type: "text", id: "traveler", className: "qsm__input u-ps-2", placeholder: translations.QSM.TRAVELERS_LABEL, readOnly: true, onClick: handleClick, value: travelerSummary }),
20784
21940
  !isSmallScreen && isOpen && (React__default["default"].createElement("div", null,
20785
21941
  React__default["default"].createElement(TravelInput, null)))));
20786
21942
  };
@@ -20824,21 +21980,24 @@ var ItemPicker$1 = function (_a) {
20824
21980
  };
20825
21981
 
20826
21982
  var TravelClassPicker = function () {
20827
- var travelClasses = React.useContext(QSMConfigurationContext).travelClasses;
21983
+ var _a = React.useContext(QSMConfigurationContext), travelClasses = _a.travelClasses, languageCode = _a.languageCode;
21984
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20828
21985
  var selectedTravelClass = reactRedux.useSelector(function (state) { return state.qsm; }).selectedTravelClass;
20829
- return (React__default["default"].createElement(ItemPicker$1, { items: travelClasses, selection: selectedTravelClass, label: "Reisklasse", placeholder: "Selecteer reisklasse", classModifier: "travel-class-picker__items", onPick: setSelectedTravelClass }));
21986
+ return (React__default["default"].createElement(ItemPicker$1, { items: travelClasses, selection: selectedTravelClass, label: translations.QSM.TRAVEL_CLASS_LABEL, placeholder: translations.QSM.TRAVEL_CLASS_PLACEHOLDER, classModifier: "travel-class-picker__items", onPick: setSelectedTravelClass }));
20830
21987
  };
20831
21988
 
20832
21989
  var TravelTypePicker = function () {
20833
- var travelTypes = React.useContext(QSMConfigurationContext).travelTypes;
21990
+ var _a = React.useContext(QSMConfigurationContext), travelTypes = _a.travelTypes, languageCode = _a.languageCode;
21991
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20834
21992
  var selectedTravelType = reactRedux.useSelector(function (state) { return state.qsm; }).selectedTravelType;
20835
- return (React__default["default"].createElement(ItemPicker$1, { items: travelTypes, selection: selectedTravelType, label: "Reistype", placeholder: "Selecteer reistype", classModifier: "travel-type-picker__items", onPick: setSelectedTravelType }));
21993
+ return (React__default["default"].createElement(ItemPicker$1, { items: travelTypes, selection: selectedTravelType, label: translations.QSM.TRAVEL_TYPE_LABEL, placeholder: translations.QSM.TRAVEL_TYPE_PLACEHOLDER, classModifier: "travel-type-picker__items", onPick: setSelectedTravelType }));
20836
21994
  };
20837
21995
 
20838
21996
  var TravelNationalityPicker = function () {
20839
- var nationalities = React.useContext(QSMConfigurationContext).nationalities;
21997
+ var _a = React.useContext(QSMConfigurationContext), nationalities = _a.nationalities, languageCode = _a.languageCode;
21998
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20840
21999
  var selectedNationality = reactRedux.useSelector(function (state) { return state.qsm; }).selectedNationality;
20841
- return (React__default["default"].createElement(ItemPicker$1, { items: nationalities, selection: selectedNationality, label: "Nationaliteit", placeholder: "Selecteer nationaliteit", classModifier: "travel-class-picker__items", onPick: setSelectedNationality }));
22000
+ return (React__default["default"].createElement(ItemPicker$1, { items: nationalities, selection: selectedNationality, label: translations.QSM.NATIONALITY_LABEL, placeholder: translations.QSM.NATIONALITY_PLACEHOLDER, classModifier: "travel-class-picker__items", onPick: setSelectedNationality }));
20842
22001
  };
20843
22002
 
20844
22003
  var QSMContainer = function () {
@@ -20846,7 +22005,8 @@ var QSMContainer = function () {
20846
22005
  var isMobile = useMediaQuery('(max-width: 768px)');
20847
22006
  var qsmState = reactRedux.useSelector(function (state) { return state.qsm; });
20848
22007
  var mobileFilterType = qsmState.mobileFilterType, fromDate = qsmState.fromDate, toDate = qsmState.toDate;
20849
- var _a = React.useContext(QSMConfigurationContext), searchFields = _a.searchFields, askTravelers = _a.askTravelers, submitIcon = _a.submitIcon, submitLabel = _a.submitLabel, onSubmit = _a.onSubmit;
22008
+ var _a = React.useContext(QSMConfigurationContext), searchFields = _a.searchFields, askTravelers = _a.askTravelers, submitIcon = _a.submitIcon, onSubmit = _a.onSubmit, travelTypes = _a.travelTypes, languageCode = _a.languageCode;
22009
+ var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
20850
22010
  React.useEffect(function () {
20851
22011
  if (fromDate || toDate)
20852
22012
  return;
@@ -20871,19 +22031,15 @@ var QSMContainer = function () {
20871
22031
  var handleSubmit = function () {
20872
22032
  if (!onSubmit)
20873
22033
  return;
20874
- var fromDate = qsmState.fromDate, toDate = qsmState.toDate, travelers = qsmState.travelers, selectedTravelClass = qsmState.selectedTravelClass, selectedTravelType = qsmState.selectedTravelType, selectedNationality = qsmState.selectedNationality, adults = qsmState.adults, kids = qsmState.kids, babies = qsmState.babies, rooms = qsmState.rooms, selectedFlexRange = qsmState.selectedFlexRange;
22034
+ var fromDate = qsmState.fromDate, toDate = qsmState.toDate; qsmState.travelers; var selectedTravelClass = qsmState.selectedTravelClass, selectedTravelType = qsmState.selectedTravelType, selectedNationality = qsmState.selectedNationality; qsmState.adults; qsmState.kids; qsmState.babies; var rooms = qsmState.rooms; qsmState.selectedFlexRange;
22035
+ var selectedTravelTypeValue = travelTypes.find(function (t) { return t.label === selectedTravelType; });
20875
22036
  var payload = {
20876
22037
  fromDate: fromDate,
20877
22038
  toDate: toDate,
20878
- travelers: travelers,
20879
22039
  travelClass: selectedTravelClass,
20880
- travelType: selectedTravelType,
22040
+ travelType: selectedTravelTypeValue,
20881
22041
  nationality: selectedNationality,
20882
- adults: adults,
20883
- kids: kids,
20884
- babies: babies,
20885
- rooms: rooms,
20886
- dateFlexibility: selectedFlexRange
22042
+ rooms: rooms
20887
22043
  };
20888
22044
  addSearchFieldsToPayload(payload, searchFields, qsmState);
20889
22045
  onSubmit(payload);
@@ -20911,41 +22067,41 @@ var QSMContainer = function () {
20911
22067
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20912
22068
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20913
22069
  React__default["default"].createElement(Icon$1, { name: "ui-location", height: 16 })),
20914
- "Multidestination"),
22070
+ translations.QSM.MULTIDESTINATION),
20915
22071
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20916
22072
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20917
22073
  React__default["default"].createElement(Icon$1, { name: "ui-suitcase", height: 16 })),
20918
- "Packages"),
22074
+ translations.QSM.PACKAGES),
20919
22075
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab qsm__tab--active" },
20920
22076
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20921
22077
  React__default["default"].createElement(Icon$1, { name: "ui-backforward", height: 14 }),
20922
22078
  "+",
20923
22079
  React__default["default"].createElement(Icon$1, { name: "ui-bed", height: 14 })),
20924
- "Transport + hotel"),
22080
+ translations.QSM.TRANSPORT_HOTEL),
20925
22081
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20926
22082
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20927
22083
  React__default["default"].createElement(Icon$1, { name: "ui-bed", height: 16 })),
20928
- "Accommodation"),
22084
+ translations.QSM.ACCOMMODATION),
20929
22085
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20930
22086
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20931
22087
  React__default["default"].createElement(Icon$1, { name: "ui-flight", height: 16 })),
20932
- "Transports"),
22088
+ translations.QSM.TRANSPORTS),
20933
22089
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20934
22090
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20935
22091
  React__default["default"].createElement(Icon$1, { name: "ui-ticket", height: 16 })),
20936
- "Ticket Only"),
22092
+ translations.QSM.TICKET_ONLY),
20937
22093
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20938
22094
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20939
22095
  React__default["default"].createElement(Icon$1, { name: "ui-car", height: 16 })),
20940
- "Rent a car"),
22096
+ translations.QSM.RENT_A_CAR),
20941
22097
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20942
22098
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20943
22099
  React__default["default"].createElement(Icon$1, { name: "ui-backforward", height: 16 })),
20944
- "Transfers"),
22100
+ translations.QSM.TRANSFERS),
20945
22101
  React__default["default"].createElement("button", { type: "button", className: "qsm__tab" },
20946
22102
  React__default["default"].createElement("span", { className: "qsm__tab__icons" },
20947
22103
  React__default["default"].createElement(Icon$1, { name: "ui-ship", height: 16 })),
20948
- "Cruises")),
22104
+ translations.QSM.CRUISES)),
20949
22105
  React__default["default"].createElement("div", { className: "qsm__filter" },
20950
22106
  React__default["default"].createElement("div", { className: "radiobutton-group qsm__filter__inputgroup" },
20951
22107
  React__default["default"].createElement("div", { className: "radiobutton" },
@@ -20956,7 +22112,7 @@ var QSMContainer = function () {
20956
22112
  value: "",
20957
22113
  // checked={formik.values.mainBookerId === travelerValues.id}
20958
22114
  checked: true, readOnly: true, className: "radiobutton__input" }),
20959
- React__default["default"].createElement("span", null, "One accommodation"))),
22115
+ React__default["default"].createElement("span", null, translations.QSM.ONE_ACCOMMODATION))),
20960
22116
  React__default["default"].createElement("div", { className: "radiobutton" },
20961
22117
  React__default["default"].createElement("label", { className: "radiobutton__label" },
20962
22118
  React__default["default"].createElement("input", { type: "radio", name: "mainBookerId",
@@ -20965,7 +22121,7 @@ var QSMContainer = function () {
20965
22121
  value: "",
20966
22122
  // checked={formik.values.mainBookerId === travelerValues.id}
20967
22123
  className: "radiobutton__input", disabled: true }),
20968
- React__default["default"].createElement("span", null, "Multiple accommodations")))),
22124
+ React__default["default"].createElement("span", null, translations.QSM.MULTIPLE_ACCOMMODATIONS)))),
20969
22125
  React__default["default"].createElement("div", { className: "qsm__filter__classgroup" },
20970
22126
  React__default["default"].createElement(TravelClassPicker, null),
20971
22127
  React__default["default"].createElement(TravelTypePicker, null),
@@ -20981,7 +22137,7 @@ var QSMContainer = function () {
20981
22137
  askTravelers && React__default["default"].createElement(TravelInputGroup, null),
20982
22138
  React__default["default"].createElement("button", { type: "button", className: "cta", onClick: handleSubmit },
20983
22139
  submitIcon && submitIcon.toString().length > 0 && React__default["default"].createElement("span", null, submitIcon),
20984
- React__default["default"].createElement("span", null, submitLabel)))),
22140
+ React__default["default"].createElement("span", null, translations.QSM.CONFIRM)))),
20985
22141
  isMobile && mobileFilterType && React__default["default"].createElement(MobileFilterModal, null)));
20986
22142
  };
20987
22143
 
@@ -21008,6 +22164,8 @@ var _a;
21008
22164
  var initialState = {
21009
22165
  results: [],
21010
22166
  selectedHotelId: null,
22167
+ bookingPackageDetails: null,
22168
+ entry: null,
21011
22169
  isLoading: false,
21012
22170
  filters: [],
21013
22171
  sortKey: null,
@@ -21024,6 +22182,19 @@ var searchResultsSlice = toolkit.createSlice({
21024
22182
  setSelectedHotel: function (state, action) {
21025
22183
  state.selectedHotelId = action.payload;
21026
22184
  },
22185
+ setBookingPackageDetails: function (state, action) {
22186
+ state.bookingPackageDetails = action.payload.details;
22187
+ },
22188
+ setEntry: function (state, action) {
22189
+ state.entry = action.payload.entry;
22190
+ },
22191
+ selectFlight: function (state, action) {
22192
+ if (!state.bookingPackageDetails)
22193
+ return;
22194
+ var _a = action.payload, flightOptionId = _a.flightOptionId, isDeparture = _a.isDeparture;
22195
+ var flightKey = isDeparture ? 'outwardFlights' : 'returnFlights';
22196
+ state.bookingPackageDetails[flightKey] = state.bookingPackageDetails[flightKey].map(function (flight) { return (__assign(__assign({}, flight), { isSelected: flight.flightOptionId === flightOptionId })); });
22197
+ },
21027
22198
  setIsLoading: function (state, action) {
21028
22199
  state.isLoading = action.payload;
21029
22200
  },
@@ -21061,7 +22232,7 @@ var searchResultsSlice = toolkit.createSlice({
21061
22232
  }
21062
22233
  }
21063
22234
  });
21064
- var setResults = (_a = searchResultsSlice.actions, _a.setResults), setSelectedHotel = _a.setSelectedHotel, setIsLoading = _a.setIsLoading, setFilters = _a.setFilters, resetFilters = _a.resetFilters, setSortKey = _a.setSortKey, setActiveTab = _a.setActiveTab; _a.setCurrentPage; _a.resetSearchState;
22235
+ var setResults = (_a = searchResultsSlice.actions, _a.setResults), setSelectedHotel = _a.setSelectedHotel, setBookingPackageDetails = _a.setBookingPackageDetails, setEntry = _a.setEntry, selectFlight = _a.selectFlight, setIsLoading = _a.setIsLoading, setFilters = _a.setFilters, resetFilters = _a.resetFilters, setSortKey = _a.setSortKey, setActiveTab = _a.setActiveTab; _a.setCurrentPage; _a.resetSearchState;
21065
22236
  var searchResultsReducer = searchResultsSlice.reducer;
21066
22237
 
21067
22238
  var MultiRangeFilter = function (_a) {
@@ -21122,9 +22293,10 @@ var MultiRangeFilter = function (_a) {
21122
22293
  var Spinner = function () {
21123
22294
  var _a;
21124
22295
  var context = React.useContext(SearchResultsConfigurationContext);
22296
+ var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
21125
22297
  return (React__default["default"].createElement("div", { className: "spinner__container" },
21126
22298
  React__default["default"].createElement("span", { className: "spinner__icon" }),
21127
- React__default["default"].createElement("span", { className: "spinner__label" }, (_a = context === null || context === void 0 ? void 0 : context.translations) === null || _a === void 0 ? void 0 : _a.loading)));
22299
+ React__default["default"].createElement("span", { className: "spinner__label" }, translations === null || translations === void 0 ? void 0 : translations.SRP.LOADING)));
21128
22300
  };
21129
22301
 
21130
22302
  var Icon = function (_a) {
@@ -21299,7 +22471,7 @@ var Icon = function (_a) {
21299
22471
  React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
21300
22472
  title && React__default["default"].createElement("title", null, title),
21301
22473
  React__default["default"].createElement("path", { d: "M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z", fill: "currentColor" })));
21302
- case 'ui-comparator':
22474
+ case 'ui-list':
21303
22475
  return (React__default["default"].createElement("svg", { className: ['icon', "icon--".concat(name), className].filter(function (className) { return !lodash.isEmpty(className); }).join(' '), width: width, height: height, viewBox: "0 0 512 512" },
21304
22476
  React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
21305
22477
  title && React__default["default"].createElement("title", null, title),
@@ -21402,11 +22574,12 @@ var initialFilters = [
21402
22574
  }
21403
22575
  ];
21404
22576
  var Filters = function (_a) {
21405
- var _b, _c, _d;
21406
- var filters = _a.filters, isMobileFiltersOpen = _a.isMobileFiltersOpen, handleSetIsMobileFiltersOpen = _a.handleSetIsMobileFiltersOpen, handleApplyFilters = _a.handleApplyFilters, isLoading = _a.isLoading;
22577
+ var _b;
22578
+ var filters = _a.filters, isOpen = _a.isOpen, handleSetIsOpen = _a.handleSetIsOpen, handleApplyFilters = _a.handleApplyFilters, isLoading = _a.isLoading;
21407
22579
  var context = React.useContext(SearchResultsConfigurationContext);
21408
- var _e = React.useState({}), visibleFilters = _e[0], setVisibleFilters = _e[1];
21409
- var _f = React.useState([]), pendingFilters = _f[0], setPendingFilters = _f[1];
22580
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
22581
+ var _c = React.useState({}), visibleFilters = _c[0], setVisibleFilters = _c[1];
22582
+ var _d = React.useState([]), pendingFilters = _d[0], setPendingFilters = _d[1];
21410
22583
  React.useEffect(function () {
21411
22584
  if (initialFilters.length > 0) {
21412
22585
  setPendingFilters(initialFilters);
@@ -21474,8 +22647,8 @@ var Filters = function (_a) {
21474
22647
  dispatch(setFilters(pendingFilters));
21475
22648
  (_a = context === null || context === void 0 ? void 0 : context.onFilterChange) === null || _a === void 0 ? void 0 : _a.call(context, pendingFilters);
21476
22649
  handleApplyFilters();
21477
- if (isMobileFiltersOpen) {
21478
- handleSetIsMobileFiltersOpen();
22650
+ if (isOpen) {
22651
+ handleSetIsOpen();
21479
22652
  }
21480
22653
  };
21481
22654
  var handleFullReset = function () {
@@ -21494,15 +22667,15 @@ var Filters = function (_a) {
21494
22667
  return null;
21495
22668
  }
21496
22669
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
21497
- React__default["default"].createElement("div", { className: "search__filters--modal ".concat(isMobileFiltersOpen ? 'is-open' : '') },
21498
- React__default["default"].createElement("div", { className: "search__filters--background", onClick: function () { return handleSetIsMobileFiltersOpen(); } }),
21499
- React__default["default"].createElement("button", { className: "search__filters--close", onClick: function () { return handleSetIsMobileFiltersOpen(); } },
22670
+ React__default["default"].createElement("div", { className: "search__filters--modal ".concat(isOpen ? 'is-open' : '') },
22671
+ React__default["default"].createElement("div", { className: "search__filters--background", onClick: function () { return handleSetIsOpen(); } }),
22672
+ React__default["default"].createElement("button", { className: "search__filters--close", onClick: function () { return handleSetIsOpen(); } },
21500
22673
  React__default["default"].createElement(Icon, { name: "ui-close", height: 24 })),
21501
22674
  React__default["default"].createElement("div", { className: "search__filters" },
21502
22675
  React__default["default"].createElement("div", { className: "search__filter-row search__filter__header" },
21503
22676
  React__default["default"].createElement("div", { className: "search__filter-row-flex-title" },
21504
- React__default["default"].createElement("p", { className: "search__filter-small-title" }, "Your trip summary")),
21505
- !isLoading && (React__default["default"].createElement("a", { className: "search__filter-reset", onClick: function () { return handleFullReset(); } }, (_b = context.translations) === null || _b === void 0 ? void 0 : _b.resetButton))),
22677
+ React__default["default"].createElement("p", { className: "search__filter-small-title" }, translations.SRP.FILTERS)),
22678
+ !isLoading && (React__default["default"].createElement("a", { className: "search__filter-reset", onClick: function () { return handleFullReset(); } }, translations.SRP.RESET))),
21506
22679
  isLoading ? (React__default["default"].createElement(Spinner, null)) : (React__default["default"].createElement(React__default["default"].Fragment, null,
21507
22680
  React__default["default"].createElement("div", { className: "search__filters__group-container" },
21508
22681
  pendingFilters.map(function (filter, index) {
@@ -21560,9 +22733,9 @@ var Filters = function (_a) {
21560
22733
  context.useGlobalApplyFilterButton && hasPendingChanges() && (React__default["default"].createElement("div", { className: "search__filters__actions" },
21561
22734
  React__default["default"].createElement("button", { className: "cta--secondary ", onClick: function () {
21562
22735
  handleResetPendingChanges();
21563
- handleSetIsMobileFiltersOpen();
21564
- }, disabled: isLoading }, (_c = context.translations) === null || _c === void 0 ? void 0 : _c.cancel),
21565
- React__default["default"].createElement("button", { className: "cta", onClick: function () { return applyFilters(); }, disabled: isLoading }, (_d = context.translations) === null || _d === void 0 ? void 0 : _d.apply))))))))));
22736
+ handleSetIsOpen();
22737
+ }, disabled: isLoading }, translations.SRP.CANCEL),
22738
+ React__default["default"].createElement("button", { className: "cta", onClick: function () { return applyFilters(); }, disabled: isLoading }, translations.SRP.APPLY))))))))));
21566
22739
  };
21567
22740
 
21568
22741
  var ItemPicker = function (_a) {
@@ -21611,138 +22784,223 @@ var ItemPicker = function (_a) {
21611
22784
  }))))));
21612
22785
  };
21613
22786
 
22787
+ var getDepartureTime = function (flight) {
22788
+ var _a, _b;
22789
+ if (lodash.isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas))
22790
+ return '';
22791
+ try {
22792
+ var config = (_a = lodash.first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
22793
+ if (!config)
22794
+ return '';
22795
+ var parsed = JSON.parse(config);
22796
+ var line = lodash.first(parsed === null || parsed === void 0 ? void 0 : parsed.FlightLines);
22797
+ return (_b = line === null || line === void 0 ? void 0 : line.DepartureTime) !== null && _b !== void 0 ? _b : '';
22798
+ }
22799
+ catch (_c) {
22800
+ return '';
22801
+ }
22802
+ };
22803
+ var getArrivalTime = function (flight) {
22804
+ var _a, _b;
22805
+ if (lodash.isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas))
22806
+ return '';
22807
+ try {
22808
+ var config = (_a = lodash.first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
22809
+ if (!config)
22810
+ return '';
22811
+ var parsed = JSON.parse(config);
22812
+ var line = lodash.last(parsed === null || parsed === void 0 ? void 0 : parsed.FlightLines);
22813
+ return (_b = line === null || line === void 0 ? void 0 : line.ArrivalTime) !== null && _b !== void 0 ? _b : '';
22814
+ }
22815
+ catch (_c) {
22816
+ return '';
22817
+ }
22818
+ };
22819
+ var getDuration = function (flight) {
22820
+ var _a;
22821
+ if (lodash.isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas))
22822
+ return '';
22823
+ try {
22824
+ var config = (_a = lodash.first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
22825
+ if (!config)
22826
+ return '';
22827
+ var parsed = JSON.parse(config);
22828
+ var ticks = parsed === null || parsed === void 0 ? void 0 : parsed.DurationInTicks;
22829
+ if (!ticks)
22830
+ return '';
22831
+ var seconds = ticks / 10000000;
22832
+ var hours = Math.floor(seconds / 3600);
22833
+ var minutes = Math.floor((seconds % 3600) / 60);
22834
+ return "".concat(hours, "h ").concat(minutes.toString().padStart(2, '0'), "m");
22835
+ }
22836
+ catch (_b) {
22837
+ return '';
22838
+ }
22839
+ };
22840
+ var numberOfNights = function (segment) {
22841
+ return dateFns.differenceInCalendarDays(new Date(segment.endDate), new Date(segment.startDate));
22842
+ };
21614
22843
  var Itinerary = function (_a) {
21615
- var isMobileFiltersOpen = _a.isMobileFiltersOpen, handleSetIsMobileFiltersOpen = _a.handleSetIsMobileFiltersOpen, isLoading = _a.isLoading;
22844
+ var _b;
22845
+ var isOpen = _a.isOpen, handleSetIsOpen = _a.handleSetIsOpen, isLoading = _a.isLoading;
22846
+ var context = React.useContext(SearchResultsConfigurationContext);
22847
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
22848
+ var entry = reactRedux.useSelector(function (state) { return state.searchResults; }).entry;
22849
+ if (isLoading || !entry) {
22850
+ return null;
22851
+ }
22852
+ var firstEntryLine = lodash.first(entry === null || entry === void 0 ? void 0 : entry.items);
22853
+ var lastEntryLine = lodash.last(entry === null || entry === void 0 ? void 0 : entry.items);
22854
+ var country = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.countryName;
22855
+ var location = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.locationName;
22856
+ var outboundFlight = entry === null || entry === void 0 ? void 0 : entry.items.find(function (item) { return item.productType === 7 && !item.isReturnFlight; });
22857
+ var returnFlight = entry === null || entry === void 0 ? void 0 : entry.items.find(function (item) { return item.productType === 7 && item.isReturnFlight; });
22858
+ var otherSegments = entry === null || entry === void 0 ? void 0 : entry.items.filter(function (item) { return item.productType !== 7; });
21616
22859
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
21617
- React__default["default"].createElement("div", { className: "search__filters--modal ".concat(isMobileFiltersOpen ? 'is-open' : '') },
21618
- React__default["default"].createElement("div", { className: "search__filters--background", onClick: function () { return handleSetIsMobileFiltersOpen(); } }),
21619
- React__default["default"].createElement("button", { className: "search__filters--close", onClick: function () { return handleSetIsMobileFiltersOpen(); } },
22860
+ React__default["default"].createElement("div", { className: "search__filters--modal ".concat(isOpen ? 'is-open' : '') },
22861
+ React__default["default"].createElement("div", { className: "search__filters--background", onClick: function () { return handleSetIsOpen(); } }),
22862
+ React__default["default"].createElement("button", { className: "search__filters--close", onClick: function () { return handleSetIsOpen(); } },
21620
22863
  React__default["default"].createElement(Icon, { name: "ui-close", height: 24 })),
21621
22864
  React__default["default"].createElement("div", { className: "search__filters" },
21622
22865
  React__default["default"].createElement("div", { className: "search__filter-row search__filter__header" },
21623
22866
  React__default["default"].createElement("div", { className: "search__filter-row-flex-title" },
21624
- React__default["default"].createElement("p", { className: "search__filter-small-title" }, "Your trip summary"))),
22867
+ React__default["default"].createElement("p", { className: "search__filter-small-title" }, translations.SRP.ITINERARY_TITLE))),
21625
22868
  isLoading ? (React__default["default"].createElement(Spinner, null)) : (React__default["default"].createElement(React__default["default"].Fragment, null,
21626
22869
  React__default["default"].createElement("div", { className: "search__filter-group" },
21627
22870
  React__default["default"].createElement("div", { className: "search__filter__image__wrapper" },
21628
- React__default["default"].createElement("img", { src: "https://images.unsplash.com/photo-1534292425621-6fbc5c09219a?fm=jpg&q=60&w=3000&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8M3x8dGVuZXJpZmV8ZW58MHx8MHx8fDA%3D", alt: "filter-img", className: "search__filter__image" }),
21629
- React__default["default"].createElement("span", { className: "search__filter__image__text" }, "Transport + hotel to"),
21630
- React__default["default"].createElement("h4", { className: "search__filter__image__title" }, "Costa del Silencio - Tenerife Sur"))),
22871
+ React__default["default"].createElement("img", { src: "", alt: "", className: "search__filter__image" }),
22872
+ (entry === null || entry === void 0 ? void 0 : entry.number) && (React__default["default"].createElement("span", { className: "search__filter__image__text" },
22873
+ translations.SRP.DOSSIER_NUMBER,
22874
+ ": ", entry === null || entry === void 0 ? void 0 :
22875
+ entry.number)),
22876
+ React__default["default"].createElement("h4", { className: "search__filter__image__title" }, (location || '') + (location && country ? ' - ' : '') + (country || '')))),
21631
22877
  React__default["default"].createElement("div", { className: "search__filter__prices" },
21632
22878
  React__default["default"].createElement("div", { className: "search__filter__prices__wrapper" },
21633
- React__default["default"].createElement("h3", { className: "search__filter__prices--amount" }, "\u20AC256"),
21634
- React__default["default"].createElement("p", null, "package price per person"),
22879
+ React__default["default"].createElement("h3", { className: "search__filter__prices--amount" }, formatPrice(((entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0) / ((entry === null || entry === void 0 ? void 0 : entry.numberOfPax) || 1), (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR')),
22880
+ React__default["default"].createElement("p", null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
21635
22881
  React__default["default"].createElement("p", null,
21636
- React__default["default"].createElement("strong", null, "(1.974 \u20AC Total)"))),
21637
- React__default["default"].createElement("button", { className: "cta" }, "Comfirm")),
22882
+ React__default["default"].createElement("strong", null,
22883
+ "(",
22884
+ formatPrice((entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0, (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR'),
22885
+ " ",
22886
+ translations.SRP.TOTAL,
22887
+ ")"))),
22888
+ React__default["default"].createElement("button", { className: "cta" }, translations.QSM.CONFIRM)),
21638
22889
  React__default["default"].createElement("div", { className: "search__filter__itinerary" },
21639
- React__default["default"].createElement("p", null, "Your trip day by day"),
22890
+ React__default["default"].createElement("p", null, translations.SRP.DAY_BY_DAY),
21640
22891
  React__default["default"].createElement("div", { className: "search__filter__itinerary__country" },
21641
22892
  React__default["default"].createElement("div", { className: "search__filter__itinerary__country-icon" },
21642
22893
  React__default["default"].createElement(Icon, { name: "ui-flag", width: 17.5, height: 20 })),
21643
22894
  React__default["default"].createElement("div", { className: "search__filter__itinerary__country-content" },
21644
- React__default["default"].createElement("h4", null, "Brussels, Belgium"),
21645
22895
  React__default["default"].createElement("p", null,
21646
- "Mon. 19 Jan 2026 - ",
21647
- React__default["default"].createElement("strong", null, "Start")))),
21648
- React__default["default"].createElement("div", { className: "search__filter__itinerary__transport" },
22896
+ dateFns.format(new Date((firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.startDate) || ''), 'EEE. d MMM yyyy'),
22897
+ " - ",
22898
+ React__default["default"].createElement("strong", null, translations.SRP.START)))),
22899
+ outboundFlight && (React__default["default"].createElement("div", { className: "search__filter__itinerary__transport" },
21649
22900
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-timeline" },
21650
22901
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-timeline-line" })),
21651
22902
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-item" },
21652
22903
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-date" },
21653
22904
  React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-date-date" },
21654
- React__default["default"].createElement("strong", null, "19")),
21655
- React__default["default"].createElement("p", null, "Jan")),
22905
+ React__default["default"].createElement("strong", null, dateFns.format(new Date((outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.startDate) || ''), 'd'))),
22906
+ React__default["default"].createElement("p", null, dateFns.format(new Date((outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.startDate) || ''), 'MMM'))),
21656
22907
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-badge" },
21657
22908
  React__default["default"].createElement(Icon, { name: "ui-plane", height: 15 })),
21658
22909
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-details" },
21659
- React__default["default"].createElement("h6", null, "Brussels Airport (BRU) - Tenerife South Airport (TFS)"),
22910
+ React__default["default"].createElement("h6", null, outboundFlight.productName),
21660
22911
  React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-details-plane" },
21661
22912
  React__default["default"].createElement("span", null,
21662
22913
  React__default["default"].createElement(Icon, { name: "ui-plane-depart", height: 14 }),
21663
22914
  " ",
21664
- React__default["default"].createElement("strong", null, "08:00")),
22915
+ React__default["default"].createElement("strong", null, getDepartureTime(outboundFlight))),
21665
22916
  ' ',
21666
22917
  "-",
21667
22918
  ' ',
21668
22919
  React__default["default"].createElement("span", null,
21669
22920
  React__default["default"].createElement(Icon, { name: "ui-plane-arrive", height: 14 }),
21670
22921
  " ",
21671
- React__default["default"].createElement("strong", null, "12:30"))),
22922
+ React__default["default"].createElement("strong", null, getArrivalTime(outboundFlight)))),
21672
22923
  React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-details-time" },
21673
22924
  React__default["default"].createElement("span", null,
21674
22925
  React__default["default"].createElement(Icon, { name: "ui-clock", height: 20 }),
21675
- " 4h30m"))))),
21676
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segments" },
21677
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segments__wrapper" },
21678
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segments-timeline" },
21679
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segments-timeline-line" })),
21680
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment" },
21681
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start" },
21682
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-date" },
21683
- React__default["default"].createElement("p", { className: "search__filter__itinerary__segment-date-date" },
21684
- React__default["default"].createElement("strong", null, "19")),
21685
- React__default["default"].createElement("p", null, "Jan")),
21686
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-badge" },
21687
- React__default["default"].createElement(Icon, { name: "ui-location", width: 15, height: 15 })),
21688
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-details" },
21689
- React__default["default"].createElement("h6", null, "Costa del Silencio - Tenerife Sur"),
21690
- React__default["default"].createElement("p", { className: "search__filter__itinerary__segment-details-text" }, "Mon. 19 Jan 2026 > Sat. 31 Jan 2026")))),
21691
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment" },
21692
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-item" },
21693
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-date search__filter__itinerary__segment-nights" },
21694
- React__default["default"].createElement("p", { className: "search__filter__itinerary__segment-date-date" },
21695
- React__default["default"].createElement("strong", null, "12")),
21696
- React__default["default"].createElement(Icon, { name: "ui-moon", width: 16, height: 16 })),
21697
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary" },
21698
- React__default["default"].createElement(Icon, { name: "ui-bed", width: 15, height: 15 })),
21699
- React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-details" },
21700
- React__default["default"].createElement("h6", null, "Grand Muthu Golf Plaza Hotel"),
21701
- React__default["default"].createElement("div", { className: "rating" },
21702
- React__default["default"].createElement(Icon, { name: "ui-star", key: "rating-star-1", width: 14, height: 14 }),
21703
- React__default["default"].createElement(Icon, { name: "ui-star", key: "rating-star-2", width: 14, height: 14 }),
21704
- React__default["default"].createElement(Icon, { name: "ui-star", key: "rating-star-3", width: 14, height: 14 }),
21705
- React__default["default"].createElement(Icon, { name: "ui-star", key: "rating-star-4", width: 14, height: 14 }),
21706
- React__default["default"].createElement(Icon, { name: "ui-star", key: "rating-star-5", width: 14, height: 14 }))))))),
21707
- React__default["default"].createElement("div", { className: "search__filter__itinerary__transport" },
22926
+ " ",
22927
+ getDuration(outboundFlight))))))),
22928
+ !lodash.isEmpty(otherSegments) && (React__default["default"].createElement("div", { className: "search__filter__itinerary__segments" }, otherSegments === null || otherSegments === void 0 ? void 0 : otherSegments.map(function (segment, index) { return (React__default["default"].createElement("div", { className: "search__filter__itinerary__segments__wrapper", key: "segment-".concat(index) },
22929
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segments-timeline" },
22930
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segments-timeline-line" })),
22931
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment" },
22932
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start" },
22933
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-date" },
22934
+ React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-date-date" },
22935
+ React__default["default"].createElement("strong", null, dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'd'))),
22936
+ React__default["default"].createElement("p", null, dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'MMM'))),
22937
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-badge" },
22938
+ React__default["default"].createElement(Icon, { name: "ui-location", width: 15, height: 15 })),
22939
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-details" },
22940
+ React__default["default"].createElement("h6", null, segment === null || segment === void 0 ? void 0 :
22941
+ segment.locationName,
22942
+ ", ", segment === null || segment === void 0 ? void 0 :
22943
+ segment.countryName),
22944
+ React__default["default"].createElement("p", { className: "search__filter__itinerary__segment-details-text" },
22945
+ dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'EEE. d MMM yyyy'),
22946
+ "> ",
22947
+ dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.endDate) || ''), 'EEE. d MMM yyyy'))))),
22948
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment" },
22949
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-item" },
22950
+ segment.productType === 3 && (React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-date search__filter__itinerary__segment-nights" },
22951
+ React__default["default"].createElement("p", { className: "search__filter__itinerary__segment-date-date" },
22952
+ React__default["default"].createElement("strong", null, numberOfNights(segment))),
22953
+ React__default["default"].createElement(Icon, { name: "ui-moon", width: 16, height: 16 }))),
22954
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary" },
22955
+ segment.productType === 3 && React__default["default"].createElement(Icon, { name: "ui-bed", width: 15, height: 15 }),
22956
+ segment.productType === 4 && React__default["default"].createElement(Icon, { name: "ui-ticket", width: 15, height: 15 }),
22957
+ (segment.productType === 17 || segment.productType === 22) && React__default["default"].createElement(Icon, { name: "ui-car", width: 15, height: 15 }),
22958
+ segment.productType === 11 && React__default["default"].createElement(Icon, { name: "ui-ship", width: 15, height: 15 })),
22959
+ React__default["default"].createElement("div", { className: "search__filter__itinerary__segment-details" },
22960
+ React__default["default"].createElement("h6", null, segment === null || segment === void 0 ? void 0 : segment.productName)))))); }))),
22961
+ returnFlight && (React__default["default"].createElement("div", { className: "search__filter__itinerary__transport" },
21708
22962
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-timeline" },
21709
22963
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-timeline-line" })),
21710
22964
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-item" },
21711
22965
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-date" },
21712
22966
  React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-date-date" },
21713
- React__default["default"].createElement("strong", null, "30")),
21714
- React__default["default"].createElement("p", null, "Jan")),
22967
+ React__default["default"].createElement("strong", null, dateFns.format(new Date((returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.startDate) || ''), 'd'))),
22968
+ React__default["default"].createElement("p", null, dateFns.format(new Date((returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.startDate) || ''), 'MMM'))),
21715
22969
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-badge" },
21716
22970
  React__default["default"].createElement(Icon, { name: "ui-plane", height: 15 })),
21717
22971
  React__default["default"].createElement("div", { className: "search__filter__itinerary__transport-details" },
21718
- React__default["default"].createElement("h6", null, "Tenerife South Airport (TFS) - Brussels Airport (BRU)"),
22972
+ React__default["default"].createElement("h6", null, returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.productName),
21719
22973
  React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-details-plane" },
21720
22974
  React__default["default"].createElement("span", null,
21721
22975
  React__default["default"].createElement(Icon, { name: "ui-plane-depart", height: 14 }),
21722
22976
  " ",
21723
- React__default["default"].createElement("strong", null, "12:55")),
22977
+ React__default["default"].createElement("strong", null, getDepartureTime(returnFlight))),
21724
22978
  ' ',
21725
22979
  "-",
21726
22980
  ' ',
21727
22981
  React__default["default"].createElement("span", null,
21728
22982
  React__default["default"].createElement(Icon, { name: "ui-plane-arrive", height: 14 }),
21729
22983
  " ",
21730
- React__default["default"].createElement("strong", null, "18:25"))),
22984
+ React__default["default"].createElement("strong", null, getArrivalTime(returnFlight)))),
21731
22985
  React__default["default"].createElement("p", { className: "search__filter__itinerary__transport-details-time" },
21732
22986
  React__default["default"].createElement("span", null,
21733
22987
  React__default["default"].createElement(Icon, { name: "ui-clock", height: 20 }),
21734
- " 4h30m"))))),
22988
+ " ",
22989
+ getDuration(returnFlight))))))),
21735
22990
  React__default["default"].createElement("div", { className: "search__filter__itinerary__country" },
21736
22991
  React__default["default"].createElement("div", { className: "search__filter__itinerary__country-icon" },
21737
22992
  React__default["default"].createElement(Icon, { name: "ui-flag", width: 17.5, height: 20 })),
21738
22993
  React__default["default"].createElement("div", { className: "search__filter__itinerary__country-content" },
21739
- React__default["default"].createElement("h4", null, "Brussels, Belgium"),
21740
22994
  React__default["default"].createElement("p", null,
21741
- "Mon. 19 Jan 2026 - ",
21742
- React__default["default"].createElement("strong", null, "End")))))))))));
22995
+ dateFns.format(new Date((lastEntryLine === null || lastEntryLine === void 0 ? void 0 : lastEntryLine.startDate) || ''), 'EEE. d MMM yyyy'),
22996
+ " - ",
22997
+ React__default["default"].createElement("strong", null, translations.SRP.END)))))))))));
21743
22998
  };
21744
22999
 
21745
23000
  var TabViews = function () {
23001
+ var _a;
23002
+ var context = React.useContext(SearchResultsConfigurationContext);
23003
+ var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
21746
23004
  var dispatch = reactRedux.useDispatch();
21747
23005
  var activeTab = reactRedux.useSelector(function (state) { return state.searchResults; }).activeTab;
21748
23006
  var handleSortChange = function (tab) {
@@ -21751,17 +23009,17 @@ var TabViews = function () {
21751
23009
  return (React__default["default"].createElement("div", { className: "search__results__tab-views" },
21752
23010
  React__default["default"].createElement("button", { type: "button", className: "search__results__tab-view ".concat(activeTab === 'extended' ? 'search__results__tab-view--active' : ''), onClick: function () { return handleSortChange('extended'); } },
21753
23011
  React__default["default"].createElement(Icon, { name: "ui-extended", height: 16 }),
21754
- "Extended"),
23012
+ translations.SRP.EXTENDED),
21755
23013
  React__default["default"].createElement("button", { type: "button", className: "search__results__tab-view ".concat(activeTab === 'compact' ? 'search__results__tab-view--active' : ''), onClick: function () { return handleSortChange('compact'); } },
21756
23014
  React__default["default"].createElement(Icon, { name: "ui-compact", height: 16 }),
21757
- "Compact"),
21758
- React__default["default"].createElement("button", { type: "button", className: "search__results__tab-view ".concat(activeTab === 'comparator' ? 'search__results__tab-view--active' : ''), onClick: function () { return handleSortChange('comparator'); } },
21759
- React__default["default"].createElement(Icon, { name: "ui-comparator", height: 16 }),
21760
- "Comparator")));
23015
+ translations.SRP.COMPACT),
23016
+ React__default["default"].createElement("button", { type: "button", className: "search__results__tab-view ".concat(activeTab === 'list' ? 'search__results__tab-view--active' : ''), onClick: function () { return handleSortChange('list'); } },
23017
+ React__default["default"].createElement(Icon, { name: "ui-list", height: 16 }),
23018
+ translations.SRP.LIST)));
21761
23019
  };
21762
23020
 
21763
23021
  var HotelCard = function (_a) {
21764
- var result = _a.result;
23022
+ var result = _a.result, translations = _a.translations;
21765
23023
  var dispatch = reactRedux.useDispatch();
21766
23024
  var selectedHotelId = reactRedux.useSelector(function (state) { return state.searchResults; }).selectedHotelId;
21767
23025
  var handleChange = function (hotelProductId) {
@@ -21772,7 +23030,7 @@ var HotelCard = function (_a) {
21772
23030
  React__default["default"].createElement("div", { className: "search__result-card__img-wrapper" },
21773
23031
  React__default["default"].createElement("img", { src: result.image, alt: result.title, className: "search__result-card__img" }),
21774
23032
  React__default["default"].createElement("div", { className: "search__result-card__price__wrapper" },
21775
- React__default["default"].createElement("span", { className: "search__result-card__price__label" }, "Total price"),
23033
+ React__default["default"].createElement("span", { className: "search__result-card__price__label" }, translations === null || translations === void 0 ? void 0 : translations.SHARED.TOTAL_PRICE),
21776
23034
  React__default["default"].createElement("span", { className: "search__result-card__price" }, result.price))),
21777
23035
  React__default["default"].createElement("div", { className: "search__result-card__content" },
21778
23036
  React__default["default"].createElement("div", { className: "search__result-card__content__wrapper" },
@@ -21793,21 +23051,21 @@ var HotelCard = function (_a) {
21793
23051
  React__default["default"].createElement("p", { className: "search__result-card__description" }, result.description)),
21794
23052
  React__default["default"].createElement("div", { className: "search__result-card__footer" },
21795
23053
  React__default["default"].createElement("button", { type: "button", className: "cta ".concat(selectedHotelId === result.id ? 'cta--selected' : 'cta--select'), onClick: function () { return handleChange(result.id); } }, selectedHotelId === result.id ? 'Selected' : 'Select'),
21796
- React__default["default"].createElement("button", { type: "button", className: "cta cta--select", onClick: function () { return console.log('Clicked on customCard with id:', result.id); } }, "View details")))));
23054
+ React__default["default"].createElement("button", { type: "button", className: "cta cta--select", onClick: function () { return console.log('Clicked on customCard with id:', result.id); } }, translations === null || translations === void 0 ? void 0 : translations.SRP.VIEW_DETAILS)))));
21797
23055
  };
21798
23056
 
21799
- var renderResults = function (results, context, cmsMap, activeTab) {
23057
+ var renderResults = function (results, context, cmsMap, activeTab, translations) {
21800
23058
  var renderedResults = results.map(function (result, index) {
21801
23059
  var cmsItem = cmsMap.get(result.productId);
21802
- var mappedResult = mapSearchResult(result, cmsItem, context.languageCode);
23060
+ var mappedResult = mapSearchResult(result, cmsItem, context.languageCode, translations);
21803
23061
  if ((context === null || context === void 0 ? void 0 : context.showCustomCards) && (context === null || context === void 0 ? void 0 : context.customCardRenderer)) {
21804
23062
  return (React__default["default"].createElement("div", { key: "".concat(mappedResult.id, "-").concat(index), className: "search__result-card" }, context.customCardRenderer(mappedResult)));
21805
23063
  }
21806
- return React__default["default"].createElement(HotelCard, { key: "".concat(mappedResult.id, "-").concat(index), result: mappedResult });
23064
+ return React__default["default"].createElement(HotelCard, { key: "".concat(mappedResult.id, "-").concat(index), result: mappedResult, translations: translations });
21807
23065
  });
21808
23066
  return React__default["default"].createElement("div", { className: "search__results__cards ".concat(activeTab ? "search__results__cards--".concat(activeTab) : '') }, renderedResults);
21809
23067
  };
21810
- var mapSearchResult = function (searchResult, cmsItem, languageCode) {
23068
+ var mapSearchResult = function (searchResult, cmsItem, languageCode, translations) {
21811
23069
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
21812
23070
  return {
21813
23071
  type: 'hotel',
@@ -21816,40 +23074,31 @@ var mapSearchResult = function (searchResult, cmsItem, languageCode) {
21816
23074
  image: (_e = (_d = (_c = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _c === void 0 ? void 0 : _c.images) === null || _d === void 0 ? void 0 : _d.thumbnailPicture) === null || _e === void 0 ? void 0 : _e.url,
21817
23075
  description: ((_g = (_f = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _f === void 0 ? void 0 : _f.descriptions) === null || _g === void 0 ? void 0 : _g.introductionTitle) || '',
21818
23076
  location: searchResult.locationName && searchResult.countryName ? "".concat(searchResult.locationName, ", ").concat(searchResult.countryName) : ((_h = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.parentItem) === null || _h === void 0 ? void 0 : _h.name) || '',
21819
- price: formatPrice(searchResult.currencyCode, searchResult.price, languageCode),
21820
- ctaText: 'View details',
21821
- days: calculateNights(searchResult.stayFromDate, searchResult.stayToDate),
23077
+ price: formatPrice(searchResult.price, searchResult.currencyCode, languageCode),
23078
+ ctaText: translations === null || translations === void 0 ? void 0 : translations.SRP.VIEW_DETAILS,
23079
+ days: calculateNights(searchResult.stayFromDate, searchResult.stayToDate, translations),
21822
23080
  accommodation: searchResult.accommodationName,
21823
23081
  regime: searchResult.regimeName,
21824
23082
  stars: ((_k = (_j = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _j === void 0 ? void 0 : _j.general) === null || _k === void 0 ? void 0 : _k.stars) || searchResult.hotelStars
21825
23083
  };
21826
23084
  };
21827
- var formatPrice = function (currencyCode, price, languageCode) {
21828
- if (!price) {
21829
- return 'Price unavailable';
21830
- }
21831
- return new Intl.NumberFormat(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB', {
21832
- style: 'currency',
21833
- currency: currencyCode,
21834
- currencyDisplay: 'symbol'
21835
- }).format(price);
21836
- };
21837
- var calculateNights = function (fromDate, toDate) {
23085
+ var calculateNights = function (fromDate, toDate, translations) {
21838
23086
  var from = new Date(fromDate).getTime(); // returns a number
21839
23087
  var to = new Date(toDate).getTime(); // returns a number
21840
23088
  var diffTime = Math.abs(to - from);
21841
23089
  var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
21842
- return "".concat(diffDays, " nights");
23090
+ return "".concat(diffDays, " ").concat(translations === null || translations === void 0 ? void 0 : translations.SRP.NIGHTS);
21843
23091
  };
21844
23092
  var HotelAccommodationResults = function (_a) {
21845
- var _b;
23093
+ var _b, _c;
21846
23094
  var isLoading = _a.isLoading, context = _a.context;
23095
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
21847
23096
  if (isLoading) {
21848
- return React__default["default"].createElement(React__default["default"].Fragment, null, (_b = context === null || context === void 0 ? void 0 : context.customSpinner) !== null && _b !== void 0 ? _b : React__default["default"].createElement(Spinner, null));
23097
+ return React__default["default"].createElement(React__default["default"].Fragment, null, (_c = context === null || context === void 0 ? void 0 : context.customSpinner) !== null && _c !== void 0 ? _c : React__default["default"].createElement(Spinner, null));
21849
23098
  }
21850
- var _c = reactRedux.useSelector(function (state) { return state.searchResults; }), results = _c.results, activeTab = _c.activeTab;
23099
+ var _d = reactRedux.useSelector(function (state) { return state.searchResults; }), results = _d.results, activeTab = _d.activeTab;
21851
23100
  if (!results.length) {
21852
- return React__default["default"].createElement("div", { className: "no-results" }, context.noResultsLabel || 'No results found.');
23101
+ return React__default["default"].createElement("div", { className: "no-results" }, translations.SRP.NO_RESULTS);
21853
23102
  }
21854
23103
  var cmsMap = React__default["default"].useMemo(function () {
21855
23104
  var _a;
@@ -21872,120 +23121,10 @@ var HotelAccommodationResults = function (_a) {
21872
23121
  React__default["default"].createElement("p", null, firstResultMonth)),
21873
23122
  React__default["default"].createElement("div", { className: "search__results__label__text" },
21874
23123
  React__default["default"].createElement("h3", null,
21875
- "Select ",
21876
- React__default["default"].createElement("strong", null, "Accommodation")))),
21877
- renderResults(results, context, cmsMap, activeTab)));
21878
- };
21879
-
21880
- var RoundTripResults = function () {
21881
- return (React__default["default"].createElement("div", { className: "search__results__cards search__results__cards--comparator" },
21882
- React__default["default"].createElement("div", { className: "search__result-card" },
21883
- React__default["default"].createElement("div", { className: "search__result-card__allotment" },
21884
- React__default["default"].createElement("div", { className: "search__result-card__allotment__title__wrapper" },
21885
- React__default["default"].createElement("h3", { className: "search__result-card__allotment__title" },
21886
- "Rondreis Noord-India: Rajasthan",
21887
- React__default["default"].createElement("span", { className: "search__result-card__allotment__badge" },
21888
- React__default["default"].createElement(Icon, { name: "ui-circle-check", width: 14, height: 14 }),
21889
- "GAR")),
21890
- React__default["default"].createElement("div", { className: "search__result-card__allotment__container" },
21891
- React__default["default"].createElement("div", { className: "search__result-card__allotment__header" },
21892
- React__default["default"].createElement("div", { className: "search__result-card__allotment__wrapper" },
21893
- React__default["default"].createElement("div", { className: "search__result-card__allotment__date" },
21894
- React__default["default"].createElement(Icon, { name: "ui-plane", height: 16 }),
21895
- React__default["default"].createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
21896
- React__default["default"].createElement("div", { className: "search__result-card__allotment__info" },
21897
- React__default["default"].createElement("span", null,
21898
- React__default["default"].createElement(Icon, { name: "ui-calendar", height: 16 })),
21899
- ' ',
21900
- "8 dagen -",
21901
- ' ',
21902
- React__default["default"].createElement("span", null,
21903
- React__default["default"].createElement(Icon, { name: "ui-moon", height: 16 })),
21904
- "7 nachten"))),
21905
- React__default["default"].createElement("div", { className: "search__result-card__allotment__info" },
21906
- React__default["default"].createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
21907
- React__default["default"].createElement("div", { className: "search__result-card__allotment__persons" },
21908
- React__default["default"].createElement("div", { className: "search__result-card__allotment__person" },
21909
- React__default["default"].createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
21910
- React__default["default"].createElement("span", null, "2 p.")),
21911
- React__default["default"].createElement("div", { className: "search__result-card__allotment__person" },
21912
- React__default["default"].createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
21913
- React__default["default"].createElement("span", null, "3 p.")))))),
21914
- React__default["default"].createElement("div", { className: "search__result-card__allotment__footer" },
21915
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price__wrapper" },
21916
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
21917
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
21918
- React__default["default"].createElement("button", { className: "cta cta--select" }, "Bekijk reis")))),
21919
- React__default["default"].createElement("div", { className: "search__result-card" },
21920
- React__default["default"].createElement("div", { className: "search__result-card__allotment" },
21921
- React__default["default"].createElement("div", { className: "search__result-card__allotment__title__wrapper" },
21922
- React__default["default"].createElement("h3", { className: "search__result-card__allotment__title" },
21923
- "Rondreis Thailand",
21924
- React__default["default"].createElement("span", { className: "search__result-card__allotment__badge search__result-card__allotment__badge--secondary" },
21925
- React__default["default"].createElement(Icon, { name: "ui-circle-half", width: 14, height: 14 }),
21926
- "BIJNA GAR")),
21927
- React__default["default"].createElement("div", { className: "search__result-card__allotment__container" },
21928
- React__default["default"].createElement("div", { className: "search__result-card__allotment__header" },
21929
- React__default["default"].createElement("div", { className: "search__result-card__allotment__wrapper" },
21930
- React__default["default"].createElement("div", { className: "search__result-card__allotment__date" },
21931
- React__default["default"].createElement(Icon, { name: "ui-plane", height: 16 }),
21932
- React__default["default"].createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
21933
- React__default["default"].createElement("div", { className: "search__result-card__allotment__info" },
21934
- React__default["default"].createElement("span", null,
21935
- React__default["default"].createElement(Icon, { name: "ui-calendar", height: 16 })),
21936
- ' ',
21937
- "8 dagen -",
21938
- ' ',
21939
- React__default["default"].createElement("span", null,
21940
- React__default["default"].createElement(Icon, { name: "ui-moon", height: 16 })),
21941
- "7 nachten"))),
21942
- React__default["default"].createElement("div", { className: "search__result-card__allotment__info" },
21943
- React__default["default"].createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
21944
- React__default["default"].createElement("div", { className: "search__result-card__allotment__persons" },
21945
- React__default["default"].createElement("div", { className: "search__result-card__allotment__person" },
21946
- React__default["default"].createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
21947
- React__default["default"].createElement("span", null, "2 p.")),
21948
- React__default["default"].createElement("div", { className: "search__result-card__allotment__person" },
21949
- React__default["default"].createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
21950
- React__default["default"].createElement("span", null, "3 p.")))))),
21951
- React__default["default"].createElement("div", { className: "search__result-card__allotment__footer" },
21952
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price__wrapper" },
21953
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
21954
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
21955
- React__default["default"].createElement("button", { className: "cta cta--select" }, "Bekijk reis")))),
21956
- React__default["default"].createElement("div", { className: "search__result-card" },
21957
- React__default["default"].createElement("div", { className: "search__result-card__allotment" },
21958
- React__default["default"].createElement("div", { className: "search__result-card__allotment__title__wrapper" },
21959
- React__default["default"].createElement("h3", { className: "search__result-card__allotment__title" }, "Rondreis Timboektoe"),
21960
- React__default["default"].createElement("div", { className: "search__result-card__allotment__container" },
21961
- React__default["default"].createElement("div", { className: "search__result-card__allotment__header" },
21962
- React__default["default"].createElement("div", { className: "search__result-card__allotment__wrapper" },
21963
- React__default["default"].createElement("div", { className: "search__result-card__allotment__date" },
21964
- React__default["default"].createElement(Icon, { name: "ui-plane", height: 16 }),
21965
- React__default["default"].createElement("div", { className: "search__result-card__allotment__date--from" }, "05-04-2026")),
21966
- React__default["default"].createElement("div", { className: "search__result-card__allotment__info" },
21967
- React__default["default"].createElement("span", null,
21968
- React__default["default"].createElement(Icon, { name: "ui-calendar", height: 16 })),
21969
- ' ',
21970
- "8 dagen -",
21971
- ' ',
21972
- React__default["default"].createElement("span", null,
21973
- React__default["default"].createElement(Icon, { name: "ui-moon", height: 16 })),
21974
- "7 nachten"))),
21975
- React__default["default"].createElement("div", { className: "search__result-card__allotment__info" },
21976
- React__default["default"].createElement("a", { href: "#", type: "button", className: "search__result-card__allotment__info__group" }, "Group"),
21977
- React__default["default"].createElement("div", { className: "search__result-card__allotment__persons" },
21978
- React__default["default"].createElement("div", { className: "search__result-card__allotment__person" },
21979
- React__default["default"].createElement(Icon, { name: "ui-men", width: 16, height: 16 }),
21980
- React__default["default"].createElement("span", null, "2 p.")),
21981
- React__default["default"].createElement("div", { className: "search__result-card__allotment__person" },
21982
- React__default["default"].createElement(Icon, { name: "ui-women", width: 16, height: 16 }),
21983
- React__default["default"].createElement("span", null, "3 p.")))))),
21984
- React__default["default"].createElement("div", { className: "search__result-card__allotment__footer" },
21985
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price__wrapper" },
21986
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price" }, "\u20AC 1.250,00 p.p."),
21987
- React__default["default"].createElement("div", { className: "search__result-card__allotment__price__info" }, "Gelieve \u20AC 450,00 zakgeld mee te nemen")),
21988
- React__default["default"].createElement("button", { className: "cta cta--select" }, "Bekijk reis"))))));
23124
+ translations.SRP.SELECT,
23125
+ " ",
23126
+ React__default["default"].createElement("strong", null, translations.SRP.ACCOMMODATION)))),
23127
+ renderResults(results, context, cmsMap, activeTab, translations)));
21989
23128
  };
21990
23129
 
21991
23130
  var enrichFiltersWithResults = function (results, filters) {
@@ -22005,18 +23144,126 @@ var enrichFiltersWithResults = function (results, filters) {
22005
23144
  return filters;
22006
23145
  };
22007
23146
 
23147
+ var ticksToMinutes = function (ticks) { return Math.floor(ticks / 600000000); };
23148
+ var formatDuration = function (ticks) {
23149
+ var minutes = ticksToMinutes(ticks);
23150
+ var h = Math.floor(minutes / 60);
23151
+ var m = minutes % 60;
23152
+ return "".concat(h, "h ").concat(m, "m");
23153
+ };
23154
+ var FlightResults = function (_a) {
23155
+ var _b;
23156
+ var flights = _a.flights, isDeparture = _a.isDeparture;
23157
+ var context = React.useContext(SearchResultsConfigurationContext);
23158
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
23159
+ var dispatch = reactRedux.useDispatch();
23160
+ var _c = React.useState(null), activeDetailId = _c[0], setActiveDetailId = _c[1];
23161
+ var handleDetailClick = function (flightOptionId) {
23162
+ setActiveDetailId(function (prev) { return (prev === flightOptionId ? null : flightOptionId); });
23163
+ };
23164
+ var firstResult = flights === null || flights === void 0 ? void 0 : flights[0];
23165
+ var firstResultDate = (firstResult === null || firstResult === void 0 ? void 0 : firstResult.startDateTime) ? dateFns.parseISO(firstResult.startDateTime) : null;
23166
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
23167
+ React__default["default"].createElement("div", { className: "search__results__label" },
23168
+ React__default["default"].createElement("div", { className: "search__results__label__date" }, firstResultDate && (React__default["default"].createElement(React__default["default"].Fragment, null,
23169
+ React__default["default"].createElement("p", { className: "search__results__label__date-date" }, dateFns.format(firstResultDate, 'd')),
23170
+ React__default["default"].createElement("p", null, dateFns.format(firstResultDate, 'MMM'))))),
23171
+ React__default["default"].createElement("div", { className: "search__results__label__text" },
23172
+ React__default["default"].createElement("h3", null,
23173
+ translations.SRP.SELECT,
23174
+ " ",
23175
+ React__default["default"].createElement("strong", null, isDeparture ? translations.SRP.DEPARTURE : translations.SRP.RETURN)))),
23176
+ React__default["default"].createElement("div", { className: "search__results__cards search__results__cards--extended" }, flights.map(function (flight, index) {
23177
+ var lines = flight.flightMetaData.flightLines;
23178
+ var firstLine = lines[0];
23179
+ var lastLine = lines[lines.length - 1];
23180
+ var stops = lines.length - 1;
23181
+ return (React__default["default"].createElement("div", { className: "flight", key: "flight-".concat(flight.flightId, "-").concat(index) },
23182
+ React__default["default"].createElement("div", { className: "flight__option" },
23183
+ React__default["default"].createElement("div", { className: "flight__content" },
23184
+ React__default["default"].createElement("div", { className: "flight__flights" },
23185
+ React__default["default"].createElement("div", { className: "flight__flight" },
23186
+ React__default["default"].createElement("div", { className: "flight__flight__header" },
23187
+ React__default["default"].createElement("div", { className: "flight__status__container" }),
23188
+ React__default["default"].createElement("div", { className: "flight__price" },
23189
+ React__default["default"].createElement("span", { className: "price" },
23190
+ "\u20AC ",
23191
+ flight.price.toFixed(2)),
23192
+ React__default["default"].createElement("button", { type: "button", className: "cta ".concat(flight.isSelected ? 'cta--selected' : 'cta--select'), onClick: function () { return dispatch(selectFlight({ flightOptionId: flight.flightOptionId, isDeparture: !!isDeparture })); } }, flight.isSelected ? 'Selected' : 'Select')))),
23193
+ React__default["default"].createElement("div", { className: "flight__flight" },
23194
+ React__default["default"].createElement("div", { className: "flight__flight__container" },
23195
+ React__default["default"].createElement("div", { className: "flight__flight__wrapper" },
23196
+ React__default["default"].createElement("div", { className: "flight__logo__wrapper" },
23197
+ React__default["default"].createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/".concat(firstLine.airlineCode, ".png?height=256"), alt: flight.airlineDescription, className: "flight__logo" }),
23198
+ React__default["default"].createElement("span", null, flight.airlineDescription)),
23199
+ React__default["default"].createElement("div", { className: "flight__info" },
23200
+ React__default["default"].createElement("div", { className: "flight__info__times" },
23201
+ React__default["default"].createElement("strong", null,
23202
+ firstLine.departureTime,
23203
+ " ",
23204
+ firstLine.departureAirport),
23205
+ React__default["default"].createElement("p", null, dateFns.format(dateFns.parseISO(firstLine.departureDate), 'EEE dd MMM yyyy'))),
23206
+ React__default["default"].createElement("div", { className: "flight__info__duration" },
23207
+ React__default["default"].createElement("p", null, formatDuration(flight.flightMetaData.durationInTicks)),
23208
+ React__default["default"].createElement("div", { className: "flight__info__duration__stops" }, stops > 0 && React__default["default"].createElement("div", { className: "flight__info__duration__stop" })),
23209
+ React__default["default"].createElement("span", null, stops === 0 ? translations.SRP.DIRECT : "".concat(stops, " ").concat(translations.SRP.STOP).concat(stops > 1 ? 's' : ''))),
23210
+ React__default["default"].createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23211
+ React__default["default"].createElement("strong", null,
23212
+ lastLine.arrivalTime,
23213
+ " ",
23214
+ lastLine.arrivalAirport),
23215
+ React__default["default"].createElement("p", null, dateFns.format(dateFns.parseISO(lastLine.arrivalDate), 'EEE dd MMM yyyy'))))),
23216
+ React__default["default"].createElement("div", { className: "flight__detail__btn__wrapper" },
23217
+ React__default["default"].createElement("div", { className: "flight__detail__btn ".concat(activeDetailId === flight.flightOptionId ? 'flight__detail__btn--active' : ''), onClick: function () { return handleDetailClick(flight.flightOptionId); } },
23218
+ React__default["default"].createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
23219
+ React__default["default"].createElement("div", { className: "flight__detail ".concat(activeDetailId === flight.flightOptionId ? 'flight__detail--active' : '') }, lines.map(function (line, index) {
23220
+ var nextLine = lines[index + 1];
23221
+ return (React__default["default"].createElement(React__default["default"].Fragment, { key: index },
23222
+ React__default["default"].createElement("div", { className: "flight__info" },
23223
+ React__default["default"].createElement("div", { className: "flight__info__times__wrapper" },
23224
+ React__default["default"].createElement("div", { className: "flight__info__times" },
23225
+ React__default["default"].createElement("p", null, line.departureTime),
23226
+ React__default["default"].createElement("strong", null, line.departureAirport),
23227
+ React__default["default"].createElement("p", null, dateFns.format(dateFns.parseISO(line.departureDate), 'EEE dd MMM yyyy'))),
23228
+ React__default["default"].createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 })),
23229
+ React__default["default"].createElement("div", { className: "flight__info__duration" },
23230
+ React__default["default"].createElement("p", null, formatDuration(line.durationInTicks)),
23231
+ React__default["default"].createElement("span", null,
23232
+ line.airline,
23233
+ " ",
23234
+ line.number)),
23235
+ React__default["default"].createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
23236
+ React__default["default"].createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 }),
23237
+ React__default["default"].createElement("div", { className: "flight__info__times flight__info__times--arrival" },
23238
+ React__default["default"].createElement("p", null, line.arrivalTime),
23239
+ React__default["default"].createElement("strong", null, line.arrivalAirport),
23240
+ React__default["default"].createElement("p", null, dateFns.format(dateFns.parseISO(line.arrivalDate), 'EEE dd MMM yyyy'))))),
23241
+ nextLine && (React__default["default"].createElement("div", { className: "flight__info" },
23242
+ React__default["default"].createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
23243
+ React__default["default"].createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
23244
+ React__default["default"].createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
23245
+ React__default["default"].createElement("div", { className: "flight__info__duration__stoptime" },
23246
+ React__default["default"].createElement("span", null, translations.SRP.STOP_TIME),
23247
+ React__default["default"].createElement("strong", null, formatDuration(dateFns.parseISO(nextLine.departureDate).getTime() - dateFns.parseISO(line.arrivalDate).getTime()))))))));
23248
+ })))),
23249
+ React__default["default"].createElement("div", { className: "flight__rate" })))));
23250
+ }))));
23251
+ };
23252
+
22008
23253
  var SearchResultsContainer = function () {
22009
- var _a, _b, _c;
23254
+ var _a, _b;
22010
23255
  var isMobile = useMediaQuery('(max-width: 1200px)');
22011
23256
  var dispatch = reactRedux.useDispatch();
22012
23257
  var context = React.useContext(SearchResultsConfigurationContext);
22013
- var _d = reactRedux.useSelector(function (state) { return state.searchResults; }), results = _d.results, isLoading = _d.isLoading, filters = _d.filters, sortKey = _d.sortKey, selectedHotelId = _d.selectedHotelId;
22014
- var _e = React.useState(0), searchTrigger = _e[0], setSearchTrigger = _e[1];
22015
- var _f = React.useState(false), initialFiltersSet = _f[0], setInitialFiltersSet = _f[1];
22016
- var _g = React.useState([]); _g[0]; var setInitialFilters = _g[1];
23258
+ var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
23259
+ var _c = reactRedux.useSelector(function (state) { return state.searchResults; }), results = _c.results, bookingPackageDetails = _c.bookingPackageDetails, isLoading = _c.isLoading, filters = _c.filters, sortKey = _c.sortKey, selectedHotelId = _c.selectedHotelId;
23260
+ var _d = React.useState(0), searchTrigger = _d[0], setSearchTrigger = _d[1];
23261
+ var _e = React.useState(false), initialFiltersSet = _e[0], setInitialFiltersSet = _e[1];
23262
+ var _f = React.useState([]); _f[0]; var setInitialFilters = _f[1];
23263
+ // seperate Search
22017
23264
  React.useEffect(function () {
22018
23265
  var runSearch = function () { return __awaiter(void 0, void 0, void 0, function () {
22019
- var params, from, to, rooms, country, region, oord, city, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
23266
+ var params, from, to, rooms, country, region, oord, city, hotel, tagId, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
22020
23267
  var _a, _b, _c, _d, _e;
22021
23268
  return __generator(this, function (_f) {
22022
23269
  switch (_f.label) {
@@ -22036,6 +23283,8 @@ var SearchResultsContainer = function () {
22036
23283
  region = getNumberFromParams(params, 'region');
22037
23284
  oord = getNumberFromParams(params, 'oord');
22038
23285
  city = getNumberFromParams(params, 'location');
23286
+ hotel = getNumberFromParams(params, 'hotel');
23287
+ tagId = getNumberFromParams(params, 'tagId');
22039
23288
  // temp hardcoded params
22040
23289
  if (!from || !to) {
22041
23290
  from = '2026-04-07';
@@ -22093,7 +23342,9 @@ var SearchResultsContainer = function () {
22093
23342
  maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
22094
23343
  useExactDates: true,
22095
23344
  onlyCachedResults: false,
22096
- includeAllAllotments: true
23345
+ includeAllAllotments: true,
23346
+ productIds: hotel ? [hotel] : [],
23347
+ productTagIds: tagId ? [tagId] : []
22097
23348
  }
22098
23349
  };
22099
23350
  config = {
@@ -22127,17 +23378,19 @@ var SearchResultsContainer = function () {
22127
23378
  }); };
22128
23379
  runSearch();
22129
23380
  }, [location.search, searchTrigger]);
23381
+ // Seperate detailsCall
22130
23382
  React.useEffect(function () {
22131
23383
  var fetchPackageDetails = function () { return __awaiter(void 0, void 0, void 0, function () {
22132
- var config, selectedItem, params, rooms, requestRooms, detailsRequest, detailsResponse, err_2;
22133
- return __generator(this, function (_a) {
22134
- switch (_a.label) {
23384
+ var config, selectedItem, params, rooms, requestRooms, detailsRequest, detailsWLResponse, err_2;
23385
+ var _a, _b;
23386
+ return __generator(this, function (_c) {
23387
+ switch (_c.label) {
22135
23388
  case 0:
22136
23389
  if (!selectedHotelId || !context)
22137
23390
  return [2 /*return*/];
22138
- _a.label = 1;
23391
+ _c.label = 1;
22139
23392
  case 1:
22140
- _a.trys.push([1, 3, , 4]);
23393
+ _c.trys.push([1, 3, , 4]);
22141
23394
  config = {
22142
23395
  host: context.tideConnection.host,
22143
23396
  apiKey: context.tideConnection.apiKey
@@ -22167,13 +23420,15 @@ var SearchResultsContainer = function () {
22167
23420
  postNights: null
22168
23421
  }
22169
23422
  };
22170
- return [4 /*yield*/, build.details(config, detailsRequest)];
23423
+ return [4 /*yield*/, build.detailsWL(config, detailsRequest)];
22171
23424
  case 2:
22172
- detailsResponse = _a.sent();
22173
- console.log('Package details:', detailsResponse);
23425
+ detailsWLResponse = _c.sent();
23426
+ console.log('Details with entryLight:', detailsWLResponse);
23427
+ dispatch(setBookingPackageDetails({ details: (_a = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _a === void 0 ? void 0 : _a.bookingPackage }));
23428
+ dispatch(setEntry({ entry: (_b = detailsWLResponse === null || detailsWLResponse === void 0 ? void 0 : detailsWLResponse.payload) === null || _b === void 0 ? void 0 : _b.entry }));
22174
23429
  return [3 /*break*/, 4];
22175
23430
  case 3:
22176
- err_2 = _a.sent();
23431
+ err_2 = _c.sent();
22177
23432
  console.error('Failed to fetch package details', err_2);
22178
23433
  return [3 /*break*/, 4];
22179
23434
  case 4: return [2 /*return*/];
@@ -22209,43 +23464,46 @@ var SearchResultsContainer = function () {
22209
23464
  });
22210
23465
  return requestRooms;
22211
23466
  };
22212
- var _h = React.useState(false), isMobileFiltersOpen = _h[0], setIsMobileFiltersOpen = _h[1];
23467
+ var _g = React.useState(false), filtersOpen = _g[0], setFiltersOpen = _g[1];
23468
+ var _h = React.useState(false), itineraryOpen = _h[0], setItineraryOpen = _h[1];
22213
23469
  var handleSortChange = function (newSortKey) {
22214
23470
  dispatch(setSortKey(newSortKey));
22215
23471
  };
22216
- var handleSetIsMobileFiltersOpen = function () {
22217
- setIsMobileFiltersOpen(!isMobileFiltersOpen);
22218
- };
22219
23472
  React.useEffect(function () {
22220
23473
  if (typeof document !== 'undefined') {
22221
- document.body.classList.toggle('has-overlay', isMobileFiltersOpen);
23474
+ document.body.classList.toggle('has-overlay', filtersOpen);
22222
23475
  }
22223
- }, [isMobileFiltersOpen]);
23476
+ }, [filtersOpen]);
22224
23477
  var sortingOptions = [
22225
- { key: 'price-asc', label: 'Price: Low to High' },
22226
- { key: 'price-desc', label: 'Price: High to Low' },
22227
- { key: 'departure-date', label: 'Departure Date' }
23478
+ { key: 'price-asc', label: translations.SRP.PRICE_ASC },
23479
+ { key: 'price-desc', label: translations.SRP.PRICE_DESC },
23480
+ { key: 'departure-date', label: translations.SRP.DEPARTURE_ASC }
22228
23481
  ];
22229
23482
  return (React__default["default"].createElement("div", { id: "tide-booking", className: "search__bg" }, context && (React__default["default"].createElement("div", { className: "search" },
22230
23483
  React__default["default"].createElement("div", { className: "search__container" },
22231
- context.showFilters && (React__default["default"].createElement(Filters, { filters: filters, isMobileFiltersOpen: isMobileFiltersOpen, handleSetIsMobileFiltersOpen: handleSetIsMobileFiltersOpen, handleApplyFilters: function () { return setSearchTrigger(function (prev) { return prev + 1; }); }, isLoading: isLoading })),
22232
- context.type === 'hotel-flight' && (React__default["default"].createElement(Itinerary, { isMobileFiltersOpen: isMobileFiltersOpen, handleSetIsMobileFiltersOpen: handleSetIsMobileFiltersOpen, isLoading: isLoading })),
23484
+ context.showFilters && (React__default["default"].createElement(Filters, { filters: filters, isOpen: filtersOpen, handleSetIsOpen: function () { return setFiltersOpen(!filtersOpen); }, handleApplyFilters: function () { return setSearchTrigger(function (prev) { return prev + 1; }); }, isLoading: isLoading })),
23485
+ context.type === 'hotel-flight' && (React__default["default"].createElement(Itinerary, { isOpen: itineraryOpen, handleSetIsOpen: function () { return setItineraryOpen(!itineraryOpen); }, isLoading: isLoading })),
22233
23486
  React__default["default"].createElement("div", { className: "search__results" },
22234
23487
  isMobile && (React__default["default"].createElement("div", { className: "search__result-row" },
22235
- React__default["default"].createElement("div", { className: "cta cta--filter", onClick: function () { return setIsMobileFiltersOpen(true); } },
22236
- React__default["default"].createElement(Icon, { name: "ui-filter", className: "mobile-filters-button__icon", height: 16 }), (_a = context.translations) === null || _a === void 0 ? void 0 :
22237
- _a.filters),
22238
- sortingOptions && sortingOptions.length > 0 && (React__default["default"].createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: "Sort by", placeholder: "Sort by", classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
23488
+ React__default["default"].createElement("div", { className: "search__results__actions" },
23489
+ context.showFilters && (React__default["default"].createElement("div", { className: "cta cta--filter", onClick: function () { return setFiltersOpen(true); } },
23490
+ React__default["default"].createElement(Icon, { name: "ui-filter", className: "mobile-filters-button__icon", height: 16 }),
23491
+ translations.SRP.FILTERS)),
23492
+ React__default["default"].createElement("div", { className: "cta cta--filter", onClick: function () { return setItineraryOpen(true); } },
23493
+ React__default["default"].createElement(Icon, { name: "ui-calendar", className: "mobile-filters-button__icon", height: 16 }),
23494
+ translations.SRP.SHOW_ITINERARY)),
23495
+ sortingOptions && sortingOptions.length > 0 && (React__default["default"].createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: translations.SRP.SORTBY, placeholder: translations.SRP.SORTBY, classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
22239
23496
  React__default["default"].createElement("div", { className: "search__result-row" },
22240
23497
  React__default["default"].createElement("span", { className: "search__result-row-text" }, !isLoading && (React__default["default"].createElement(React__default["default"].Fragment, null, (_b = results === null || results === void 0 ? void 0 : results.length) !== null && _b !== void 0 ? _b : 4,
22241
- " ", (_c = context.translations) === null || _c === void 0 ? void 0 :
22242
- _c.totalResultsLabel))),
23498
+ " ",
23499
+ translations.SRP.TOTAL_RESULTS_LABEL))),
22243
23500
  !isMobile && sortingOptions && sortingOptions.length > 0 && (React__default["default"].createElement("div", { className: "search__result-row-filter" },
22244
- React__default["default"].createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: "Sort by", placeholder: "Sort by", classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
23501
+ React__default["default"].createElement(ItemPicker, { items: sortingOptions, selection: sortKey || undefined, label: translations.SRP.SORTBY, placeholder: translations.SRP.SORTBY, classModifier: "travel-class-picker__items", onPick: handleSortChange })))),
22245
23502
  React__default["default"].createElement("div", { className: "search__results__wrapper" },
22246
23503
  context.showTabViews && React__default["default"].createElement(TabViews, null),
22247
- context.showRoundTripResults && React__default["default"].createElement(RoundTripResults, null),
22248
- context.showHotelAccommodationResults && React__default["default"].createElement(HotelAccommodationResults, { isLoading: isLoading, context: context }))))))));
23504
+ context.showFlightResults && (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) && (React__default["default"].createElement(FlightResults, { flights: bookingPackageDetails.outwardFlights, isDeparture: true })),
23505
+ context.showHotelAccommodationResults && React__default["default"].createElement(HotelAccommodationResults, { isLoading: isLoading, context: context }),
23506
+ context.showFlightResults && (bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) && (React__default["default"].createElement(FlightResults, { flights: bookingPackageDetails.returnFlights, isDeparture: false })))))))));
22249
23507
  };
22250
23508
 
22251
23509
  var createSearchResultsStore = function () {