@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
@@ -2,7 +2,7 @@
2
2
  import React, { useLayoutEffect as useLayoutEffect$1, useEffect, useContext, useState, useRef, useCallback } from 'react';
3
3
  import JsonURL from '@jsonurl/jsonurl';
4
4
  import { isToday, getDate, getYear, getMonth, startOfWeek, startOfMonth, endOfWeek, addWeeks, endOfMonth, eachDayOfInterval, format as format$1, getISOWeek, getISODay, isSameMonth, startOfDay, isAfter, isEqual, isWithinInterval, endOfDay, isBefore, addMonths, addDays, formatISO, differenceInYears, parseISO, differenceInMinutes, differenceInCalendarDays, parse } from 'date-fns';
5
- import { isNil, isArray, compact, isEmpty, range, chunk, isFunction, clamp, omit, sum, first, orderBy, uniq, uniqBy, sortBy, last, findIndex, set, get as get$2 } from 'lodash';
5
+ import { isNil, isArray, compact, isEmpty, range, chunk, isFunction, clamp, omit, sum, first, orderBy, uniq, uniqBy, sortBy, last, findIndex, set, get } from 'lodash';
6
6
  import { nlBE, fr, enGB } from 'date-fns/locale';
7
7
  import { usePopper } from 'react-popper';
8
8
  import { useSelector, useDispatch, Provider } from 'react-redux';
@@ -38,7 +38,7 @@ var __assign = function() {
38
38
  return __assign.apply(this, arguments);
39
39
  };
40
40
 
