@qite/tide-booking-component 1.3.4 → 1.3.6

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 (41) hide show
  1. package/build/build-cjs/booking-wizard/features/booking/booking-slice.d.ts +2 -1
  2. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +1 -0
  3. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-util.d.ts +3 -3
  4. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +5 -5
  5. package/build/build-cjs/booking-wizard/types.d.ts +10 -1
  6. package/build/build-cjs/index.js +515 -293
  7. package/build/build-cjs/shared/utils/localization-util.d.ts +7 -0
  8. package/build/build-esm/booking-wizard/features/booking/booking-slice.d.ts +2 -1
  9. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +1 -0
  10. package/build/build-esm/booking-wizard/features/sidebar/sidebar-util.d.ts +3 -3
  11. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +5 -5
  12. package/build/build-esm/booking-wizard/types.d.ts +10 -1
  13. package/build/build-esm/index.js +517 -295
  14. package/build/build-esm/shared/utils/localization-util.d.ts +7 -0
  15. package/package.json +75 -75
  16. package/src/booking-product/components/product.tsx +316 -314
  17. package/src/booking-product/components/rooms.tsx +19 -15
  18. package/src/booking-wizard/components/print-offer-button.tsx +63 -63
  19. package/src/booking-wizard/features/booking/booking-self-contained.tsx +393 -389
  20. package/src/booking-wizard/features/booking/booking-slice.ts +668 -663
  21. package/src/booking-wizard/features/booking/booking.tsx +365 -361
  22. package/src/booking-wizard/features/booking/selectors.ts +445 -441
  23. package/src/booking-wizard/features/confirmation/confirmation.tsx +103 -97
  24. package/src/booking-wizard/features/flight-options/flight-utils.ts +522 -522
  25. package/src/booking-wizard/features/product-options/options-form.tsx +481 -481
  26. package/src/booking-wizard/features/sidebar/sidebar-util.ts +177 -177
  27. package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -25
  28. package/src/booking-wizard/features/summary/summary.tsx +707 -674
  29. package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +164 -164
  30. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +888 -754
  31. package/src/booking-wizard/settings-context.ts +62 -62
  32. package/src/booking-wizard/types.ts +289 -279
  33. package/src/booking-wizard/use-offer-printer.ts +117 -117
  34. package/src/shared/translations/en-GB.json +244 -237
  35. package/src/shared/translations/fr-BE.json +244 -238
  36. package/src/shared/translations/nl-BE.json +244 -237
  37. package/src/shared/utils/tide-api-utils.ts +36 -36
  38. package/styles/booking-wizard-variables.scss +873 -873
  39. package/styles/components/_booking.scss +879 -879
  40. package/styles/components/_dropdown.scss +72 -72
  41. package/styles/components/_form.scss +1583 -1583
@@ -49,7 +49,7 @@ var __assign = function() {
49
49
  return __assign.apply(this, arguments);
50
50
  };
51
51
 