41
- function __awaiter$1(thisArg, _arguments, P, generator) {
41
+ function __awaiter(thisArg, _arguments, P, generator) {
42
42
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
43
43
  return new (P || (P = Promise))(function (resolve, reject) {
44
44
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -48,7 +48,7 @@ function __awaiter$1(thisArg, _arguments, P, generator) {
48
48
  });
49
49
  }
50
50
 
51
- function __generator$1(thisArg, body) {
51
+ function __generator(thisArg, body) {
52
52
  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);
53
53
  return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
54
54
  function verb(n) { return function (v) { return step([n, v]); }; }
@@ -101,6 +101,7 @@ var STEPS$2 = {
101
101
  NEXT: "Étape suivante",
102
102
  SUBMIT_BOOKING: "Confirmer la réservation",
103
103
  SUBMIT_OFFER: "Demander un devis",
104
+ SUBMIT_OPTION: "Réserver une option",
104
105
  COMPOSE: "Composer",
105
106
  ROOM_OPTIONS: "Options de chambre",
106
107
  FLIGHT_OPTIONS: "Options de vol"
@@ -169,6 +170,7 @@ var PRODUCT$2 = {
169
170
  var MAIN$2 = {
170
171
  PREPARING_BOOKING: "Veuillez patienter, nous préparons votre réservation",
171
172
  PREPARING_OFFER: "Veuillez patienter, nous préparons votre devis",
173
+ PREPARING_DOSSIER: "Veuillez patienter, nous préparons votre dossier",
172
174
  PRODUCT_UNAVAILABLE: "Produit non disponible"
173
175
  };
174
176
  var SHARED$2 = {
@@ -204,7 +206,7 @@ var SIDEBAR$2 = {
204
206
  DEPOSIT_TEXT2: "solde restant",
205
207
  DEPOSIT_TEXT3: " de ",
206
208
  DEPOSIT_TEXT4: " sont détaillées à l'étape ",
207
- DEPOSIT_TEXT5: "3 (\"récapitulatif\")",
209
+ DEPOSIT_TEXT5: "\"Récapitulatif\"",
208
210
  DEPOSIT_TEXT6: " du processus de réservation.",
209
211
  LUGGAGE_INCLUDED: "Bagages inclus",
210
212
  DEPARTURE_FLIGHT: "Vol aller",
@@ -215,6 +217,7 @@ var SIDEBAR$2 = {
215
217
  CHANGES: "correspondances"
216
218
  };
217
219
  var TRAVELERS_FORM$2 = {
220
+ AGE: "Age",
218
221
  TRAVELER: "Voyageur",
219
222
  ADULT: "adulte",
220
223
  ADULTS: "adultes",
@@ -243,6 +246,7 @@ var TRAVELERS_FORM$2 = {
243
246
  VALIDATION_MESSAGE: "Veuillez vérifier les champs du formulaire ci-dessous et remplissez-les correctement.",
244
247
  BOOK_WITH_AGENT: "Je souhaite réserver auprès de mon agent de voyage local",
245
248
  CHOOSE_OFFICE: "Je choisis une agence",
249
+ PERSON: "Personne",
246
250
  COUNTRIES: {
247
251
  BELGIUM: "Belgique",
248
252
  NETHERLANDS: "Pays-Bas",
@@ -292,6 +296,7 @@ var SUMMARY$2 = {
292
296
  VALIDATE_TITLE: "Vérifiez vos données",
293
297
  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.",
294
298
  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.",
299
+ 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.",
295
300
  OPTIONS: "Options",
296
301
  REMARKS: "Remarques",
297
302
  VOUCHERS: "Bons",
@@ -303,9 +308,11 @@ var SUMMARY$2 = {
303
308
  var CONFIRMATION$2 = {
304
309
  TITLE_TEXT_OFFER: "Votre devis numéro {0} a été demandé",
305
310
  TITLE_TEXT_BOOKING: "Votre réservation avec le numéro {0} est confirmée",
311
+ TITLE_TEXT_OPTION: "Vous avez pris une option pour numéro {0}.",
306
312
  MESSAGE_TEXT1: "Votre voyage de rêve est maintenant très proche.",
307
313
  MESSAGE_TEXT2_OFFER: "Nos spécialistes voyages traitent votre demande et vous contacteront dans les 48 heures.",
308
314
  MESSAGE_TEXT2_BOOKING: "Nos spécialistes voyages traitent votre réservation et vous contacteront dans les 48 heures.",
315
+ 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.",
309
316
  QUESTIONS_TEXT1: "Avez-vous d'autres questions? ",
310
317
  QUESTIONS_TEXT2: "Faites-le nous savoir",
311
318
  QUESTIONS_TEXT3: ".",
@@ -353,6 +360,7 @@ var STEPS$1 = {
353
360
  NEXT: "Volgende stap",
354
361
  SUBMIT_BOOKING: "Bevestig boeking",
355
362
  SUBMIT_OFFER: "Vraag offerte aan",
363
+ SUBMIT_OPTION: "Neem een optie",
356
364
  COMPOSE: "Samenstellen",
357
365
  ROOM_OPTIONS: "Kamer opties",
358
366
  FLIGHT_OPTIONS: "Vlucht opties"
@@ -421,6 +429,7 @@ var PRODUCT$1 = {
421
429
  var MAIN$1 = {
422
430
  PREPARING_BOOKING: "Even geduld, we bereiden uw boeking voor",
423
431
  PREPARING_OFFER: "Even geduld, we bereiden uw offerte voor",
432
+ PREPARING_DOSSIER: "Even geduld, we bereiden uw dossier voor",
424
433
  PRODUCT_UNAVAILABLE: "Product niet beschikbaar"
425
434
  };
426
435
  var SHARED$1 = {
@@ -456,7 +465,7 @@ var SIDEBAR$1 = {
456
465
  DEPOSIT_TEXT2: "restbedrag",
457
466
  DEPOSIT_TEXT3: " van ",
458
467
  DEPOSIT_TEXT4: " wordt op ",
459
- DEPOSIT_TEXT5: "stap 3 (\"overzicht\")",
468
+ DEPOSIT_TEXT5: "stap \"Overzicht\"",
460
469
  DEPOSIT_TEXT6: " in het boekingsproces beschreven.",
461
470
  LUGGAGE_INCLUDED: "Inclusief bagage",
462
471
  DEPARTURE_FLIGHT: "Vlucht heenreis",
@@ -467,6 +476,7 @@ var SIDEBAR$1 = {
467
476
  CHANGES: "overstappen"
468
477
  };
469
478
  var TRAVELERS_FORM$1 = {
479
+ AGE: "Leeftijd",
470
480
  TRAVELER: "Reiziger",
471
481
  ADULT: "volwassene",
472
482
  ADULTS: "volwassenen",
@@ -495,6 +505,7 @@ var TRAVELERS_FORM$1 = {
495
505
  VALIDATION_MESSAGE: "Controleer onderstaande velden in het formulier en vul deze correct in.",
496
506
  BOOK_WITH_AGENT: "Ik wens te boeken bij mijn lokale reisagent",
497
507
  CHOOSE_OFFICE: "Ik kies een kantoor",
508
+ PERSON: "Persoon",
498
509
  COUNTRIES: {
499
510
  BELGIUM: "België",
500
511
  NETHERLANDS: "Nederland",
@@ -544,6 +555,7 @@ var SUMMARY$1 = {
544
555
  VALIDATE_TITLE: "Controleer je gegevens",
545
556
  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.",
546
557
  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.",
558
+ 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.",
547
559
  OPTIONS: "Opties",
548
560
  REMARKS: "Opmerkingen",
549
561
  VOUCHERS: "Vouchers",
@@ -555,9 +567,11 @@ var SUMMARY$1 = {
555
567
  var CONFIRMATION$1 = {
556
568
  TITLE_TEXT_OFFER: "Je offerte met nummer {0} is aangevraagd",
557
569
  TITLE_TEXT_BOOKING: "Je boeking met nummer {0} is bevestigd",
570
+ TITLE_TEXT_OPTION: "Je optie met nummer {0} is aangevraagd",
558
571
  MESSAGE_TEXT1: "Jouw droomreis komt nu heel dichtbij.",
559
572
  MESSAGE_TEXT2_OFFER: "Onze reisspecialisten verwerken je aanvraag en nemen binnen de 48u contact met je op.",
560
573
  MESSAGE_TEXT2_BOOKING: "Onze reisspecialisten verwerken je reservatie en nemen binnen de 48u contact met je op.",
574
+ 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.",
561
575
  QUESTIONS_TEXT1: "Heb je nog vragen? ",
562
576
  QUESTIONS_TEXT2: "Laat het ons weten",
563
577
  QUESTIONS_TEXT3: ".",
@@ -605,6 +619,7 @@ var STEPS = {
605
619
  NEXT: "Next step",
606
620
  SUBMIT_BOOKING: "Confirm booking",
607
621
  SUBMIT_OFFER: "Request quote",
622
+ SUBMIT_OPTION: "Take an option",
608
623
  COMPOSE: "Compose",
609
624
  ROOM_OPTIONS: "Room options",
610
625
  FLIGHT_OPTIONS: "Flight options"
@@ -673,6 +688,7 @@ var PRODUCT = {
673
688
  var MAIN = {
674
689
  PREPARING_BOOKING: "Please wait, we are preparing your booking",
675
690
  PREPARING_OFFER: "Please wait, we are preparing your quote",
691
+ PREPARING_DOSSIER: "Please wait, we are preparing your file",
676
692
  PRODUCT_UNAVAILABLE: "Product not available"
677
693
  };
678
694
  var SHARED = {
@@ -708,7 +724,7 @@ var SIDEBAR = {
708
724
  DEPOSIT_TEXT2: "remaining balance",
709
725
  DEPOSIT_TEXT3: " of ",
710
726
  DEPOSIT_TEXT4: " are described in ",
711
- DEPOSIT_TEXT5: "step 3 (\"summary\")",
727
+ DEPOSIT_TEXT5: "step \"Summary\"",
712
728
  DEPOSIT_TEXT6: " of the booking process.",
713
729
  LUGGAGE_INCLUDED: "Luggage included",
714
730
  DEPARTURE_FLIGHT: "Outbound flight",
@@ -719,6 +735,7 @@ var SIDEBAR = {
719
735
  CHANGES: "transfers"
720
736
  };
721
737
  var TRAVELERS_FORM = {
738
+ AGE: "Age",
722
739
  TRAVELER: "Traveler",
723
740
  ADULT: "adult",
724
741
  ADULTS: "adults",
@@ -747,6 +764,7 @@ var TRAVELERS_FORM = {
747
764
  VALIDATION_MESSAGE: "Please check the fields below and fill them in correctly.",
748
765
  BOOK_WITH_AGENT: "I want to book through my local travel agent",
749
766
  CHOOSE_OFFICE: "I choose an office",
767
+ PERSON: "Person",
750
768
  COUNTRIES: {
751
769
  BELGIUM: "Belgium",
752
770
  NETHERLANDS: "Netherlands",
@@ -796,6 +814,7 @@ var SUMMARY = {
796
814
  VALIDATE_TITLE: "Check your information",
797
815
  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.",
798
816
  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.",
817
+ 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.",
799
818
  OPTIONS: "Options",
800
819
  REMARKS: "Remarks",
801
820
  VOUCHERS: "Vouchers",
@@ -807,9 +826,11 @@ var SUMMARY = {
807
826
  var CONFIRMATION = {
808
827
  TITLE_TEXT_OFFER: "Your quote with number {0} has been requested",
809
828
  TITLE_TEXT_BOOKING: "Your booking with number {0} has been confirmed",
829
+ TITLE_TEXT_OPTION: "You have taken an option on number {0}.",
810
830
  MESSAGE_TEXT1: "Your dream trip is now very close.",
811
831
  MESSAGE_TEXT2_OFFER: "Our travel specialists are processing your request and will contact you within 48 hours.",
812
832
  MESSAGE_TEXT2_BOOKING: "Our travel specialists are processing your booking and will contact you within 48 hours.",
833
+ MESSAGE_TEXT2_OPTION: "Our travel specialists have noted your reservation and will contact you within 48 hours to confirm or discuss your option.",
813
834
  QUESTIONS_TEXT1: "Do you have any questions? ",
814
835
  QUESTIONS_TEXT2: "Let us know",
815
836
  QUESTIONS_TEXT3: ".",
@@ -973,11 +994,26 @@ var SettingsContext$1 = React.createContext({
973
994
  priceMode: 0,
974
995
  });
975
996
 
976
- var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
997
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
977
998
 
978
999
  var build = {};
979
1000
 
980
- Object.defineProperty(build, "__esModule", { value: true });
1001
+ (function (exports) {
1002
+
1003
+ Object.defineProperty(exports, "__esModule", { value: true });
1004
+
1005
+ var AllotmentKind;
1006
+ (function (AllotmentKind) {
1007
+ AllotmentKind[(AllotmentKind["perUnit"] = 0)] = "perUnit";
1008
+ AllotmentKind[(AllotmentKind["perMember"] = 1)] = "perMember";
1009
+ })(AllotmentKind || (AllotmentKind = {}));
1010
+
1011
+ exports.AllotmentStatus = void 0;
1012
+ (function (AllotmentStatus) {
1013
+ AllotmentStatus[(AllotmentStatus["bookable"] = 0)] = "bookable";
1014
+ AllotmentStatus[(AllotmentStatus["closed"] = 1)] = "closed";
1015
+ AllotmentStatus[(AllotmentStatus["hidden"] = 2)] = "hidden";
1016
+ })(exports.AllotmentStatus || (exports.AllotmentStatus = {}));
981
1017
 
982
1018
  var AllotmentType = {
983
1019
  freeSell: 0,
@@ -1005,7 +1041,27 @@ var DataType = {
1005
1041
  template: "template",
1006
1042
  };
1007
1043
 
1008
- var EntryStatus;
1044
+ var EntryLineStatus = {
1045
+ cancellationByClient: 0,
1046
+ cancellationByYou: 1,
1047
+ noAllotment: 2,
1048
+ offer: 3,
1049
+ ok: 4,
1050
+ option: 5,
1051
+ onRequest: 6,
1052
+ requestConfirmed: 7,
1053
+ requestDenied: 8,
1054
+ requestSent: 9,
1055
+ pending: 10,
1056
+ notBookable: 11,
1057
+ noAllotmentFallbackToRealtimeFlight: 12,
1058
+ notBookableFallbackToRealtimeFlight: 13,
1059
+ error: 14,
1060
+ bookingConfirmed: 15,
1061
+ cancellationConfirmed: 16,
1062
+ };
1063
+
1064
+ exports.EntryStatus = void 0;
1009
1065
  (function (EntryStatus) {
1010
1066
  EntryStatus[(EntryStatus["new"] = -1)] = "new";
1011
1067
  EntryStatus[(EntryStatus["offer"] = 0)] = "offer";
@@ -1014,7 +1070,7 @@ var EntryStatus;
1014
1070
  EntryStatus[(EntryStatus["cancellationByClient"] = 3)] =
1015
1071
  "cancellationByClient";
1016
1072
  EntryStatus[(EntryStatus["cancellationByYou"] = 4)] = "cancellationByYou";
1017
- })(EntryStatus || (EntryStatus = {}));
1073
+ })(exports.EntryStatus || (exports.EntryStatus = {}));
1018
1074
 
1019
1075
  var Gender = {
1020
1076
  male: 0,
@@ -1022,6 +1078,14 @@ var Gender = {
1022
1078
  other: 2,
1023
1079
  };
1024
1080
 
1081
+ var MetaDataItemPropertyType;
1082
+ (function (MetaDataItemPropertyType) {
1083
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Height"] = 0)] = "Height";
1084
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Length"] = 1)] = "Length";
1085
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Width"] = 2)] = "Width";
1086
+ MetaDataItemPropertyType[(MetaDataItemPropertyType["Weight"] = 3)] = "Weight";
1087
+ })(MetaDataItemPropertyType || (MetaDataItemPropertyType = {}));
1088
+
1025
1089
  var MetaDataType = {
1026
1090
  flight: 0,
1027
1091
  publicTransport: 1,
@@ -1086,6 +1150,13 @@ var ServiceType = {
1086
1150
  camp: 30,
1087
1151
  };
1088
1152
 
1153
+ var UnitOfMeasure;
1154
+ (function (UnitOfMeasure) {
1155
+ UnitOfMeasure[(UnitOfMeasure["cm"] = 0)] = "cm";
1156
+ UnitOfMeasure[(UnitOfMeasure["kg"] = 1)] = "kg";
1157
+ UnitOfMeasure[(UnitOfMeasure["lb"] = 2)] = "lb";
1158
+ })(UnitOfMeasure || (UnitOfMeasure = {}));
1159
+
1089
1160
  /******************************************************************************
1090
1161
  Copyright (c) Microsoft Corporation.
1091
1162
 
@@ -1342,13 +1413,13 @@ var get$1 = function (url, apiKey, token, signal, languageCode) {
1342
1413
  });
1343
1414
  };
1344
1415
 
1345
- var commonjsGlobal =
1416
+ var commonjsGlobal$1 =
1346
1417
  typeof globalThis !== "undefined"
1347
1418
  ? globalThis
1348
1419
  : typeof window !== "undefined"
1349
1420
  ? window
1350
- : typeof commonjsGlobal$1 !== "undefined"
1351
- ? commonjsGlobal$1
1421
+ : typeof commonjsGlobal !== "undefined"
1422
+ ? commonjsGlobal
1352
1423
  : typeof self !== "undefined"
1353
1424
  ? self
1354
1425
  : {};
@@ -1366,7 +1437,7 @@ var moment$1 = { exports: {} };
1366
1437
  (function (module, exports) {
1367
1438
  (function (global, factory) {
1368
1439
  module.exports = factory();
1369
- })(commonjsGlobal, function () {
1440
+ })(commonjsGlobal$1, function () {
1370
1441
  var hookCallback;
1371
1442
 
1372
1443
  function hooks() {
@@ -7054,6 +7125,9 @@ var post = function (
7054
7125
  return [4 /*yield*/, response.text()];
7055
7126
  case 2:
7056
7127
  responseBody = _a.sent();
7128
+ if (!responseBody) {
7129
+ return [2 /*return*/, null];
7130
+ }
7057
7131
  result = skipReviver
7058
7132
  ? JSON.parse(responseBody)
7059
7133
  : JSON.parse(responseBody, reviver);
@@ -7085,6 +7159,9 @@ var patch = function (
7085
7159
  return [4 /*yield*/, response.text()];
7086
7160
  case 2:
7087
7161
  responseBody = _a.sent();
7162
+ if (!responseBody) {
7163
+ return [2 /*return*/, {}];
7164
+ }
7088
7165
  result = skipReviver
7089
7166
  ? JSON.parse(responseBody)
7090
7167
  : JSON.parse(responseBody, reviver);
@@ -7556,6 +7633,17 @@ var getEntryList = function (config, filterItem, gridColumns, signal) {
7556
7633
  var apiKey = config.apiKey;
7557
7634
  return get(url, apiKey, config.token, signal, true);
7558
7635
  };
7636
+ var getEntryListv2 = function (config, filterItem, gridColumns, signal) {
7637
+ var params = createParams(filterItem, false, gridColumns);
7638
+ var queryString = Object.keys(params)
7639
+ .map(function (key) {
7640
+ return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]);
7641
+ })
7642
+ .join("&");
7643
+ var url = "" + config.host + ENDPOINT$3 + "/v2/entry/list?" + queryString;
7644
+ var apiKey = config.apiKey;
7645
+ return get(url, apiKey, config.token, signal, true);
7646
+ };
7559
7647
  var getEntryTotals = function (config, filterItem, gridColumns, signal) {
7560
7648
  var params = createParams(filterItem, false, gridColumns);
7561
7649
  var queryString = Object.keys(params)
@@ -7567,6 +7655,11 @@ var getEntryTotals = function (config, filterItem, gridColumns, signal) {
7567
7655
  var apiKey = config.apiKey;
7568
7656
  return get(url, apiKey, config.token, signal, true);
7569
7657
  };
7658
+ var getEntryDetailv2 = function (config, entryId, signal) {
7659
+ var url = "" + config.host + ENDPOINT$3 + "/v2/entry/detail/" + entryId;
7660
+ var apiKey = config.apiKey;
7661
+ return get(url, apiKey, config.token, signal, true);
7662
+ };
7570
7663
  var getInvoiceList = function (config, filterItem, gridColumns, signal) {
7571
7664
  var params = createParams(filterItem, false, gridColumns);
7572
7665
  var queryString = Object.keys(params)
@@ -7594,6 +7687,22 @@ var changeEntryAgentSurcharge = function (config, request, signal) {
7594
7687
  var body = JSON.stringify(request);
7595
7688
  return post$1(url, apiKey, body, config.token, signal);
7596
7689
  };
7690
+ var getAllotmentList = function (config, filterItem, gridColumns, signal) {
7691
+ var params = createParams(filterItem, false, gridColumns);
7692
+ var queryString = Object.keys(params)
7693
+ .map(function (key) {
7694
+ return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]);
7695
+ })
7696
+ .join("&");
7697
+ var url = "" + config.host + ENDPOINT$3 + "/allotment/list?" + queryString;
7698
+ var apiKey = config.apiKey;
7699
+ return get(url, apiKey, config.token, signal, true);
7700
+ };
7701
+ var getAllotment = function (config, allotmentId, signal) {
7702
+ var url = "" + config.host + ENDPOINT$3 + "/allotment/" + allotmentId;
7703
+ var apiKey = config.apiKey;
7704
+ return get(url, apiKey, config.token, signal, true);
7705
+ };
7597
7706
 
7598
7707
  var ENDPOINT$2 = "/api/web";
7599
7708
  var ENDPOINT_CREATE_CRM_CONTACT = ENDPOINT$2 + "/crmcontact";
@@ -7627,7 +7736,7 @@ var ContactForm = function (config, request, signal) {
7627
7736
  var url = "" + config.host + ENDPOINT_CONTACT_FORM$1;
7628
7737
  var apiKey = config.apiKey;
7629
7738
  var body = JSON.stringify(request);
7630
- return post(url, apiKey, body, config.token, signal);
7739
+ return post(url, apiKey, body, config.token, signal, true);
7631
7740
  };
7632
7741
  /**
7633
7742
  * api/web/affiliates
@@ -7708,57 +7817,64 @@ var feedXmlFolder = function (config, slug, folder, signal) {
7708
7817
  return get$1(url, apiKey, config.token, signal);
7709
7818
  };
7710
7819
 
7711
- build.AllotmentType = AllotmentType;
7712
- build.AvailabilitySearchType = AvailabilitySearchType;
7713
- build.ContactForm = ContactForm;
7714
- var Gender_1 = build.Gender = Gender;
7715
- build.MetaDataType = MetaDataType;
7716
- build.RequirementType = RequirementType;
7717
- build.ServiceType = ServiceType;
7718
- var agents_1 = build.agents = agents;
7719
- build.alternateFlights = alternateFlights;
7720
- build.alternateHotels = alternateHotels;
7721
- build.availableCountries = availableCountries;
7722
- build.availableFlights = availableFlights;
7723
- var book_1 = build.book = book;
7724
- build.bookableDates = bookableDates;
7725
- build.changeEntryAgentSurcharge = changeEntryAgentSurcharge;
7726
- build.confirm = confirm;
7727
- build.contactForm = contactForm;
7728
- build.contactHasTag = contactHasTag;
7729
- build.createCrmContact = createCrmContact;
7730
- build.createParams = createParams;
7731
- var details_1 = build.details = details;
7732
- build.feedXml = feedXml;
7733
- build.feedXmlFolder = feedXmlFolder;
7734
- build.forgotPassword = forgotPassword;
7735
- var generateBookingAccommodations_1 = build.generateBookingAccommodations = generateBookingAccommodations;
7736
- build.getAffiliates = getAffiliates;
7737
- build.getAllotmentAvailability = getAllotmentAvailability;
7738
- build.getCountries = getCountries;
7739
- build.getCustomEntryStatus = getCustomEntryStatus;
7740
- build.getEntryList = getEntryList;
7741
- build.getEntryStatus = getEntryStatus;
7742
- build.getEntryTotals = getEntryTotals;
7743
- build.getInvoiceList = getInvoiceList;
7744
- build.getMolliePayment = getMolliePayment;
7745
- build.getPrintActions = getPrintActions;
7746
- build.getTranslationDictionary = getTranslationDictionary;
7747
- build.login = login;
7748
- build.logout = logout;
7749
- var priceDetails_1 = build.priceDetails = priceDetails;
7750
- build.prices = prices;
7751
- var print_1 = build.print = print;
7752
- build.resetPassword = resetPassword;
7753
- build.search = search;
7754
- build.searchFlightPool = searchFlightPool;
7755
- build.searchWithErrorMapping = searchWithErrorMapping;
7756
- build.setCustomEntryStatus = setCustomEntryStatus;
7757
- build.setEntryStatus = setEntryStatus;
7758
- build.tourCodes = tourCodes;
7759
- build.transportDates = transportDates;
7760
- build.update = update;
7761
- var validateVoucher_1 = build.validateVoucher = validateVoucher;
7820
+ exports.AllotmentType = AllotmentType;
7821
+ exports.AvailabilitySearchType = AvailabilitySearchType;
7822
+ exports.ContactForm = ContactForm;
7823
+ exports.EntryLineStatus = EntryLineStatus;
7824
+ exports.Gender = Gender;
7825
+ exports.MetaDataType = MetaDataType;
7826
+ exports.RequirementType = RequirementType;
7827
+ exports.ServiceType = ServiceType;
7828
+ exports.agents = agents;
7829
+ exports.alternateFlights = alternateFlights;
7830
+ exports.alternateHotels = alternateHotels;
7831
+ exports.availableCountries = availableCountries;
7832
+ exports.availableFlights = availableFlights;
7833
+ exports.book = book;
7834
+ exports.bookableDates = bookableDates;
7835
+ exports.changeEntryAgentSurcharge = changeEntryAgentSurcharge;
7836
+ exports.confirm = confirm;
7837
+ exports.contactForm = contactForm;
7838
+ exports.contactHasTag = contactHasTag;
7839
+ exports.createCrmContact = createCrmContact;
7840
+ exports.createParams = createParams;
7841
+ exports.details = details;
7842
+ exports.feedXml = feedXml;
7843
+ exports.feedXmlFolder = feedXmlFolder;
7844
+ exports.forgotPassword = forgotPassword;
7845
+ exports.generateBookingAccommodations = generateBookingAccommodations;
7846
+ exports.getAffiliates = getAffiliates;
7847
+ exports.getAllotment = getAllotment;
7848
+ exports.getAllotmentAvailability = getAllotmentAvailability;
7849
+ exports.getAllotmentList = getAllotmentList;
7850
+ exports.getCountries = getCountries;
7851
+ exports.getCustomEntryStatus = getCustomEntryStatus;
7852
+ exports.getEntryDetailv2 = getEntryDetailv2;
7853
+ exports.getEntryList = getEntryList;
7854
+ exports.getEntryListv2 = getEntryListv2;
7855
+ exports.getEntryStatus = getEntryStatus;
7856
+ exports.getEntryTotals = getEntryTotals;
7857
+ exports.getInvoiceList = getInvoiceList;
7858
+ exports.getMolliePayment = getMolliePayment;
7859
+ exports.getPrintActions = getPrintActions;
7860
+ exports.getTranslationDictionary = getTranslationDictionary;
7861
+ exports.login = login;
7862
+ exports.logout = logout;
7863
+ exports.priceDetails = priceDetails;
7864
+ exports.prices = prices;
7865
+ exports.print = print;
7866
+ exports.resetPassword = resetPassword;
7867
+ exports.search = search;
7868
+ exports.searchFlightPool = searchFlightPool;
7869
+ exports.searchWithErrorMapping = searchWithErrorMapping;
7870
+ exports.setCustomEntryStatus = setCustomEntryStatus;
7871
+ exports.setEntryStatus = setEntryStatus;
7872
+ exports.tourCodes = tourCodes;
7873
+ exports.transportDates = transportDates;
7874
+ exports.update = update;
7875
+ exports.validateVoucher = validateVoucher;
7876
+
7877
+ }(build));
7762
7878
 
7763
7879
  function buildTideClientConfig(settings) {
7764
7880
  var HOST = (settings === null || settings === void 0 ? void 0 : settings.apiUrl) || process.env.REACT_APP_BOOKING_HOST;
@@ -7787,13 +7903,13 @@ var selectAgentToken = function () {
7787
7903
  return token !== null && token !== void 0 ? token : undefined;
7788
7904
  };
7789
7905
 
7790
- var fetchDetails$1 = function (request, signal, languageCode, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
7906
+ var fetchDetails$1 = function (request, signal, languageCode, apiSettings) { return __awaiter(void 0, void 0, void 0, function () {
7791
7907
  var tideClientConfig;
7792
- return __generator$1(this, function (_a) {
7908
+ return __generator(this, function (_a) {
7793
7909
  switch (_a.label) {
7794
7910
  case 0:
7795
7911
  tideClientConfig = buildTideClientConfig(apiSettings);
7796
- return [4 /*yield*/, details_1(tideClientConfig, request, signal, languageCode)];
7912
+ return [4 /*yield*/, build.details(tideClientConfig, request, signal, languageCode)];
7797
7913
  case 1: return [2 /*return*/, _a.sent()];
7798
7914
  }
7799
7915
  });
@@ -9477,6 +9593,9 @@ var Rooms = function (_a) {
9477
9593
  var rooms = _a.rooms, isDisabled = _a.isDisabled, setIsDisabled = _a.setIsDisabled, onChange = _a.onChange;
9478
9594
  var _b = useState(false), isTouched = _b[0], setIsTouched = _b[1];
9479
9595
  var _c = useState(rooms), currentRooms = _c[0], setRoomState = _c[1];
9596
+ useEffect(function () {
9597
+ setRoomState(rooms);
9598
+ }, [rooms]);
9480
9599
  var language = useContext(SettingsContext$1).language;
9481
9600
  var translations = getTranslations(language);
9482
9601
  var handleCloseClick = function () {
@@ -9566,9 +9685,9 @@ var Product = function (_a) {
9566
9685
  ]), rooms = _l[0], setRooms = _l[1];
9567
9686
  var _m = useState(), dateRange = _m[0], setDateRange = _m[1];
9568
9687
  var _o = useState(productName), packageProductName = _o[0], setPackageProductName = _o[1];
9569
- var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
9688
+ var fetchPackage = function (signal) { return __awaiter(void 0, void 0, void 0, function () {
9570
9689
  var apiSettingsState, startDate, endDate, requestRooms, request, response, selectedOption, hasFlight_1, hasTranfer;
9571
- return __generator$1(this, function (_a) {
9690
+ return __generator(this, function (_a) {
9572
9691
  switch (_a.label) {
9573
9692
  case 0:
9574
9693
  if (!(loaded &&
@@ -9657,7 +9776,7 @@ var Product = function (_a) {
9657
9776
  if (dateRange === null || dateRange === void 0 ? void 0 : dateRange.toDate) {
9658
9777
  params["endDate"] = format$1(dateRange.toDate, "yyyy-MM-dd");
9659
9778
  }
9660
- params["catalog"] = catalogueId.toString();
9779
+ params["catalogueId"] = catalogueId.toString();
9661
9780
  if (addProductToQuery) {
9662
9781
  params["productCode"] = productCode;
9663
9782
  params["productName"] = encodeURI(packageProductName);
@@ -9679,8 +9798,8 @@ var Product = function (_a) {
9679
9798
  useEffect(function () {
9680
9799
  var controller = new AbortController();
9681
9800
  var signal = controller.signal;
9682
- (function () { return __awaiter$1(void 0, void 0, void 0, function () {
9683
- return __generator$1(this, function (_a) {
9801
+ (function () { return __awaiter(void 0, void 0, void 0, function () {
9802
+ return __generator(this, function (_a) {
9684
9803
  fetchPackage(signal);
9685
9804
  return [2 /*return*/];
9686
9805
  });
@@ -9696,8 +9815,10 @@ var Product = function (_a) {
9696
9815
  useEffect(function () {
9697
9816
  var params = new URLSearchParams(location.search);
9698
9817
  var rooms = getRoomsFromParams(params, "rooms");
9699
- var from = getDateAsDateFromParams(params, "from");
9700
- var to = getDateAsDateFromParams(params, "to");
9818
+ var from = getDateAsDateFromParams(params, "from")
9819
+ || getDateAsDateFromParams(params, "startDate");
9820
+ var to = getDateAsDateFromParams(params, "to")
9821
+ || getDateAsDateFromParams(params, "endDate");
9701
9822
  if (rooms) {
9702
9823
  setRooms(rooms);
9703
9824
  }
@@ -9769,18 +9890,18 @@ var selectFormRooms = createSelector(selectRequestRooms$1, function (rooms) {
9769
9890
  };
9770
9891
  x.pax.forEach(function (p) {
9771
9892
  if (p.age && p.age > CHILD_MAX_AGE) {
9772
- formRoom.adults.push(p.id);
9893
+ formRoom.adults.push({ id: p.id, age: 30 });
9773
9894
  }
9774
9895
  else if (p.age && p.age <= CHILD_MAX_AGE) {
9775
- formRoom.children.push(p.id);
9896
+ formRoom.children.push({ id: p.id, age: p.age });
9776
9897
  }
9777
9898
  else if (p.dateOfBirth) {
9778
- var diff = differenceInYears(new Date(), new Date(p.dateOfBirth));
9779
- if (diff > CHILD_MAX_AGE) {
9780
- formRoom.adults.push(p.id);
9899
+ var age = differenceInYears(new Date(), new Date(p.dateOfBirth));
9900
+ if (age > CHILD_MAX_AGE) {
9901
+ formRoom.adults.push({ id: p.id, age: 30 });
9781
9902
  }
9782
9903
  else {
9783
- formRoom.children.push(p.id);
9904
+ formRoom.children.push({ id: p.id, age: age });
9784
9905
  }
9785
9906
  }
9786
9907
  });
@@ -9791,35 +9912,35 @@ var selectFormRooms = createSelector(selectRequestRooms$1, function (rooms) {
9791
9912
  });
9792
9913
  var travelersFormReducer = travelersFormSlice.reducer;
9793
9914
 
9794
- var fetchDetails = function (request, signal, languageCode, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
9915
+ var fetchDetails = function (request, signal, languageCode, apiSettings) { return __awaiter(void 0, void 0, void 0, function () {
9795
9916
  var tideClientConfig;
9796
- return __generator$1(this, function (_a) {
9917
+ return __generator(this, function (_a) {
9797
9918
  switch (_a.label) {
9798
9919
  case 0:
9799
9920
  tideClientConfig = buildTideClientConfig(apiSettings);
9800
- return [4 /*yield*/, details_1(tideClientConfig, request, signal, languageCode)];
9921
+ return [4 /*yield*/, build.details(tideClientConfig, request, signal, languageCode)];
9801
9922
  case 1: return [2 /*return*/, _a.sent()];
9802
9923
  }
9803
9924
  });
9804
9925
  }); };
9805
- var fetchAgents$1 = function (signal, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
9926
+ var fetchAgents$1 = function (signal, 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*/, agents_1(tideClientConfig, signal)];
9932
+ return [4 /*yield*/, build.agents(tideClientConfig, signal)];
9812
9933
  case 1: return [2 /*return*/, _a.sent()];
9813
9934
  }
9814
9935
  });
9815
9936
  }); };
9816
- var fetchAccommodationViews$1 = function (request, signal, apiSettings) { return __awaiter$1(void 0, void 0, void 0, function () {
9937
+ var fetchAccommodationViews$1 = function (request, 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*/, generateBookingAccommodations_1(tideClientConfig, request, signal)];
9943
+ return [4 /*yield*/, build.generateBookingAccommodations(tideClientConfig, request, signal)];
9823
9944
  case 1: return [2 /*return*/, _a.sent()];
9824
9945
  }
9825
9946
  });
@@ -9838,13 +9959,13 @@ var SUMMARY_STEP = 5;
9838
9959
  var CONFIRMATION_STEP = 6;
9839
9960
  var ERROR_STEP = 7;
9840
9961
 
9841
- var fetchPriceDetails$1 = function (apiSettings, request, signal, languageCode) { return __awaiter$1(void 0, void 0, void 0, function () {
9962
+ var fetchPriceDetails$1 = function (apiSettings, request, signal, languageCode) { return __awaiter(void 0, void 0, void 0, function () {
9842
9963
  var tideClientConfig;
9843
- return __generator$1(this, function (_a) {
9964
+ return __generator(this, function (_a) {
9844
9965
  switch (_a.label) {
9845
9966
  case 0:
9846
9967
  tideClientConfig = buildTideClientConfig(apiSettings);
9847
- return [4 /*yield*/, priceDetails_1(tideClientConfig, request, signal, languageCode)];
9968
+ return [4 /*yield*/, build.priceDetails(tideClientConfig, request, signal, languageCode)];
9848
9969
  case 1: return [2 /*return*/, _a.sent()];
9849
9970
  }
9850
9971
  });
@@ -9913,9 +10034,9 @@ var updateBookingGroups = function (groups, changedLines) {
9913
10034
  var _a$2;
9914
10035
  var fetchPriceDetails = createAsyncThunk("priceDetails/fetchPriceDetails", function (_, _a) {
9915
10036
  var dispatch = _a.dispatch, getState = _a.getState, signal = _a.signal;
9916
- return __awaiter$1(void 0, void 0, void 0, function () {
10037
+ return __awaiter(void 0, void 0, void 0, function () {
9917
10038
  var state, languageCode, request, priceDetails, packageDetails, updatedPackageDetails;
9918
- return __generator$1(this, function (_b) {
10039
+ return __generator(this, function (_b) {
9919
10040
  switch (_b.label) {
9920
10041
  case 0:
9921
10042
  dispatch(setFetchingPriceDetails(true));
@@ -10096,6 +10217,9 @@ var selectBookingAttributes = function (state) {
10096
10217
  var selectBookingNumber = function (state) {
10097
10218
  return state.booking.bookingNumber;
10098
10219
  };
10220
+ var selectIsOption = function (state) {
10221
+ return state.booking.isOption;
10222
+ };
10099
10223
  var selectBookingRooms = function (state) { var _a; return (_a = state.booking.bookingAttributes) === null || _a === void 0 ? void 0 : _a.rooms; };
10100
10224
  var selectBookingRemarks = function (state) { return state.booking.remarks; };
10101
10225
  var selectVoucherCodes = function (state) {
@@ -10279,18 +10403,19 @@ var buildPax = function (traveler, mainBookerId) {
10279
10403
  firstName: traveler.firstName,
10280
10404
  lastName: traveler.lastName,
10281
10405
  dateOfBirth: traveler.birthDate,
10406
+ age: traveler.birthDate ? null : traveler.age,
10282
10407
  isMainBooker: traveler.id == mainBookerId,
10283
10408
  };
10284
10409
  };
10285
10410
  var parseGender = function (gender) {
10286
10411
  switch (gender) {
10287
10412
  case "m":
10288
- return Gender_1.male;
10413
+ return build.Gender.male;
10289
10414
  case "f":
10290
- return Gender_1.female;
10415
+ return build.Gender.female;
10291
10416
  case "x":
10292
10417
  default:
10293
- return Gender_1.other;
10418
+ return build.Gender.other;
10294
10419
  }
10295
10420
  };
10296
10421
 
@@ -10332,8 +10457,8 @@ var initialState$2 = {
10332
10457
  };
10333
10458
  var fetchPackage = createAsyncThunk("booking/fetchPackage", function (_, _a) {
10334
10459
  var dispatch = _a.dispatch;
10335
- return __awaiter$1(void 0, void 0, void 0, function () {
10336
- return __generator$1(this, function (_b) {
10460
+ return __awaiter(void 0, void 0, void 0, function () {
10461
+ return __generator(this, function (_b) {
10337
10462
  switch (_b.label) {
10338
10463
  case 0:
10339
10464
  dispatch(setFetchingPackage(true));
@@ -10354,9 +10479,9 @@ var fetchPackage = createAsyncThunk("booking/fetchPackage", function (_, _a) {
10354
10479
  });
10355
10480
  var fetchAgents = createAsyncThunk("booking/agents", function (_, _a) {
10356
10481
  _a.dispatch; var getState = _a.getState, signal = _a.signal;
10357
- return __awaiter$1(void 0, void 0, void 0, function () {
10482
+ return __awaiter(void 0, void 0, void 0, function () {
10358
10483
  var settings;
10359
- return __generator$1(this, function (_b) {
10484
+ return __generator(this, function (_b) {
10360
10485
  switch (_b.label) {
10361
10486
  case 0:
10362
10487
  settings = getState();
@@ -10368,10 +10493,10 @@ var fetchAgents = createAsyncThunk("booking/agents", function (_, _a) {
10368
10493
  });
10369
10494
  var fetchPackageDetails = createAsyncThunk("booking/details", function (_, _a) {
10370
10495
  _a.dispatch; var getState = _a.getState, signal = _a.signal;
10371
- return __awaiter$1(void 0, void 0, void 0, function () {
10496
+ return __awaiter(void 0, void 0, void 0, function () {
10372
10497
  var state, officeId, productAttributes, bookingAttributes, agentId, rooms, languageCode, requestRooms, isAllotment, searchType, outwardFlight, returnFlight, request;
10373
10498
  var _b;
10374
- return __generator$1(this, function (_c) {
10499
+ return __generator(this, function (_c) {
10375
10500
  switch (_c.label) {
10376
10501
  case 0:
10377
10502
  state = getState();
@@ -10430,7 +10555,7 @@ var fetchPackageDetails = createAsyncThunk("booking/details", function (_, _a) {
10430
10555
  agentId: agentId,
10431
10556
  payload: {
10432
10557
  searchType: searchType,
10433
- catalogueId: bookingAttributes.catalog,
10558
+ catalogueId: bookingAttributes.catalogueId,
10434
10559
  productCode: productAttributes.productCode,
10435
10560
  fromDate: bookingAttributes.startDate,
10436
10561
  toDate: bookingAttributes.endDate,
@@ -10453,9 +10578,9 @@ var fetchPackageDetails = createAsyncThunk("booking/details", function (_, _a) {
10453
10578
  });
10454
10579
  var fetchAccommodationViews = createAsyncThunk("booking/accommodationViews", function (_, _a) {
10455
10580
  _a.dispatch; var getState = _a.getState, signal = _a.signal;
10456
- return __awaiter$1(void 0, void 0, void 0, function () {
10581
+ return __awaiter(void 0, void 0, void 0, function () {
10457
10582
  var state, languageCode, accommodationCodes, productCode, request;
10458
- return __generator$1(this, function (_b) {
10583
+ return __generator(this, function (_b) {
10459
10584
  switch (_b.label) {
10460
10585
  case 0:
10461
10586
  state = getState();
@@ -10677,6 +10802,9 @@ var bookingSlice = createSlice({
10677
10802
  setAccommodationViewId: function (state, action) {
10678
10803
  state.accommodationViewId = action.payload;
10679
10804
  },
10805
+ setIsOption: function (state, action) {
10806
+ state.isOption = action.payload;
10807
+ }
10680
10808
  },
10681
10809
  extraReducers: function (builder) {
10682
10810
  builder.addCase(fetchPackageDetails.fulfilled, function (state, action) {
@@ -10793,7 +10921,7 @@ var bookingSlice = createSlice({
10793
10921
  });
10794
10922
  },
10795
10923
  });
10796
- 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;
10924
+ 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;
10797
10925
  var bookingReducer = bookingSlice.reducer;
10798
10926
 
10799
10927
  var SettingsContext = React.createContext({
@@ -11121,6 +11249,7 @@ var Confirmation = function () {
11121
11249
  var settings = useContext(SettingsContext);
11122
11250
  var bookingNumber = useSelector(selectBookingNumber);
11123
11251
  var bookingQueryString = useSelector(selectBookingQueryString);
11252
+ var isOption = useSelector(selectIsOption);
11124
11253
  if (!bookingNumber) {
11125
11254
  if (settings.skipRouter) {
11126
11255
  dispatch(setCurrentStep(OPTIONS_FORM_STEP));
@@ -11131,9 +11260,11 @@ var Confirmation = function () {
11131
11260
  }
11132
11261
  var translations = useSelector(selectTranslations);
11133
11262
  var encodedMailSubject = encodeURI(translations.CONFIRMATION.MAIL_SUBJECT);
11134
- var titleText = settings.isOffer
11135
- ? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
11136
- : format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
11263
+ var titleText = isOption
11264
+ ? format(translations.CONFIRMATION.TITLE_TEXT_OPTION, [bookingNumber])
11265
+ : settings.isOffer
11266
+ ? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
11267
+ : format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
11137
11268
  return (React.createElement("div", { className: "form form__booking--message", id: "booking--confirmation" },
11138
11269
  React.createElement("div", { className: "form__region" },
11139
11270
  React.createElement("div", { className: "form__row" },
@@ -11148,9 +11279,11 @@ var Confirmation = function () {
11148
11279
  React.createElement("p", null,
11149
11280
  translations.CONFIRMATION.MESSAGE_TEXT1,
11150
11281
  React.createElement("br", null),
11151
- settings.isOffer
11152
- ? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER
11153
- : translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
11282
+ isOption
11283
+ ? translations.CONFIRMATION.MESSAGE_TEXT2_OPTION
11284
+ : settings.isOffer
11285
+ ? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER
11286
+ : translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
11154
11287
  React.createElement("p", null,
11155
11288
  translations.CONFIRMATION.QUESTIONS_TEXT1,
11156
11289
  " ",
@@ -13169,9 +13302,9 @@ function useOfferPrinter(_a) {
13169
13302
  }
13170
13303
  var _d = useState("idle"), stage = _d[0], setStage = _d[1];
13171
13304
  var loading = stage !== "idle";
13172
- var createOffer = useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
13305
+ var createOffer = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
13173
13306
  var paxRaw, pax, request, cfg;
13174
- return __generator$1(this, function (_a) {
13307
+ return __generator(this, function (_a) {
13175
13308
  paxRaw = getPax();
13176
13309
  if (!bookingPackage || !(paxRaw === null || paxRaw === void 0 ? void 0 : paxRaw.length)) {
13177
13310
  throw new Error("Missing booking package or pax");
@@ -13191,7 +13324,7 @@ function useOfferPrinter(_a) {
13191
13324
  },
13192
13325
  };
13193
13326
  cfg = buildTideClientConfig();
13194
- return [2 /*return*/, book_1(cfg, request, undefined, language)];
13327
+ return [2 /*return*/, build.book(cfg, request, undefined, language)];
13195
13328
  });
13196
13329
  }); }, [agentId, bookingPackage, getPax, language, officeId, tagIds]);
13197
13330
  var languageData = [
@@ -13203,10 +13336,10 @@ function useOfferPrinter(_a) {
13203
13336
  var _a;
13204
13337
  return ((_a = languageData.find(function (l) { return l.code === code; })) === null || _a === void 0 ? void 0 : _a.tideId) || 1;
13205
13338
  }
13206
- var printOffer = useCallback(function (offer) { return __awaiter$1(_this, void 0, void 0, function () {
13339
+ var printOffer = useCallback(function (offer) { return __awaiter(_this, void 0, void 0, function () {
13207
13340
  var cfg, req, res, buf, url;
13208
13341
  var _a;
13209
- return __generator$1(this, function (_b) {
13342
+ return __generator(this, function (_b) {
13210
13343
  switch (_b.label) {
13211
13344
  case 0:
13212
13345
  cfg = buildTideClientConfig();
@@ -13215,7 +13348,7 @@ function useOfferPrinter(_a) {
13215
13348
  dossierNumber: (_a = offer.dossierNumber) !== null && _a !== void 0 ? _a : offer.number,
13216
13349
  languageId: getTideLanguageId(language),
13217
13350
  };
13218
- return [4 /*yield*/, print_1(cfg, req)];
13351
+ return [4 /*yield*/, build.print(cfg, req)];
13219
13352
  case 1:
13220
13353
  res = _b.sent();
13221
13354
  return [4 /*yield*/, res.arrayBuffer()];
@@ -13228,9 +13361,9 @@ function useOfferPrinter(_a) {
13228
13361
  }
13229
13362
  });
13230
13363
  }); }, [language, onPrinted]);
13231
- var handlePrint = useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
13364
+ var handlePrint = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
13232
13365
  var offer, err_1;
13233
- return __generator$1(this, function (_a) {
13366
+ return __generator(this, function (_a) {
13234
13367
  switch (_a.label) {
13235
13368
  case 0:
13236
13369
  _a.trys.push([0, 3, 4, 5]);
@@ -13852,11 +13985,11 @@ var SummaryPerPaxOptionGroup = function (_a) {
13852
13985
 
13853
13986
  var SummaryBookingOptionPax = function (_a) {
13854
13987
  var pax = _a.pax;
13855
- return (React.createElement(React.Fragment, null, pax.groups.map(function (y) {
13988
+ return (React.createElement(React.Fragment, null, pax.groups.map(function (y, i) {
13856
13989
  var paxOptions = y.options.filter(function (y) { return y.isSelected; });
13857
13990
  if (isEmpty(paxOptions))
13858
13991
  return;
13859
- return React.createElement(SummaryPerPaxOptionGroup, { group: y });
13992
+ return React.createElement(SummaryPerPaxOptionGroup, { key: i, group: y });
13860
13993
  })));
13861
13994
  };
13862
13995
 
@@ -14006,12 +14139,14 @@ var Summary = function () {
14006
14139
  : true;
14007
14140
  dispatch(setUserValidated(checkboxesValidated && notificationsValidated));
14008
14141
  }, [checkboxes, notifications]);
14009
- var handleSubmit = function (e) { return __awaiter$1(void 0, void 0, void 0, function () {
14010
- var tideClientConfig, location_1, bookingResponse;
14011
- return __generator$1(this, function (_a) {
14012
- switch (_a.label) {
14142
+ var handleSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
14143
+ var submitter, tideClientConfig, location_1, bookingResponse;
14144
+ var _a;
14145
+ return __generator(this, function (_b) {
14146
+ switch (_b.label) {
14013
14147
  case 0:
14014
14148
  e.preventDefault();
14149
+ submitter = (_a = e.nativeEvent.submitter) === null || _a === void 0 ? void 0 : _a.name;
14015
14150
  setIsSubmitting(true);
14016
14151
  if (typeof window !== "undefined") {
14017
14152
  window.scrollTo(0, 0);
@@ -14024,12 +14159,17 @@ var Summary = function () {
14024
14159
  location_1 = useLocation();
14025
14160
  bookRequest.payload.redirectUrl = "".concat(location_1.protocol, "//").concat(location_1.host).concat(settings.basePath);
14026
14161
  }
14027
- _a.label = 1;
14162
+ _b.label = 1;
14028
14163
  case 1:
14029
- _a.trys.push([1, 3, 4, 5]);
14030
- return [4 /*yield*/, book_1(tideClientConfig, bookRequest, undefined, languageCode)];
14164
+ _b.trys.push([1, 3, 4, 5]);
14165
+ if (submitter === 'option') {
14166
+ bookRequest.payload.status = build.EntryStatus.option;
14167
+ bookRequest.payload.customStatusId = settings.customOptionStatus;
14168
+ dispatch(setIsOption(true));
14169
+ }
14170
+ return [4 /*yield*/, build.book(tideClientConfig, bookRequest, undefined, languageCode)];
14031
14171
  case 2:
14032
- bookingResponse = _a.sent();
14172
+ bookingResponse = _b.sent();
14033
14173
  // Booking successfull
14034
14174
  dispatch(setBookingNumber(bookingResponse.number));
14035
14175
  if (bookingResponse.paymentUrl) {
@@ -14045,7 +14185,7 @@ var Summary = function () {
14045
14185
  }
14046
14186
  return [3 /*break*/, 5];
14047
14187
  case 3:
14048
- _a.sent();
14188
+ _b.sent();
14049
14189
  if (settings.skipRouter) {
14050
14190
  dispatch(setCurrentStep(ERROR_STEP));
14051
14191
  }
@@ -14080,10 +14220,10 @@ var Summary = function () {
14080
14220
  dispatch(setBookingRemarks(text));
14081
14221
  setRemarks(text);
14082
14222
  };
14083
- var handleValidateVoucher = function () { return __awaiter$1(void 0, void 0, void 0, function () {
14223
+ var handleValidateVoucher = function () { return __awaiter(void 0, void 0, void 0, function () {
14084
14224
  var request, tideClientConfig, result;
14085
14225
  var _a;
14086
- return __generator$1(this, function (_b) {
14226
+ return __generator(this, function (_b) {
14087
14227
  switch (_b.label) {
14088
14228
  case 0:
14089
14229
  if (!(voucher === null || voucher === void 0 ? void 0 : voucher.code))
@@ -14099,7 +14239,7 @@ var Summary = function () {
14099
14239
  tideClientConfig = buildTideClientConfig(apiSettings);
14100
14240
  if (!tideClientConfig)
14101
14241
  return [2 /*return*/];
14102
- return [4 /*yield*/, validateVoucher_1(tideClientConfig, request)];
14242
+ return [4 /*yield*/, build.validateVoucher(tideClientConfig, request)];
14103
14243
  case 1:
14104
14244
  result = _b.sent();
14105
14245
  if (result) {
@@ -14178,7 +14318,7 @@ var Summary = function () {
14178
14318
  translations.SUMMARY.MAIN_BOOKER,
14179
14319
  ")"))),
14180
14320
  React.createElement("li", { className: "list__item" }, traveler.birthDate.split("-").reverse().join("/")),
14181
- isMainBooker && (React.createElement(React.Fragment, null,
14321
+ isMainBooker && (travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.street) && (React.createElement(React.Fragment, null,
14182
14322
  React.createElement("li", { className: "list__item" }, "".concat(travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.street, " ").concat(compact([
14183
14323
  travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.houseNumber,
14184
14324
  travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.box,
@@ -14217,9 +14357,9 @@ var Summary = function () {
14217
14357
  return React.createElement(SummaryPerBookingOptionGroup, { key: i, group: x });
14218
14358
  })),
14219
14359
  !isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits) &&
14220
- (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits.map(function (x) { return (React.createElement(SummaryBookingOptionUnit, { unit: x })); })),
14360
+ (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits.map(function (x, i) { return (React.createElement(SummaryBookingOptionUnit, { key: i, unit: x })); })),
14221
14361
  !isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax) &&
14222
- (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax.map(function (x) { return (React.createElement(SummaryBookingOptionPax, { pax: x })); })),
14362
+ (activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax.map(function (x, i) { return (React.createElement(SummaryBookingOptionPax, { key: i, pax: x })); })),
14223
14363
  (packageDetails === null || packageDetails === void 0 ? void 0 : packageDetails.outwardFlights) &&
14224
14364
  packageDetails.outwardFlights
14225
14365
  .filter(function (x) { return x.isSelected; })
@@ -14248,7 +14388,7 @@ var Summary = function () {
14248
14388
  !voucher.isValid && voucher.isValidated && (React.createElement("div", { className: "info-message--error" }, translations.SUMMARY.VOUCHER_INVALID)))),
14249
14389
  React.createElement("div", { className: "form__row" },
14250
14390
  React.createElement("ul", { className: "info-message__voucher" }, !isEmpty(bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) &&
14251
- ((_b = bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) === null || _b === void 0 ? void 0 : _b.map(function (y) { return (React.createElement("li", null,
14391
+ ((_b = bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) === null || _b === void 0 ? void 0 : _b.map(function (y, i) { return (React.createElement("li", { key: i },
14252
14392
  React.createElement("div", { className: "info-message__voucher__list" },
14253
14393
  y,
14254
14394
  " ",
@@ -14288,9 +14428,15 @@ var Summary = function () {
14288
14428
  React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
14289
14429
  React.createElement("div", { className: "info-message__copy" },
14290
14430
  React.createElement("h5", null, translations.SUMMARY.VALIDATE_TITLE),
14291
- React.createElement("p", null, settings.isOffer
14292
- ? translations.SUMMARY.VALIDATE_TEXT_OFFER
14293
- : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
14431
+ settings.customValidateText
14432
+ ? (React.createElement("div", { dangerouslySetInnerHTML: {
14433
+ __html: settings.customValidateText,
14434
+ } }))
14435
+ : (React.createElement(React.Fragment, null,
14436
+ React.createElement("p", null, settings.isOffer
14437
+ ? translations.SUMMARY.VALIDATE_TEXT_OFFER
14438
+ : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
14439
+ settings.allowOption && (React.createElement("p", null, translations.SUMMARY.VALIDATE_TEXT_OPTION)))),
14294
14440
  checkboxes &&
14295
14441
  checkboxes.map(function (checkbox) { return (React.createElement("div", { className: "checkbox", key: checkbox.id },
14296
14442
  React.createElement("label", { className: "checkbox__label" },
@@ -14302,12 +14448,16 @@ var Summary = function () {
14302
14448
  } })))); }))))))),
14303
14449
  React.createElement("div", { className: "booking__navigator" },
14304
14450
  settings.skipRouter ? (React.createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) : (React.createElement(Link, { to: "".concat(settings.basePath).concat(settings.travellers.pathSuffix, "?").concat(bookingQueryString), title: translations.STEPS.PREVIOUS, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)),
14451
+ settings.allowOption && (React.createElement("button", { title: translations.STEPS.SUBMIT_OPTION, className: buildClassName([
14452
+ "cta",
14453
+ !userValidated && "cta--disabled",
14454
+ ]), disabled: !userValidated, name: "option" }, translations.STEPS.SUBMIT_OPTION)),
14305
14455
  React.createElement("button", { title: settings.isOffer
14306
14456
  ? translations.STEPS.SUBMIT_OFFER
14307
14457
  : translations.STEPS.SUBMIT_BOOKING, className: buildClassName([
14308
14458
  "cta",
14309
14459
  !userValidated && "cta--disabled",
14310
- ]), disabled: !userValidated }, settings.isOffer
14460
+ ]), disabled: !userValidated, name: "default" }, settings.isOffer
14311
14461
  ? translations.STEPS.SUBMIT_OFFER
14312
14462
  : translations.STEPS.SUBMIT_BOOKING))))));
14313
14463
  };
@@ -14519,15 +14669,21 @@ var validateForm = function (values, agentRequired, bookingType, translations) {
14519
14669
  return errors;
14520
14670
  };
14521
14671
 
14522
- function createTraveler(id) {
14523
- return { id: id, firstName: "", lastName: "", birthDate: "", gender: "" };
14672
+ function createTraveler(traveler, followNumber, personTranslation, isCompact) {
14673
+ if (isCompact) {
14674
+ return { id: traveler.id, firstName: personTranslation, lastName: "".concat(followNumber.number++), birthDate: "", gender: "", age: traveler.age || 30 };
14675
+ }
14676
+ else {
14677
+ return { id: traveler.id, firstName: "", lastName: "", birthDate: "", gender: "" };
14678
+ }
14524
14679
  }
14525
- function createInitialValues(formRooms, startDate, agentAdressId) {
14680
+ function createInitialValues(formRooms, startDate, agentAdressId, personTranslation, isCompact) {
14681
+ var followNumber = { number: 1 };
14526
14682
  var initialValues = {
14527
14683
  startDate: startDate,
14528
14684
  rooms: formRooms.map(function (r) { return ({
14529
- adults: r.adults.map(function (id) { return createTraveler(id); }),
14530
- children: r.children.map(function (id) { return createTraveler(id); }),
14685
+ adults: r.adults.map(function (x) { return createTraveler(x, followNumber, personTranslation, isCompact); }),
14686
+ children: r.children.map(function (x) { return createTraveler(x, followNumber, personTranslation, isCompact); }),
14531
14687
  }); }),
14532
14688
  mainBookerId: -1,
14533
14689
  street: "",
@@ -14561,7 +14717,8 @@ var TravelersForm = function () {
14561
14717
  var agents = useSelector(selectAgents);
14562
14718
  var agentAdressId = useSelector(selectAgentAdressId);
14563
14719
  var translations = useSelector(selectTranslations);
14564
- var initialValues = (_a = useSelector(selectTravelersFormValues)) !== null && _a !== void 0 ? _a : createInitialValues(formRooms, startDate, agentAdressId);
14720
+ var useCompactForm = !!settings.travellers.compactForm && !!settings.agentAdressId;
14721
+ var initialValues = (_a = useSelector(selectTravelersFormValues)) !== null && _a !== void 0 ? _a : createInitialValues(formRooms, startDate, agentAdressId, translations.TRAVELERS_FORM.PERSON, useCompactForm);
14565
14722
  var _e = useState((_b = settings.agentRequired) !== null && _b !== void 0 ? _b : false), showAgents = _e[0], setShowAgents = _e[1];
14566
14723
  var _f = useState(!settings.agentAdressId && !settings.hideAgentSelection), showAgentSelection = _f[0], setShowAgentSelection = _f[1];
14567
14724
  var typeaheadAgents = (_c = sortBy(agents === null || agents === void 0 ? void 0 : agents.map(function (x) { return ({
@@ -14570,22 +14727,37 @@ var TravelersForm = function () {
14570
14727
  text: "".concat(x.name, " (").concat(x.postalCode, " ").concat(x.location, ")"),
14571
14728
  }); }), "value")) !== null && _c !== void 0 ? _c : [];
14572
14729
  var _g = useState(typeaheadAgents), filteredAgents = _g[0], setFilteredAgents = _g[1];
14573
- var formik = useFormik({
14574
- initialValues: initialValues,
14575
- validate: function (values) {
14576
- return validateForm(values, settings.agentRequired, bookingType, translations);
14577
- },
14578
- onSubmit: function (values) {
14579
- dispatch(setFormValues(values));
14580
- dispatch(fetchPriceDetails());
14581
- if (settings.skipRouter) {
14582
- dispatch(setCurrentStep(SUMMARY_STEP));
14583
- }
14584
- else {
14585
- navigate("".concat(settings.basePath).concat(settings.summary.pathSuffix, "?").concat(bookingQueryString));
14586
- }
14587
- },
14588
- });
14730
+ var formik = useCompactForm
14731
+ ? useFormik({
14732
+ initialValues: initialValues,
14733
+ validate: function (values) { },
14734
+ onSubmit: function (values) {
14735
+ dispatch(setFormValues(values));
14736
+ dispatch(fetchPriceDetails());
14737
+ if (settings.skipRouter) {
14738
+ dispatch(setCurrentStep(SUMMARY_STEP));
14739
+ }
14740
+ else {
14741
+ navigate("".concat(settings.basePath).concat(settings.summary.pathSuffix, "?").concat(bookingQueryString));
14742
+ }
14743
+ },
14744
+ })
14745
+ : useFormik({
14746
+ initialValues: initialValues,
14747
+ validate: function (values) {
14748
+ return validateForm(values, settings.agentRequired, bookingType, translations);
14749
+ },
14750
+ onSubmit: function (values) {
14751
+ dispatch(setFormValues(values));
14752
+ dispatch(fetchPriceDetails());
14753
+ if (settings.skipRouter) {
14754
+ dispatch(setCurrentStep(SUMMARY_STEP));
14755
+ }
14756
+ else {
14757
+ navigate("".concat(settings.basePath).concat(settings.summary.pathSuffix, "?").concat(bookingQueryString));
14758
+ }
14759
+ },
14760
+ });
14589
14761
  useEffect(function () {
14590
14762
  dispatch(fetchPriceDetails());
14591
14763
  }, []);
@@ -14642,11 +14814,11 @@ var TravelersForm = function () {
14642
14814
  };
14643
14815
  var flatErrors = flat(formik.errors);
14644
14816
  var hasVisibleError = function (key) {
14645
- return get$2(formik.errors, key) && get$2(formik.touched, key);
14817
+ return get(formik.errors, key) && get(formik.touched, key);
14646
14818
  };
14647
14819
  return (React.createElement("form", { className: "form form__travelers", name: "booking--travellers", id: "booking--travellers", noValidate: true, onSubmit: formik.handleSubmit, onReset: formik.handleReset },
14648
- React.createElement("div", { className: "form__travelers__wrapper" },
14649
- formik.values.rooms.map(function (room, rIndex) { return (React.createElement("div", { key: rIndex },
14820
+ useCompactForm
14821
+ ? (React.createElement("div", { className: "form__travelers__wrapper" }, formik.values.rooms.map(function (room, rIndex) { return (React.createElement("div", { key: rIndex },
14650
14822
  React.createElement("div", { className: "form__region" },
14651
14823
  React.createElement("div", { className: "form__region-header" },
14652
14824
  React.createElement("h5", { className: "form__region-heading" },
@@ -14682,30 +14854,7 @@ var TravelersForm = function () {
14682
14854
  React.createElement("input", { type: "radio", name: "mainBookerId", onChange: handleMainBookerChange, onBlur: formik.handleBlur, value: travelerValues.id, checked: formik.values.mainBookerId === travelerValues.id, className: "radiobutton__input" }),
14683
14855
  translations.TRAVELERS_FORM.MAIN_BOOKER))),
14684
14856
  React.createElement("div", { className: "form__row" },
14685
- React.createElement("div", { className: buildClassName([
14686
- "form__group",
14687
- hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].gender")) && "form__group--error",
14688
- ]) },
14689
- React.createElement("label", { className: "form__label" },
14690
- translations.TRAVELERS_FORM.GENDER,
14691
- " *"),
14692
- React.createElement("div", { className: "radiobutton-group" },
14693
- React.createElement("div", { className: "radiobutton" },
14694
- React.createElement("label", { className: "radiobutton__label" },
14695
- React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "m", checked: travelerValues.gender === "m" }),
14696
- translations.TRAVELERS_FORM.MALE)),
14697
- React.createElement("div", { className: "radiobutton" },
14698
- React.createElement("label", { className: "radiobutton__label" },
14699
- React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "f", checked: travelerValues.gender === "f" }),
14700
- translations.TRAVELERS_FORM.FEMALE)),
14701
- React.createElement("div", { className: "radiobutton" },
14702
- React.createElement("label", { className: "radiobutton__label" },
14703
- React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "x", checked: travelerValues.gender === "x" }),
14704
- translations.TRAVELERS_FORM.OTHER))))),
14705
- React.createElement("div", { className: "form__row" },
14706
- React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.firstName }),
14707
- React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.lastName }),
14708
- React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.birthDate })))); }),
14857
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.age })))); }),
14709
14858
  room.children.map(function (travelerValues, index) { return (React.createElement("div", { className: "form__region", key: travelerValues.id },
14710
14859
  React.createElement("div", { className: "form__region-header" },
14711
14860
  React.createElement("h5", { className: "form__region-heading" },
@@ -14714,98 +14863,169 @@ var TravelersForm = function () {
14714
14863
  room.adults.length + index + 1),
14715
14864
  React.createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.CHILD)),
14716
14865
  React.createElement("div", { className: "form__row" },
14717
- React.createElement("div", { className: buildClassName([
14718
- "form__group",
14719
- hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].gender")) && "form__group--error",
14720
- ]) },
14721
- React.createElement("label", { className: "form__label" },
14722
- translations.TRAVELERS_FORM.GENDER,
14723
- " *"),
14724
- React.createElement("div", { className: "radiobutton-group" },
14725
- React.createElement("div", { className: "radiobutton" },
14726
- React.createElement("label", { className: "radiobutton__label" },
14727
- React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "m", checked: travelerValues.gender === "m" }),
14728
- translations.TRAVELERS_FORM.MALE)),
14729
- React.createElement("div", { className: "radiobutton" },
14730
- React.createElement("label", { className: "radiobutton__label" },
14731
- React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "f", checked: travelerValues.gender === "f" }),
14732
- translations.TRAVELERS_FORM.FEMALE)),
14866
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.age })))); }))); })))
14867
+ : (React.createElement(React.Fragment, null,
14868
+ React.createElement("div", { className: "form__travelers__wrapper" },
14869
+ formik.values.rooms.map(function (room, rIndex) { return (React.createElement("div", { key: rIndex },
14870
+ React.createElement("div", { className: "form__region" },
14871
+ React.createElement("div", { className: "form__region-header" },
14872
+ React.createElement("h5", { className: "form__region-heading" },
14873
+ translations.SHARED.ROOM,
14874
+ " ",
14875
+ rIndex + 1),
14876
+ React.createElement("p", { className: "form__region-label" }, compact([
14877
+ room.adults.length,
14878
+ room.adults.length === 1 &&
14879
+ " ".concat(translations.TRAVELERS_FORM.ADULT),
14880
+ room.adults.length > 1 &&
14881
+ " ".concat(translations.TRAVELERS_FORM.ADULTS),
14882
+ room.adults &&
14883
+ room.adults.length &&
14884
+ room.children &&
14885
+ room.children.length &&
14886
+ ", ",
14887
+ room.children.length,
14888
+ room.children.length === 1 &&
14889
+ " ".concat(translations.TRAVELERS_FORM.CHILD),
14890
+ room.children.length > 1 &&
14891
+ " ".concat(translations.TRAVELERS_FORM.CHILDREN),
14892
+ ]).join("")))),
14893
+ room.adults.map(function (travelerValues, index) { return (React.createElement("div", { className: "form__region", key: travelerValues.id },
14894
+ React.createElement("div", { className: "form__region-header" },
14895
+ React.createElement("h5", { className: "form__region-heading" },
14896
+ translations.TRAVELERS_FORM.TRAVELER,
14897
+ " ",
14898
+ index + 1),
14899
+ React.createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.ADULT),
14733
14900
  React.createElement("div", { className: "radiobutton" },
14734
14901
  React.createElement("label", { className: "radiobutton__label" },
14735
- React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "x", checked: travelerValues.gender === "x" }),
14736
- translations.TRAVELERS_FORM.OTHER))))),
14737
- React.createElement("div", { className: "form__row" },
14738
- React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.firstName }),
14739
- React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.lastName }),
14740
- React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.birthDate })))); }))); }),
14741
- bookingType != "b2b" ? (React.createElement("div", { className: "form__region" },
14742
- React.createElement("div", { className: "form__region-header" },
14743
- React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.MAIN_BOOKER),
14744
- React.createElement("p", { className: "form__region-label" }, compact([
14745
- compact([mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName, mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName]).join(" "),
14746
- (mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
14747
- format$1(parse(mainBooker.birthDate, "yyyy-MM-dd", new Date()), "dd-MM-yyyy"),
14748
- ]).join(", "))),
14749
- React.createElement(React.Fragment, null,
14750
- React.createElement("div", { className: "form__twocolumn" },
14751
- React.createElement("div", { className: "form__twocolumn-column" },
14902
+ React.createElement("input", { type: "radio", name: "mainBookerId", onChange: handleMainBookerChange, onBlur: formik.handleBlur, value: travelerValues.id, checked: formik.values.mainBookerId === travelerValues.id, className: "radiobutton__input" }),
14903
+ translations.TRAVELERS_FORM.MAIN_BOOKER))),
14752
14904
  React.createElement("div", { className: "form__row" },
14753
- React.createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.street }),
14754
- React.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.handleChange, onBlur: formik.handleBlur, value: formik.values.houseNumber }),
14755
- React.createElement(LabeledInput, { hasError: hasVisibleError("box"), extraClassName: "form__group--20", label: translations.TRAVELERS_FORM.POST_BOX, name: "box", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.box }))),
14756
- React.createElement("div", { className: "form__twocolumn-column" },
14905
+ React.createElement("div", { className: buildClassName([
14906
+ "form__group",
14907
+ hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].gender")) && "form__group--error",
14908
+ ]) },
14909
+ React.createElement("label", { className: "form__label" },
14910
+ translations.TRAVELERS_FORM.GENDER,
14911
+ " *"),
14912
+ React.createElement("div", { className: "radiobutton-group" },
14913
+ React.createElement("div", { className: "radiobutton" },
14914
+ React.createElement("label", { className: "radiobutton__label" },
14915
+ React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "m", checked: travelerValues.gender === "m" }),
14916
+ translations.TRAVELERS_FORM.MALE)),
14917
+ React.createElement("div", { className: "radiobutton" },
14918
+ React.createElement("label", { className: "radiobutton__label" },
14919
+ React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "f", checked: travelerValues.gender === "f" }),
14920
+ translations.TRAVELERS_FORM.FEMALE)),
14921
+ React.createElement("div", { className: "radiobutton" },
14922
+ React.createElement("label", { className: "radiobutton__label" },
14923
+ React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].adults[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "x", checked: travelerValues.gender === "x" }),
14924
+ translations.TRAVELERS_FORM.OTHER))))),
14757
14925
  React.createElement("div", { className: "form__row" },
14758
- React.createElement(LabeledInput, { hasError: hasVisibleError("zipCode"), extraClassName: "form__group--40 form__group--sm-20", label: translations.TRAVELERS_FORM.ZIPCODE, required: true, name: "zipCode", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.zipCode }),
14759
- React.createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.place }),
14760
- React.createElement(LabeledSelect, { hasError: hasVisibleError("country"), extraClassName: "form__group--sm-40", label: translations.TRAVELERS_FORM.COUNTRY, required: true, name: "country", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.country, options: [
14761
- {
14762
- key: "empty",
14763
- label: translations.TRAVELERS_FORM.SELECT_COUNTRY,
14764
- value: undefined,
14765
- },
14766
- {
14767
- key: "be",
14768
- value: "be",
14769
- label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM,
14770
- },
14771
- {
14772
- key: "nl",
14773
- value: "nl",
14774
- label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS,
14775
- },
14776
- {
14777
- key: "fr",
14778
- value: "fr",
14779
- label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE,
14780
- },
14781
- ] })))),
14926
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.firstName }),
14927
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.lastName }),
14928
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.birthDate })))); }),
14929
+ room.children.map(function (travelerValues, index) { return (React.createElement("div", { className: "form__region", key: travelerValues.id },
14930
+ React.createElement("div", { className: "form__region-header" },
14931
+ React.createElement("h5", { className: "form__region-heading" },
14932
+ translations.TRAVELERS_FORM.TRAVELER,
14933
+ " ",
14934
+ room.adults.length + index + 1),
14935
+ React.createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.CHILD)),
14936
+ React.createElement("div", { className: "form__row" },
14937
+ React.createElement("div", { className: buildClassName([
14938
+ "form__group",
14939
+ hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].gender")) && "form__group--error",
14940
+ ]) },
14941
+ React.createElement("label", { className: "form__label" },
14942
+ translations.TRAVELERS_FORM.GENDER,
14943
+ " *"),
14944
+ React.createElement("div", { className: "radiobutton-group" },
14945
+ React.createElement("div", { className: "radiobutton" },
14946
+ React.createElement("label", { className: "radiobutton__label" },
14947
+ React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "m", checked: travelerValues.gender === "m" }),
14948
+ translations.TRAVELERS_FORM.MALE)),
14949
+ React.createElement("div", { className: "radiobutton" },
14950
+ React.createElement("label", { className: "radiobutton__label" },
14951
+ React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "f", checked: travelerValues.gender === "f" }),
14952
+ translations.TRAVELERS_FORM.FEMALE)),
14953
+ React.createElement("div", { className: "radiobutton" },
14954
+ React.createElement("label", { className: "radiobutton__label" },
14955
+ React.createElement("input", { type: "radio", className: "radiobutton__input", name: "rooms[".concat(rIndex, "].children[").concat(index, "].gender"), onChange: formik.handleChange, onBlur: formik.handleBlur, value: "x", checked: travelerValues.gender === "x" }),
14956
+ translations.TRAVELERS_FORM.OTHER))))),
14957
+ React.createElement("div", { className: "form__row" },
14958
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.firstName }),
14959
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.lastName }),
14960
+ React.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.handleChange, onBlur: formik.handleBlur, value: travelerValues.birthDate })))); }))); }),
14961
+ bookingType != "b2b" ? (React.createElement("div", { className: "form__region" },
14962
+ React.createElement("div", { className: "form__region-header" },
14963
+ React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.MAIN_BOOKER),
14964
+ React.createElement("p", { className: "form__region-label" }, compact([
14965
+ compact([mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName, mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName]).join(" "),
14966
+ (mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
14967
+ format$1(parse(mainBooker.birthDate, "yyyy-MM-dd", new Date()), "dd-MM-yyyy"),
14968
+ ]).join(", "))),
14969
+ React.createElement(React.Fragment, null,
14970
+ React.createElement("div", { className: "form__twocolumn" },
14971
+ React.createElement("div", { className: "form__twocolumn-column" },
14972
+ React.createElement("div", { className: "form__row" },
14973
+ React.createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.street }),
14974
+ React.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.handleChange, onBlur: formik.handleBlur, value: formik.values.houseNumber }),
14975
+ React.createElement(LabeledInput, { hasError: hasVisibleError("box"), extraClassName: "form__group--20", label: translations.TRAVELERS_FORM.POST_BOX, name: "box", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.box }))),
14976
+ React.createElement("div", { className: "form__twocolumn-column" },
14977
+ React.createElement("div", { className: "form__row" },
14978
+ React.createElement(LabeledInput, { hasError: hasVisibleError("zipCode"), extraClassName: "form__group--40 form__group--sm-20", label: translations.TRAVELERS_FORM.ZIPCODE, required: true, name: "zipCode", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.zipCode }),
14979
+ React.createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.place }),
14980
+ React.createElement(LabeledSelect, { hasError: hasVisibleError("country"), extraClassName: "form__group--sm-40", label: translations.TRAVELERS_FORM.COUNTRY, required: true, name: "country", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.country, options: [
14981
+ {
14982
+ key: "empty",
14983
+ label: translations.TRAVELERS_FORM.SELECT_COUNTRY,
14984
+ value: undefined,
14985
+ },
14986
+ {
14987
+ key: "be",
14988
+ value: "be",
14989
+ label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM,
14990
+ },
14991
+ {
14992
+ key: "nl",
14993
+ value: "nl",
14994
+ label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS,
14995
+ },
14996
+ {
14997
+ key: "fr",
14998
+ value: "fr",
14999
+ label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE,
15000
+ },
15001
+ ] })))),
15002
+ React.createElement("div", { className: "form__row" },
15003
+ React.createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.phone }),
15004
+ React.createElement(LabeledInput, { type: "email", hasError: hasVisibleError("email"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.EMAIL, required: true, name: "email", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.email }),
15005
+ React.createElement(LabeledInput, { type: "email", hasError: hasVisibleError("emailConfirmation"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.REPEAT_EMAIL, required: true, name: "emailConfirmation", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.emailConfirmation }))))) : (React.createElement("div", { className: "form__region" },
15006
+ React.createElement("div", { className: "form__row" },
15007
+ React.createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.phone })))),
15008
+ showAgentSelection && (React.createElement("div", { className: "form__region" },
15009
+ React.createElement("div", { className: "form__region-header" },
15010
+ React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
15011
+ React.createElement("div", { className: "checkbox", id: "cbxChooseOffice" },
15012
+ React.createElement("label", { className: "checkbox__label" },
15013
+ React.createElement("input", { type: "checkbox", name: "booking--mainbooker", defaultChecked: showAgents, onClick: function () { return toggleAgent(!showAgents); }, className: "checkbox__input" }),
15014
+ translations.TRAVELERS_FORM.CHOOSE_OFFICE))),
15015
+ showAgents && (React.createElement("div", { className: "form__row form__row--choose-office" },
15016
+ React.createElement("div", { className: buildClassName([
15017
+ "form__group",
15018
+ "form__group--icon",
15019
+ hasVisibleError("travelAgentId") && "form__group--error",
15020
+ ]) },
15021
+ React.createElement(TypeAheadInput, { value: formik.values.travelAgentName, options: filteredAgents, onChange: handleAgentChange, onSelect: handleAgentSelect, onClear: handleAgentClear, name: "travelAgentName", placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER }))))))),
15022
+ Object.keys(flatErrors).length > 0 && (React.createElement("div", { className: "form__region form__region--errors" },
14782
15023
  React.createElement("div", { className: "form__row" },
14783
- React.createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.phone }),
14784
- React.createElement(LabeledInput, { type: "email", hasError: hasVisibleError("email"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.EMAIL, required: true, name: "email", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.email }),
14785
- React.createElement(LabeledInput, { type: "email", hasError: hasVisibleError("emailConfirmation"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.REPEAT_EMAIL, required: true, name: "emailConfirmation", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.emailConfirmation }))))) : (React.createElement("div", { className: "form__region" },
14786
- React.createElement("div", { className: "form__row" },
14787
- React.createElement(LabeledInput, { hasError: hasVisibleError("phone"), extraClassName: "form__group--md-33", label: translations.TRAVELERS_FORM.PHONE, required: true, name: "phone", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.phone })))),
14788
- showAgentSelection && (React.createElement("div", { className: "form__region" },
14789
- React.createElement("div", { className: "form__region-header" },
14790
- React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
14791
- React.createElement("div", { className: "checkbox", id: "cbxChooseOffice" },
14792
- React.createElement("label", { className: "checkbox__label" },
14793
- React.createElement("input", { type: "checkbox", name: "booking--mainbooker", defaultChecked: showAgents, onClick: function () { return toggleAgent(!showAgents); }, className: "checkbox__input" }),
14794
- translations.TRAVELERS_FORM.CHOOSE_OFFICE))),
14795
- showAgents && (React.createElement("div", { className: "form__row form__row--choose-office" },
14796
- React.createElement("div", { className: buildClassName([
14797
- "form__group",
14798
- "form__group--icon",
14799
- hasVisibleError("travelAgentId") && "form__group--error",
14800
- ]) },
14801
- React.createElement(TypeAheadInput, { value: formik.values.travelAgentName, options: filteredAgents, onChange: handleAgentChange, onSelect: handleAgentSelect, onClear: handleAgentClear, name: "travelAgentName", placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER }))))))),
14802
- Object.keys(flatErrors).length > 0 && (React.createElement("div", { className: "form__region form__region--errors" },
14803
- React.createElement("div", { className: "form__row" },
14804
- React.createElement("div", { className: "form__group" },
14805
- React.createElement("p", { className: "form__error-heading" },
14806
- translations.TRAVELERS_FORM.VALIDATION_MESSAGE,
14807
- ":"),
14808
- React.createElement("ul", { className: "list" }, Object.keys(flatErrors).map(function (key) { return (React.createElement("li", { key: key }, get$2(flatErrors, key))); })))))),
15024
+ React.createElement("div", { className: "form__group" },
15025
+ React.createElement("p", { className: "form__error-heading" },
15026
+ translations.TRAVELERS_FORM.VALIDATION_MESSAGE,
15027
+ ":"),
15028
+ React.createElement("ul", { className: "list" }, Object.keys(flatErrors).map(function (key) { return (React.createElement("li", { key: key }, get(flatErrors, key))); })))))))),
14809
15029
  React.createElement("div", { className: "booking__navigator" },
14810
15030
  settings.skipRouter ? (React.createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) : (React.createElement(Link, { to: "".concat(settings.basePath).concat(settings.options.pathSuffix, "?").concat(bookingQueryString), title: translations.STEPS.PREVIOUS, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)),
14811
15031
  React.createElement("button", { type: "submit", title: translations.STEPS.NEXT, className: "cta" }, translations.STEPS.NEXT))));
@@ -14813,7 +15033,7 @@ var TravelersForm = function () {
14813
15033
 
14814
15034
  var Booking = function (_a) {
14815
15035
  var productCode = _a.productCode, productName = _a.productName, thumbnailUrl = _a.thumbnailUrl;
14816
- var _b = 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;
15036
+ var _b = 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;
14817
15037
  var dispatch = useAppDispatch();
14818
15038
  var location = useLocation();
14819
15039
  var productAttributes = useSelector(selectProductAttributes);
@@ -14829,11 +15049,11 @@ var Booking = function (_a) {
14829
15049
  dispatch(setGeneratePaymentUrl(generatePaymentUrl !== null && generatePaymentUrl !== void 0 ? generatePaymentUrl : false));
14830
15050
  }, [skipPaymentWithAgent, generatePaymentUrl]);
14831
15051
  useEffect(function () {
14832
- var _a;
15052
+ var _a, _b;
14833
15053
  var params = new URLSearchParams(location.search);
14834
15054
  var startDate = getDateFromParams(params, "startDate");
14835
15055
  var endDate = getDateFromParams(params, "endDate");
14836
- var catalog = getNumberFromParams(params, "catalog");
15056
+ var catalogueId = (_a = getNumberFromParams(params, "catalogueId")) !== null && _a !== void 0 ? _a : getNumberFromParams(params, "catalog");
14837
15057
  var rooms = getRoomsFromParams(params, "rooms");
14838
15058
  var flight = getFlightsFromParams(params, "flight");
14839
15059
  var flightRouteId = getStringFromParams(params, "flightRouteId");
@@ -14841,7 +15061,7 @@ var Booking = function (_a) {
14841
15061
  var allotmentName = getStringFromParams(params, "allotmentName");
14842
15062
  var allotmentIds = getNumbersFromParams(params, "allotmentId");
14843
15063
  var tourCode = getStringFromParams(params, "tourCode");
14844
- var bookingNumber = (_a = params.get("bookingNr")) !== null && _a !== void 0 ? _a : undefined;
15064
+ var bookingNumber = (_b = params.get("bookingNr")) !== null && _b !== void 0 ? _b : undefined;
14845
15065
  if (typeof window !== "undefined") {
14846
15066
  window.scrollTo(0, 0);
14847
15067
  }
@@ -14851,12 +15071,12 @@ var Booking = function (_a) {
14851
15071
  }
14852
15072
  if (!isNil(startDate) &&
14853
15073
  !isNil(endDate) &&
14854
- !isNil(catalog) &&
15074
+ !isNil(catalogueId) &&
14855
15075
  !isNil(rooms)) {
14856
15076
  dispatch(setBookingAttributes({
14857
15077
  startDate: startDate,
14858
15078
  endDate: endDate,
14859
- catalog: catalog,
15079
+ catalogueId: catalogueId,
14860
15080
  rooms: rooms,
14861
15081
  flight: flight,
14862
15082
  includeFlights: includeFlights,
@@ -14868,7 +15088,7 @@ var Booking = function (_a) {
14868
15088
  }));
14869
15089
  }
14870
15090
  else {
14871
- console.error("Failure when setting booking attributes", startDate, endDate, catalog, rooms);
15091
+ console.error("Failure when setting booking attributes", startDate, endDate, catalogueId, rooms);
14872
15092
  }
14873
15093
  }, [location.search, setBookingAttributes, setBookingNumber, includeFlights]);
14874
15094
  useEffect(function () {
@@ -14897,9 +15117,9 @@ var Booking = function (_a) {
14897
15117
  console.error("Failure when setting product attributes", productCode, productName);
14898
15118
  }
14899
15119
  }, [productCode, productName, setProductAttributes]);
14900
- var getTranslations = function () { return __awaiter$1(void 0, void 0, void 0, function () {
15120
+ var getTranslations = function () { return __awaiter(void 0, void 0, void 0, function () {
14901
15121
  var translations, _a;
14902
- return __generator$1(this, function (_b) {
15122
+ return __generator(this, function (_b) {
14903
15123
  switch (_b.label) {
14904
15124
  case 0:
14905
15125
  translations = translationFiles === null || translationFiles === void 0 ? void 0 : translationFiles.map(function (x) {
@@ -14918,9 +15138,9 @@ var Booking = function (_a) {
14918
15138
  });
14919
15139
  }); };
14920
15140
  useEffect(function () {
14921
- var loadTranslations = function () { return __awaiter$1(void 0, void 0, void 0, function () {
15141
+ var loadTranslations = function () { return __awaiter(void 0, void 0, void 0, function () {
14922
15142
  var translations;
14923
- return __generator$1(this, function (_a) {
15143
+ return __generator(this, function (_a) {
14924
15144
  switch (_a.label) {
14925
15145
  case 0: return [4 /*yield*/, getTranslations()];
14926
15146
  case 1:
@@ -14996,9 +15216,11 @@ var Booking = function (_a) {
14996
15216
  !packageDetails && !bookingNumber && !isUnvailable && (React.createElement("div", { className: "booking" },
14997
15217
  React.createElement("div", { className: "booking__loader" },
14998
15218
  loaderComponent,
14999
- React.createElement("p", { className: "booking__loader-text" }, isOffer
15000
- ? translations.MAIN.PREPARING_OFFER
15001
- : translations.MAIN.PREPARING_BOOKING)))),
15219
+ React.createElement("p", { className: "booking__loader-text" }, allowOption
15220
+ ? translations.MAIN.PREPARING_DOSSIER
15221
+ : isOffer
15222
+ ? translations.MAIN.PREPARING_OFFER
15223
+ : translations.MAIN.PREPARING_BOOKING)))),
15002
15224
  isUnvailable && (React.createElement("div", { className: "booking" },
15003
15225
  React.createElement("div", { className: "booking__loader" },
15004
15226
  React.createElement("p", { className: "booking__loader-text" }, translations.MAIN.PRODUCT_UNAVAILABLE))))));