52
- function __awaiter$1(thisArg, _arguments, P, generator) {
52
+ function __awaiter(thisArg, _arguments, P, generator) {
53
53
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
54
54
  return new (P || (P = Promise))(function (resolve, reject) {
55
55
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -59,7 +59,7 @@ function __awaiter$1(thisArg, _arguments, P, generator) {
59
59
  });
60
60
  }
61
61
 
62
- function __generator$1(thisArg, body) {
62
+ function __generator(thisArg, body) {
63
63
  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
64
64
  return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
65
65
  function verb(n) { return function (v) { return step([n, v]); }; }
@@ -112,6 +112,7 @@ var STEPS$2 = {
112
112
  NEXT: "Étape suivante",
113
113
  SUBMIT_BOOKING: "Confirmer la réservation",
114
114
  SUBMIT_OFFER: "Demander un devis",
115
+ SUBMIT_OPTION: "Réserver une option",
115
116
  COMPOSE: "Composer",
116
117
  ROOM_OPTIONS: "Options de chambre",
117
118
  FLIGHT_OPTIONS: "Options de vol"
@@ -180,6 +181,7 @@ var PRODUCT$2 = {
180
181
  var MAIN$2 = {
181
182
  PREPARING_BOOKING: "Veuillez patienter, nous préparons votre réservation",
182
183
  PREPARING_OFFER: "Veuillez patienter, nous préparons votre devis",
184
+ PREPARING_DOSSIER: "Veuillez patienter, nous préparons votre dossier",
183
185
  PRODUCT_UNAVAILABLE: "Produit non disponible"
184
186
  };
185
187
  var SHARED$2 = {
@@ -215,7 +217,7 @@ var SIDEBAR$2 = {
215
217
  DEPOSIT_TEXT2: "solde restant",
216
218
  DEPOSIT_TEXT3: " de ",
217
219
  DEPOSIT_TEXT4: " sont détaillées à l'étape ",
218
- DEPOSIT_TEXT5: "3 (\"récapitulatif\")",
220
+ DEPOSIT_TEXT5: "\"Récapitulatif\"",
219
221
  DEPOSIT_TEXT6: " du processus de réservation.",
220
222
  LUGGAGE_INCLUDED: "Bagages inclus",
221
223
  DEPARTURE_FLIGHT: "Vol aller",
@@ -226,6 +228,7 @@ var SIDEBAR$2 = {
226
228
  CHANGES: "correspondances"
227
229
  };
228
230
  var TRAVELERS_FORM$2 = {
231
+ AGE: "Age",
229
232
  TRAVELER: "Voyageur",
230
233
  ADULT: "adulte",
231
234
  ADULTS: "adultes",
@@ -254,6 +257,7 @@ var TRAVELERS_FORM$2 = {
254
257
  VALIDATION_MESSAGE: "Veuillez vérifier les champs du formulaire ci-dessous et remplissez-les correctement.",
255
258
  BOOK_WITH_AGENT: "Je souhaite réserver auprès de mon agent de voyage local",
256
259
  CHOOSE_OFFICE: "Je choisis une agence",
260
+ PERSON: "Personne",
257
261
  COUNTRIES: {
258
262
  BELGIUM: "Belgique",
259
263
  NETHERLANDS: "Pays-Bas",
@@ -303,6 +307,7 @@ var SUMMARY$2 = {
303
307
  VALIDATE_TITLE: "Vérifiez vos données",
304
308
  VALIDATE_TEXT_BOOKING: "Vous êtes sur le point de confirmer votre réservation. Veuillez vérifier que toutes les informations sont correctes et que les noms sont tels qu'ils apparaissent sur votre carte d'identité ou votre passeport. Elles sont définitives et ne peuvent plus être modifiées.",
305
309
  VALIDATE_TEXT_OFFER: "Vous êtes sur le point de demander un devis. Veuillez vérifier que toutes les informations sont correctes et que les noms sont tels qu'ils apparaissent sur votre carte d'identité ou votre passeport. Cela nous permettra d'éviter les problèmes en cas de réservation.",
310
+ VALIDATE_TEXT_OPTION: "Si vous choisissez de prendre une option, une date limite s'applique, qui dépend de la compagnie aérienne. Cette date indique jusqu'à quand vous pouvez conserver l'option avant qu'une confirmation définitive ou une annulation ne soit nécessaire.",
306
311
  OPTIONS: "Options",
307
312
  REMARKS: "Remarques",
308
313
  VOUCHERS: "Bons",
@@ -314,9 +319,11 @@ var SUMMARY$2 = {
314
319
  var CONFIRMATION$2 = {
315
320
  TITLE_TEXT_OFFER: "Votre devis numéro {0} a été demandé",
316
321
  TITLE_TEXT_BOOKING: "Votre réservation avec le numéro {0} est confirmée",
322
+ TITLE_TEXT_OPTION: "Vous avez pris une option pour numéro {0}.",
317
323
  MESSAGE_TEXT1: "Votre voyage de rêve est maintenant très proche.",
318
324
  MESSAGE_TEXT2_OFFER: "Nos spécialistes voyages traitent votre demande et vous contacteront dans les 48 heures.",
319
325
  MESSAGE_TEXT2_BOOKING: "Nos spécialistes voyages traitent votre réservation et vous contacteront dans les 48 heures.",
326
+ MESSAGE_TEXT2_OPTION: "Nos spécialistes du voyage ont pris note de votre réservation et vous contacteront dans les 48 heures pour confirmer ou discuter de votre option.",
320
327
  QUESTIONS_TEXT1: "Avez-vous d'autres questions? ",
321
328
  QUESTIONS_TEXT2: "Faites-le nous savoir",
322
329
  QUESTIONS_TEXT3: ".",
@@ -364,6 +371,7 @@ var STEPS$1 = {
364
371
  NEXT: "Volgende stap",
365
372
  SUBMIT_BOOKING: "Bevestig boeking",
366
373
  SUBMIT_OFFER: "Vraag offerte aan",
374
+ SUBMIT_OPTION: "Neem een optie",
367
375
  COMPOSE: "Samenstellen",
368
376
  ROOM_OPTIONS: "Kamer opties",
369
377
  FLIGHT_OPTIONS: "Vlucht opties"
@@ -432,6 +440,7 @@ var PRODUCT$1 = {
432
440
  var MAIN$1 = {
433
441
  PREPARING_BOOKING: "Even geduld, we bereiden uw boeking voor",
434
442
  PREPARING_OFFER: "Even geduld, we bereiden uw offerte voor",
443
+ PREPARING_DOSSIER: "Even geduld, we bereiden uw dossier voor",
435
444
  PRODUCT_UNAVAILABLE: "Product niet beschikbaar"
436
445
  };
437
446
  var SHARED$1 = {
@@ -467,7 +476,7 @@ var SIDEBAR$1 = {
467
476
  DEPOSIT_TEXT2: "restbedrag",
468
477
  DEPOSIT_TEXT3: " van ",
469
478
  DEPOSIT_TEXT4: " wordt op ",
470
- DEPOSIT_TEXT5: "stap 3 (\"overzicht\")",
479
+ DEPOSIT_TEXT5: "stap \"Overzicht\"",
471
480
  DEPOSIT_TEXT6: " in het boekingsproces beschreven.",
472
481
  LUGGAGE_INCLUDED: "Inclusief bagage",
473
482
  DEPARTURE_FLIGHT: "Vlucht heenreis",
@@ -478,6 +487,7 @@ var SIDEBAR$1 = {
478
487
  CHANGES: "overstappen"
479
488
  };
480
489
  var TRAVELERS_FORM$1 = {
490
+ AGE: "Leeftijd",
481
491
  TRAVELER: "Reiziger",
482
492
  ADULT: "volwassene",
483
493
  ADULTS: "volwassenen",
@@ -506,6 +516,7 @@ var TRAVELERS_FORM$1 = {
506
516
  VALIDATION_MESSAGE: "Controleer onderstaande velden in het formulier en vul deze correct in.",
507
517
  BOOK_WITH_AGENT: "Ik wens te boeken bij mijn lokale reisagent",
508
518
  CHOOSE_OFFICE: "Ik kies een kantoor",
519
+ PERSON: "Persoon",
509
520
  COUNTRIES: {
510
521
  BELGIUM: "België",
511
522
  NETHERLANDS: "Nederland",
@@ -555,6 +566,7 @@ var SUMMARY$1 = {
555
566
  VALIDATE_TITLE: "Controleer je gegevens",
556
567
  VALIDATE_TEXT_BOOKING: "Je staat op het punt je boeking te bevestigen. Controleer of alle gegevens correct zijn en de namen zoals vermeld op je identiteitskaart of paspoort gebruikt worden. Deze zijn definitief en niet meer aanpasbaar.",
557
568
  VALIDATE_TEXT_OFFER: "Je staat op het punt een offerte aan te vragen. Controleer of alle gegevens correct zijn en de namen zoals vermeld op je identiteitskaart of paspoort gebruikt worden. Zo vermijden we problemen bij een eventuele boeking.",
569
+ VALIDATE_TEXT_OPTION: "Indien je ervoor kiest om een optie te nemen, geldt er een uiterste optie datum die afhankelijk is van de airline. Deze datum geeft aan tot wanneer je de optie kunt behouden voordat een definitieve bevestiging of annulering noodzakelijk is.",
558
570
  OPTIONS: "Opties",
559
571
  REMARKS: "Opmerkingen",
560
572
  VOUCHERS: "Vouchers",
@@ -566,9 +578,11 @@ var SUMMARY$1 = {
566
578
  var CONFIRMATION$1 = {
567
579
  TITLE_TEXT_OFFER: "Je offerte met nummer {0} is aangevraagd",
568
580
  TITLE_TEXT_BOOKING: "Je boeking met nummer {0} is bevestigd",
581
+ TITLE_TEXT_OPTION: "Je optie met nummer {0} is aangevraagd",
569
582
  MESSAGE_TEXT1: "Jouw droomreis komt nu heel dichtbij.",
570
583
  MESSAGE_TEXT2_OFFER: "Onze reisspecialisten verwerken je aanvraag en nemen binnen de 48u contact met je op.",
571
584
  MESSAGE_TEXT2_BOOKING: "Onze reisspecialisten verwerken je reservatie en nemen binnen de 48u contact met je op.",
585
+ MESSAGE_TEXT2_OPTION: "Onze reisspecialisten hebben je reservatie genoteerd en nemen binnen de 48u contact met je op om je optie te bevestigen of te bespreken.",
572
586
  QUESTIONS_TEXT1: "Heb je nog vragen? ",
573
587
  QUESTIONS_TEXT2: "Laat het ons weten",
574
588
  QUESTIONS_TEXT3: ".",
@@ -616,6 +630,7 @@ var STEPS = {
616
630
  NEXT: "Next step",
617
631
  SUBMIT_BOOKING: "Confirm booking",
618
632
  SUBMIT_OFFER: "Request quote",
633
+ SUBMIT_OPTION: "Take an option",
619
634
  COMPOSE: "Compose",
620
635
  ROOM_OPTIONS: "Room options",
621
636
  FLIGHT_OPTIONS: "Flight options"
@@ -684,6 +699,7 @@ var PRODUCT = {
684
699
  var MAIN = {
685
700
  PREPARING_BOOKING: "Please wait, we are preparing your booking",
686
701
  PREPARING_OFFER: "Please wait, we are preparing your quote",
702
+ PREPARING_DOSSIER: "Please wait, we are preparing your file",
687
703
  PRODUCT_UNAVAILABLE: "Product not available"
688
704
  };
689
705
  var SHARED = {
@@ -719,7 +735,7 @@ var SIDEBAR = {
719
735
  DEPOSIT_TEXT2: "remaining balance",
720
736
  DEPOSIT_TEXT3: " of ",
721
737
  DEPOSIT_TEXT4: " are described in ",
722
- DEPOSIT_TEXT5: "step 3 (\"summary\")",
738
+ DEPOSIT_TEXT5: "step \"Summary\"",
723
739
  DEPOSIT_TEXT6: " of the booking process.",
724
740
  LUGGAGE_INCLUDED: "Luggage included",
725
741
  DEPARTURE_FLIGHT: "Outbound flight",
@@ -730,6 +746,7 @@ var SIDEBAR = {
730
746
  CHANGES: "transfers"
731
747
  };
732
748
  var TRAVELERS_FORM = {
749
+ AGE: "Age",
733
750
  TRAVELER: "Traveler",
734
751
  ADULT: "adult",
735
752
  ADULTS: "adults",
@@ -758,6 +775,7 @@ var TRAVELERS_FORM = {
758
775
  VALIDATION_MESSAGE: "Please check the fields below and fill them in correctly.",
759
776
  BOOK_WITH_AGENT: "I want to book through my local travel agent",
760
777
  CHOOSE_OFFICE: "I choose an office",
778
+ PERSON: "Person",
761
779
  COUNTRIES: {
762
780
  BELGIUM: "Belgium",
763
781
  NETHERLANDS: "Netherlands",
@@ -807,6 +825,7 @@ var SUMMARY = {
807
825
  VALIDATE_TITLE: "Check your information",
808
826
  VALIDATE_TEXT_BOOKING: "You are about to confirm your booking. Please check that all information is correct and that names are exactly as shown on your ID or passport. This information is final and cannot be changed.",
809
827
  VALIDATE_TEXT_OFFER: "You are about to request a quote. Please check that all information is correct and that names are exactly as shown on your ID or passport. This helps us avoid problems if you book later.",
828
+ VALIDATE_TEXT_OPTION: "If you choose to take an option, there is a deadline for exercising that option, which depends on the airline. This date indicates how long you can hold the option before a final confirmation or cancellation is required.",
810
829
  OPTIONS: "Options",
811
830
  REMARKS: "Remarks",
812
831
  VOUCHERS: "Vouchers",
@@ -818,9 +837,11 @@ var SUMMARY = {
818
837
  var CONFIRMATION = {
819
838
  TITLE_TEXT_OFFER: "Your quote with number {0} has been requested",
820
839
  TITLE_TEXT_BOOKING: "Your booking with number {0} has been confirmed",
840
+ TITLE_TEXT_OPTION: "You have taken an option on number {0}.",
821
841
  MESSAGE_TEXT1: "Your dream trip is now very close.",
822
842
  MESSAGE_TEXT2_OFFER: "Our travel specialists are processing your request and will contact you within 48 hours.",
823
843
  MESSAGE_TEXT2_BOOKING: "Our travel specialists are processing your booking and will contact you within 48 hours.",
844
+ MESSAGE_TEXT2_OPTION: "Our travel specialists have noted your reservation and will contact you within 48 hours to confirm or discuss your option.",
824
845
  QUESTIONS_TEXT1: "Do you have any questions? ",
825
846
  QUESTIONS_TEXT2: "Let us know",
826
847
  QUESTIONS_TEXT3: ".",
@@ -984,11 +1005,26 @@ var SettingsContext$1 = React__default["default"].createContext({
984
1005
  priceMode: 0,
985
1006
  });
986
1007
 
987
- var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
1008
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
988
1009
 
989
1010
  var build = {};
990
1011
 
991
- Object.defineProperty(build, "__esModule", { value: true });
1012
+ (function (exports) {
1013
+
1014
+ Object.defineProperty(exports, "__esModule", { value: true });
1015
+
1016
+ var AllotmentKind;
1017
+ (function (AllotmentKind) {
1018
+ AllotmentKind[(AllotmentKind["perUnit"] = 0)] = "perUnit";
1019
+ AllotmentKind[(AllotmentKind["perMember"] = 1)] = "perMember";
1020
+ })(AllotmentKind || (AllotmentKind = {}));
1021
+
1022
+ exports.AllotmentStatus = void 0;
1023
+ (function (AllotmentStatus) {
1024
+ AllotmentStatus[(AllotmentStatus["bookable"] = 0)] = "bookable";
1025
+ AllotmentStatus[(AllotmentStatus["closed"] = 1)] = "closed";
1026
+ AllotmentStatus[(AllotmentStatus["hidden"] = 2)] = "hidden";
1027
+ })(exports.AllotmentStatus || (exports.AllotmentStatus = {}));
992
1028
 
993
1029
  var AllotmentType = {
994
1030
  freeSell: 0,
@@ -1016,7 +1052,27 @@ var DataType = {
1016
1052
  template: "template",
1017
1053
  };
1018
1054
 
1019
- var EntryStatus;
1055
+ var EntryLineStatus = {
1056
+ cancellationByClient: 0,
1057
+ cancellationByYou: 1,
1058
+ noAllotment: 2,
1059
+ offer: 3,
1060
+ ok: 4,
1061
+ option: 5,
1062
+ onRequest: 6,
1063
+ requestConfirmed: 7,
1064
+ requestDenied: 8,
1065
+ requestSent: 9,
1066
+ pending: 10,
1067
+ notBookable: 11,
1068
+ noAllotmentFallbackToRealtimeFlight: 12,
1069
+ notBookableFallbackToRealtimeFlight: 13,
1070
+ error: 14,
1071
+ bookingConfirmed: 15,
1072
+ cancellationConfirmed: 16,
1073
+ };
1074
+
1075
+ exports.EntryStatus = void 0;
1020
1076
  (function (EntryStatus) {
1021
1077
  EntryStatus[(EntryStatus["new"] = -1)] = "new";
1022
1078
  EntryStatus[(EntryStatus["offer"] = 0)] = "offer";
@@ -1025,7 +1081,7 @@ var EntryStatus;
1025
1081
  EntryStatus[(EntryStatus["cancellationByClient"] = 3)] =
1026
1082
  "cancellationByClient";
1027
1083
  EntryStatus[(EntryStatus["cancellationByYou"] = 4)] = "cancellationByYou";
1028
- })(EntryStatus || (EntryStatus = {}));
1084
+ })(exports.EntryStatus || (exports.EntryStatus = {}));
1029
1085
 
1030
1086
  var Gender = {
1031
1087
  male: 0,
@@ -1033,6 +1089,14 @@ var Gender = {
1033
1089
  other: 2,
1034
1090
  };
1035
1091
 
1092
+ var MetaDataItemPropertyType;
1093
+ (function (MetaDataItemPropertyType) {
1094
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Height"] = 0)] = "Height";
1095
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Length"] = 1)] = "Length";
1096
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Width"] = 2)] = "Width";
1097
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Weight"] = 3)] = "Weight";
1098
+ })(MetaDataItemPropertyType || (MetaDataItemPropertyType = {}));
1099
+
1036
1100
  var MetaDataType = {
1037
1101
  flight: 0,
1038
1102
  publicTransport: 1,
@@ -1097,6 +1161,13 @@ var ServiceType = {
1097
1161
  camp: 30,
1098
1162
  };
1099
1163
 
1164
+ var UnitOfMeasure;
1165
+ (function (UnitOfMeasure) {
1166
+ UnitOfMeasure[(UnitOfMeasure["cm"] = 0)] = "cm";
1167
+ UnitOfMeasure[(UnitOfMeasure["kg"] = 1)] = "kg";
1168
+ UnitOfMeasure[(UnitOfMeasure["lb"] = 2)] = "lb";
1169
+ })(UnitOfMeasure || (UnitOfMeasure = {}));
1170
+
1100
1171
  /******************************************************************************
1101
1172
  Copyright (c) Microsoft Corporation.
1102
1173
 
@@ -1353,13 +1424,13 @@ var get$1 = function (url, apiKey, token, signal, languageCode) {
1353
1424
  });
1354
1425
  };
1355
1426
 
1356
- var commonjsGlobal =
1427
+ var commonjsGlobal$1 =
1357
1428
  typeof globalThis !== "undefined"
1358
1429
  ? globalThis
1359
1430
  : typeof window !== "undefined"
1360
1431
  ? window
1361
- : typeof commonjsGlobal$1 !== "undefined"
1362
- ? commonjsGlobal$1
1432
+ : typeof commonjsGlobal !== "undefined"
1433
+ ? commonjsGlobal
1363
1434
  : typeof self !== "undefined"
1364
1435
  ? self
1365
1436
  : {};
@@ -1377,7 +1448,7 @@ var moment$1 = { exports: {} };
1377
1448
  (function (module, exports) {
1378
1449
  (function (global, factory) {
1379
1450
  module.exports = factory();
1380
- })(commonjsGlobal, function () {
1451
+ })(commonjsGlobal$1, function () {
1381
1452
  var hookCallback;
1382
1453
 
1383
1454
  function hooks() {
@@ -7065,6 +7136,9 @@ var post = function (
7065
7136
  return [4 /*yield*/, response.text()];
7066
7137
  case 2:
7067
7138
  responseBody = _a.sent();
7139
+ if (!responseBody) {
7140
+ return [2 /*return*/, null];
7141
+ }
7068
7142
  result = skipReviver
7069
7143
  ? JSON.parse(responseBody)
7070
7144
  : JSON.parse(responseBody, reviver);
@@ -7096,6 +7170,9 @@ var patch = function (
7096
7170
  return [4 /*yield*/, response.text()];
7097
7171
  case 2:
7098
7172
  responseBody = _a.sent();
7173
+ if (!responseBody) {
7174
+ return [2 /*return*/, {}];
7175
+ }
7099
7176
  result = skipReviver
7100
7177
  ? JSON.parse(responseBody)
7101
7178
  : JSON.parse(responseBody, reviver);
@@ -7567,6 +7644,17 @@ var getEntryList = function (config, filterItem, gridColumns, signal) {
7567
7644
  var apiKey = config.apiKey;
7568
7645
  return get(url, apiKey, config.token, signal, true);
7569
7646
  };
7647
+ var getEntryListv2 = function (config, filterItem, gridColumns, signal) {
7648
+ var params = createParams(filterItem, false, gridColumns);
7649
+ var queryString = Object.keys(params)
7650
+ .map(function (key) {
7651
+ return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]);
7652
+ })
7653
+ .join("&");
7654
+ var url = "" + config.host + ENDPOINT$3 + "/v2/entry/list?" + queryString;
7655
+ var apiKey = config.apiKey;
7656
+ return get(url, apiKey, config.token, signal, true);
7657
+ };
7570
7658
  var getEntryTotals = function (config, filterItem, gridColumns, signal) {
7571
7659
  var params = createParams(filterItem, false, gridColumns);
7572
7660
  var queryString = Object.keys(params)
@@ -7578,6 +7666,11 @@ var getEntryTotals = function (config, filterItem, gridColumns, signal) {
7578
7666
  var apiKey = config.apiKey;
7579
7667
  return get(url, apiKey, config.token, signal, true);
7580
7668
  };
7669
+ var getEntryDetailv2 = function (config, entryId, signal) {
7670
+ var url = "" + config.host + ENDPOINT$3 + "/v2/entry/detail/" + entryId;
7671
+ var apiKey = config.apiKey;
7672
+ return get(url, apiKey, config.token, signal, true);
7673
+ };
7581
7674
  var getInvoiceList = function (config, filterItem, gridColumns, signal) {
7582
7675
  var params = createParams(filterItem, false, gridColumns);
7583
7676
  var queryString = Object.keys(params)
@@ -7605,6 +7698,22 @@ var changeEntryAgentSurcharge = function (config, request, signal) {
7605
7698
  var body = JSON.stringify(request);
7606
7699
  return post$1(url, apiKey, body, config.token, signal);
7607
7700
  };
7701
+ var getAllotmentList = function (config, filterItem, gridColumns, signal) {
7702
+ var params = createParams(filterItem, false, gridColumns);
7703
+ var queryString = Object.keys(params)
7704
+ .map(function (key) {
7705
+ return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]);
7706
+ })
7707
+ .join("&");
7708
+ var url = "" + config.host + ENDPOINT$3 + "/allotment/list?" + queryString;
7709
+ var apiKey = config.apiKey;
7710
+ return get(url, apiKey, config.token, signal, true);
7711
+ };
7712
+ var getAllotment = function (config, allotmentId, signal) {
7713
+ var url = "" + config.host + ENDPOINT$3 + "/allotment/" + allotmentId;
7714
+ var apiKey = config.apiKey;
7715
+ return get(url, apiKey, config.token, signal, true);
7716
+ };
7608
7717
 
7609
7718
  var ENDPOINT$2 = "/api/web";
7610
7719
  var ENDPOINT_CREATE_CRM_CONTACT = ENDPOINT$2 + "/crmcontact";
@@ -7638,7 +7747,7 @@ var ContactForm = function (config, request, signal) {
7638
7747
  var url = "" + config.host + ENDPOINT_CONTACT_FORM$1;
7639
7748
  var apiKey = config.apiKey;
7640
7749
  var body = JSON.stringify(request);
7641
- return post(url, apiKey, body, config.token, signal);
7750
+ return post(url, apiKey, body, config.token, signal, true);
7642
7751
  };
7643
7752
  /**
7644
7753
  * api/web/affiliates
@@ -7719,57 +7828,64 @@ var feedXmlFolder = function (config, slug, folder, signal) {
7719
7828
  return get$1(url, apiKey, config.token, signal);
7720
7829
  };
7721
7830
 
7722
- build.AllotmentType = AllotmentType;
7723
- build.AvailabilitySearchType = AvailabilitySearchType;
7724
- build.ContactForm = ContactForm;
7725
- var Gender_1 = build.Gender = Gender;
7726
- build.MetaDataType = MetaDataType;
7727
- build.RequirementType = RequirementType;
7728
- build.ServiceType = ServiceType;
7729
- var agents_1 = build.agents = agents;
7730
- build.alternateFlights = alternateFlights;
7731
- build.alternateHotels = alternateHotels;
7732
- build.availableCountries = availableCountries;
7733
- build.availableFlights = availableFlights;
7734
- var book_1 = build.book = book;
7735
- build.bookableDates = bookableDates;
7736
- build.changeEntryAgentSurcharge = changeEntryAgentSurcharge;
7737
- build.confirm = confirm;
7738
- build.contactForm = contactForm;
7739
- build.contactHasTag = contactHasTag;
7740
- build.createCrmContact = createCrmContact;
7741
- build.createParams = createParams;
7742
- var details_1 = build.details = details;
7743
- build.feedXml = feedXml;
7744
- build.feedXmlFolder = feedXmlFolder;
7745
- build.forgotPassword = forgotPassword;
7746
- var generateBookingAccommodations_1 = build.generateBookingAccommodations = generateBookingAccommodations;
7747
- build.getAffiliates = getAffiliates;
7748
- build.getAllotmentAvailability = getAllotmentAvailability;
7749
- build.getCountries = getCountries;
7750
- build.getCustomEntryStatus = getCustomEntryStatus;
7751
- build.getEntryList = getEntryList;
7752
- build.getEntryStatus = getEntryStatus;
7753
- build.getEntryTotals = getEntryTotals;
7754
- build.getInvoiceList = getInvoiceList;
7755
- build.getMolliePayment = getMolliePayment;
7756
- build.getPrintActions = getPrintActions;
7757
- build.getTranslationDictionary = getTranslationDictionary;
7758
- build.login = login;
7759
- build.logout = logout;
7760
- var priceDetails_1 = build.priceDetails = priceDetails;
7761
- build.prices = prices;
7762
- var print_1 = build.print = print;
7763
- build.resetPassword = resetPassword;
7764
- build.search = search;
7765
- build.searchFlightPool = searchFlightPool;
7766
- build.searchWithErrorMapping = searchWithErrorMapping;
7767
- build.setCustomEntryStatus = setCustomEntryStatus;
7768
- build.setEntryStatus = setEntryStatus;
7769
- build.tourCodes = tourCodes;
7770
- build.transportDates = transportDates;
7771
- build.update = update;
7772
- var validateVoucher_1 = build.validateVoucher = validateVoucher;
7831
+ exports.AllotmentType = AllotmentType;
7832
+ exports.AvailabilitySearchType = AvailabilitySearchType;
7833
+ exports.ContactForm = ContactForm;
7834
+ exports.EntryLineStatus = EntryLineStatus;
7835
+ exports.Gender = Gender;
7836
+ exports.MetaDataType = MetaDataType;
7837
+ exports.RequirementType = RequirementType;
7838
+ exports.ServiceType = ServiceType;
7839
+ exports.agents = agents;
7840
+ exports.alternateFlights = alternateFlights;
7841
+ exports.alternateHotels = alternateHotels;
7842
+ exports.availableCountries = availableCountries;
7843
+ exports.availableFlights = availableFlights;
7844
+ exports.book = book;
7845
+ exports.bookableDates = bookableDates;
7846
+ exports.changeEntryAgentSurcharge = changeEntryAgentSurcharge;
7847
+ exports.confirm = confirm;
7848
+ exports.contactForm = contactForm;
7849
+ exports.contactHasTag = contactHasTag;
7850
+ exports.createCrmContact = createCrmContact;
7851
+ exports.createParams = createParams;
7852
+ exports.details = details;
7853
+ exports.feedXml = feedXml;
7854
+ exports.feedXmlFolder = feedXmlFolder;
7855
+ exports.forgotPassword = forgotPassword;
7856
+ exports.generateBookingAccommodations = generateBookingAccommodations;
7857
+ exports.getAffiliates = getAffiliates;
7858
+ exports.getAllotment = getAllotment;
7859
+ exports.getAllotmentAvailability = getAllotmentAvailability;
7860
+ exports.getAllotmentList = getAllotmentList;
7861
+ exports.getCountries = getCountries;
7862
+ exports.getCustomEntryStatus = getCustomEntryStatus;
7863
+ exports.getEntryDetailv2 = getEntryDetailv2;
7864
+ exports.getEntryList = getEntryList;
7865
+ exports.getEntryListv2 = getEntryListv2;
7866
+ exports.getEntryStatus = getEntryStatus;
7867
+ exports.getEntryTotals = getEntryTotals;
7868
+ exports.getInvoiceList = getInvoiceList;
7869
+ exports.getMolliePayment = getMolliePayment;
7870
+ exports.getPrintActions = getPrintActions;
7871
+ exports.getTranslationDictionary = getTranslationDictionary;
7872
+ exports.login = login;
7873
+ exports.logout = logout;
7874
+ exports.priceDetails = priceDetails;
7875
+ exports.prices = prices;
7876
+ exports.print = print;
7877
+ exports.resetPassword = resetPassword;
7878
+ exports.search = search;
7879
+ exports.searchFlightPool = searchFlightPool;
7880
+ exports.searchWithErrorMapping = searchWithErrorMapping;
7881
+ exports.setCustomEntryStatus = setCustomEntryStatus;
7882
+ exports.setEntryStatus = setEntryStatus;
7883
+ exports.tourCodes = tourCodes;
7884
+ exports.transportDates = transportDates;
7885
+ exports.update = update;
7886
+ exports.validateVoucher = validateVoucher;
7887
+
7888
+ }(build));
7773
7889
 
7774
7890
  function buildTideClientConfig(settings) {
7775
7891
  var HOST = (settings === null || settings === void 0 ? void 0 : settings.apiUrl) || process.env.REACT_APP_BOOKING_HOST;
@@ -7798,13 +7914,13 @@ var selectAgentToken = function () {
7798
7914
  return token !== null && token !== void 0 ? token : undefined;
7799
7915
  };
7800
7916
 
7801
- var fetchDetails$1 = function (request, signal, languageCode, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
7917
+ var fetchDetails$1 = function (request, signal, languageCode, apiSettings) { return __awaiter(void 0, void 0, void 0, function () {
7802
7918
  var tideClientConfig;
7803
- return __generator$1(this, function (_a) {
7919
+ return __generator(this, function (_a) {
7804
7920
  switch (_a.label) {
7805
7921
  case 0:
7806
7922
  tideClientConfig = buildTideClientConfig(apiSettings);
7807
- return [4 /*yield*/, details_1(tideClientConfig, request, signal, languageCode)];
7923
+ return [4 /*yield*/, build.details(tideClientConfig, request, signal, languageCode)];
7808
7924
  case 1: return [2 /*return*/, _a.sent()];
7809
7925
  }
7810
7926
  });
@@ -9488,6 +9604,9 @@ var Rooms = function (_a) {
9488
9604
  var rooms = _a.rooms, isDisabled = _a.isDisabled, setIsDisabled = _a.setIsDisabled, onChange = _a.onChange;
9489
9605
  var _b = React.useState(false), isTouched = _b[0], setIsTouched = _b[1];
9490
9606
  var _c = React.useState(rooms), currentRooms = _c[0], setRoomState = _c[1];
9607
+ React.useEffect(function () {
9608
+ setRoomState(rooms);
9609
+ }, [rooms]);
9491
9610
  var language = React.useContext(SettingsContext$1).language;
9492
9611
  var translations = getTranslations(language);
9493
9612
  var handleCloseClick = function () {
@@ -9577,9 +9696,9 @@ var Product = function (_a) {
9577
9696
  ]), rooms = _l[0], setRooms = _l[1];
9578
9697
  var _m = React.useState(), dateRange = _m[0], setDateRange = _m[1];
9579
9698
  var _o = React.useState(productName), packageProductName = _o[0], setPackageProductName = _o[1];
9580
- var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
9699
+ var fetchPackage = function (signal) { return __awaiter(void 0, void 0, void 0, function () {
9581
9700
  var apiSettingsState, startDate, endDate, requestRooms, request, response, selectedOption, hasFlight_1, hasTranfer;
9582
- return __generator$1(this, function (_a) {
9701
+ return __generator(this, function (_a) {
9583
9702
  switch (_a.label) {
9584
9703
  case 0:
9585
9704
  if (!(loaded &&
@@ -9668,7 +9787,7 @@ var Product = function (_a) {
9668
9787
  if (dateRange === null || dateRange === void 0 ? void 0 : dateRange.toDate) {
9669
9788
  params["endDate"] = dateFns.format(dateRange.toDate, "yyyy-MM-dd");
9670
9789
  }
9671
- params["catalog"] = catalogueId.toString();
9790
+ params["catalogueId"] = catalogueId.toString();
9672
9791
  if (addProductToQuery) {
9673
9792
  params["productCode"] = productCode;
9674
9793
  params["productName"] = encodeURI(packageProductName);
@@ -9690,8 +9809,8 @@ var Product = function (_a) {
9690
9809
  React.useEffect(function () {
9691
9810
  var controller = new AbortController();
9692
9811
  var signal = controller.signal;
9693
- (function () { return __awaiter$1(void 0, void 0, void 0, function () {
9694
- return __generator$1(this, function (_a) {
9812
+ (function () { return __awaiter(void 0, void 0, void 0, function () {
9813
+ return __generator(this, function (_a) {
9695
9814
  fetchPackage(signal);
9696
9815
  return [2 /*return*/];
9697
9816
  });
@@ -9707,8 +9826,10 @@ var Product = function (_a) {
9707
9826
  React.useEffect(function () {
9708
9827
  var params = new URLSearchParams(location.search);
9709
9828
  var rooms = getRoomsFromParams(params, "rooms");
9710
- var from = getDateAsDateFromParams(params, "from");
9711
- var to = getDateAsDateFromParams(params, "to");
9829
+ var from = getDateAsDateFromParams(params, "from")
9830
+ || getDateAsDateFromParams(params, "startDate");
9831
+ var to = getDateAsDateFromParams(params, "to")
9832
+ || getDateAsDateFromParams(params, "endDate");
9712
9833
  if (rooms) {
9713
9834
  setRooms(rooms);
9714
9835
  }
@@ -9780,18 +9901,18 @@ var selectFormRooms = toolkit.createSelector(selectRequestRooms$1, function (roo
9780
9901
  };
9781
9902
  x.pax.forEach(function (p) {
9782
9903
  if (p.age && p.age > CHILD_MAX_AGE) {
9783
- formRoom.adults.push(p.id);
9904
+ formRoom.adults.push({ id: p.id, age: 30 });
9784
9905
  }
9785
9906
  else if (p.age && p.age <= CHILD_MAX_AGE) {
9786
- formRoom.children.push(p.id);
9907
+ formRoom.children.push({ id: p.id, age: p.age });
9787
9908
  }
9788
9909
  else if (p.dateOfBirth) {
9789
- var diff = dateFns.differenceInYears(new Date(), new Date(p.dateOfBirth));
9790
- if (diff > CHILD_MAX_AGE) {
9791
- formRoom.adults.push(p.id);
9910
+ var age = dateFns.differenceInYears(new Date(), new Date(p.dateOfBirth));
9911
+ if (age > CHILD_MAX_AGE) {
9912
+ formRoom.adults.push({ id: p.id, age: 30 });
9792
9913
  }
9793
9914
  else {
9794
- formRoom.children.push(p.id);
9915
+ formRoom.children.push({ id: p.id, age: age });
9795
9916
  }
9796
9917
  }
9797
9918
  });
@@ -9802,35 +9923,35 @@ var selectFormRooms = toolkit.createSelector(selectRequestRooms$1, function (roo
9802
9923
  });
9803
9924
  var travelersFormReducer = travelersFormSlice.reducer;
9804
9925
 
9805
- var fetchDetails = function (request, signal, languageCode, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
9926
+ var fetchDetails = function (request, signal, languageCode, apiSettings) { return __awaiter(void 0, void 0, void 0, function () {
9806
9927
  var tideClientConfig;
9807
- return __generator$1(this, function (_a) {
9928
+ return __generator(this, function (_a) {
9808
9929
  switch (_a.label) {
9809
9930
  case 0:
9810
9931
  tideClientConfig = buildTideClientConfig(apiSettings);
9811
- return [4 /*yield*/, details_1(tideClientConfig, request, signal, languageCode)];
9932
+ return [4 /*yield*/, build.details(tideClientConfig, request, signal, languageCode)];
9812
9933
  case 1: return [2 /*return*/, _a.sent()];
9813
9934
  }
9814
9935
  });
9815
9936
  }); };
9816
- var fetchAgents$1 = function (signal, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
9937
+ var fetchAgents$1 = function (signal, apiSettings) { return __awaiter(void 0, void 0, void 0, function () {
9817
9938
  var tideClientConfig;
9818
- return __generator$1(this, function (_a) {
9939
+ return __generator(this, function (_a) {
9819
9940
  switch (_a.label) {
9820
9941
  case 0:
9821
9942
  tideClientConfig = buildTideClientConfig(apiSettings);
9822
- return [4 /*yield*/, agents_1(tideClientConfig, signal)];
9943
+ return [4 /*yield*/, build.agents(tideClientConfig, signal)];
9823
9944
  case 1: return [2 /*return*/, _a.sent()];
9824
9945
  }
9825
9946
  });
9826
9947
  }); };
9827
- var fetchAccommodationViews$1 = function (request, signal, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
9948
+ var fetchAccommodationViews$1 = function (request, signal, apiSettings) { return __awaiter(void 0, void 0, void 0, function () {
9828
9949
  var tideClientConfig;
9829
- return __generator$1(this, function (_a) {
9950
+ return __generator(this, function (_a) {
9830
9951
  switch (_a.label) {
9831
9952
  case 0:
9832
9953
  tideClientConfig = buildTideClientConfig(apiSettings);
9833
- return [4 /*yield*/, generateBookingAccommodations_1(tideClientConfig, request, signal)];
9954
+ return [4 /*yield*/, build.generateBookingAccommodations(tideClientConfig, request, signal)];
9834
9955
  case 1: return [2 /*return*/, _a.sent()];
9835
9956
  }
9836
9957
  });
@@ -9849,13 +9970,13 @@ var SUMMARY_STEP = 5;
9849
9970
  var CONFIRMATION_STEP = 6;
9850
9971
  var ERROR_STEP = 7;
9851
9972
 
9852
- var fetchPriceDetails$1 = function (apiSettings, request, signal, languageCode) { return __awaiter$1(void 0, void 0, void 0, function () {
9973
+ var fetchPriceDetails$1 = function (apiSettings, request, signal, languageCode) { return __awaiter(void 0, void 0, void 0, function () {
9853
9974
  var tideClientConfig;
9854
- return __generator$1(this, function (_a) {
9975
+ return __generator(this, function (_a) {
9855
9976
  switch (_a.label) {
9856
9977
  case 0:
9857
9978
  tideClientConfig = buildTideClientConfig(apiSettings);
9858
- return [4 /*yield*/, priceDetails_1(tideClientConfig, request, signal, languageCode)];
9979
+ return [4 /*yield*/, build.priceDetails(tideClientConfig, request, signal, languageCode)];
9859
9980
  case 1: return [2 /*return*/, _a.sent()];
9860
9981
  }
9861
9982
  });
@@ -9924,9 +10045,9 @@ var updateBookingGroups = function (groups, changedLines) {
9924
10045
  var _a$2;
9925
10046
  var fetchPriceDetails = toolkit.createAsyncThunk("priceDetails/fetchPriceDetails", function (_, _a) {
9926
10047
  var dispatch = _a.dispatch, getState = _a.getState, signal = _a.signal;
9927
- return __awaiter$1(void 0, void 0, void 0, function () {
10048
+ return __awaiter(void 0, void 0, void 0, function () {
9928
10049
  var state, languageCode, request, priceDetails, packageDetails, updatedPackageDetails;
9929
- return __generator$1(this, function (_b) {
10050
+ return __generator(this, function (_b) {
9930
10051
  switch (_b.label) {
9931
10052
  case 0:
9932
10053
  dispatch(setFetchingPriceDetails(true));
@@ -10107,6 +10228,9 @@ var selectBookingAttributes = function (state) {
10107
10228
  var selectBookingNumber = function (state) {
10108
10229
  return state.booking.bookingNumber;
10109
10230
  };
10231
+ var selectIsOption = function (state) {
10232
+ return state.booking.isOption;
10233
+ };
10110
10234
  var selectBookingRooms = function (state) { var _a; return (_a = state.booking.bookingAttributes) === null || _a === void 0 ? void 0 : _a.rooms; };
10111
10235
  var selectBookingRemarks = function (state) { return state.booking.remarks; };
10112
10236
  var selectVoucherCodes = function (state) {
@@ -10290,18 +10414,19 @@ var buildPax = function (traveler, mainBookerId) {
10290
10414
  firstName: traveler.firstName,
10291
10415
  lastName: traveler.lastName,
10292
10416
  dateOfBirth: traveler.birthDate,
10417
+ age: traveler.birthDate ? null : traveler.age,
10293
10418
  isMainBooker: traveler.id == mainBookerId,
10294
10419
  };
10295
10420
  };
10296
10421
  var parseGender = function (gender) {
10297
10422
  switch (gender) {
10298
10423
  case "m":
10299
- return Gender_1.male;
10424
+ return build.Gender.male;
10300
10425
  case "f":
10301
- return Gender_1.female;
10426
+ return build.Gender.female;
10302
10427
  case "x":
10303
10428
  default:
10304
- return Gender_1.other;
10429
+ return build.Gender.other;
10305
10430
  }
10306
10431
  };
10307
10432
 
@@ -10343,8 +10468,8 @@ var initialState$2 = {
10343
10468
  };
10344
10469
  var fetchPackage = toolkit.createAsyncThunk("booking/fetchPackage", function (_, _a) {
10345
10470
  var dispatch = _a.dispatch;
10346
- return __awaiter$1(void 0, void 0, void 0, function () {
10347
- return __generator$1(this, function (_b) {
10471
+ return __awaiter(void 0, void 0, void 0, function () {
10472
+ return __generator(this, function (_b) {
10348
10473
  switch (_b.label) {
10349
10474
  case 0:
10350
10475
  dispatch(setFetchingPackage(true));
@@ -10365,9 +10490,9 @@ var fetchPackage = toolkit.createAsyncThunk("booking/fetchPackage", function (_,
10365
10490
  });
10366
10491
  var fetchAgents = toolkit.createAsyncThunk("booking/agents", function (_, _a) {
10367
10492
  _a.dispatch; var getState = _a.getState, signal = _a.signal;
10368
- return __awaiter$1(void 0, void 0, void 0, function () {
10493
+ return __awaiter(void 0, void 0, void 0, function () {
10369
10494
  var settings;
10370
- return __generator$1(this, function (_b) {
10495
+ return __generator(this, function (_b) {
10371
10496
  switch (_b.label) {
10372
10497
  case 0:
10373
10498
  settings = getState();
@@ -10379,10 +10504,10 @@ var fetchAgents = toolkit.createAsyncThunk("booking/agents", function (_, _a) {
10379
10504
  });
10380
10505
  var fetchPackageDetails = toolkit.createAsyncThunk("booking/details", function (_, _a) {
10381
10506
  _a.dispatch; var getState = _a.getState, signal = _a.signal;
10382
- return __awaiter$1(void 0, void 0, void 0, function () {
10507
+ return __awaiter(void 0, void 0, void 0, function () {
10383
10508
  var state, officeId, productAttributes, bookingAttributes, agentId, rooms, languageCode, requestRooms, isAllotment, searchType, outwardFlight, returnFlight, request;
10384
10509
  var _b;
10385
- return __generator$1(this, function (_c) {
10510
+ return __generator(this, function (_c) {
10386
10511
  switch (_c.label) {
10387
10512
  case 0:
10388
10513
  state = getState();
@@ -10441,7 +10566,7 @@ var fetchPackageDetails = toolkit.createAsyncThunk("booking/details", function (
10441
10566
  agentId: agentId,
10442
10567
  payload: {
10443
10568
  searchType: searchType,
10444
- catalogueId: bookingAttributes.catalog,
10569
+ catalogueId: bookingAttributes.catalogueId,
10445
10570
  productCode: productAttributes.productCode,
10446
10571
  fromDate: bookingAttributes.startDate,
10447
10572
  toDate: bookingAttributes.endDate,
@@ -10464,9 +10589,9 @@ var fetchPackageDetails = toolkit.createAsyncThunk("booking/details", function (
10464
10589
  });
10465
10590
  var fetchAccommodationViews = toolkit.createAsyncThunk("booking/accommodationViews", function (_, _a) {
10466
10591
  _a.dispatch; var getState = _a.getState, signal = _a.signal;
10467
- return __awaiter$1(void 0, void 0, void 0, function () {
10592
+ return __awaiter(void 0, void 0, void 0, function () {
10468
10593
  var state, languageCode, accommodationCodes, productCode, request;
10469
- return __generator$1(this, function (_b) {
10594
+ return __generator(this, function (_b) {
10470
10595
  switch (_b.label) {
10471
10596
  case 0:
10472
10597
  state = getState();
@@ -10688,6 +10813,9 @@ var bookingSlice = toolkit.createSlice({
10688
10813
  setAccommodationViewId: function (state, action) {
10689
10814
  state.accommodationViewId = action.payload;
10690
10815
  },
10816
+ setIsOption: function (state, action) {
10817
+ state.isOption = action.payload;
10818
+ }
10691
10819
  },
10692
10820
  extraReducers: function (builder) {
10693
10821
  builder.addCase(fetchPackageDetails.fulfilled, function (state, action) {
@@ -10804,7 +10932,7 @@ var bookingSlice = toolkit.createSlice({
10804
10932
  });
10805
10933
  },
10806
10934
  });
10807
- var setOfficeId = (_a$1 = bookingSlice.actions, _a$1.setOfficeId), setLanguageCode = _a$1.setLanguageCode, setTranslations = _a$1.setTranslations, setBookingOptions = _a$1.setBookingOptions, setBookingType = _a$1.setBookingType, setProductAttributes = _a$1.setProductAttributes, setBookingAttributes = _a$1.setBookingAttributes, setCalculateDeposit = _a$1.setCalculateDeposit, setBookingNumber = _a$1.setBookingNumber, setIsRetry = _a$1.setIsRetry, setFetchingPackage = _a$1.setFetchingPackage, setPackage = _a$1.setPackage, setPackageRooms = _a$1.setPackageRooms, setPackageOptionPax = _a$1.setPackageOptionPax, setPackageOptionUnits = _a$1.setPackageOptionUnits, setPackageGroups = _a$1.setPackageGroups, setSkipPayment = _a$1.setSkipPayment, setGeneratePaymentUrl = _a$1.setGeneratePaymentUrl, setTagIds = _a$1.setTagIds, setAgentAdressId = _a$1.setAgentAdressId, setBookingRemarks = _a$1.setBookingRemarks, setVoucherCodes = _a$1.setVoucherCodes, setCurrentStep = _a$1.setCurrentStep, setPackageAirlineGroups = _a$1.setPackageAirlineGroups, setPackageAirportGroups = _a$1.setPackageAirportGroups, setFlights = _a$1.setFlights, setAccommodationViewId = _a$1.setAccommodationViewId;
10935
+ var setOfficeId = (_a$1 = bookingSlice.actions, _a$1.setOfficeId), setLanguageCode = _a$1.setLanguageCode, setTranslations = _a$1.setTranslations, setBookingOptions = _a$1.setBookingOptions, setBookingType = _a$1.setBookingType, setProductAttributes = _a$1.setProductAttributes, setBookingAttributes = _a$1.setBookingAttributes, setCalculateDeposit = _a$1.setCalculateDeposit, setBookingNumber = _a$1.setBookingNumber, setIsRetry = _a$1.setIsRetry, setFetchingPackage = _a$1.setFetchingPackage, setPackage = _a$1.setPackage, setPackageRooms = _a$1.setPackageRooms, setPackageOptionPax = _a$1.setPackageOptionPax, setPackageOptionUnits = _a$1.setPackageOptionUnits, setPackageGroups = _a$1.setPackageGroups, setSkipPayment = _a$1.setSkipPayment, setGeneratePaymentUrl = _a$1.setGeneratePaymentUrl, setTagIds = _a$1.setTagIds, setAgentAdressId = _a$1.setAgentAdressId, setBookingRemarks = _a$1.setBookingRemarks, setVoucherCodes = _a$1.setVoucherCodes, setCurrentStep = _a$1.setCurrentStep, setPackageAirlineGroups = _a$1.setPackageAirlineGroups, setPackageAirportGroups = _a$1.setPackageAirportGroups, setFlights = _a$1.setFlights, setAccommodationViewId = _a$1.setAccommodationViewId, setIsOption = _a$1.setIsOption;
10808
10936
  var bookingReducer = bookingSlice.reducer;
10809
10937
 
10810
10938
  var SettingsContext = React__default["default"].createContext({
@@ -11132,6 +11260,7 @@ var Confirmation = function () {
11132
11260
  var settings = React.useContext(SettingsContext);
11133
11261
  var bookingNumber = reactRedux.useSelector(selectBookingNumber);
11134
11262
  var bookingQueryString = reactRedux.useSelector(selectBookingQueryString);
11263
+ var isOption = reactRedux.useSelector(selectIsOption);
11135
11264
  if (!bookingNumber) {
11136
11265
  if (settings.skipRouter) {
11137
11266
  dispatch(setCurrentStep(OPTIONS_FORM_STEP));
@@ -11142,9 +11271,11 @@ var Confirmation = function () {
11142
11271
  }
11143
11272
  var translations = reactRedux.useSelector(selectTranslations);
11144
11273
  var encodedMailSubject = encodeURI(translations.CONFIRMATION.MAIL_SUBJECT);
11145
- var titleText = settings.isOffer
11146
- ? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
11147
- : format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
11274
+ var titleText = isOption
11275
+ ? format(translations.CONFIRMATION.TITLE_TEXT_OPTION, [bookingNumber])
11276
+ : settings.isOffer
11277
+ ? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
11278
+ : format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
11148
11279
  return (React__default["default"].createElement("div", { className: "form form__booking--message", id: "booking--confirmation" },
11149
11280
  React__default["default"].createElement("div", { className: "form__region" },
11150
11281
  React__default["default"].createElement("div", { className: "form__row" },
@@ -11159,9 +11290,11 @@ var Confirmation = function () {
11159
11290
  React__default["default"].createElement("p", null,
11160
11291
  translations.CONFIRMATION.MESSAGE_TEXT1,
11161
11292
  React__default["default"].createElement("br", null),
11162
- settings.isOffer
11163
- ? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER
11164
- : translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
11293
+ isOption
11294
+ ? translations.CONFIRMATION.MESSAGE_TEXT2_OPTION
11295
+ : settings.isOffer
11296
+ ? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER
11297
+ : translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
11165
11298
  React__default["default"].createElement("p", null,
11166
11299
  translations.CONFIRMATION.QUESTIONS_TEXT1,
11167
11300
  " ",
@@ -13180,9 +13313,9 @@ function useOfferPrinter(_a) {
13180
13313
  }
13181
13314
  var _d = React.useState("idle"), stage = _d[0], setStage = _d[1];
13182
13315
  var loading = stage !== "idle";
13183
- var createOffer = React.useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
13316
+ var createOffer = React.useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
13184
13317
  var paxRaw, pax, request, cfg;
13185
- return __generator$1(this, function (_a) {
13318
+ return __generator(this, function (_a) {
13186
13319
  paxRaw = getPax();
13187
13320
  if (!bookingPackage || !(paxRaw === null || paxRaw === void 0 ? void 0 : paxRaw.length)) {
13188
13321
  throw new Error("Missing booking package or pax");
@@ -13202,7 +13335,7 @@ function useOfferPrinter(_a) {
13202
13335
  },
13203
13336
  };
13204
13337
  cfg = buildTideClientConfig();
13205
- return [2 /*return*/, book_1(cfg, request, undefined, language)];
13338
+ return [2 /*return*/, build.book(cfg, request, undefined, language)];
13206
13339
  });
13207
13340
  }); }, [agentId, bookingPackage, getPax, language, officeId, tagIds]);
13208
13341
  var languageData = [
@@ -13214,10 +13347,10 @@ function useOfferPrinter(_a) {
13214
13347
  var _a;
13215
13348
  return ((_a = languageData.find(function (l) { return l.code === code; })) === null || _a === void 0 ? void 0 : _a.tideId) || 1;
13216
13349
  }
13217
- var printOffer = React.useCallback(function (offer) { return __awaiter$1(_this, void 0, void 0, function () {
13350
+ var printOffer = React.useCallback(function (offer) { return __awaiter(_this, void 0, void 0, function () {
13218
13351
  var cfg, req, res, buf, url;
13219
13352
  var _a;
13220
- return __generator$1(this, function (_b) {
13353
+ return __generator(this, function (_b) {
13221
13354
  switch (_b.label) {
13222
13355
  case 0:
13223
13356
  cfg = buildTideClientConfig();
@@ -13226,7 +13359,7 @@ function useOfferPrinter(_a) {
13226
13359
  dossierNumber: (_a = offer.dossierNumber) !== null && _a !== void 0 ? _a : offer.number,
13227
13360
  languageId: getTideLanguageId(language),
13228
13361
  };
13229
- return [4 /*yield*/, print_1(cfg, req)];
13362
+ return [4 /*yield*/, build.print(cfg, req)];
13230
13363
  case 1:
13231
13364
  res = _b.sent();
13232
13365
  return [4 /*yield*/, res.arrayBuffer()];
@@ -13239,9 +13372,9 @@ function useOfferPrinter(_a) {
13239
13372
  }
13240
13373
  });
13241
13374
  }); }, [language, onPrinted]);
13242
- var handlePrint = React.useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
13375
+ var handlePrint = React.useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
13243
13376
  var offer, err_1;
13244
- return __generator$1(this, function (_a) {
13377
+ return __generator(this, function (_a) {
13245
13378
  switch (_a.label) {
13246
13379
  case 0:
13247
13380
  _a.trys.push([0, 3, 4, 5]);
@@ -13863,11 +13996,11 @@ var SummaryPerPaxOptionGroup = function (_a) {
13863
13996
 
13864
13997
  var SummaryBookingOptionPax = function (_a) {
13865
13998
  var pax = _a.pax;
13866
- return (React__default["default"].createElement(React__default["default"].Fragment, null, pax.groups.map(function (y) {
13999
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, pax.groups.map(function (y, i) {
13867
14000
  var paxOptions = y.options.filter(function (y) { return y.isSelected; });
13868
14001
  if (lodash.isEmpty(paxOptions))
13869
14002
  return;
13870
- return React__default["default"].createElement(SummaryPerPaxOptionGroup, { group: y });
14003
+ return React__default["default"].createElement(SummaryPerPaxOptionGroup, { key: i, group: y });
13871
14004
  })));
13872
14005
  };
13873
14006
 
@@ -14017,12 +14150,14 @@ var Summary = function () {
14017
14150
  : true;
14018
14151
  dispatch(setUserValidated(checkboxesValidated && notificationsValidated));
14019
14152
  }, [checkboxes, notifications]);
14020
- var handleSubmit = function (e) { return __awaiter$1(void 0, void 0, void 0, function () {
14021
- var tideClientConfig, location_1, bookingResponse;
14022
- return __generator$1(this, function (_a) {
14023
- switch (_a.label) {
14153
+ var handleSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
14154
+ var submitter, tideClientConfig, location_1, bookingResponse;
14155
+ var _a;
14156
+ return __generator(this, function (_b) {
14157
+ switch (_b.label) {
14024
14158
  case 0:
14025
14159
  e.preventDefault();
14160
+ submitter = (_a = e.nativeEvent.submitter) === null || _a === void 0 ? void 0 : _a.name;
14026
14161
  setIsSubmitting(true);
14027
14162
  if (typeof window !== "undefined") {
14028
14163
  window.scrollTo(0, 0);
@@ -14035,12 +14170,17 @@ var Summary = function () {
14035
14170
  location_1 = router.useLocation();
14036
14171
  bookRequest.payload.redirectUrl = "".concat(location_1.protocol, "//").concat(location_1.host).concat(settings.basePath);
14037
14172
  }
14038
- _a.label = 1;
14173
+ _b.label = 1;
14039
14174
  case 1:
14040
- _a.trys.push([1, 3, 4, 5]);
14041
- return [4 /*yield*/, book_1(tideClientConfig, bookRequest, undefined, languageCode)];
14175
+ _b.trys.push([1, 3, 4, 5]);
14176
+ if (submitter === 'option') {
14177
+ bookRequest.payload.status = build.EntryStatus.option;
14178
+ bookRequest.payload.customStatusId = settings.customOptionStatus;
14179
+ dispatch(setIsOption(true));
14180
+ }
14181
+ return [4 /*yield*/, build.book(tideClientConfig, bookRequest, undefined, languageCode)];
14042
14182
  case 2:
14043
- bookingResponse = _a.sent();
14183
+ bookingResponse = _b.sent();
14044
14184
  // Booking successfull
14045
14185
  dispatch(setBookingNumber(bookingResponse.number));
14046
14186
  if (bookingResponse.paymentUrl) {
@@ -14056,7 +14196,7 @@ var Summary = function () {
14056
14196
  }
14057
14197
  return [3 /*break*/, 5];
14058
14198
  case 3:
14059
- _a.sent();
14199
+ _b.sent();
14060
14200
  if (settings.skipRouter) {
14061
14201
  dispatch(setCurrentStep(ERROR_STEP));
14062
14202
  }
@@ -14091,10 +14231,10 @@ var Summary = function () {
14091
14231
  dispatch(setBookingRemarks(text));
14092
14232
  setRemarks(text);
14093
14233
  };
14094
- var handleValidateVoucher = function () { return __awaiter$1(void 0, void 0, void 0, function () {
14234
+ var handleValidateVoucher = function () { return __awaiter(void 0, void 0, void 0, function () {
14095
14235
  var request, tideClientConfig, result;
14096
14236
  var _a;
14097
- return __generator$1(this, function (_b) {
14237
+ return __generator(this, function (_b) {
14098
14238
  switch (_b.label) {
14099
14239
  case 0:
14100
14240
  if (!(voucher === null || voucher === void 0 ? void 0 : voucher.code))
@@ -14110,7 +14250,7 @@ var Summary = function () {
14110
14250
  tideClientConfig = buildTideClientConfig(apiSettings);
14111
14251
  if (!tideClientConfig)
14112
14252
  return [2 /*return*/];
14113
- return [4 /*yield*/, validateVoucher_1(tideClientConfig, request)];
14253
+ return [4 /*yield*/, build.validateVoucher(tideClientConfig, request)];
14114
14254
  case 1:
14115
14255
  result = _b.sent();
14116
14256
  if (result) {
@@ -14189,7 +14329,7 @@ var Summary = function () {
14189
14329
  translations.SUMMARY.MAIN_BOOKER,
14190
14330
  ")"))),
14191
14331
  React__default["default"].createElement("li", { className: "list__item" }, traveler.birthDate.split("-").reverse().join("/")),
14192
- isMainBooker && (React__default["default"].createElement(React__default["default"].Fragment, null,
14332
+ isMainBooker && (travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.street) && (React__default["default"].createElement(React__default["default"].Fragment, null,
14193
14333
  React__default["default"].createElement("li", { className: "list__item" }, "".concat(travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.street, " ").concat(lodash.compact([
14194
14334
  travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.houseNumber,
14195
14335
  travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.box,
@@ -14228,9 +14368,9 @@ var Summary = function () {
14228
14368
  return React__default["default"].createElement(SummaryPerBookingOptionGroup, { key: i, group: x });
14229
14369
  })),
14230
14370
  !lodash.isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits) &&
14231
- (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits.map(function (x) { return (React__default["default"].createElement(SummaryBookingOptionUnit, { unit: x })); })),
14371
+ (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits.map(function (x, i) { return (React__default["default"].createElement(SummaryBookingOptionUnit, { key: i, unit: x })); })),
14232
14372
  !lodash.isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax) &&
14233
- (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax.map(function (x) { return (React__default["default"].createElement(SummaryBookingOptionPax, { pax: x })); })),
14373
+ (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax.map(function (x, i) { return (React__default["default"].createElement(SummaryBookingOptionPax, { key: i, pax: x })); })),
14234
14374
  (packageDetails === null || packageDetails === void 0 ? void 0 : packageDetails.outwardFlights) &&
14235
14375
  packageDetails.outwardFlights
14236
14376
  .filter(function (x) { return x.isSelected; })
@@ -14259,7 +14399,7 @@ var Summary = function () {
14259
14399
  !voucher.isValid && voucher.isValidated && (React__default["default"].createElement("div", { className: "info-message--error" }, translations.SUMMARY.VOUCHER_INVALID)))),
14260
14400
  React__default["default"].createElement("div", { className: "form__row" },
14261
14401
  React__default["default"].createElement("ul", { className: "info-message__voucher" }, !lodash.isEmpty(bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) &&
14262
- ((_b = bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) === null || _b === void 0 ? void 0 : _b.map(function (y) { return (React__default["default"].createElement("li", null,
14402
+ ((_b = bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) === null || _b === void 0 ? void 0 : _b.map(function (y, i) { return (React__default["default"].createElement("li", { key: i },
14263
14403
  React__default["default"].createElement("div", { className: "info-message__voucher__list" },
14264
14404
  y,
14265
14405
  " ",
@@ -14299,9 +14439,15 @@ var Summary = function () {
14299
14439
  React__default["default"].createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
14300
14440
  React__default["default"].createElement("div", { className: "info-message__copy" },
14301
14441
  React__default["default"].createElement("h5", null, translations.SUMMARY.VALIDATE_TITLE),
14302
- React__default["default"].createElement("p", null, settings.isOffer
14303
- ? translations.SUMMARY.VALIDATE_TEXT_OFFER
14304
- : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
14442
+ settings.customValidateText
14443
+ ? (React__default["default"].createElement("div", { dangerouslySetInnerHTML: {
14444
+ __html: settings.customValidateText,
14445
+ } }))
14446
+ : (React__default["default"].createElement(React__default["default"].Fragment, null,
14447
+ React__default["default"].createElement("p", null, settings.isOffer
14448
+ ? translations.SUMMARY.VALIDATE_TEXT_OFFER
14449
+ : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
14450
+ settings.allowOption && (React__default["default"].createElement("p", null, translations.SUMMARY.VALIDATE_TEXT_OPTION)))),
14305
14451
  checkboxes &&
14306
14452
  checkboxes.map(function (checkbox) { return (React__default["default"].createElement("div", { className: "checkbox", key: checkbox.id },
14307
14453
  React__default["default"].createElement("label", { className: "checkbox__label" },
@@ -14313,12 +14459,16 @@ var Summary = function () {
14313
14459
  } })))); }))))))),
14314
14460
  React__default["default"].createElement("div", { className: "booking__navigator" },
14315
14461
  settings.skipRouter ? (React__default["default"].createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) : (React__default["default"].createElement(router.Link, { to: "".concat(settings.basePath).concat(settings.travellers.pathSuffix, "?").concat(bookingQueryString), title: translations.STEPS.PREVIOUS, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)),
14462
+ settings.allowOption && (React__default["default"].createElement("button", { title: translations.STEPS.SUBMIT_OPTION, className: buildClassName([
14463
+ "cta",
14464
+ !userValidated && "cta--disabled",
14465
+ ]), disabled: !userValidated, name: "option" }, translations.STEPS.SUBMIT_OPTION)),
14316
14466
  React__default["default"].createElement("button", { title: settings.isOffer
14317
14467
  ? translations.STEPS.SUBMIT_OFFER
14318
14468
  : translations.STEPS.SUBMIT_BOOKING, className: buildClassName([
14319
14469
  "cta",
14320
14470
  !userValidated && "cta--disabled",
14321
- ]), disabled: !userValidated }, settings.isOffer
14471
+ ]), disabled: !userValidated, name: "default" }, settings.isOffer
14322
14472
  ? translations.STEPS.SUBMIT_OFFER
14323
14473
  : translations.STEPS.SUBMIT_BOOKING))))));
14324
14474
  };
@@ -14530,15 +14680,21 @@ var validateForm = function (values, agentRequired, bookingType, translations) {
14530
14680
  return errors;
14531
14681
  };
14532
14682
 
14533
- function createTraveler(id) {
14534
- return { id: id, firstName: "", lastName: "", birthDate: "", gender: "" };
14683
+ function createTraveler(traveler, followNumber, personTranslation, isCompact) {
14684
+ if (isCompact) {
14685
+ return { id: traveler.id, firstName: personTranslation, lastName: "".concat(followNumber.number++), birthDate: "", gender: "", age: traveler.age || 30 };
14686
+ }
14687
+ else {
14688
+ return { id: traveler.id, firstName: "", lastName: "", birthDate: "", gender: "" };
14689
+ }
14535
14690
  }
14536
- function createInitialValues(formRooms, startDate, agentAdressId) {
14691
+ function createInitialValues(formRooms, startDate, agentAdressId, personTranslation, isCompact) {
14692
+ var followNumber = { number: 1 };
14537
14693
  var initialValues = {
14538
14694
  startDate: startDate,
14539
14695
  rooms: formRooms.map(function (r) { return ({
14540
- adults: r.adults.map(function (id) { return createTraveler(id); }),
14541
- children: r.children.map(function (id) { return createTraveler(id); }),
14696
+ adults: r.adults.map(function (x) { return createTraveler(x, followNumber, personTranslation, isCompact); }),
14697
+ children: r.children.map(function (x) { return createTraveler(x, followNumber, personTranslation, isCompact); }),
14542
14698
  }); }),
14543
14699
  mainBookerId: -1,
14544
14700
  street: "",
@@ -14572,7 +14728,8 @@ var TravelersForm = function () {
14572
14728
  var agents = reactRedux.useSelector(selectAgents);
14573
14729
  var agentAdressId = reactRedux.useSelector(selectAgentAdressId);
14574
14730
  var translations = reactRedux.useSelector(selectTranslations);
14575
- var initialValues = (_a = reactRedux.useSelector(selectTravelersFormValues)) !== null && _a !== void 0 ? _a : createInitialValues(formRooms, startDate, agentAdressId);
14731
+ var useCompactForm = !!settings.travellers.compactForm && !!settings.agentAdressId;
14732
+ var initialValues = (_a = reactRedux.useSelector(selectTravelersFormValues)) !== null && _a !== void 0 ? _a : createInitialValues(formRooms, startDate, agentAdressId, translations.TRAVELERS_FORM.PERSON, useCompactForm);
14576
14733
  var _e = React.useState((_b = settings.agentRequired) !== null && _b !== void 0 ? _b : false), showAgents = _e[0], setShowAgents = _e[1];
14577
14734
  var _f = React.useState(!settings.agentAdressId && !settings.hideAgentSelection), showAgentSelection = _f[0], setShowAgentSelection = _f[1];
14578
14735
  var typeaheadAgents = (_c = lodash.sortBy(agents === null || agents === void 0 ? void 0 : agents.map(function (x) { return ({
@@ -14581,22 +14738,37 @@ var TravelersForm = function () {
14581
14738
  text: "".concat(x.name, " (").concat(x.postalCode, " ").concat(x.location, ")"),
14582
14739
  }); }), "value")) !== null && _c !== void 0 ? _c : [];
14583
14740
  var _g = React.useState(typeaheadAgents), filteredAgents = _g[0], setFilteredAgents = _g[1];
14584
- var formik$1 = formik.useFormik({
14585
- initialValues: initialValues,
14586
- validate: function (values) {
14587
- return validateForm(values, settings.agentRequired, bookingType, translations);
14588
- },
14589
- onSubmit: function (values) {
14590
- dispatch(setFormValues(values));
14591
- dispatch(fetchPriceDetails());
14592
- if (settings.skipRouter) {
14593
- dispatch(setCurrentStep(SUMMARY_STEP));
14594
- }
14595
- else {
14596
- router.navigate("".concat(settings.basePath).concat(settings.summary.pathSuffix, "?").concat(bookingQueryString));
14597
- }
14598
- },
14599
- });
14741
+ var formik$1 = useCompactForm
14742
+ ? formik.useFormik({
14743
+ initialValues: initialValues,
14744
+ validate: function (values) { },
14745
+ onSubmit: function (values) {
14746
+ dispatch(setFormValues(values));
14747
+ dispatch(fetchPriceDetails());
14748
+ if (settings.skipRouter) {
14749
+ dispatch(setCurrentStep(SUMMARY_STEP));
14750
+ }
14751
+ else {
14752
+ router.navigate("".concat(settings.basePath).concat(settings.summary.pathSuffix, "?").concat(bookingQueryString));
14753
+ }
14754
+ },
14755
+ })
14756
+ : formik.useFormik({
14757
+ initialValues: initialValues,
14758
+ validate: function (values) {
14759
+ return validateForm(values, settings.agentRequired, bookingType, translations);
14760
+ },
14761
+ onSubmit: function (values) {
14762
+ dispatch(setFormValues(values));
14763
+ dispatch(fetchPriceDetails());
14764
+ if (settings.skipRouter) {
14765
+ dispatch(setCurrentStep(SUMMARY_STEP));
14766
+ }
14767
+ else {
14768
+ router.navigate("".concat(settings.basePath).concat(settings.summary.pathSuffix, "?").concat(bookingQueryString));
14769
+ }
14770
+ },
14771
+ });
14600
14772
  React.useEffect(function () {
14601
14773
  dispatch(fetchPriceDetails());
14602
14774
  }, []);
@@ -14656,8 +14828,8 @@ var TravelersForm = function () {
14656
14828
  return lodash.get(formik$1.errors, key) && lodash.get(formik$1.touched, key);
14657
14829
  };
14658
14830
  return (React__default["default"].createElement("form", { className: "form form__travelers", name: "booking--travellers", id: "booking--travellers", noValidate: true, onSubmit: formik$1.handleSubmit, onReset: formik$1.handleReset },
14659
- React__default["default"].createElement("div", { className: "form__travelers__wrapper" },
14660
- formik$1.values.rooms.map(function (room, rIndex) { return (React__default["default"].createElement("div", { key: rIndex },
14831
+ useCompactForm
14832
+ ? (React__default["default"].createElement("div", { className: "form__travelers__wrapper" }, formik$1.values.rooms.map(function (room, rIndex) { return (React__default["default"].createElement("div", { key: rIndex },
14661
14833
  React__default["default"].createElement("div", { className: "form__region" },
14662
14834
  React__default["default"].createElement("div", { className: "form__region-header" },
14663
14835
  React__default["default"].createElement("h5", { className: "form__region-heading" },
@@ -14693,30 +14865,7 @@ var TravelersForm = function () {
14693
14865
  React__default["default"].createElement("input", { type: "radio", name: "mainBookerId", onChange: handleMainBookerChange, onBlur: formik$1.handleBlur, value: travelerValues.id, checked: formik$1.values.mainBookerId === travelerValues.id, className: "radiobutton__input" }),
14694
14866
  translations.TRAVELERS_FORM.MAIN_BOOKER))),
14695
14867
  React__default["default"].createElement("div", { className: "form__row" },
14696
- React__default["default"].createElement("div", { className: buildClassName([
14697
- "form__group",
14698
- hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].gender")) && "form__group--error",
14699
- ]) },
14700
- React__default["default"].createElement("label", { className: "form__label" },
14701
- translations.TRAVELERS_FORM.GENDER,
14702
- " *"),
14703
- React__default["default"].createElement("div", { className: "radiobutton-group" },
14704
- React__default["default"].createElement("div", { className: "radiobutton" },
14705
- React__default["default"].createElement("label", { className: "radiobutton__label" },
14706
- 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" }),
14707
- translations.TRAVELERS_FORM.MALE)),
14708
- React__default["default"].createElement("div", { className: "radiobutton" },
14709
- React__default["default"].createElement("label", { className: "radiobutton__label" },
14710
- 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" }),
14711
- translations.TRAVELERS_FORM.FEMALE)),
14712
- React__default["default"].createElement("div", { className: "radiobutton" },
14713
- React__default["default"].createElement("label", { className: "radiobutton__label" },
14714
- 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" }),
14715
- translations.TRAVELERS_FORM.OTHER))))),
14716
- React__default["default"].createElement("div", { className: "form__row" },
14717
- 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 }),
14718
- 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 }),
14719
- React__default["default"].createElement(LabeledInput, { type: "date", hasError: hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].birthDate")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.BIRTHDATE, required: true, name: "rooms[".concat(rIndex, "].adults[").concat(index, "].birthDate"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.birthDate })))); }),
14868
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].age")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.AGE, required: true, name: "rooms[".concat(rIndex, "].adults[").concat(index, "].age"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.age })))); }),
14720
14869
  room.children.map(function (travelerValues, index) { return (React__default["default"].createElement("div", { className: "form__region", key: travelerValues.id },
14721
14870
  React__default["default"].createElement("div", { className: "form__region-header" },
14722
14871
  React__default["default"].createElement("h5", { className: "form__region-heading" },
@@ -14725,98 +14874,169 @@ var TravelersForm = function () {
14725
14874
  room.adults.length + index + 1),
14726
14875
  React__default["default"].createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.CHILD)),
14727
14876
  React__default["default"].createElement("div", { className: "form__row" },
14728
- React__default["default"].createElement("div", { className: buildClassName([
14729
- "form__group",
14730
- hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].gender")) && "form__group--error",
14731
- ]) },
14732
- React__default["default"].createElement("label", { className: "form__label" },
14733
- translations.TRAVELERS_FORM.GENDER,
14734
- " *"),
14735
- React__default["default"].createElement("div", { className: "radiobutton-group" },
14736
- React__default["default"].createElement("div", { className: "radiobutton" },
14737
- React__default["default"].createElement("label", { className: "radiobutton__label" },
14738
- 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" }),
14739
- translations.TRAVELERS_FORM.MALE)),
14740
- React__default["default"].createElement("div", { className: "radiobutton" },
14741
- React__default["default"].createElement("label", { className: "radiobutton__label" },
14742
- 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" }),
14743
- translations.TRAVELERS_FORM.FEMALE)),
14877
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].age")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.AGE, required: true, name: "rooms[".concat(rIndex, "].children[").concat(index, "].age"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.age })))); }))); })))
14878
+ : (React__default["default"].createElement(React__default["default"].Fragment, null,
14879
+ React__default["default"].createElement("div", { className: "form__travelers__wrapper" },
14880
+ formik$1.values.rooms.map(function (room, rIndex) { return (React__default["default"].createElement("div", { key: rIndex },
14881
+ React__default["default"].createElement("div", { className: "form__region" },
14882
+ React__default["default"].createElement("div", { className: "form__region-header" },
14883
+ React__default["default"].createElement("h5", { className: "form__region-heading" },
14884
+ translations.SHARED.ROOM,
14885
+ " ",
14886
+ rIndex + 1),
14887
+ React__default["default"].createElement("p", { className: "form__region-label" }, lodash.compact([
14888
+ room.adults.length,
14889
+ room.adults.length === 1 &&
14890
+ " ".concat(translations.TRAVELERS_FORM.ADULT),
14891
+ room.adults.length > 1 &&
14892
+ " ".concat(translations.TRAVELERS_FORM.ADULTS),
14893
+ room.adults &&
14894
+ room.adults.length &&
14895
+ room.children &&
14896
+ room.children.length &&
14897
+ ", ",
14898
+ room.children.length,
14899
+ room.children.length === 1 &&
14900
+ " ".concat(translations.TRAVELERS_FORM.CHILD),
14901
+ room.children.length > 1 &&
14902
+ " ".concat(translations.TRAVELERS_FORM.CHILDREN),
14903
+ ]).join("")))),
14904
+ room.adults.map(function (travelerValues, index) { return (React__default["default"].createElement("div", { className: "form__region", key: travelerValues.id },
14905
+ React__default["default"].createElement("div", { className: "form__region-header" },
14906
+ React__default["default"].createElement("h5", { className: "form__region-heading" },
14907
+ translations.TRAVELERS_FORM.TRAVELER,
14908
+ " ",
14909
+ index + 1),
14910
+ React__default["default"].createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.ADULT),
14744
14911
  React__default["default"].createElement("div", { className: "radiobutton" },
14745
14912
  React__default["default"].createElement("label", { className: "radiobutton__label" },
14746
- 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" }),
14747
- translations.TRAVELERS_FORM.OTHER))))),
14748
- React__default["default"].createElement("div", { className: "form__row" },
14749
- 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 }),
14750
- 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 }),
14751
- React__default["default"].createElement(LabeledInput, { type: "date", hasError: hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].birthDate")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.BIRTHDATE, required: true, name: "rooms[".concat(rIndex, "].children[").concat(index, "].birthDate"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.birthDate })))); }))); }),
14752
- bookingType != "b2b" ? (React__default["default"].createElement("div", { className: "form__region" },
14753
- React__default["default"].createElement("div", { className: "form__region-header" },
14754
- React__default["default"].createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.MAIN_BOOKER),
14755
- React__default["default"].createElement("p", { className: "form__region-label" }, lodash.compact([
14756
- lodash.compact([mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName, mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName]).join(" "),
14757
- (mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
14758
- dateFns.format(dateFns.parse(mainBooker.birthDate, "yyyy-MM-dd", new Date()), "dd-MM-yyyy"),
14759
- ]).join(", "))),
14760
- React__default["default"].createElement(React__default["default"].Fragment, null,
14761
- React__default["default"].createElement("div", { className: "form__twocolumn" },
14762
- React__default["default"].createElement("div", { className: "form__twocolumn-column" },
14913
+ React__default["default"].createElement("input", { type: "radio", name: "mainBookerId", onChange: handleMainBookerChange, onBlur: formik$1.handleBlur, value: travelerValues.id, checked: formik$1.values.mainBookerId === travelerValues.id, className: "radiobutton__input" }),
14914
+ translations.TRAVELERS_FORM.MAIN_BOOKER))),
14763
14915
  React__default["default"].createElement("div", { className: "form__row" },
14764
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.street }),
14765
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("houseNumber"), extraClassName: "form__group--30 form__group--sm-20", label: translations.TRAVELERS_FORM.HOUSE_NUMBER, required: true, name: "houseNumber", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.houseNumber }),
14766
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("box"), extraClassName: "form__group--20", label: translations.TRAVELERS_FORM.POST_BOX, name: "box", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.box }))),
14767
- React__default["default"].createElement("div", { className: "form__twocolumn-column" },
14916
+ React__default["default"].createElement("div", { className: buildClassName([
14917
+ "form__group",
14918
+ hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].gender")) && "form__group--error",
14919
+ ]) },
14920
+ React__default["default"].createElement("label", { className: "form__label" },
14921
+ translations.TRAVELERS_FORM.GENDER,
14922
+ " *"),
14923
+ React__default["default"].createElement("div", { className: "radiobutton-group" },
14924
+ React__default["default"].createElement("div", { className: "radiobutton" },
14925
+ React__default["default"].createElement("label", { className: "radiobutton__label" },
14926
+ 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" }),
14927
+ translations.TRAVELERS_FORM.MALE)),
14928
+ React__default["default"].createElement("div", { className: "radiobutton" },
14929
+ React__default["default"].createElement("label", { className: "radiobutton__label" },
14930
+ 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" }),
14931
+ translations.TRAVELERS_FORM.FEMALE)),
14932
+ React__default["default"].createElement("div", { className: "radiobutton" },
14933
+ React__default["default"].createElement("label", { className: "radiobutton__label" },
14934
+ 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" }),
14935
+ translations.TRAVELERS_FORM.OTHER))))),
14768
14936
  React__default["default"].createElement("div", { className: "form__row" },
14769
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("zipCode"), extraClassName: "form__group--40 form__group--sm-20", label: translations.TRAVELERS_FORM.ZIPCODE, required: true, name: "zipCode", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.zipCode }),
14770
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.place }),
14771
- React__default["default"].createElement(LabeledSelect, { hasError: hasVisibleError("country"), extraClassName: "form__group--sm-40", label: translations.TRAVELERS_FORM.COUNTRY, required: true, name: "country", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.country, options: [
14772
- {
14773
- key: "empty",
14774
- label: translations.TRAVELERS_FORM.SELECT_COUNTRY,
14775
- value: undefined,
14776
- },
14777
- {
14778
- key: "be",
14779
- value: "be",
14780
- label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM,
14781
- },
14782
- {
14783
- key: "nl",
14784
- value: "nl",
14785
- label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS,
14786
- },
14787
- {
14788
- key: "fr",
14789
- value: "fr",
14790
- label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE,
14791
- },
14792
- ] })))),
14937
+ 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 }),
14938
+ 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 }),
14939
+ React__default["default"].createElement(LabeledInput, { type: "date", hasError: hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].birthDate")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.BIRTHDATE, required: true, name: "rooms[".concat(rIndex, "].adults[").concat(index, "].birthDate"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.birthDate })))); }),
14940
+ room.children.map(function (travelerValues, index) { return (React__default["default"].createElement("div", { className: "form__region", key: travelerValues.id },
14941
+ React__default["default"].createElement("div", { className: "form__region-header" },
14942
+ React__default["default"].createElement("h5", { className: "form__region-heading" },
14943
+ translations.TRAVELERS_FORM.TRAVELER,
14944
+ " ",
14945
+ room.adults.length + index + 1),
14946
+ React__default["default"].createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.CHILD)),
14947
+ React__default["default"].createElement("div", { className: "form__row" },
14948
+ React__default["default"].createElement("div", { className: buildClassName([
14949
+ "form__group",
14950
+ hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].gender")) && "form__group--error",
14951
+ ]) },
14952
+ React__default["default"].createElement("label", { className: "form__label" },
14953
+ translations.TRAVELERS_FORM.GENDER,
14954
+ " *"),
14955
+ React__default["default"].createElement("div", { className: "radiobutton-group" },
14956
+ React__default["default"].createElement("div", { className: "radiobutton" },
14957
+ React__default["default"].createElement("label", { className: "radiobutton__label" },
14958
+ 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" }),
14959
+ translations.TRAVELERS_FORM.MALE)),
14960
+ React__default["default"].createElement("div", { className: "radiobutton" },
14961
+ React__default["default"].createElement("label", { className: "radiobutton__label" },
14962
+ 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" }),
14963
+ translations.TRAVELERS_FORM.FEMALE)),
14964
+ React__default["default"].createElement("div", { className: "radiobutton" },
14965
+ React__default["default"].createElement("label", { className: "radiobutton__label" },
14966
+ 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" }),
14967
+ translations.TRAVELERS_FORM.OTHER))))),
14968
+ React__default["default"].createElement("div", { className: "form__row" },
14969
+ 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 }),
14970
+ 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 }),
14971
+ React__default["default"].createElement(LabeledInput, { type: "date", hasError: hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].birthDate")), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.BIRTHDATE, required: true, name: "rooms[".concat(rIndex, "].children[").concat(index, "].birthDate"), onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: travelerValues.birthDate })))); }))); }),
14972
+ bookingType != "b2b" ? (React__default["default"].createElement("div", { className: "form__region" },
14973
+ React__default["default"].createElement("div", { className: "form__region-header" },
14974
+ React__default["default"].createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.MAIN_BOOKER),
14975
+ React__default["default"].createElement("p", { className: "form__region-label" }, lodash.compact([
14976
+ lodash.compact([mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName, mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName]).join(" "),
14977
+ (mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
14978
+ dateFns.format(dateFns.parse(mainBooker.birthDate, "yyyy-MM-dd", new Date()), "dd-MM-yyyy"),
14979
+ ]).join(", "))),
14980
+ React__default["default"].createElement(React__default["default"].Fragment, null,
14981
+ React__default["default"].createElement("div", { className: "form__twocolumn" },
14982
+ React__default["default"].createElement("div", { className: "form__twocolumn-column" },
14983
+ React__default["default"].createElement("div", { className: "form__row" },
14984
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.street }),
14985
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("houseNumber"), extraClassName: "form__group--30 form__group--sm-20", label: translations.TRAVELERS_FORM.HOUSE_NUMBER, required: true, name: "houseNumber", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.houseNumber }),
14986
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("box"), extraClassName: "form__group--20", label: translations.TRAVELERS_FORM.POST_BOX, name: "box", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.box }))),
14987
+ React__default["default"].createElement("div", { className: "form__twocolumn-column" },
14988
+ React__default["default"].createElement("div", { className: "form__row" },
14989
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("zipCode"), extraClassName: "form__group--40 form__group--sm-20", label: translations.TRAVELERS_FORM.ZIPCODE, required: true, name: "zipCode", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.zipCode }),
14990
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.place }),
14991
+ React__default["default"].createElement(LabeledSelect, { hasError: hasVisibleError("country"), extraClassName: "form__group--sm-40", label: translations.TRAVELERS_FORM.COUNTRY, required: true, name: "country", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.country, options: [
14992
+ {
14993
+ key: "empty",
14994
+ label: translations.TRAVELERS_FORM.SELECT_COUNTRY,
14995
+ value: undefined,
14996
+ },
14997
+ {
14998
+ key: "be",
14999
+ value: "be",
15000
+ label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM,
15001
+ },
15002
+ {
15003
+ key: "nl",
15004
+ value: "nl",
15005
+ label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS,
15006
+ },
15007
+ {
15008
+ key: "fr",
15009
+ value: "fr",
15010
+ label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE,
15011
+ },
15012
+ ] })))),
15013
+ React__default["default"].createElement("div", { className: "form__row" },
15014
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.phone }),
15015
+ React__default["default"].createElement(LabeledInput, { type: "email", hasError: hasVisibleError("email"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.EMAIL, required: true, name: "email", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.email }),
15016
+ React__default["default"].createElement(LabeledInput, { type: "email", hasError: hasVisibleError("emailConfirmation"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.REPEAT_EMAIL, required: true, name: "emailConfirmation", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.emailConfirmation }))))) : (React__default["default"].createElement("div", { className: "form__region" },
15017
+ React__default["default"].createElement("div", { className: "form__row" },
15018
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.phone })))),
15019
+ showAgentSelection && (React__default["default"].createElement("div", { className: "form__region" },
15020
+ React__default["default"].createElement("div", { className: "form__region-header" },
15021
+ React__default["default"].createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
15022
+ React__default["default"].createElement("div", { className: "checkbox", id: "cbxChooseOffice" },
15023
+ React__default["default"].createElement("label", { className: "checkbox__label" },
15024
+ React__default["default"].createElement("input", { type: "checkbox", name: "booking--mainbooker", defaultChecked: showAgents, onClick: function () { return toggleAgent(!showAgents); }, className: "checkbox__input" }),
15025
+ translations.TRAVELERS_FORM.CHOOSE_OFFICE))),
15026
+ showAgents && (React__default["default"].createElement("div", { className: "form__row form__row--choose-office" },
15027
+ React__default["default"].createElement("div", { className: buildClassName([
15028
+ "form__group",
15029
+ "form__group--icon",
15030
+ hasVisibleError("travelAgentId") && "form__group--error",
15031
+ ]) },
15032
+ React__default["default"].createElement(TypeAheadInput, { value: formik$1.values.travelAgentName, options: filteredAgents, onChange: handleAgentChange, onSelect: handleAgentSelect, onClear: handleAgentClear, name: "travelAgentName", placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER }))))))),
15033
+ Object.keys(flatErrors).length > 0 && (React__default["default"].createElement("div", { className: "form__region form__region--errors" },
14793
15034
  React__default["default"].createElement("div", { className: "form__row" },
14794
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.phone }),
14795
- React__default["default"].createElement(LabeledInput, { type: "email", hasError: hasVisibleError("email"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.EMAIL, required: true, name: "email", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.email }),
14796
- React__default["default"].createElement(LabeledInput, { type: "email", hasError: hasVisibleError("emailConfirmation"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.REPEAT_EMAIL, required: true, name: "emailConfirmation", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.emailConfirmation }))))) : (React__default["default"].createElement("div", { className: "form__region" },
14797
- React__default["default"].createElement("div", { className: "form__row" },
14798
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.phone })))),
14799
- showAgentSelection && (React__default["default"].createElement("div", { className: "form__region" },
14800
- React__default["default"].createElement("div", { className: "form__region-header" },
14801
- React__default["default"].createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
14802
- React__default["default"].createElement("div", { className: "checkbox", id: "cbxChooseOffice" },
14803
- React__default["default"].createElement("label", { className: "checkbox__label" },
14804
- React__default["default"].createElement("input", { type: "checkbox", name: "booking--mainbooker", defaultChecked: showAgents, onClick: function () { return toggleAgent(!showAgents); }, className: "checkbox__input" }),
14805
- translations.TRAVELERS_FORM.CHOOSE_OFFICE))),
14806
- showAgents && (React__default["default"].createElement("div", { className: "form__row form__row--choose-office" },
14807
- React__default["default"].createElement("div", { className: buildClassName([
14808
- "form__group",
14809
- "form__group--icon",
14810
- hasVisibleError("travelAgentId") && "form__group--error",
14811
- ]) },
14812
- React__default["default"].createElement(TypeAheadInput, { value: formik$1.values.travelAgentName, options: filteredAgents, onChange: handleAgentChange, onSelect: handleAgentSelect, onClear: handleAgentClear, name: "travelAgentName", placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER }))))))),
14813
- Object.keys(flatErrors).length > 0 && (React__default["default"].createElement("div", { className: "form__region form__region--errors" },
14814
- React__default["default"].createElement("div", { className: "form__row" },
14815
- React__default["default"].createElement("div", { className: "form__group" },
14816
- React__default["default"].createElement("p", { className: "form__error-heading" },
14817
- translations.TRAVELERS_FORM.VALIDATION_MESSAGE,
14818
- ":"),
14819
- React__default["default"].createElement("ul", { className: "list" }, Object.keys(flatErrors).map(function (key) { return (React__default["default"].createElement("li", { key: key }, lodash.get(flatErrors, key))); })))))),
15035
+ React__default["default"].createElement("div", { className: "form__group" },
15036
+ React__default["default"].createElement("p", { className: "form__error-heading" },
15037
+ translations.TRAVELERS_FORM.VALIDATION_MESSAGE,
15038
+ ":"),
15039
+ React__default["default"].createElement("ul", { className: "list" }, Object.keys(flatErrors).map(function (key) { return (React__default["default"].createElement("li", { key: key }, lodash.get(flatErrors, key))); })))))))),
14820
15040
  React__default["default"].createElement("div", { className: "booking__navigator" },
14821
15041
  settings.skipRouter ? (React__default["default"].createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) : (React__default["default"].createElement(router.Link, { to: "".concat(settings.basePath).concat(settings.options.pathSuffix, "?").concat(bookingQueryString), title: translations.STEPS.PREVIOUS, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)),
14822
15042
  React__default["default"].createElement("button", { type: "submit", title: translations.STEPS.NEXT, className: "cta" }, translations.STEPS.NEXT))));
@@ -14824,7 +15044,7 @@ var TravelersForm = function () {
14824
15044
 
14825
15045
  var Booking = function (_a) {
14826
15046
  var productCode = _a.productCode, productName = _a.productName, thumbnailUrl = _a.thumbnailUrl;
14827
- var _b = React.useContext(SettingsContext), officeId = _b.officeId, bookingOptions = _b.bookingOptions, basePath = _b.basePath, roomOptions = _b.roomOptions, flightOptions = _b.flightOptions, options = _b.options, travellers = _b.travellers, summary = _b.summary, confirmation = _b.confirmation, error = _b.error, showSidebarDeposit = _b.showSidebarDeposit, includeFlights = _b.includeFlights, loaderComponent = _b.loaderComponent, skipPaymentWithAgent = _b.skipPaymentWithAgent, generatePaymentUrl = _b.generatePaymentUrl, tagIds = _b.tagIds, agentAdressId = _b.agentAdressId, language = _b.language, translationFiles = _b.translationFiles, accommodationViewId = _b.accommodationViewId, isOffer = _b.isOffer;
15047
+ var _b = React.useContext(SettingsContext), officeId = _b.officeId, bookingOptions = _b.bookingOptions, basePath = _b.basePath, roomOptions = _b.roomOptions, flightOptions = _b.flightOptions, options = _b.options, travellers = _b.travellers, summary = _b.summary, confirmation = _b.confirmation, error = _b.error, showSidebarDeposit = _b.showSidebarDeposit, includeFlights = _b.includeFlights, loaderComponent = _b.loaderComponent, skipPaymentWithAgent = _b.skipPaymentWithAgent, generatePaymentUrl = _b.generatePaymentUrl, tagIds = _b.tagIds, agentAdressId = _b.agentAdressId, language = _b.language, translationFiles = _b.translationFiles, accommodationViewId = _b.accommodationViewId, isOffer = _b.isOffer, allowOption = _b.allowOption;
14828
15048
  var dispatch = useAppDispatch();
14829
15049
  var location = router.useLocation();
14830
15050
  var productAttributes = reactRedux.useSelector(selectProductAttributes);
@@ -14840,11 +15060,11 @@ var Booking = function (_a) {
14840
15060
  dispatch(setGeneratePaymentUrl(generatePaymentUrl !== null && generatePaymentUrl !== void 0 ? generatePaymentUrl : false));
14841
15061
  }, [skipPaymentWithAgent, generatePaymentUrl]);
14842
15062
  React.useEffect(function () {
14843
- var _a;
15063
+ var _a, _b;
14844
15064
  var params = new URLSearchParams(location.search);
14845
15065
  var startDate = getDateFromParams(params, "startDate");
14846
15066
  var endDate = getDateFromParams(params, "endDate");
14847
- var catalog = getNumberFromParams(params, "catalog");
15067
+ var catalogueId = (_a = getNumberFromParams(params, "catalogueId")) !== null && _a !== void 0 ? _a : getNumberFromParams(params, "catalog");
14848
15068
  var rooms = getRoomsFromParams(params, "rooms");
14849
15069
  var flight = getFlightsFromParams(params, "flight");
14850
15070
  var flightRouteId = getStringFromParams(params, "flightRouteId");
@@ -14852,7 +15072,7 @@ var Booking = function (_a) {
14852
15072
  var allotmentName = getStringFromParams(params, "allotmentName");
14853
15073
  var allotmentIds = getNumbersFromParams(params, "allotmentId");
14854
15074
  var tourCode = getStringFromParams(params, "tourCode");
14855
- var bookingNumber = (_a = params.get("bookingNr")) !== null && _a !== void 0 ? _a : undefined;
15075
+ var bookingNumber = (_b = params.get("bookingNr")) !== null && _b !== void 0 ? _b : undefined;
14856
15076
  if (typeof window !== "undefined") {
14857
15077
  window.scrollTo(0, 0);
14858
15078
  }
@@ -14862,12 +15082,12 @@ var Booking = function (_a) {
14862
15082
  }
14863
15083
  if (!lodash.isNil(startDate) &&
14864
15084
  !lodash.isNil(endDate) &&
14865
- !lodash.isNil(catalog) &&
15085
+ !lodash.isNil(catalogueId) &&
14866
15086
  !lodash.isNil(rooms)) {
14867
15087
  dispatch(setBookingAttributes({
14868
15088
  startDate: startDate,
14869
15089
  endDate: endDate,
14870
- catalog: catalog,
15090
+ catalogueId: catalogueId,
14871
15091
  rooms: rooms,
14872
15092
  flight: flight,
14873
15093
  includeFlights: includeFlights,
@@ -14879,7 +15099,7 @@ var Booking = function (_a) {
14879
15099
  }));
14880
15100
  }
14881
15101
  else {
14882
- console.error("Failure when setting booking attributes", startDate, endDate, catalog, rooms);
15102
+ console.error("Failure when setting booking attributes", startDate, endDate, catalogueId, rooms);
14883
15103
  }
14884
15104
  }, [location.search, setBookingAttributes, setBookingNumber, includeFlights]);
14885
15105
  React.useEffect(function () {
@@ -14908,9 +15128,9 @@ var Booking = function (_a) {
14908
15128
  console.error("Failure when setting product attributes", productCode, productName);
14909
15129
  }
14910
15130
  }, [productCode, productName, setProductAttributes]);
14911
- var getTranslations = function () { return __awaiter$1(void 0, void 0, void 0, function () {
15131
+ var getTranslations = function () { return __awaiter(void 0, void 0, void 0, function () {
14912
15132
  var translations, _a;
14913
- return __generator$1(this, function (_b) {
15133
+ return __generator(this, function (_b) {
14914
15134
  switch (_b.label) {
14915
15135
  case 0:
14916
15136
  translations = translationFiles === null || translationFiles === void 0 ? void 0 : translationFiles.map(function (x) {
@@ -14929,9 +15149,9 @@ var Booking = function (_a) {
14929
15149
  });
14930
15150
  }); };
14931
15151
  React.useEffect(function () {
14932
- var loadTranslations = function () { return __awaiter$1(void 0, void 0, void 0, function () {
15152
+ var loadTranslations = function () { return __awaiter(void 0, void 0, void 0, function () {
14933
15153
  var translations;
14934
- return __generator$1(this, function (_a) {
15154
+ return __generator(this, function (_a) {
14935
15155
  switch (_a.label) {
14936
15156
  case 0: return [4 /*yield*/, getTranslations()];
14937
15157
  case 1:
@@ -15007,9 +15227,11 @@ var Booking = function (_a) {
15007
15227
  !packageDetails && !bookingNumber && !isUnvailable && (React__default["default"].createElement("div", { className: "booking" },
15008
15228
  React__default["default"].createElement("div", { className: "booking__loader" },
15009
15229
  loaderComponent,
15010
- React__default["default"].createElement("p", { className: "booking__loader-text" }, isOffer
15011
- ? translations.MAIN.PREPARING_OFFER
15012
- : translations.MAIN.PREPARING_BOOKING)))),
15230
+ React__default["default"].createElement("p", { className: "booking__loader-text" }, allowOption
15231
+ ? translations.MAIN.PREPARING_DOSSIER
15232
+ : isOffer
15233
+ ? translations.MAIN.PREPARING_OFFER
15234
+ : translations.MAIN.PREPARING_BOOKING)))),
15013
15235
  isUnvailable && (React__default["default"].createElement("div", { className: "booking" },
15014
15236
  React__default["default"].createElement("div", { className: "booking__loader" },
15015
15237
  React__default["default"].createElement("p", { className: "booking__loader-text" }, translations.MAIN.PRODUCT_UNAVAILABLE))))));