@qite/tide-booking-component 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build-cjs/booking-wizard/components/print-offer-button.d.ts +17 -0
- package/build/build-cjs/booking-wizard/features/flight-options/flight-option-flight.d.ts +1 -1
- package/build/build-cjs/booking-wizard/features/flight-options/flight-option.d.ts +1 -1
- package/build/build-cjs/booking-wizard/types.d.ts +13 -0
- package/build/build-cjs/booking-wizard/use-offer-printer.d.ts +13 -0
- package/build/build-cjs/index.js +1392 -754
- package/build/build-cjs/shared/utils/localization-util.d.ts +6 -0
- package/build/build-cjs/shared/utils/tide-api-utils.d.ts +1 -0
- package/build/build-esm/booking-wizard/components/print-offer-button.d.ts +17 -0
- package/build/build-esm/booking-wizard/features/flight-options/flight-option-flight.d.ts +1 -1
- package/build/build-esm/booking-wizard/features/flight-options/flight-option.d.ts +1 -1
- package/build/build-esm/booking-wizard/types.d.ts +13 -0
- package/build/build-esm/booking-wizard/use-offer-printer.d.ts +13 -0
- package/build/build-esm/index.js +1394 -756
- package/build/build-esm/shared/utils/localization-util.d.ts +6 -0
- package/build/build-esm/shared/utils/tide-api-utils.d.ts +1 -0
- package/package.json +4 -6
- package/src/booking-product/components/age-select.tsx +2 -8
- package/src/booking-product/components/amount-input.tsx +36 -22
- package/src/booking-product/components/date-range-picker/calendar-day.tsx +5 -1
- package/src/booking-product/components/date-range-picker/calendar.tsx +9 -7
- package/src/booking-product/components/date-range-picker/index.tsx +20 -5
- package/src/booking-product/components/dates.tsx +22 -18
- package/src/booking-product/components/footer.tsx +40 -41
- package/src/booking-product/components/header.tsx +44 -33
- package/src/booking-product/components/icon.tsx +188 -145
- package/src/booking-product/components/product.tsx +66 -33
- package/src/booking-product/components/rooms.tsx +70 -55
- package/src/booking-product/index.tsx +9 -9
- package/src/booking-product/settings-context.ts +3 -3
- package/src/booking-product/types.ts +3 -3
- package/src/booking-product/utils/api.ts +4 -4
- package/src/booking-product/utils/price.ts +5 -3
- package/src/booking-wizard/components/icon.tsx +428 -229
- package/src/booking-wizard/components/multi-range-filter.tsx +15 -15
- package/src/booking-wizard/components/print-offer-button.tsx +66 -0
- package/src/booking-wizard/components/step-indicator.tsx +1 -1
- package/src/booking-wizard/declarations.d.ts +2 -2
- package/src/booking-wizard/features/booking/api.ts +9 -5
- package/src/booking-wizard/features/booking/booking-self-contained.tsx +46 -19
- package/src/booking-wizard/features/booking/booking-slice.ts +108 -49
- package/src/booking-wizard/features/booking/booking.tsx +64 -57
- package/src/booking-wizard/features/booking/selectors.ts +45 -22
- package/src/booking-wizard/features/confirmation/confirmation.tsx +8 -5
- package/src/booking-wizard/features/error/error.tsx +6 -3
- package/src/booking-wizard/features/flight-options/flight-filter.tsx +147 -72
- package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +53 -21
- package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +34 -19
- package/src/booking-wizard/features/flight-options/flight-option.tsx +37 -22
- package/src/booking-wizard/features/flight-options/flight-utils.ts +220 -105
- package/src/booking-wizard/features/flight-options/index.tsx +62 -43
- package/src/booking-wizard/features/price-details/price-details-slice.ts +11 -4
- package/src/booking-wizard/features/product-options/no-options.tsx +1 -1
- package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +48 -50
- package/src/booking-wizard/features/product-options/option-booking-group.tsx +9 -3
- package/src/booking-wizard/features/product-options/option-item.tsx +1 -2
- package/src/booking-wizard/features/product-options/option-pax-card.tsx +39 -26
- package/src/booking-wizard/features/product-options/option-pax-group.tsx +9 -3
- package/src/booking-wizard/features/product-options/option-room.tsx +23 -16
- package/src/booking-wizard/features/product-options/option-unit-group.tsx +9 -3
- package/src/booking-wizard/features/product-options/option-units-card.tsx +68 -57
- package/src/booking-wizard/features/product-options/options-form.tsx +250 -124
- package/src/booking-wizard/features/room-options/index.tsx +27 -12
- package/src/booking-wizard/features/room-options/room-utils.ts +97 -50
- package/src/booking-wizard/features/room-options/room.tsx +56 -20
- package/src/booking-wizard/features/room-options/traveler-rooms.tsx +34 -22
- package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +1 -1
- package/src/booking-wizard/features/sidebar/sidebar-util.ts +1 -1
- package/src/booking-wizard/features/sidebar/sidebar.tsx +173 -155
- package/src/booking-wizard/features/summary/summary-flight.tsx +1 -1
- package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +45 -33
- package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +41 -29
- package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +43 -31
- package/src/booking-wizard/features/summary/summary.tsx +325 -294
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +421 -422
- package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +1 -1
- package/src/booking-wizard/features/travelers-form/validate-form.ts +1 -1
- package/src/booking-wizard/settings-context.ts +7 -0
- package/src/booking-wizard/types.ts +19 -7
- package/src/booking-wizard/use-offer-printer.ts +136 -0
- package/src/index.ts +0 -1
- package/src/shared/translations/en-GB.json +237 -0
- package/src/shared/translations/fr-BE.json +7 -2
- package/src/shared/translations/nl-BE.json +5 -0
- package/src/shared/types.ts +1 -1
- package/src/shared/utils/localization-util.ts +9 -3
- package/src/shared/utils/query-string-util.ts +6 -3
- package/src/shared/utils/tide-api-utils.ts +1 -1
- package/styles/booking-product-variables.scss +174 -68
- package/styles/booking-product.scss +294 -288
- package/styles/booking-wizard-variables.scss +872 -529
- package/styles/booking-wizard.scss +35 -2
- package/styles/components/_base.scss +3 -2
- package/styles/components/_booking.scss +149 -679
- package/styles/components/_button.scss +55 -2
- package/styles/components/_checkbox.scss +7 -3
- package/styles/components/_cta.scss +86 -11
- package/styles/components/_date-list.scss +41 -0
- package/styles/components/_date-range-picker.scss +3 -3
- package/styles/components/_decrement-increment.scss +1 -3
- package/styles/components/_dropdown.scss +2 -4
- package/styles/components/_flight-option.scss +454 -414
- package/styles/components/_form.scss +1266 -77
- package/styles/components/_info-message.scss +71 -0
- package/styles/components/_input.scss +25 -0
- package/styles/components/_list.scss +111 -6
- package/styles/components/_loader.scss +4 -3
- package/styles/components/_mixins.scss +30 -10
- package/styles/components/_placeholders.scss +11 -11
- package/styles/components/_pricing-summary.scss +40 -2
- package/styles/components/_qsm.scss +1 -4
- package/styles/components/_radiobutton.scss +170 -0
- package/styles/components/_select-wrapper.scss +18 -4
- package/styles/components/_spinner.scss +29 -0
- package/styles/components/_step-indicators.scss +14 -6
- package/styles/components/_table.scss +9 -9
- package/styles/components/_tree.scss +31 -41
- package/styles/components/_typeahead.scss +281 -0
- package/styles/components/_variables.scss +15 -15
package/build/build-esm/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
import React, { useLayoutEffect as useLayoutEffect$1, useEffect, useContext, useState, useRef } from 'react';
|
|
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
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';
|
|
6
|
-
import { nlBE, fr } from 'date-fns/locale';
|
|
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';
|
|
9
9
|
import { navigate, Link, useLocation, Router } from '@reach/router';
|
|
@@ -49,8 +49,8 @@ function __awaiter$1(thisArg, _arguments, P, generator) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function __generator$1(thisArg, body) {
|
|
52
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
53
|
-
return g =
|
|
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
|
+
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]); }; }
|
|
55
55
|
function step(op) {
|
|
56
56
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -91,7 +91,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
91
91
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
-
var STEPS$
|
|
94
|
+
var STEPS$2 = {
|
|
95
95
|
PERSONAL_DETAILS: "Coordonnées personnelles",
|
|
96
96
|
EXTRA_OPTIONS: "Options de voyage",
|
|
97
97
|
SUMMARY: "Récapitulatif",
|
|
@@ -105,11 +105,11 @@ var STEPS$1 = {
|
|
|
105
105
|
ROOM_OPTIONS: "Options de chambre",
|
|
106
106
|
FLIGHT_OPTIONS: "Options de vol"
|
|
107
107
|
};
|
|
108
|
-
var INPUT$
|
|
108
|
+
var INPUT$2 = {
|
|
109
109
|
INCREASE: "Augmenter",
|
|
110
110
|
DECREASE: "Diminuer"
|
|
111
111
|
};
|
|
112
|
-
var FLIGHTS_FORM$
|
|
112
|
+
var FLIGHTS_FORM$2 = {
|
|
113
113
|
OUTWARD_FLIGHTS: "Vols aller",
|
|
114
114
|
OUTWARD_FLIGHT: "Vol aller",
|
|
115
115
|
RETURN_FLIGHTS: "Vols retour",
|
|
@@ -142,7 +142,7 @@ var FLIGHTS_FORM$1 = {
|
|
|
142
142
|
FLIGHTS_FOUND_2: "vols",
|
|
143
143
|
FLIGHTS_FOUND_3: "trouvés"
|
|
144
144
|
};
|
|
145
|
-
var PRODUCT$
|
|
145
|
+
var PRODUCT$2 = {
|
|
146
146
|
STAY_INCLUDED: "Séjour inclus",
|
|
147
147
|
FLIGHT_INCLUDED: "Vol inclus",
|
|
148
148
|
TRANSFER_INCLUDED: "Transfert inclus",
|
|
@@ -166,12 +166,12 @@ var PRODUCT$1 = {
|
|
|
166
166
|
TRAVEL_PERIOD: "Période de voyage",
|
|
167
167
|
CLOSE: "Fermer"
|
|
168
168
|
};
|
|
169
|
-
var MAIN$
|
|
169
|
+
var MAIN$2 = {
|
|
170
170
|
PREPARING_BOOKING: "Veuillez patienter, nous préparons votre réservation",
|
|
171
171
|
PREPARING_OFFER: "Veuillez patienter, nous préparons votre devis",
|
|
172
172
|
PRODUCT_UNAVAILABLE: "Produit non disponible"
|
|
173
173
|
};
|
|
174
|
-
var SHARED$
|
|
174
|
+
var SHARED$2 = {
|
|
175
175
|
ROOM: "Chambre",
|
|
176
176
|
ROOMS: "Chambres",
|
|
177
177
|
TOTAL_PRICE: "Prix total",
|
|
@@ -180,7 +180,7 @@ var SHARED$1 = {
|
|
|
180
180
|
SELECT: "Sélectionner",
|
|
181
181
|
SELECTED: "Sélectionné"
|
|
182
182
|
};
|
|
183
|
-
var SIDEBAR$
|
|
183
|
+
var SIDEBAR$2 = {
|
|
184
184
|
OVERVIEW: "Aperçu",
|
|
185
185
|
SLIDE_TOTAL_PRICE: "Montant total : ",
|
|
186
186
|
SLIDE_DEPOSIT: "Acompte à payer : ",
|
|
@@ -214,7 +214,7 @@ var SIDEBAR$1 = {
|
|
|
214
214
|
ON_REQUEST: "Sur demande",
|
|
215
215
|
CHANGES: "correspondances"
|
|
216
216
|
};
|
|
217
|
-
var TRAVELERS_FORM$
|
|
217
|
+
var TRAVELERS_FORM$2 = {
|
|
218
218
|
TRAVELER: "Voyageur",
|
|
219
219
|
ADULT: "adulte",
|
|
220
220
|
ADULTS: "adultes",
|
|
@@ -260,7 +260,7 @@ var TRAVELERS_FORM$1 = {
|
|
|
260
260
|
AGENT_IS_REQUIRED: "Agent de voyage requis"
|
|
261
261
|
}
|
|
262
262
|
};
|
|
263
|
-
var OPTIONS_FORM$
|
|
263
|
+
var OPTIONS_FORM$2 = {
|
|
264
264
|
NO_OPTIONS_TITLE: "Aucune option",
|
|
265
265
|
NO_OPTIONS_MESSAGE: "Ce voyage n'a pas d'options supplémentaires.",
|
|
266
266
|
UNIT_TITLE: "Groupe",
|
|
@@ -274,12 +274,12 @@ var OPTIONS_FORM$1 = {
|
|
|
274
274
|
PER_UNIT_TITLE: "Sélectionner les options par groupe",
|
|
275
275
|
NONE: "Aucune"
|
|
276
276
|
};
|
|
277
|
-
var ROOM_OPTIONS_FORM$
|
|
277
|
+
var ROOM_OPTIONS_FORM$2 = {
|
|
278
278
|
TRAVELER_GROUP: "Groupe de voyageurs",
|
|
279
279
|
ALTERNATIVES_TRAVELER_GROUP: "Options de chambre alternatives pour le groupe de voyageurs",
|
|
280
280
|
SHOW_ALTERNATIVES: "Afficher les options de chambre alternatives"
|
|
281
281
|
};
|
|
282
|
-
var SUMMARY$
|
|
282
|
+
var SUMMARY$2 = {
|
|
283
283
|
PERSONAL_DETAILS: "Coordonnées personnelles",
|
|
284
284
|
TRAVELERS: "voyageurs",
|
|
285
285
|
TRAVELER: "voyageur",
|
|
@@ -300,7 +300,7 @@ var SUMMARY$1 = {
|
|
|
300
300
|
VOUCHER_VALID: "Bon valide",
|
|
301
301
|
VOUCHER_INVALID: "Bon invalide"
|
|
302
302
|
};
|
|
303
|
-
var CONFIRMATION$
|
|
303
|
+
var CONFIRMATION$2 = {
|
|
304
304
|
TITLE_TEXT_OFFER: "Votre devis numéro {0} a été demandé",
|
|
305
305
|
TITLE_TEXT_BOOKING: "Votre réservation avec le numéro {0} est confirmée",
|
|
306
306
|
MESSAGE_TEXT1: "Votre voyage de rêve est maintenant très proche.",
|
|
@@ -312,7 +312,7 @@ var CONFIRMATION$1 = {
|
|
|
312
312
|
QUESTIONS_ALT: "Contactez-nous",
|
|
313
313
|
MAIL_SUBJECT: "Infos réservation"
|
|
314
314
|
};
|
|
315
|
-
var ERROR$
|
|
315
|
+
var ERROR$2 = {
|
|
316
316
|
TRY_AGAIN: "Réessayez de réserver",
|
|
317
317
|
MESSAGE_TEXT1: "Une erreur s'est produite lors de la confirmation de votre voyage.",
|
|
318
318
|
MESSAGE_TEXT2: "Cliquez ci-dessous pour réessayer.",
|
|
@@ -321,23 +321,29 @@ var ERROR$1 = {
|
|
|
321
321
|
ERROR_TEXT3: ".",
|
|
322
322
|
ERROR_ALT: "Contactez-nous"
|
|
323
323
|
};
|
|
324
|
+
var PRINT_OFFER_BUTTON$2 = {
|
|
325
|
+
LABEL_IDLE: "Imprimer le devis",
|
|
326
|
+
LABEL_CREATING: "Génération du devis…",
|
|
327
|
+
LABEL_PRINTING: "Génération du PDF…"
|
|
328
|
+
};
|
|
324
329
|
var frJson = {
|
|
325
|
-
STEPS: STEPS$
|
|
326
|
-
INPUT: INPUT$
|
|
327
|
-
FLIGHTS_FORM: FLIGHTS_FORM$
|
|
328
|
-
PRODUCT: PRODUCT$
|
|
329
|
-
MAIN: MAIN$
|
|
330
|
-
SHARED: SHARED$
|
|
331
|
-
SIDEBAR: SIDEBAR$
|
|
332
|
-
TRAVELERS_FORM: TRAVELERS_FORM$
|
|
333
|
-
OPTIONS_FORM: OPTIONS_FORM$
|
|
334
|
-
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$
|
|
335
|
-
SUMMARY: SUMMARY$
|
|
336
|
-
CONFIRMATION: CONFIRMATION$
|
|
337
|
-
ERROR: ERROR$
|
|
330
|
+
STEPS: STEPS$2,
|
|
331
|
+
INPUT: INPUT$2,
|
|
332
|
+
FLIGHTS_FORM: FLIGHTS_FORM$2,
|
|
333
|
+
PRODUCT: PRODUCT$2,
|
|
334
|
+
MAIN: MAIN$2,
|
|
335
|
+
SHARED: SHARED$2,
|
|
336
|
+
SIDEBAR: SIDEBAR$2,
|
|
337
|
+
TRAVELERS_FORM: TRAVELERS_FORM$2,
|
|
338
|
+
OPTIONS_FORM: OPTIONS_FORM$2,
|
|
339
|
+
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$2,
|
|
340
|
+
SUMMARY: SUMMARY$2,
|
|
341
|
+
CONFIRMATION: CONFIRMATION$2,
|
|
342
|
+
ERROR: ERROR$2,
|
|
343
|
+
PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$2
|
|
338
344
|
};
|
|
339
345
|
|
|
340
|
-
var STEPS = {
|
|
346
|
+
var STEPS$1 = {
|
|
341
347
|
PERSONAL_DETAILS: "Persoonlijke gegevens",
|
|
342
348
|
EXTRA_OPTIONS: "Extra opties",
|
|
343
349
|
SUMMARY: "Overzicht",
|
|
@@ -351,11 +357,11 @@ var STEPS = {
|
|
|
351
357
|
ROOM_OPTIONS: "Kamer opties",
|
|
352
358
|
FLIGHT_OPTIONS: "Vlucht opties"
|
|
353
359
|
};
|
|
354
|
-
var INPUT = {
|
|
360
|
+
var INPUT$1 = {
|
|
355
361
|
INCREASE: "Verhogen",
|
|
356
362
|
DECREASE: "Verminderen"
|
|
357
363
|
};
|
|
358
|
-
var FLIGHTS_FORM = {
|
|
364
|
+
var FLIGHTS_FORM$1 = {
|
|
359
365
|
OUTWARD_FLIGHTS: "Heenvluchten",
|
|
360
366
|
OUTWARD_FLIGHT: "Heenvlucht",
|
|
361
367
|
RETURN_FLIGHTS: "Retourvluchten",
|
|
@@ -388,7 +394,7 @@ var FLIGHTS_FORM = {
|
|
|
388
394
|
FLIGHTS_FOUND_2: "vluchten",
|
|
389
395
|
FLIGHTS_FOUND_3: "gevonden"
|
|
390
396
|
};
|
|
391
|
-
var PRODUCT = {
|
|
397
|
+
var PRODUCT$1 = {
|
|
392
398
|
STAY_INCLUDED: "Inclusief verblijf",
|
|
393
399
|
FLIGHT_INCLUDED: "Inclusief vlucht",
|
|
394
400
|
TRANSFER_INCLUDED: "Inclusief transfer",
|
|
@@ -412,12 +418,12 @@ var PRODUCT = {
|
|
|
412
418
|
TRAVEL_PERIOD: "Reisperiode",
|
|
413
419
|
CLOSE: "Sluiten"
|
|
414
420
|
};
|
|
415
|
-
var MAIN = {
|
|
421
|
+
var MAIN$1 = {
|
|
416
422
|
PREPARING_BOOKING: "Even geduld, we bereiden uw boeking voor",
|
|
417
423
|
PREPARING_OFFER: "Even geduld, we bereiden uw offerte voor",
|
|
418
424
|
PRODUCT_UNAVAILABLE: "Product niet beschikbaar"
|
|
419
425
|
};
|
|
420
|
-
var SHARED = {
|
|
426
|
+
var SHARED$1 = {
|
|
421
427
|
ROOM: "Kamer",
|
|
422
428
|
ROOMS: "Kamers",
|
|
423
429
|
TOTAL_PRICE: "Totale prijs",
|
|
@@ -426,7 +432,7 @@ var SHARED = {
|
|
|
426
432
|
SELECT: "Selecteer",
|
|
427
433
|
SELECTED: "Geselecteerd"
|
|
428
434
|
};
|
|
429
|
-
var SIDEBAR = {
|
|
435
|
+
var SIDEBAR$1 = {
|
|
430
436
|
OVERVIEW: "Overzicht",
|
|
431
437
|
SLIDE_TOTAL_PRICE: "Totaalbedrag: ",
|
|
432
438
|
SLIDE_DEPOSIT: "Te betalen voorschot: ",
|
|
@@ -460,7 +466,7 @@ var SIDEBAR = {
|
|
|
460
466
|
ON_REQUEST: "Op aanvraag",
|
|
461
467
|
CHANGES: "overstappen"
|
|
462
468
|
};
|
|
463
|
-
var TRAVELERS_FORM = {
|
|
469
|
+
var TRAVELERS_FORM$1 = {
|
|
464
470
|
TRAVELER: "Reiziger",
|
|
465
471
|
ADULT: "volwassene",
|
|
466
472
|
ADULTS: "volwassenen",
|
|
@@ -506,7 +512,7 @@ var TRAVELERS_FORM = {
|
|
|
506
512
|
AGENT_IS_REQUIRED: "Reisagent is verplicht"
|
|
507
513
|
}
|
|
508
514
|
};
|
|
509
|
-
var OPTIONS_FORM = {
|
|
515
|
+
var OPTIONS_FORM$1 = {
|
|
510
516
|
NO_OPTIONS_TITLE: "Geen opties",
|
|
511
517
|
NO_OPTIONS_MESSAGE: "Deze reis heeft geen bijkomende opties.",
|
|
512
518
|
UNIT_TITLE: "Gezelschap",
|
|
@@ -520,12 +526,12 @@ var OPTIONS_FORM = {
|
|
|
520
526
|
PER_UNIT_TITLE: "Opties per gezelschap selecteren",
|
|
521
527
|
NONE: "Geen"
|
|
522
528
|
};
|
|
523
|
-
var ROOM_OPTIONS_FORM = {
|
|
529
|
+
var ROOM_OPTIONS_FORM$1 = {
|
|
524
530
|
TRAVELER_GROUP: "Reisgezelschap",
|
|
525
531
|
ALTERNATIVES_TRAVELER_GROUP: "Alternatieve kameropties voor reisgezelschap",
|
|
526
532
|
SHOW_ALTERNATIVES: "Toon alternatieve kameropties"
|
|
527
533
|
};
|
|
528
|
-
var SUMMARY = {
|
|
534
|
+
var SUMMARY$1 = {
|
|
529
535
|
PERSONAL_DETAILS: "Persoonlijke gegevens",
|
|
530
536
|
TRAVELERS: "reizigers",
|
|
531
537
|
TRAVELER: "reiziger",
|
|
@@ -546,7 +552,7 @@ var SUMMARY = {
|
|
|
546
552
|
VOUCHER_VALID: "Voucher is geldig",
|
|
547
553
|
VOUCHER_INVALID: "Voucher is niet geldig"
|
|
548
554
|
};
|
|
549
|
-
var CONFIRMATION = {
|
|
555
|
+
var CONFIRMATION$1 = {
|
|
550
556
|
TITLE_TEXT_OFFER: "Je offerte met nummer {0} is aangevraagd",
|
|
551
557
|
TITLE_TEXT_BOOKING: "Je boeking met nummer {0} is bevestigd",
|
|
552
558
|
MESSAGE_TEXT1: "Jouw droomreis komt nu heel dichtbij.",
|
|
@@ -558,7 +564,7 @@ var CONFIRMATION = {
|
|
|
558
564
|
QUESTIONS_ALT: "Contacteer ons",
|
|
559
565
|
MAIL_SUBJECT: "Boeking info"
|
|
560
566
|
};
|
|
561
|
-
var ERROR = {
|
|
567
|
+
var ERROR$1 = {
|
|
562
568
|
TRY_AGAIN: "Probeer opnieuw te boeken",
|
|
563
569
|
MESSAGE_TEXT1: "Tijdens het bevestigen van uw reis is er iets misgelopen.",
|
|
564
570
|
MESSAGE_TEXT2: "Klik hieronder om nog eens te proberen.",
|
|
@@ -567,7 +573,264 @@ var ERROR = {
|
|
|
567
573
|
ERROR_TEXT3: ".",
|
|
568
574
|
ERROR_ALT: "Contacteer ons"
|
|
569
575
|
};
|
|
576
|
+
var PRINT_OFFER_BUTTON$1 = {
|
|
577
|
+
LABEL_IDLE: "Print offerte",
|
|
578
|
+
LABEL_CREATING: "Offerte genereren...",
|
|
579
|
+
LABEL_PRINTING: "PDF genereren..."
|
|
580
|
+
};
|
|
570
581
|
var nlJson = {
|
|
582
|
+
STEPS: STEPS$1,
|
|
583
|
+
INPUT: INPUT$1,
|
|
584
|
+
FLIGHTS_FORM: FLIGHTS_FORM$1,
|
|
585
|
+
PRODUCT: PRODUCT$1,
|
|
586
|
+
MAIN: MAIN$1,
|
|
587
|
+
SHARED: SHARED$1,
|
|
588
|
+
SIDEBAR: SIDEBAR$1,
|
|
589
|
+
TRAVELERS_FORM: TRAVELERS_FORM$1,
|
|
590
|
+
OPTIONS_FORM: OPTIONS_FORM$1,
|
|
591
|
+
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$1,
|
|
592
|
+
SUMMARY: SUMMARY$1,
|
|
593
|
+
CONFIRMATION: CONFIRMATION$1,
|
|
594
|
+
ERROR: ERROR$1,
|
|
595
|
+
PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$1
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
var STEPS = {
|
|
599
|
+
PERSONAL_DETAILS: "Personal details",
|
|
600
|
+
EXTRA_OPTIONS: "Extra options",
|
|
601
|
+
SUMMARY: "Summary",
|
|
602
|
+
CONFIRMATION: "Confirmation",
|
|
603
|
+
ERROR: "Booking failed",
|
|
604
|
+
PREVIOUS: "Previous step",
|
|
605
|
+
NEXT: "Next step",
|
|
606
|
+
SUBMIT_BOOKING: "Confirm booking",
|
|
607
|
+
SUBMIT_OFFER: "Request quote",
|
|
608
|
+
COMPOSE: "Compose",
|
|
609
|
+
ROOM_OPTIONS: "Room options",
|
|
610
|
+
FLIGHT_OPTIONS: "Flight options"
|
|
611
|
+
};
|
|
612
|
+
var INPUT = {
|
|
613
|
+
INCREASE: "Increase",
|
|
614
|
+
DECREASE: "Decrease"
|
|
615
|
+
};
|
|
616
|
+
var FLIGHTS_FORM = {
|
|
617
|
+
OUTWARD_FLIGHTS: "Outbound flights",
|
|
618
|
+
OUTWARD_FLIGHT: "Outbound flight",
|
|
619
|
+
RETURN_FLIGHTS: "Return flights",
|
|
620
|
+
RETURN_FLIGHT: "Return flight",
|
|
621
|
+
DIRECT_FLIGHT: "Direct flight",
|
|
622
|
+
STOP: "stop",
|
|
623
|
+
STOPS: "stops",
|
|
624
|
+
FLIGHT_STOPS: "stop(s)",
|
|
625
|
+
DIFFERENT_OPTION_WARNING: "Warning: This flight changes the duration of the stay.",
|
|
626
|
+
FILTER_OPTIONS: "Filter options",
|
|
627
|
+
AIRLINES: "Airlines",
|
|
628
|
+
AIRPORTS: "Airports",
|
|
629
|
+
NUMBER_OF_STOPS: "Number of stops",
|
|
630
|
+
FLIGHT_OUTWARD: "Outbound flight",
|
|
631
|
+
DEPARTURE_TIME: "Departure time",
|
|
632
|
+
TRAVEL_DURATION: "Travel duration",
|
|
633
|
+
CHANGE_TIME: "Change time",
|
|
634
|
+
FLIGHT_RETURN: "Return flight",
|
|
635
|
+
NO_FLIGHTS_FOUND: "No flights found.",
|
|
636
|
+
STARTING: "Starting from",
|
|
637
|
+
LOWEST_PRICE: "Lowest price",
|
|
638
|
+
CHOOSE_YOUR_CLASS: "Choose your class:",
|
|
639
|
+
PLUS_ONE_DAY: "+1 day",
|
|
640
|
+
STOP_TIME: "Change time",
|
|
641
|
+
NIGHT_DEPARTURE: "Night (00:00 - 05:00)",
|
|
642
|
+
MORNING_DEPARTURE: "Morning (05:00 - 12:00)",
|
|
643
|
+
AFTERNOON_DEPARTURE: "Afternoon (12:00 - 18:00)",
|
|
644
|
+
EVENING_DEPARTURE: "Evening (18:00 - 00:00)",
|
|
645
|
+
FLIGHTS_FOUND_1: "",
|
|
646
|
+
FLIGHTS_FOUND_2: "flights",
|
|
647
|
+
FLIGHTS_FOUND_3: "found"
|
|
648
|
+
};
|
|
649
|
+
var PRODUCT = {
|
|
650
|
+
STAY_INCLUDED: "Stay included",
|
|
651
|
+
FLIGHT_INCLUDED: "Flight included",
|
|
652
|
+
TRANSFER_INCLUDED: "Transfer included",
|
|
653
|
+
LOADING_PRICE: "Your price is being composed.",
|
|
654
|
+
PER_PERSON: "Per person",
|
|
655
|
+
PER_NIGHT: "Per night",
|
|
656
|
+
PER_PERSON_PER_NIGHT: "Per person / per night",
|
|
657
|
+
BOOK_NOW: "Book now",
|
|
658
|
+
TO_YOUR_OFFER: "To your quote",
|
|
659
|
+
NOT_AVAILABLE: "Not available",
|
|
660
|
+
NUMBER_OF_ROOMS: "Number of rooms",
|
|
661
|
+
AGE_BY_DEPARTURE_DATE: "Age of children on departure date",
|
|
662
|
+
YEAR: "Year",
|
|
663
|
+
APPLY: "Apply",
|
|
664
|
+
EDIT: "Edit",
|
|
665
|
+
DEPARTURE: "Departure",
|
|
666
|
+
DEPARTURE_DATE: "Departure date",
|
|
667
|
+
RETURN: "Return",
|
|
668
|
+
RETURN_DATE: "Return date",
|
|
669
|
+
WHO_YOU_TRAVELING_WITH: "Who are you traveling with?",
|
|
670
|
+
TRAVEL_PERIOD: "Travel period",
|
|
671
|
+
CLOSE: "Close"
|
|
672
|
+
};
|
|
673
|
+
var MAIN = {
|
|
674
|
+
PREPARING_BOOKING: "Please wait, we are preparing your booking",
|
|
675
|
+
PREPARING_OFFER: "Please wait, we are preparing your quote",
|
|
676
|
+
PRODUCT_UNAVAILABLE: "Product not available"
|
|
677
|
+
};
|
|
678
|
+
var SHARED = {
|
|
679
|
+
ROOM: "Room",
|
|
680
|
+
ROOMS: "Rooms",
|
|
681
|
+
TOTAL_PRICE: "Total price",
|
|
682
|
+
ADULTS: "Adults",
|
|
683
|
+
CHILDREN: "Children",
|
|
684
|
+
SELECT: "Select",
|
|
685
|
+
SELECTED: "Selected"
|
|
686
|
+
};
|
|
687
|
+
var SIDEBAR = {
|
|
688
|
+
OVERVIEW: "Summary",
|
|
689
|
+
SLIDE_TOTAL_PRICE: "Total amount: ",
|
|
690
|
+
SLIDE_DEPOSIT: "Deposit to be paid: ",
|
|
691
|
+
TRAVEL_INFO: "Travel information",
|
|
692
|
+
TRAVELERS: "Travelers",
|
|
693
|
+
TRAVELERS_ADULTS: "adults",
|
|
694
|
+
TRAVELERS_ADULT: "adult",
|
|
695
|
+
TRAVELERS_CHILDREN: "children",
|
|
696
|
+
TRAVELERS_CHILD: "child",
|
|
697
|
+
DEPARTURE: "Outbound",
|
|
698
|
+
DEPARTURE_SINGLE: "Date",
|
|
699
|
+
ARRIVAL: "Return",
|
|
700
|
+
FLIGHT: "Flight",
|
|
701
|
+
ACCOMMODATION: "Accommodation booked",
|
|
702
|
+
BASE_PRICE: "Base price",
|
|
703
|
+
OPTIONS: "Options",
|
|
704
|
+
INCLUDED_COSTS: "Included costs",
|
|
705
|
+
EXTRA_COSTS: "Additional costs",
|
|
706
|
+
DEPOSIT: "Deposit to be paid",
|
|
707
|
+
DEPOSIT_TEXT1: "The steps for the ",
|
|
708
|
+
DEPOSIT_TEXT2: "remaining balance",
|
|
709
|
+
DEPOSIT_TEXT3: " of ",
|
|
710
|
+
DEPOSIT_TEXT4: " are described in ",
|
|
711
|
+
DEPOSIT_TEXT5: "step 3 (\"summary\")",
|
|
712
|
+
DEPOSIT_TEXT6: " of the booking process.",
|
|
713
|
+
LUGGAGE_INCLUDED: "Luggage included",
|
|
714
|
+
DEPARTURE_FLIGHT: "Outbound flight",
|
|
715
|
+
ARRIVAL_FLIGHT: "Return flight",
|
|
716
|
+
FLIGHT_DEPARTURE: "Departure",
|
|
717
|
+
FLIGHT_ARRIVAL: "Arrival",
|
|
718
|
+
ON_REQUEST: "On request",
|
|
719
|
+
CHANGES: "transfers"
|
|
720
|
+
};
|
|
721
|
+
var TRAVELERS_FORM = {
|
|
722
|
+
TRAVELER: "Traveler",
|
|
723
|
+
ADULT: "adult",
|
|
724
|
+
ADULTS: "adults",
|
|
725
|
+
CHILD: "child",
|
|
726
|
+
CHILDREN: "children",
|
|
727
|
+
GENDER: "Salutation",
|
|
728
|
+
MALE: "Mr.",
|
|
729
|
+
FEMALE: "Mrs.",
|
|
730
|
+
OTHER: "Other",
|
|
731
|
+
MAIN_BOOKER: "Main booker",
|
|
732
|
+
FIRST_NAME: "First name",
|
|
733
|
+
LAST_NAME: "Last name",
|
|
734
|
+
BIRTHDATE: "Date of birth",
|
|
735
|
+
STREET: "Street",
|
|
736
|
+
STREET_PLACEHOLDER: "Your street",
|
|
737
|
+
HOUSE_NUMBER: "House number",
|
|
738
|
+
POST_BOX: "Box",
|
|
739
|
+
ZIPCODE: "Postal code",
|
|
740
|
+
CITY: "City",
|
|
741
|
+
CITY_PLACEHOLDER: "City",
|
|
742
|
+
COUNTRY: "Country",
|
|
743
|
+
SELECT_COUNTRY: "Select country",
|
|
744
|
+
PHONE: "Phone number",
|
|
745
|
+
EMAIL: "Email",
|
|
746
|
+
REPEAT_EMAIL: "Repeat email",
|
|
747
|
+
VALIDATION_MESSAGE: "Please check the fields below and fill them in correctly.",
|
|
748
|
+
BOOK_WITH_AGENT: "I want to book through my local travel agent",
|
|
749
|
+
CHOOSE_OFFICE: "I choose an office",
|
|
750
|
+
COUNTRIES: {
|
|
751
|
+
BELGIUM: "Belgium",
|
|
752
|
+
NETHERLANDS: "Netherlands",
|
|
753
|
+
FRANCE: "France"
|
|
754
|
+
},
|
|
755
|
+
CHOOSE_AGENT_PLACEHOLDER: "Choose your travel agent",
|
|
756
|
+
VALIDATION: {
|
|
757
|
+
TRAVELER_X_FIELD: "Room {0} - Traveler {1}: {2}",
|
|
758
|
+
TRAVELER_X_IS_NO_ADULT: "Room {0} - Traveler {1}: is not an adult",
|
|
759
|
+
TRAVELER_X_IS_NO_CHILD: "Room {0} - Traveler {1}: is not a child",
|
|
760
|
+
NO_MAIN_BOOKER_SELECTED: "No main booker has been selected",
|
|
761
|
+
MAIN_BOOKER_FIELD: "Main booker: {0}",
|
|
762
|
+
MAIN_BOOKER_EMAIL_IS_INVALID: "Main booker: email is invalid",
|
|
763
|
+
MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: "Main booker: email does not match",
|
|
764
|
+
AGENT_IS_REQUIRED: "Travel agent is required"
|
|
765
|
+
}
|
|
766
|
+
};
|
|
767
|
+
var OPTIONS_FORM = {
|
|
768
|
+
NO_OPTIONS_TITLE: "No options",
|
|
769
|
+
NO_OPTIONS_MESSAGE: "This trip has no additional options.",
|
|
770
|
+
UNIT_TITLE: "Party",
|
|
771
|
+
PACKAGE: "Package",
|
|
772
|
+
DAY: "day",
|
|
773
|
+
DAYS: "days",
|
|
774
|
+
NIGHT: "night",
|
|
775
|
+
NIGHTS: "nights",
|
|
776
|
+
PER_PAX_TITLE: "Select options per traveler",
|
|
777
|
+
PER_BOOKING_TITLE: "Select options per booking",
|
|
778
|
+
PER_UNIT_TITLE: "Select options per party",
|
|
779
|
+
NONE: "None"
|
|
780
|
+
};
|
|
781
|
+
var ROOM_OPTIONS_FORM = {
|
|
782
|
+
TRAVELER_GROUP: "Travel party",
|
|
783
|
+
ALTERNATIVES_TRAVELER_GROUP: "Alternative room options for travel party",
|
|
784
|
+
SHOW_ALTERNATIVES: "Show alternative room options"
|
|
785
|
+
};
|
|
786
|
+
var SUMMARY = {
|
|
787
|
+
PERSONAL_DETAILS: "Personal details",
|
|
788
|
+
TRAVELERS: "travelers",
|
|
789
|
+
TRAVELER: "traveler",
|
|
790
|
+
ADULTS: "adults",
|
|
791
|
+
ADULT: "adult",
|
|
792
|
+
CHILDREN: "children",
|
|
793
|
+
CHILD: "child",
|
|
794
|
+
MAIN_BOOKER: "Main booker",
|
|
795
|
+
NOTIFICATIONS_TITLE: "Attention",
|
|
796
|
+
VALIDATE_TITLE: "Check your information",
|
|
797
|
+
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
|
+
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.",
|
|
799
|
+
OPTIONS: "Options",
|
|
800
|
+
REMARKS: "Remarks",
|
|
801
|
+
VOUCHERS: "Vouchers",
|
|
802
|
+
VOUCHER_VALIDATE: "Validate voucher",
|
|
803
|
+
ADD_VOUCHER: "Add voucher",
|
|
804
|
+
VOUCHER_VALID: "Voucher is valid",
|
|
805
|
+
VOUCHER_INVALID: "Voucher is not valid"
|
|
806
|
+
};
|
|
807
|
+
var CONFIRMATION = {
|
|
808
|
+
TITLE_TEXT_OFFER: "Your quote with number {0} has been requested",
|
|
809
|
+
TITLE_TEXT_BOOKING: "Your booking with number {0} has been confirmed",
|
|
810
|
+
MESSAGE_TEXT1: "Your dream trip is now very close.",
|
|
811
|
+
MESSAGE_TEXT2_OFFER: "Our travel specialists are processing your request and will contact you within 48 hours.",
|
|
812
|
+
MESSAGE_TEXT2_BOOKING: "Our travel specialists are processing your booking and will contact you within 48 hours.",
|
|
813
|
+
QUESTIONS_TEXT1: "Do you have any questions? ",
|
|
814
|
+
QUESTIONS_TEXT2: "Let us know",
|
|
815
|
+
QUESTIONS_TEXT3: ".",
|
|
816
|
+
QUESTIONS_ALT: "Contact us",
|
|
817
|
+
MAIL_SUBJECT: "Booking info"
|
|
818
|
+
};
|
|
819
|
+
var ERROR = {
|
|
820
|
+
TRY_AGAIN: "Try booking again",
|
|
821
|
+
MESSAGE_TEXT1: "Something went wrong while confirming your trip.",
|
|
822
|
+
MESSAGE_TEXT2: "Click below to try again.",
|
|
823
|
+
ERROR_TEXT1: "Still not working? ",
|
|
824
|
+
ERROR_TEXT2: "Be sure to let us know",
|
|
825
|
+
ERROR_TEXT3: ".",
|
|
826
|
+
ERROR_ALT: "Contact us"
|
|
827
|
+
};
|
|
828
|
+
var PRINT_OFFER_BUTTON = {
|
|
829
|
+
LABEL_IDLE: "Print offer",
|
|
830
|
+
LABEL_CREATING: "Generating offer…",
|
|
831
|
+
LABEL_PRINTING: "Generating PDF…"
|
|
832
|
+
};
|
|
833
|
+
var enJson = {
|
|
571
834
|
STEPS: STEPS,
|
|
572
835
|
INPUT: INPUT,
|
|
573
836
|
FLIGHTS_FORM: FLIGHTS_FORM,
|
|
@@ -580,7 +843,8 @@ var nlJson = {
|
|
|
580
843
|
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM,
|
|
581
844
|
SUMMARY: SUMMARY,
|
|
582
845
|
CONFIRMATION: CONFIRMATION,
|
|
583
|
-
ERROR: ERROR
|
|
846
|
+
ERROR: ERROR,
|
|
847
|
+
PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON
|
|
584
848
|
};
|
|
585
849
|
|
|
586
850
|
var formatPrice = function (price, locale) {
|
|
@@ -599,6 +863,8 @@ var getTranslations = function (language) {
|
|
|
599
863
|
return nlJson;
|
|
600
864
|
case "fr-BE":
|
|
601
865
|
return frJson;
|
|
866
|
+
case "en-GB":
|
|
867
|
+
return enJson;
|
|
602
868
|
default:
|
|
603
869
|
throw new Error("The language '".concat(language, "' is not yet supported."));
|
|
604
870
|
}
|
|
@@ -606,6 +872,7 @@ var getTranslations = function (language) {
|
|
|
606
872
|
var locales = {
|
|
607
873
|
"nl-BE": nlBE,
|
|
608
874
|
"fr-BE": fr,
|
|
875
|
+
"en-GB": enGB,
|
|
609
876
|
};
|
|
610
877
|
function getLocale(code) {
|
|
611
878
|
switch (code) {
|
|
@@ -613,6 +880,8 @@ function getLocale(code) {
|
|
|
613
880
|
return locales[code];
|
|
614
881
|
case "fr-BE":
|
|
615
882
|
return locales[code];
|
|
883
|
+
case "en-GB":
|
|
884
|
+
return locales[code];
|
|
616
885
|
default:
|
|
617
886
|
return locales["nl-BE"];
|
|
618
887
|
}
|
|
@@ -700,8 +969,8 @@ var SettingsContext$1 = React.createContext({
|
|
|
700
969
|
officeId: 1,
|
|
701
970
|
catalogueId: 1,
|
|
702
971
|
language: "nl-BE",
|
|
703
|
-
basePath:
|
|
704
|
-
priceMode: 0
|
|
972
|
+
basePath: "boeken",
|
|
973
|
+
priceMode: 0,
|
|
705
974
|
});
|
|
706
975
|
|
|
707
976
|
var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -7463,7 +7732,7 @@ build.login = login;
|
|
|
7463
7732
|
build.logout = logout;
|
|
7464
7733
|
var priceDetails_1 = build.priceDetails = priceDetails;
|
|
7465
7734
|
build.prices = prices;
|
|
7466
|
-
build.print = print;
|
|
7735
|
+
var print_1 = build.print = print;
|
|
7467
7736
|
build.resetPassword = resetPassword;
|
|
7468
7737
|
build.search = search;
|
|
7469
7738
|
build.searchFlightPool = searchFlightPool;
|
|
@@ -7514,12 +7783,12 @@ var fetchDetails$1 = function (request, signal, languageCode, apiSettings) { ret
|
|
|
7514
7783
|
});
|
|
7515
7784
|
}); };
|
|
7516
7785
|
var packageApi$1 = {
|
|
7517
|
-
fetchDetails: fetchDetails$1
|
|
7786
|
+
fetchDetails: fetchDetails$1,
|
|
7518
7787
|
};
|
|
7519
7788
|
|
|
7520
7789
|
var formatPriceByMode = function (price, priceMode, personCount, duration, perPersonLabel, perNightLabel, perPersonPerNightLabel) {
|
|
7521
7790
|
if (!price)
|
|
7522
|
-
return
|
|
7791
|
+
return "";
|
|
7523
7792
|
switch (priceMode) {
|
|
7524
7793
|
case 0:
|
|
7525
7794
|
return "".concat(formatPrice(price));
|
|
@@ -8927,7 +9196,10 @@ var DateRangePicker = function (props) {
|
|
|
8927
9196
|
var _a, _b, _c, _d;
|
|
8928
9197
|
var _e = useState(props.fromDate), fromDate = _e[0], setFromDate = _e[1];
|
|
8929
9198
|
var _f = useState(props.toDate), toDate = _f[0], setToDate = _f[1];
|
|
8930
|
-
var _g = useState((_a = props.focusMonth) !== null && _a !== void 0 ? _a : {
|
|
9199
|
+
var _g = useState((_a = props.focusMonth) !== null && _a !== void 0 ? _a : {
|
|
9200
|
+
year: getYear(new Date()),
|
|
9201
|
+
month: getMonth(new Date()),
|
|
9202
|
+
}), focusMonth = _g[0], setFocusMonth = _g[1];
|
|
8931
9203
|
var _h = useState(false), isWaitingForToDate = _h[0], setWaitingForToDate = _h[1];
|
|
8932
9204
|
var handleDayClick = function (day) {
|
|
8933
9205
|
var onSelectionChange = props.onSelectionChange;
|
|
@@ -8989,12 +9261,17 @@ var DateRangePicker = function (props) {
|
|
|
8989
9261
|
var firstCalendarYear = focusMonth.year;
|
|
8990
9262
|
var firstCalendarMonth = focusMonth.month;
|
|
8991
9263
|
var secondCalendarMonth = (firstCalendarMonth + 1) % 12;
|
|
8992
|
-
var secondCalendarYear = secondCalendarMonth < firstCalendarMonth
|
|
9264
|
+
var secondCalendarYear = secondCalendarMonth < firstCalendarMonth
|
|
9265
|
+
? firstCalendarYear + 1
|
|
9266
|
+
: firstCalendarYear;
|
|
8993
9267
|
var checkIfDateIsSelected = function (date) {
|
|
8994
9268
|
return isNil(toDate)
|
|
8995
9269
|
? !isNil(fromDate) && isEqual(date, fromDate)
|
|
8996
9270
|
: !isNil(fromDate) &&
|
|
8997
|
-
isWithinInterval(date, {
|
|
9271
|
+
isWithinInterval(date, {
|
|
9272
|
+
start: startOfDay(fromDate),
|
|
9273
|
+
end: endOfDay(toDate),
|
|
9274
|
+
});
|
|
8998
9275
|
};
|
|
8999
9276
|
useEffect(function () {
|
|
9000
9277
|
setFromDate(props.fromDate);
|
|
@@ -9002,7 +9279,10 @@ var DateRangePicker = function (props) {
|
|
|
9002
9279
|
}, [(_b = props.fromDate) === null || _b === void 0 ? void 0 : _b.valueOf(), (_c = props.toDate) === null || _c === void 0 ? void 0 : _c.valueOf()]);
|
|
9003
9280
|
useEffect(function () {
|
|
9004
9281
|
if (props.fromDate) {
|
|
9005
|
-
setFocusMonth({
|
|
9282
|
+
setFocusMonth({
|
|
9283
|
+
month: props.fromDate.getMonth(),
|
|
9284
|
+
year: props.fromDate.getFullYear(),
|
|
9285
|
+
});
|
|
9006
9286
|
}
|
|
9007
9287
|
}, [(_d = props.fromDate) === null || _d === void 0 ? void 0 : _d.valueOf()]);
|
|
9008
9288
|
return (React.createElement("div", { className: "date-range-picker" },
|
|
@@ -9016,7 +9296,9 @@ var Dates = function (_a) {
|
|
|
9016
9296
|
var value = _a.value, duration = _a.duration, onChange = _a.onChange;
|
|
9017
9297
|
var language = useContext(SettingsContext$1).language;
|
|
9018
9298
|
var translations = getTranslations(language);
|
|
9019
|
-
var mql = typeof window !== "undefined"
|
|
9299
|
+
var mql = typeof window !== "undefined"
|
|
9300
|
+
? window.matchMedia("(min-width: 1200px)")
|
|
9301
|
+
: undefined;
|
|
9020
9302
|
var _b = useState(null), referenceElement = _b[0], setReferenceElement = _b[1];
|
|
9021
9303
|
var _c = useState(null), popperElement = _c[0], setPopperElement = _c[1];
|
|
9022
9304
|
var _d = useState(false), panelActive = _d[0], setPanelActive = _d[1];
|
|
@@ -9034,7 +9316,7 @@ var Dates = function (_a) {
|
|
|
9034
9316
|
options: {
|
|
9035
9317
|
padding: 40,
|
|
9036
9318
|
},
|
|
9037
|
-
}
|
|
9319
|
+
},
|
|
9038
9320
|
],
|
|
9039
9321
|
}), styles = _e.styles, attributes = _e.attributes;
|
|
9040
9322
|
var handleInputFocus = function () {
|
|
@@ -9073,9 +9355,11 @@ var Dates = function (_a) {
|
|
|
9073
9355
|
React.createElement("div", __assign({ ref: setPopperElement, className: buildClassName([
|
|
9074
9356
|
"qsm__panel qsm__panel--bordered qsm__panel--dates-pricing",
|
|
9075
9357
|
panelActive && "qsm__panel--active",
|
|
9076
|
-
!(mql === null || mql === void 0 ? void 0 : mql.matches) && "qsm__panel--mobile"
|
|
9358
|
+
!(mql === null || mql === void 0 ? void 0 : mql.matches) && "qsm__panel--mobile",
|
|
9077
9359
|
]), style: (mql === null || mql === void 0 ? void 0 : mql.matches) ? styles.popper : undefined }, attributes.popper),
|
|
9078
|
-
React.createElement(DateRangePicker, { fromDate: value === null || value === void 0 ? void 0 : value.fromDate, toDate: value === null || value === void 0 ? void 0 : value.toDate, duration: duration, disabledDaysFunction: function (date) {
|
|
9360
|
+
React.createElement(DateRangePicker, { fromDate: value === null || value === void 0 ? void 0 : value.fromDate, toDate: value === null || value === void 0 ? void 0 : value.toDate, duration: duration, disabledDaysFunction: function (date) {
|
|
9361
|
+
return isBefore(date, startOfDay(new Date()));
|
|
9362
|
+
}, onSelectionChange: handleSelectionChange }),
|
|
9079
9363
|
!(mql === null || mql === void 0 ? void 0 : mql.matches) && (React.createElement("div", { className: "qsm__close", onClick: function () { return setPanelActive(false); } },
|
|
9080
9364
|
React.createElement(Icon$1, { name: "ui-close", height: 25, width: 25 })))))));
|
|
9081
9365
|
};
|
|
@@ -9091,18 +9375,16 @@ var Footer = function (_a) {
|
|
|
9091
9375
|
var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, roomsIsDisabled = _a.roomsIsDisabled, handleBookClick = _a.handleBookClick;
|
|
9092
9376
|
var _b = useContext(SettingsContext$1), language = _b.language, alternativeActionText = _b.alternativeActionText, alternativeAction = _b.alternativeAction;
|
|
9093
9377
|
var translations = getTranslations(language);
|
|
9094
|
-
return (React.createElement("div", { className: "booking-product__footer" }, isLoading
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
|
-
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
? (React.createElement("a", { href: "#offer-form", className: "cta", onClick: alternativeAction }, alternativeActionText))
|
|
9105
|
-
: (React.createElement(React.Fragment, null, translations.PRODUCT.NOT_AVAILABLE))))))));
|
|
9378
|
+
return (React.createElement("div", { className: "booking-product__footer" }, isLoading ? (React.createElement(Loader, { loaderText: translations.PRODUCT.LOADING_PRICE })) : (React.createElement(React.Fragment, null,
|
|
9379
|
+
priceText && (React.createElement("div", { className: "booking-product__footer-total" },
|
|
9380
|
+
React.createElement("div", { className: "booking-product__footer-label" }, translations.SHARED.TOTAL_PRICE),
|
|
9381
|
+
React.createElement("div", { className: "booking-product__footer-price" }, priceText))),
|
|
9382
|
+
React.createElement("div", { className: "booking-product__footer-actions" }, priceText ? (React.createElement("button", { type: "button", className: buildClassName([
|
|
9383
|
+
"cta",
|
|
9384
|
+
!roomsIsDisabled && "cta--disabled",
|
|
9385
|
+
]), onClick: handleBookClick, disabled: !roomsIsDisabled }, isOffer
|
|
9386
|
+
? translations.PRODUCT.TO_YOUR_OFFER
|
|
9387
|
+
: translations.PRODUCT.BOOK_NOW)) : alternativeActionText && alternativeAction ? (React.createElement("a", { href: "#offer-form", className: "cta", onClick: alternativeAction }, alternativeActionText)) : (React.createElement(React.Fragment, null, translations.PRODUCT.NOT_AVAILABLE)))))));
|
|
9106
9388
|
};
|
|
9107
9389
|
|
|
9108
9390
|
var Rating = function (_a) {
|
|
@@ -9121,17 +9403,15 @@ var Header = function (_a) {
|
|
|
9121
9403
|
React.createElement("div", { className: "booking-product__hotel" },
|
|
9122
9404
|
rating && React.createElement(Rating, { rating: rating }),
|
|
9123
9405
|
React.createElement("div", { className: "booking-product__title" }, name)),
|
|
9124
|
-
React.createElement("div", { className: "booking-product__price" }, isLoading
|
|
9125
|
-
|
|
9126
|
-
|
|
9127
|
-
React.createElement("div", { className: "
|
|
9128
|
-
|
|
9129
|
-
|
|
9130
|
-
|
|
9131
|
-
|
|
9132
|
-
|
|
9133
|
-
hasTransfer && (React.createElement("div", { className: "package-icons__icon" },
|
|
9134
|
-
React.createElement(Icon$1, { name: "ui-transfer", title: translations.PRODUCT.TRANSFER_INCLUDED, width: 25, height: 25 })))))))));
|
|
9406
|
+
React.createElement("div", { className: "booking-product__price" }, isLoading ? (React.createElement(Loader, { loaderText: translations.PRODUCT.LOADING_PRICE })) : (React.createElement(React.Fragment, null,
|
|
9407
|
+
React.createElement("div", { className: "pricing__header pricing__price" }, priceText),
|
|
9408
|
+
React.createElement("div", { className: "package-icons" },
|
|
9409
|
+
priceText && (React.createElement("div", { className: "package-icons__icon" },
|
|
9410
|
+
React.createElement(Icon$1, { name: "ui-bed", title: translations.PRODUCT.STAY_INCLUDED, width: 25, height: 25 }))),
|
|
9411
|
+
hasFlight && (React.createElement("div", { className: "package-icons__icon" },
|
|
9412
|
+
React.createElement(Icon$1, { name: "ui-flight", title: translations.PRODUCT.FLIGHT_INCLUDED, width: 25, height: 25 }))),
|
|
9413
|
+
hasTransfer && (React.createElement("div", { className: "package-icons__icon" },
|
|
9414
|
+
React.createElement(Icon$1, { name: "ui-transfer", title: translations.PRODUCT.TRANSFER_INCLUDED, width: 25, height: 25 })))))))));
|
|
9135
9415
|
};
|
|
9136
9416
|
|
|
9137
9417
|
var AgeSelect = function (_a) {
|
|
@@ -9164,7 +9444,10 @@ var AmountInput = function (_a) {
|
|
|
9164
9444
|
onChange(Math.max(value - 1, min !== null && min !== void 0 ? min : 0));
|
|
9165
9445
|
}
|
|
9166
9446
|
};
|
|
9167
|
-
return (React.createElement("div", { className: buildClassName([
|
|
9447
|
+
return (React.createElement("div", { className: buildClassName([
|
|
9448
|
+
"decrement-increment",
|
|
9449
|
+
disabled && "decrement-increment--disabled",
|
|
9450
|
+
]) },
|
|
9168
9451
|
React.createElement("label", { className: "decrement-increment__label" }, label),
|
|
9169
9452
|
React.createElement("div", { className: "decrement-increment__ui" },
|
|
9170
9453
|
!disabled && (React.createElement("button", { type: "button", className: "button button--decrement", title: translations.INPUT.DECREASE, disabled: disabled, onClick: handleDecreaseClick },
|
|
@@ -9195,7 +9478,14 @@ var Rooms = function (_a) {
|
|
|
9195
9478
|
React.createElement("div", { className: "booking-product__rooms__heading" }, translations.SHARED.ROOMS),
|
|
9196
9479
|
React.createElement("div", { className: "booking-product__rooms__actions" },
|
|
9197
9480
|
React.createElement(AmountInput, { label: translations.PRODUCT.NUMBER_OF_ROOMS, value: currentRooms.length, disabled: isDisabled, min: 1, onChange: function (value) {
|
|
9198
|
-
setRoomState(range(0, value).map(function (roomIndex) {
|
|
9481
|
+
setRoomState(range(0, value).map(function (roomIndex) {
|
|
9482
|
+
var _a;
|
|
9483
|
+
return (_a = currentRooms[roomIndex]) !== null && _a !== void 0 ? _a : {
|
|
9484
|
+
adults: 2,
|
|
9485
|
+
children: 0,
|
|
9486
|
+
childAges: [],
|
|
9487
|
+
};
|
|
9488
|
+
}));
|
|
9199
9489
|
setIsTouched(true);
|
|
9200
9490
|
} }))),
|
|
9201
9491
|
React.createElement("div", { className: "booking-product__rooms-body" }, currentRooms.map(function (room, roomIndex) { return (React.createElement("div", { className: "booking-product__room", key: roomIndex },
|
|
@@ -9221,23 +9511,27 @@ var Rooms = function (_a) {
|
|
|
9221
9511
|
setRoomState(currentRooms.map(function (room, selectorRoomIndex) {
|
|
9222
9512
|
return roomIndex === selectorRoomIndex
|
|
9223
9513
|
? __assign(__assign({}, room), { childAges: room.childAges
|
|
9224
|
-
.map(function (age, i) {
|
|
9514
|
+
.map(function (age, i) {
|
|
9515
|
+
return childIndex === i ? value : age;
|
|
9516
|
+
})
|
|
9225
9517
|
.sort(function (a, b) { return b - a; }) }) : room;
|
|
9226
9518
|
}));
|
|
9227
9519
|
setIsTouched(true);
|
|
9228
9520
|
} })); })))))); }))),
|
|
9229
|
-
React.createElement("div", { className: "booking-product__rooms-footer" }, isDisabled
|
|
9230
|
-
|
|
9231
|
-
|
|
9232
|
-
|
|
9233
|
-
|
|
9234
|
-
React.createElement("
|
|
9235
|
-
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9239
|
-
|
|
9240
|
-
|
|
9521
|
+
React.createElement("div", { className: "booking-product__rooms-footer" }, isDisabled ? (React.createElement("button", { type: "button", className: buildClassName(["cta--secondary", "cta--add"]), title: translations.PRODUCT.EDIT, onClick: function () {
|
|
9522
|
+
setIsDisabled(false);
|
|
9523
|
+
setIsTouched(false);
|
|
9524
|
+
} },
|
|
9525
|
+
React.createElement("span", null,
|
|
9526
|
+
React.createElement(Icon$1, { name: "ui-pencil", width: 25, height: 25 }),
|
|
9527
|
+
translations.PRODUCT.EDIT))) : (React.createElement("button", { type: "button", className: buildClassName([
|
|
9528
|
+
"cta",
|
|
9529
|
+
isTouched ? "cta--secondary" : "cta--secondary",
|
|
9530
|
+
"cta--add",
|
|
9531
|
+
]), title: translations.PRODUCT.APPLY, onClick: handleCloseClick },
|
|
9532
|
+
React.createElement("span", null,
|
|
9533
|
+
React.createElement(Icon$1, { name: "ui-check" }),
|
|
9534
|
+
translations.PRODUCT.APPLY)))))));
|
|
9241
9535
|
};
|
|
9242
9536
|
|
|
9243
9537
|
var Product = function (_a) {
|
|
@@ -9251,7 +9545,9 @@ var Product = function (_a) {
|
|
|
9251
9545
|
var _h = useState(), price = _h[0], setPrice = _h[1];
|
|
9252
9546
|
var _j = useState(false), hasFlight = _j[0], setHasFlight = _j[1];
|
|
9253
9547
|
var _k = useState(false), hasTransfer = _k[0], setHasTransfer = _k[1];
|
|
9254
|
-
var _l = useState([
|
|
9548
|
+
var _l = useState([
|
|
9549
|
+
{ adults: 2, children: 0, childAges: [] },
|
|
9550
|
+
]), rooms = _l[0], setRooms = _l[1];
|
|
9255
9551
|
var _m = useState(), dateRange = _m[0], setDateRange = _m[1];
|
|
9256
9552
|
var _o = useState(productName), packageProductName = _o[0], setPackageProductName = _o[1];
|
|
9257
9553
|
var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
@@ -9264,16 +9560,19 @@ var Product = function (_a) {
|
|
|
9264
9560
|
(dateRange === null || dateRange === void 0 ? void 0 : dateRange.fromDate) &&
|
|
9265
9561
|
(dateRange === null || dateRange === void 0 ? void 0 : dateRange.toDate) &&
|
|
9266
9562
|
rooms)) return [3 /*break*/, 2];
|
|
9267
|
-
apiSettingsState =
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9563
|
+
apiSettingsState = apiKey && apiUrl
|
|
9564
|
+
? {
|
|
9565
|
+
apiKey: apiKey,
|
|
9566
|
+
apiUrl: apiUrl,
|
|
9567
|
+
}
|
|
9568
|
+
: undefined;
|
|
9569
|
+
startDate = formatISO(dateRange === null || dateRange === void 0 ? void 0 : dateRange.fromDate, { representation: "date" }) +
|
|
9570
|
+
"T00:00:00Z";
|
|
9272
9571
|
endDate = formatISO(dateRange === null || dateRange === void 0 ? void 0 : dateRange.toDate, { representation: "date" }) + "T00:00:00Z";
|
|
9273
9572
|
requestRooms = rooms.map(function (room, i) {
|
|
9274
9573
|
var requestRoom = {
|
|
9275
9574
|
index: i,
|
|
9276
|
-
pax: []
|
|
9575
|
+
pax: [],
|
|
9277
9576
|
};
|
|
9278
9577
|
for (var a = 0; a < room.adults; a++) {
|
|
9279
9578
|
requestRoom.pax.push({
|
|
@@ -9351,7 +9650,7 @@ var Product = function (_a) {
|
|
|
9351
9650
|
var paramString = Object.keys(params)
|
|
9352
9651
|
.map(function (key) { return "".concat(key, "=").concat(params[key]); })
|
|
9353
9652
|
.join("&");
|
|
9354
|
-
window.location.href = basePath.startsWith(
|
|
9653
|
+
window.location.href = basePath.startsWith("/")
|
|
9355
9654
|
? "".concat(window.location.protocol, "//").concat(window.location.host).concat(basePath, "?").concat(paramString)
|
|
9356
9655
|
: "".concat(path).concat(path.endsWith("/") ? "" : "/").concat(basePath, "?").concat(paramString);
|
|
9357
9656
|
};
|
|
@@ -9376,7 +9675,7 @@ var Product = function (_a) {
|
|
|
9376
9675
|
}, [
|
|
9377
9676
|
(_b = dateRange === null || dateRange === void 0 ? void 0 : dateRange.fromDate) === null || _b === void 0 ? void 0 : _b.valueOf(),
|
|
9378
9677
|
(_c = dateRange === null || dateRange === void 0 ? void 0 : dateRange.toDate) === null || _c === void 0 ? void 0 : _c.valueOf(),
|
|
9379
|
-
JSON.stringify(rooms)
|
|
9678
|
+
JSON.stringify(rooms),
|
|
9380
9679
|
]);
|
|
9381
9680
|
useEffect(function () {
|
|
9382
9681
|
var params = new URLSearchParams(location.search);
|
|
@@ -9512,7 +9811,7 @@ var fetchAccommodationViews$1 = function (request, signal, apiSettings) { return
|
|
|
9512
9811
|
var packageApi = {
|
|
9513
9812
|
fetchDetails: fetchDetails,
|
|
9514
9813
|
fetchAgents: fetchAgents$1,
|
|
9515
|
-
fetchAccommodationViews: fetchAccommodationViews$1
|
|
9814
|
+
fetchAccommodationViews: fetchAccommodationViews$1,
|
|
9516
9815
|
};
|
|
9517
9816
|
|
|
9518
9817
|
var ROOM_OPTIONS_FORM_STEP = 1;
|
|
@@ -9663,7 +9962,11 @@ var selectSeparatePackagePriceDetails = createSelector(selectPackagePriceDetails
|
|
|
9663
9962
|
var result = [];
|
|
9664
9963
|
var filteredPriceDetails = pricedetails.filter(function (priceDetail) { return priceDetail.isSeparate; });
|
|
9665
9964
|
filteredPriceDetails.forEach(function (priceDetail) {
|
|
9666
|
-
var priceDetailToMerge = result.find(function (x) {
|
|
9965
|
+
var priceDetailToMerge = result.find(function (x) {
|
|
9966
|
+
return x.productCode === priceDetail.productCode &&
|
|
9967
|
+
x.accommodationCode === priceDetail.accommodationCode &&
|
|
9968
|
+
x.productType === priceDetail.productType;
|
|
9969
|
+
});
|
|
9667
9970
|
if (priceDetailToMerge) {
|
|
9668
9971
|
priceDetailToMerge.total += priceDetail.total;
|
|
9669
9972
|
priceDetailToMerge.price += priceDetail.price;
|
|
@@ -9719,15 +10022,23 @@ var selectPackageFlights = function (state) {
|
|
|
9719
10022
|
var _a, _b;
|
|
9720
10023
|
return ({
|
|
9721
10024
|
outward: (_a = state.booking.package) === null || _a === void 0 ? void 0 : _a.outwardFlights,
|
|
9722
|
-
return: (_b = state.booking.package) === null || _b === void 0 ? void 0 : _b.returnFlights
|
|
10025
|
+
return: (_b = state.booking.package) === null || _b === void 0 ? void 0 : _b.returnFlights,
|
|
9723
10026
|
});
|
|
9724
10027
|
};
|
|
9725
10028
|
var selectActiveOption = function (state) { var _a; return (_a = state.booking.package) === null || _a === void 0 ? void 0 : _a.options.find(function (x) { return x.isSelected; }); };
|
|
9726
10029
|
var selectPackageAirlineGroups = createSelector(selectActiveOption, selectDepartureFlight, selectReturnFlight, function (option, departureFlight, returnFlight) {
|
|
9727
|
-
return option === null || option === void 0 ? void 0 : option.airlineGroups.filter(function (x) {
|
|
10030
|
+
return option === null || option === void 0 ? void 0 : option.airlineGroups.filter(function (x) {
|
|
10031
|
+
var _a, _b;
|
|
10032
|
+
return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") ||
|
|
10033
|
+
x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : "");
|
|
10034
|
+
});
|
|
9728
10035
|
});
|
|
9729
10036
|
var selectPackageAirportGroups = createSelector(selectActiveOption, selectDepartureFlight, selectReturnFlight, function (option, departureFlight, returnFlight) {
|
|
9730
|
-
return option === null || option === void 0 ? void 0 : option.airportGroups.filter(function (x) {
|
|
10037
|
+
return option === null || option === void 0 ? void 0 : option.airportGroups.filter(function (x) {
|
|
10038
|
+
var _a, _b;
|
|
10039
|
+
return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") ||
|
|
10040
|
+
x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : "");
|
|
10041
|
+
});
|
|
9731
10042
|
});
|
|
9732
10043
|
var selectApiSettings = function (state) { return state.apiSettings; };
|
|
9733
10044
|
var selectIsUnavailable = function (state) {
|
|
@@ -9741,7 +10052,8 @@ var selectLanguageCode = function (state) {
|
|
|
9741
10052
|
var selectTranslations = function (state) {
|
|
9742
10053
|
var _a, _b;
|
|
9743
10054
|
var defaultStaticTranslations = getTranslations(state.booking.languageCode);
|
|
9744
|
-
var dynamicTranslations = (_b = (state.booking.translations &&
|
|
10055
|
+
var dynamicTranslations = (_b = (state.booking.translations &&
|
|
10056
|
+
((_a = state.booking.translations.find(function (x) { return x.language == state.booking.languageCode; })) === null || _a === void 0 ? void 0 : _a.value))) !== null && _b !== void 0 ? _b : {};
|
|
9745
10057
|
var merged = {};
|
|
9746
10058
|
for (var _i = 0, _c = Array.from(new Set(__spreadArray(__spreadArray([], Object.keys(defaultStaticTranslations), true), Object.keys(dynamicTranslations), true))); _i < _c.length; _i++) {
|
|
9747
10059
|
var key = _c[_i];
|
|
@@ -9784,15 +10096,19 @@ var selectAccommodationCodes = function (state) {
|
|
|
9784
10096
|
var _a;
|
|
9785
10097
|
var accommodationCodes = [];
|
|
9786
10098
|
(_a = state.booking.package) === null || _a === void 0 ? void 0 : _a.options.forEach(function (o) {
|
|
9787
|
-
o.rooms.forEach(function (r) {
|
|
9788
|
-
|
|
9789
|
-
accommodationCodes.
|
|
9790
|
-
|
|
9791
|
-
|
|
10099
|
+
o.rooms.forEach(function (r) {
|
|
10100
|
+
return r.options.forEach(function (ro) {
|
|
10101
|
+
if (!accommodationCodes.some(function (y) { return y === ro.accommodationCode; })) {
|
|
10102
|
+
accommodationCodes.push(ro.accommodationCode);
|
|
10103
|
+
}
|
|
10104
|
+
});
|
|
10105
|
+
});
|
|
9792
10106
|
});
|
|
9793
10107
|
return accommodationCodes;
|
|
9794
10108
|
};
|
|
9795
|
-
var selectAccommodationViews = function (state) {
|
|
10109
|
+
var selectAccommodationViews = function (state) {
|
|
10110
|
+
return state.booking.accommodationViews;
|
|
10111
|
+
};
|
|
9796
10112
|
var selectBookingQuery = function (state) {
|
|
9797
10113
|
var bookingAttributes = state.booking.bookingAttributes;
|
|
9798
10114
|
if (!bookingAttributes) {
|
|
@@ -10037,7 +10353,7 @@ var fetchAgents = createAsyncThunk("booking/agents", function (_, _a) {
|
|
|
10037
10353
|
var fetchPackageDetails = createAsyncThunk("booking/details", function (_, _a) {
|
|
10038
10354
|
_a.dispatch; var getState = _a.getState, signal = _a.signal;
|
|
10039
10355
|
return __awaiter$1(void 0, void 0, void 0, function () {
|
|
10040
|
-
var state, officeId, productAttributes, bookingAttributes, agentId, rooms, languageCode, requestRooms, isAllotment, request;
|
|
10356
|
+
var state, officeId, productAttributes, bookingAttributes, agentId, rooms, languageCode, requestRooms, isAllotment, searchType, outwardFlight, returnFlight, request;
|
|
10041
10357
|
var _b;
|
|
10042
10358
|
return __generator$1(this, function (_c) {
|
|
10043
10359
|
switch (_c.label) {
|
|
@@ -10075,11 +10391,29 @@ var fetchPackageDetails = createAsyncThunk("booking/details", function (_, _a) {
|
|
|
10075
10391
|
isAllotment = bookingAttributes.tourCode ||
|
|
10076
10392
|
bookingAttributes.allotmentName ||
|
|
10077
10393
|
(bookingAttributes.allotmentIds && bookingAttributes.allotmentIds.length);
|
|
10394
|
+
searchType = isAllotment
|
|
10395
|
+
? 1 // ALLOTMENT
|
|
10396
|
+
: 0;
|
|
10397
|
+
if (bookingAttributes.flightRouteId && bookingAttributes.flight) {
|
|
10398
|
+
searchType = 3; // FLIGHT;
|
|
10399
|
+
outwardFlight = {
|
|
10400
|
+
flightCode: bookingAttributes.flight.outwardCode,
|
|
10401
|
+
startDateTime: bookingAttributes.flight.outwardDepartureDate,
|
|
10402
|
+
endDateTime: bookingAttributes.flight.outwardArrivalDate,
|
|
10403
|
+
};
|
|
10404
|
+
if (bookingAttributes.flight.returnCode) {
|
|
10405
|
+
returnFlight = {
|
|
10406
|
+
flightCode: bookingAttributes.flight.returnCode,
|
|
10407
|
+
startDateTime: bookingAttributes.flight.returnDepartureDate,
|
|
10408
|
+
endDateTime: bookingAttributes.flight.returnArrivalDate,
|
|
10409
|
+
};
|
|
10410
|
+
}
|
|
10411
|
+
}
|
|
10078
10412
|
request = {
|
|
10079
10413
|
officeId: officeId,
|
|
10080
10414
|
agentId: agentId,
|
|
10081
10415
|
payload: {
|
|
10082
|
-
searchType:
|
|
10416
|
+
searchType: searchType,
|
|
10083
10417
|
catalogueId: bookingAttributes.catalog,
|
|
10084
10418
|
productCode: productAttributes.productCode,
|
|
10085
10419
|
fromDate: bookingAttributes.startDate,
|
|
@@ -10089,6 +10423,9 @@ var fetchPackageDetails = createAsyncThunk("booking/details", function (_, _a) {
|
|
|
10089
10423
|
allotmentIds: (_b = bookingAttributes.allotmentIds) !== null && _b !== void 0 ? _b : [],
|
|
10090
10424
|
tourCode: bookingAttributes.tourCode,
|
|
10091
10425
|
rooms: requestRooms,
|
|
10426
|
+
routeId: bookingAttributes.flightRouteId,
|
|
10427
|
+
outwardFlight: outwardFlight,
|
|
10428
|
+
returnFlight: returnFlight,
|
|
10092
10429
|
},
|
|
10093
10430
|
};
|
|
10094
10431
|
return [4 /*yield*/, packageApi.fetchDetails(request, signal, languageCode, state.apiSettings)];
|
|
@@ -10111,13 +10448,13 @@ var fetchAccommodationViews = createAsyncThunk("booking/accommodationViews", fun
|
|
|
10111
10448
|
accommodationCodes = selectAccommodationCodes(state);
|
|
10112
10449
|
productCode = selectProductCode(state);
|
|
10113
10450
|
if (!productCode) {
|
|
10114
|
-
throw Error(
|
|
10451
|
+
throw Error("No product selected");
|
|
10115
10452
|
}
|
|
10116
10453
|
request = {
|
|
10117
10454
|
languageCode: languageCode,
|
|
10118
10455
|
productCode: productCode,
|
|
10119
10456
|
accommodationCodes: accommodationCodes,
|
|
10120
|
-
contentViewId: state.booking.accommodationViewId
|
|
10457
|
+
contentViewId: state.booking.accommodationViewId,
|
|
10121
10458
|
};
|
|
10122
10459
|
return [4 /*yield*/, packageApi.fetchAccommodationViews(request, signal, state.apiSettings)];
|
|
10123
10460
|
case 1: return [2 /*return*/, _b.sent()];
|
|
@@ -10168,24 +10505,31 @@ var changeReturnFlight = function (state, flight) {
|
|
|
10168
10505
|
var changePackageOption = function (state) {
|
|
10169
10506
|
var selectedOutward = state.outwardFlights.find(function (x) { return x.isSelected; });
|
|
10170
10507
|
var selectedReturn = state.returnFlights.find(function (x) { return x.isSelected; });
|
|
10171
|
-
var validOptions = selectedOutward.validOptions.filter(function (x) {
|
|
10508
|
+
var validOptions = selectedOutward.validOptions.filter(function (x) {
|
|
10509
|
+
return selectedReturn.validOptions.some(function (y) { return x === y; });
|
|
10510
|
+
});
|
|
10172
10511
|
var currentOption = state.options.find(function (x) { return x.isSelected; });
|
|
10173
10512
|
if (validOptions.some(function (x) { return x === currentOption.id; }))
|
|
10174
10513
|
return;
|
|
10175
|
-
var firstOption = state.options.find(function (x) {
|
|
10514
|
+
var firstOption = state.options.find(function (x) {
|
|
10515
|
+
return validOptions.some(function (y) { return y === x.id; });
|
|
10516
|
+
});
|
|
10176
10517
|
currentOption.isSelected = false;
|
|
10177
10518
|
firstOption.isSelected = true;
|
|
10178
10519
|
var currentRooms = currentOption.rooms.map(function (r) {
|
|
10179
10520
|
var selectedOption = r.options.find(function (o) { return o.isSelected; });
|
|
10180
10521
|
return {
|
|
10181
10522
|
accommodation: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.accommodationCode,
|
|
10182
|
-
regime: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.regimeCode
|
|
10523
|
+
regime: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.regimeCode,
|
|
10183
10524
|
};
|
|
10184
10525
|
});
|
|
10185
10526
|
firstOption.rooms.forEach(function (r, i) {
|
|
10186
10527
|
var currentRoom = currentRooms[i];
|
|
10187
10528
|
var selectedOption = r.options.find(function (o) { return o.isSelected; });
|
|
10188
|
-
var selection = r.options.find(function (x) {
|
|
10529
|
+
var selection = r.options.find(function (x) {
|
|
10530
|
+
return x.accommodationCode === currentRoom.accommodation &&
|
|
10531
|
+
x.regimeCode === currentRoom.regime;
|
|
10532
|
+
});
|
|
10189
10533
|
if (selection) {
|
|
10190
10534
|
if (selection.entryLineGuid !== (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.entryLineGuid)) {
|
|
10191
10535
|
if (selectedOption)
|
|
@@ -10315,7 +10659,7 @@ var bookingSlice = createSlice({
|
|
|
10315
10659
|
},
|
|
10316
10660
|
setAccommodationViewId: function (state, action) {
|
|
10317
10661
|
state.accommodationViewId = action.payload;
|
|
10318
|
-
}
|
|
10662
|
+
},
|
|
10319
10663
|
},
|
|
10320
10664
|
extraReducers: function (builder) {
|
|
10321
10665
|
builder.addCase(fetchPackageDetails.fulfilled, function (state, action) {
|
|
@@ -10404,7 +10748,10 @@ var bookingSlice = createSlice({
|
|
|
10404
10748
|
}
|
|
10405
10749
|
// Fallback to an option that has the requested accommodation OR regime if the requested option is not available. If no fallback is available, select the first option.
|
|
10406
10750
|
if (!activeOption_1.rooms[i].options.some(function (x) { return x.isSelected; })) {
|
|
10407
|
-
var fallbackOption = activeOption_1.rooms[i].options.find(function (x) {
|
|
10751
|
+
var fallbackOption = activeOption_1.rooms[i].options.find(function (x) {
|
|
10752
|
+
return x.accommodationCode == room.accommodationCode ||
|
|
10753
|
+
x.regimeCode == room.regimeCode;
|
|
10754
|
+
});
|
|
10408
10755
|
if (fallbackOption) {
|
|
10409
10756
|
fallbackOption.isSelected = true;
|
|
10410
10757
|
}
|
|
@@ -10434,6 +10781,7 @@ var bookingReducer = bookingSlice.reducer;
|
|
|
10434
10781
|
|
|
10435
10782
|
var SettingsContext = React.createContext({
|
|
10436
10783
|
language: "nl-BE",
|
|
10784
|
+
token: "",
|
|
10437
10785
|
generatePaymentUrl: false,
|
|
10438
10786
|
currency: "EUR",
|
|
10439
10787
|
officeId: 1,
|
|
@@ -10445,22 +10793,28 @@ var SettingsContext = React.createContext({
|
|
|
10445
10793
|
basePath: "/boeken",
|
|
10446
10794
|
roomOptions: {
|
|
10447
10795
|
pathSuffix: "/",
|
|
10796
|
+
reportPrintActionId: null,
|
|
10448
10797
|
},
|
|
10449
10798
|
flightOptions: {
|
|
10450
10799
|
pathSuffix: "/vluchten",
|
|
10800
|
+
reportPrintActionId: null,
|
|
10451
10801
|
},
|
|
10452
10802
|
options: {
|
|
10453
10803
|
pathSuffix: "/opties",
|
|
10804
|
+
reportPrintActionId: null,
|
|
10454
10805
|
},
|
|
10455
10806
|
travellers: {
|
|
10456
10807
|
pathSuffix: "/reizigers",
|
|
10808
|
+
reportPrintActionId: null,
|
|
10457
10809
|
},
|
|
10458
10810
|
summary: {
|
|
10459
10811
|
pathSuffix: "/samenvatting",
|
|
10460
10812
|
checkboxes: null,
|
|
10813
|
+
reportPrintActionId: null,
|
|
10461
10814
|
},
|
|
10462
10815
|
confirmation: {
|
|
10463
10816
|
pathSuffix: "/bevestiging",
|
|
10817
|
+
reportPrintActionId: null,
|
|
10464
10818
|
},
|
|
10465
10819
|
error: {
|
|
10466
10820
|
pathSuffix: "/mislukt",
|
|
@@ -10612,6 +10966,13 @@ var Icon = function (_a) {
|
|
|
10612
10966
|
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10613
10967
|
title && React.createElement("title", null, title),
|
|
10614
10968
|
React.createElement("path", { d: "M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z" })));
|
|
10969
|
+
case "ui-trashcan":
|
|
10970
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10971
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10972
|
+
.join(" "), width: width, height: height, viewBox: "0 0 448 512" },
|
|
10973
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10974
|
+
title && React.createElement("title", null, title),
|
|
10975
|
+
React.createElement("path", { d: "M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z" })));
|
|
10615
10976
|
case "ui-home":
|
|
10616
10977
|
case "ui-filter":
|
|
10617
10978
|
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
@@ -10761,7 +11122,7 @@ var Confirmation = function () {
|
|
|
10761
11122
|
var titleText = settings.isOffer
|
|
10762
11123
|
? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
|
|
10763
11124
|
: format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
|
|
10764
|
-
return (React.createElement("div", { className: "form", id: "booking--confirmation" },
|
|
11125
|
+
return (React.createElement("div", { className: "form form__booking--message", id: "booking--confirmation" },
|
|
10765
11126
|
React.createElement("div", { className: "form__region" },
|
|
10766
11127
|
React.createElement("div", { className: "form__row" },
|
|
10767
11128
|
React.createElement("div", { className: "form__group" },
|
|
@@ -10775,7 +11136,9 @@ var Confirmation = function () {
|
|
|
10775
11136
|
React.createElement("p", null,
|
|
10776
11137
|
translations.CONFIRMATION.MESSAGE_TEXT1,
|
|
10777
11138
|
React.createElement("br", null),
|
|
10778
|
-
settings.isOffer
|
|
11139
|
+
settings.isOffer
|
|
11140
|
+
? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER
|
|
11141
|
+
: translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
|
|
10779
11142
|
React.createElement("p", null,
|
|
10780
11143
|
translations.CONFIRMATION.QUESTIONS_TEXT1,
|
|
10781
11144
|
" ",
|
|
@@ -10799,7 +11162,7 @@ var Error$1 = function () {
|
|
|
10799
11162
|
}
|
|
10800
11163
|
};
|
|
10801
11164
|
var translations = useSelector(selectTranslations);
|
|
10802
|
-
return (React.createElement("div", { className: "form" },
|
|
11165
|
+
return (React.createElement("div", { className: "form form__booking--message" },
|
|
10803
11166
|
React.createElement("div", { className: "form__region" },
|
|
10804
11167
|
React.createElement("div", { className: "form__row" },
|
|
10805
11168
|
React.createElement("div", { className: "form__group" },
|
|
@@ -10858,11 +11221,11 @@ var MultiRangeFilter = function (_a) {
|
|
|
10858
11221
|
React.createElement("div", { className: "min-box" }, valueFormatter(min)),
|
|
10859
11222
|
React.createElement("div", { className: "max-box" }, valueFormatter(max))),
|
|
10860
11223
|
React.createElement("div", { className: "range-slider" },
|
|
10861
|
-
React.createElement("div", { className: "slider-track", style: {
|
|
11224
|
+
React.createElement("div", { className: "slider-track", style: { left: leftPercentage + "%", right: rightPercentage + "%" } }),
|
|
10862
11225
|
React.createElement("input", { type: "range", min: min, max: max, value: minVal, onChange: slideMin, onMouseDown: startDrag, onMouseUp: stopDrag, onTouchStart: startDrag, onTouchEnd: stopDrag, className: "min-val" }),
|
|
10863
11226
|
React.createElement("input", { type: "range", min: min, max: max, value: maxVal, onChange: slideMax, onMouseDown: startDrag, onMouseUp: stopDrag, onTouchStart: startDrag, onTouchEnd: stopDrag, className: "max-val" }),
|
|
10864
|
-
isDragging && React.createElement("div", { className: "min-tooltip" }, valueFormatter(minVal)),
|
|
10865
|
-
isDragging && React.createElement("div", { className: "max-tooltip" }, valueFormatter(maxVal)))));
|
|
11227
|
+
isDragging && (React.createElement("div", { className: "min-tooltip" }, valueFormatter(minVal))),
|
|
11228
|
+
isDragging && (React.createElement("div", { className: "max-tooltip" }, valueFormatter(maxVal))))));
|
|
10866
11229
|
};
|
|
10867
11230
|
|
|
10868
11231
|
/*interface FlightGroup {
|
|
@@ -10885,7 +11248,9 @@ var buildGroupedFlights = function (outwardFlights, returnFlights) {
|
|
|
10885
11248
|
else {
|
|
10886
11249
|
var outwardCode = outwardFlight.code.substring(0, 7);
|
|
10887
11250
|
var returnCode_1 = outwardCode.split(" ").reduce(function (a, b) { return "".concat(b, " ").concat(a); });
|
|
10888
|
-
returnFlights
|
|
11251
|
+
returnFlights
|
|
11252
|
+
.filter(function (x) { return x.code.startsWith(returnCode_1); })
|
|
11253
|
+
.forEach(function (returnFlight) {
|
|
10889
11254
|
pairs.push({ outward: outwardFlight, return: returnFlight });
|
|
10890
11255
|
});
|
|
10891
11256
|
}
|
|
@@ -10899,7 +11264,7 @@ var buildGroupedFlights = function (outwardFlights, returnFlights) {
|
|
|
10899
11264
|
outward: outwardFlightDetails,
|
|
10900
11265
|
return: returnFlightDetails,
|
|
10901
11266
|
selectedOutward: x.outward,
|
|
10902
|
-
selectedReturn: x.return
|
|
11267
|
+
selectedReturn: x.return,
|
|
10903
11268
|
};
|
|
10904
11269
|
});
|
|
10905
11270
|
return results;
|
|
@@ -10918,7 +11283,7 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
10918
11283
|
var highestDepartureChangeDuration = 0;
|
|
10919
11284
|
outwardFlights.forEach(function (flight) {
|
|
10920
11285
|
var _a;
|
|
10921
|
-
var airlineCode = flight.code.split(
|
|
11286
|
+
var airlineCode = flight.code.split("/")[1];
|
|
10922
11287
|
if ((_a = flight.flightMetaData.flightLines) === null || _a === void 0 ? void 0 : _a.length) {
|
|
10923
11288
|
var firstLine_1 = flight.flightMetaData.flightLines[0];
|
|
10924
11289
|
if (!airports.some(function (x) { return x.value === firstLine_1.departureAirport; })) {
|
|
@@ -10926,7 +11291,7 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
10926
11291
|
value: firstLine_1 === null || firstLine_1 === void 0 ? void 0 : firstLine_1.departureAirport,
|
|
10927
11292
|
label: firstLine_1.departureAirportDescription,
|
|
10928
11293
|
count: 0,
|
|
10929
|
-
isSelected: false
|
|
11294
|
+
isSelected: false,
|
|
10930
11295
|
});
|
|
10931
11296
|
}
|
|
10932
11297
|
}
|
|
@@ -10935,20 +11300,20 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
10935
11300
|
value: airlineCode,
|
|
10936
11301
|
label: flight.airlineDescription,
|
|
10937
11302
|
count: 0,
|
|
10938
|
-
isSelected: false
|
|
11303
|
+
isSelected: false,
|
|
10939
11304
|
});
|
|
10940
11305
|
}
|
|
10941
11306
|
var stopCount = flight.flightMetaData.flightLines.length - 1;
|
|
10942
|
-
if (!numberOfStops.some(function (x) { return x.value ===
|
|
11307
|
+
if (!numberOfStops.some(function (x) { return x.value === stopCount + ""; })) {
|
|
10943
11308
|
numberOfStops.push({
|
|
10944
|
-
value:
|
|
11309
|
+
value: stopCount + "",
|
|
10945
11310
|
label: stopCount === 0
|
|
10946
11311
|
? translations.FLIGHTS_FORM.DIRECT_FLIGHT
|
|
10947
11312
|
: stopCount == 1
|
|
10948
11313
|
? "".concat(stopCount, " ").concat(translations.FLIGHTS_FORM.STOP)
|
|
10949
11314
|
: "".concat(stopCount, " ").concat(translations.FLIGHTS_FORM.STOPS),
|
|
10950
11315
|
count: 0,
|
|
10951
|
-
isSelected: false
|
|
11316
|
+
isSelected: false,
|
|
10952
11317
|
});
|
|
10953
11318
|
}
|
|
10954
11319
|
var departureTime = flight.flightMetaData.flightLines[0].departureTime;
|
|
@@ -10958,7 +11323,7 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
10958
11323
|
value: timeBracket,
|
|
10959
11324
|
label: getBracketTranslation(timeBracket, translations),
|
|
10960
11325
|
count: 0,
|
|
10961
|
-
isSelected: false
|
|
11326
|
+
isSelected: false,
|
|
10962
11327
|
});
|
|
10963
11328
|
}
|
|
10964
11329
|
var travelDurationInMinutes = minutesFromTicks(flight.flightMetaData.durationInTicks);
|
|
@@ -10994,7 +11359,7 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
10994
11359
|
value: timeBracket,
|
|
10995
11360
|
label: getBracketTranslation(timeBracket, translations),
|
|
10996
11361
|
count: 0,
|
|
10997
|
-
isSelected: false
|
|
11362
|
+
isSelected: false,
|
|
10998
11363
|
});
|
|
10999
11364
|
}
|
|
11000
11365
|
});
|
|
@@ -11008,14 +11373,14 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
11008
11373
|
min: lowestDepartureTravelDuration,
|
|
11009
11374
|
max: highestDepartureTravelDuration,
|
|
11010
11375
|
selectedMin: lowestDepartureTravelDuration,
|
|
11011
|
-
selectedMax: highestDepartureTravelDuration
|
|
11376
|
+
selectedMax: highestDepartureTravelDuration,
|
|
11012
11377
|
},
|
|
11013
11378
|
changeDuration: {
|
|
11014
11379
|
min: lowestDepartureChangeDuration,
|
|
11015
11380
|
max: highestDepartureChangeDuration,
|
|
11016
11381
|
selectedMin: lowestDepartureChangeDuration,
|
|
11017
|
-
selectedMax: highestDepartureChangeDuration
|
|
11018
|
-
}
|
|
11382
|
+
selectedMax: highestDepartureChangeDuration,
|
|
11383
|
+
},
|
|
11019
11384
|
},
|
|
11020
11385
|
return: {
|
|
11021
11386
|
departurePeriod: returnDeparturePeriods,
|
|
@@ -11023,15 +11388,15 @@ var buildFilterOptions = function (outwardFlights, returnFlights, translations)
|
|
|
11023
11388
|
min: lowestReturnTravelDuration,
|
|
11024
11389
|
max: highestReturnTravelDuration,
|
|
11025
11390
|
selectedMin: lowestReturnTravelDuration,
|
|
11026
|
-
selectedMax: highestReturnTravelDuration
|
|
11391
|
+
selectedMax: highestReturnTravelDuration,
|
|
11027
11392
|
},
|
|
11028
11393
|
changeDuration: {
|
|
11029
11394
|
min: lowestReturnChangeDuration,
|
|
11030
11395
|
max: highestReturnChangeDuration,
|
|
11031
11396
|
selectedMin: lowestReturnChangeDuration,
|
|
11032
|
-
selectedMax: highestReturnChangeDuration
|
|
11033
|
-
}
|
|
11034
|
-
}
|
|
11397
|
+
selectedMax: highestReturnChangeDuration,
|
|
11398
|
+
},
|
|
11399
|
+
},
|
|
11035
11400
|
};
|
|
11036
11401
|
};
|
|
11037
11402
|
var filterGroupedFlights = function (groups, filterOptions) {
|
|
@@ -11040,15 +11405,21 @@ var filterGroupedFlights = function (groups, filterOptions) {
|
|
|
11040
11405
|
var filteredGroups = groups;
|
|
11041
11406
|
if (filterOptions.airlines.some(function (x) { return x.isSelected; })) {
|
|
11042
11407
|
var selectedAirlineCodes_1 = filterOptions.airlines.filter(function (x) { return x.isSelected; });
|
|
11043
|
-
filteredGroups = filteredGroups.filter(function (x) {
|
|
11408
|
+
filteredGroups = filteredGroups.filter(function (x) {
|
|
11409
|
+
return selectedAirlineCodes_1.some(function (y) { return y.value === x.outward.airlineCode; });
|
|
11410
|
+
});
|
|
11044
11411
|
}
|
|
11045
11412
|
if (filterOptions.airports.some(function (x) { return x.isSelected; })) {
|
|
11046
11413
|
var selectedAirlineCodes_2 = filterOptions.airports.filter(function (x) { return x.isSelected; });
|
|
11047
|
-
filteredGroups = filteredGroups.filter(function (x) {
|
|
11414
|
+
filteredGroups = filteredGroups.filter(function (x) {
|
|
11415
|
+
return selectedAirlineCodes_2.some(function (y) { return y.value === x.outward.departureAirportCode; });
|
|
11416
|
+
});
|
|
11048
11417
|
}
|
|
11049
11418
|
if (filterOptions.numberOfStops.some(function (x) { return x.isSelected; })) {
|
|
11050
11419
|
var selectedNumberOfStops_1 = filterOptions.numberOfStops.filter(function (x) { return x.isSelected; });
|
|
11051
|
-
filteredGroups = filteredGroups.filter(function (x) {
|
|
11420
|
+
filteredGroups = filteredGroups.filter(function (x) {
|
|
11421
|
+
return selectedNumberOfStops_1.some(function (y) { return parseInt(y.value) === x.outward.flightLines.length - 1; });
|
|
11422
|
+
});
|
|
11052
11423
|
}
|
|
11053
11424
|
filteredGroups = filterGroupedFlightByDirection(filteredGroups, true, filterOptions.outward);
|
|
11054
11425
|
filteredGroups = filterGroupedFlightByDirection(filteredGroups, false, filterOptions.return);
|
|
@@ -11058,10 +11429,25 @@ var filterGroupedFlightByDirection = function (groups, isOutward, directionFilte
|
|
|
11058
11429
|
var filteredGroups = groups;
|
|
11059
11430
|
if (directionFilter.departurePeriod.some(function (x) { return x.isSelected; })) {
|
|
11060
11431
|
var selectedDeparturePeriods_1 = directionFilter.departurePeriod.filter(function (x) { return x.isSelected; });
|
|
11061
|
-
filteredGroups = filteredGroups.filter(function (x) {
|
|
11432
|
+
filteredGroups = filteredGroups.filter(function (x) {
|
|
11433
|
+
return selectedDeparturePeriods_1.some(function (y) {
|
|
11434
|
+
return y.value ===
|
|
11435
|
+
determineTimeBracket((isOutward ? x.outward : x.return).departureTime);
|
|
11436
|
+
});
|
|
11437
|
+
});
|
|
11062
11438
|
}
|
|
11063
|
-
filteredGroups = filteredGroups.filter(function (x) {
|
|
11064
|
-
|
|
11439
|
+
filteredGroups = filteredGroups.filter(function (x) {
|
|
11440
|
+
return directionFilter.travelDuration.selectedMin <=
|
|
11441
|
+
(isOutward ? x.outward : x.return).travelDurationMinutes &&
|
|
11442
|
+
(isOutward ? x.outward : x.return).travelDurationMinutes <=
|
|
11443
|
+
directionFilter.travelDuration.selectedMax;
|
|
11444
|
+
});
|
|
11445
|
+
return filteredGroups.filter(function (x) {
|
|
11446
|
+
return directionFilter.changeDuration.selectedMin <=
|
|
11447
|
+
(isOutward ? x.outward : x.return).changeDurationMinutes &&
|
|
11448
|
+
(isOutward ? x.outward : x.return).changeDurationMinutes <=
|
|
11449
|
+
directionFilter.changeDuration.selectedMax;
|
|
11450
|
+
});
|
|
11065
11451
|
};
|
|
11066
11452
|
var formatMinutes = function (minutes) {
|
|
11067
11453
|
var hh = Math.floor(minutes / 60);
|
|
@@ -11071,7 +11457,7 @@ var formatMinutes = function (minutes) {
|
|
|
11071
11457
|
var getFlightDetails = function (flight) {
|
|
11072
11458
|
var firstLine = flight.flightMetaData.flightLines[0];
|
|
11073
11459
|
var lastLine = flight.flightMetaData.flightLines[flight.flightMetaData.flightLines.length - 1];
|
|
11074
|
-
var airlineCode = flight.code.split(
|
|
11460
|
+
var airlineCode = flight.code.split("/")[1];
|
|
11075
11461
|
var waitDurations = getWaitDurations(flight.flightMetaData.flightLines);
|
|
11076
11462
|
return {
|
|
11077
11463
|
airline: flight.airlineDescription,
|
|
@@ -11100,7 +11486,7 @@ var getFlightDetails = function (flight) {
|
|
|
11100
11486
|
number: "".concat(x.airlineCode, " ").concat(x.number),
|
|
11101
11487
|
travelDuration: formatDuration(x.durationInTicks),
|
|
11102
11488
|
waitDuration: waitDurations.length - 1 <= i ? waitDurations[i] : undefined,
|
|
11103
|
-
}); })
|
|
11489
|
+
}); }),
|
|
11104
11490
|
};
|
|
11105
11491
|
};
|
|
11106
11492
|
var isNextDay = function (startDateString, endDateString) {
|
|
@@ -11131,11 +11517,11 @@ var getWaitDuration = function (arrivalDateString, arrivalTime, departureDateStr
|
|
|
11131
11517
|
};
|
|
11132
11518
|
var getWaitDurationInMinutes = function (arrivalDateString, arrivalTime, departureDateString, departureTime) {
|
|
11133
11519
|
var arrivalDate = parseISO(arrivalDateString);
|
|
11134
|
-
var arrivalTimeParts = arrivalTime.split(
|
|
11520
|
+
var arrivalTimeParts = arrivalTime.split(":");
|
|
11135
11521
|
arrivalDate.setHours(parseInt(arrivalTimeParts[0]));
|
|
11136
11522
|
arrivalDate.setMinutes(parseInt(arrivalTimeParts[1]));
|
|
11137
11523
|
var departureDate = parseISO(departureDateString);
|
|
11138
|
-
var departureTimeParts = departureTime.split(
|
|
11524
|
+
var departureTimeParts = departureTime.split(":");
|
|
11139
11525
|
departureDate.setHours(parseInt(departureTimeParts[0]));
|
|
11140
11526
|
departureDate.setMinutes(parseInt(departureTimeParts[1]));
|
|
11141
11527
|
return differenceInMinutes(departureDate, arrivalDate);
|
|
@@ -11176,32 +11562,32 @@ var minutesFromTicks = function (ticks) {
|
|
|
11176
11562
|
};
|
|
11177
11563
|
var formatDuration = function (ticks) {
|
|
11178
11564
|
if (!ticks)
|
|
11179
|
-
return
|
|
11565
|
+
return "";
|
|
11180
11566
|
var totalSeconds = ticks / 10000000;
|
|
11181
11567
|
var hh = Math.floor(totalSeconds / 3600);
|
|
11182
11568
|
var mm = Math.floor((totalSeconds % 3600) / 60);
|
|
11183
11569
|
return pad(hh, 2) + ":" + pad(mm, 2);
|
|
11184
11570
|
};
|
|
11185
11571
|
var pad = function (input, width) {
|
|
11186
|
-
var n = input +
|
|
11187
|
-
return n.length >= width ? n : new Array(width - n.length + 1).join(
|
|
11572
|
+
var n = input + "";
|
|
11573
|
+
return n.length >= width ? n : new Array(width - n.length + 1).join("0") + n;
|
|
11188
11574
|
};
|
|
11189
11575
|
var determineTimeBracket = function (input) {
|
|
11190
|
-
var time = parseInt(input.replace(
|
|
11576
|
+
var time = parseInt(input.replace(":", ""));
|
|
11191
11577
|
if (time <= 500)
|
|
11192
|
-
return
|
|
11578
|
+
return "0000-0500";
|
|
11193
11579
|
if (time > 500 && time <= 1200)
|
|
11194
|
-
return
|
|
11580
|
+
return "0500-1200";
|
|
11195
11581
|
if (time > 1200 && time <= 1800)
|
|
11196
|
-
return
|
|
11197
|
-
return
|
|
11582
|
+
return "1201-1800";
|
|
11583
|
+
return "1800-2400";
|
|
11198
11584
|
};
|
|
11199
11585
|
var getBracketTranslation = function (input, translations) {
|
|
11200
|
-
if (input ===
|
|
11586
|
+
if (input === "0000-0500")
|
|
11201
11587
|
return translations.FLIGHTS_FORM.NIGHT_DEPARTURE;
|
|
11202
|
-
if (input ===
|
|
11588
|
+
if (input === "0500-1200")
|
|
11203
11589
|
return translations.FLIGHTS_FORM.MORNING_DEPARTURE;
|
|
11204
|
-
if (input ===
|
|
11590
|
+
if (input === "1200-1800")
|
|
11205
11591
|
return translations.FLIGHTS_FORM.AFTERNOON_DEPARTURE;
|
|
11206
11592
|
return translations.FLIGHTS_FORM.EVENING_DEPARTURE;
|
|
11207
11593
|
};
|
|
@@ -11226,7 +11612,8 @@ var FlightFilter = function (_a) {
|
|
|
11226
11612
|
var filterRef = useRef(null);
|
|
11227
11613
|
useEffect(function () {
|
|
11228
11614
|
function handleClickOutside(event) {
|
|
11229
|
-
if (filterRef.current &&
|
|
11615
|
+
if (filterRef.current &&
|
|
11616
|
+
!filterRef.current.contains(event.target)) {
|
|
11230
11617
|
setFiltersVisible(false);
|
|
11231
11618
|
}
|
|
11232
11619
|
}
|
|
@@ -11294,9 +11681,11 @@ var FlightFilter = function (_a) {
|
|
|
11294
11681
|
return (React.createElement(React.Fragment, null,
|
|
11295
11682
|
React.createElement("button", { type: "button", className: "cta cta--filter", onClick: function () { return setFiltersVisible(!filtersVisible); } },
|
|
11296
11683
|
React.createElement(Icon, { name: "ui-filter", width: 11, height: 10 }),
|
|
11297
|
-
React.createElement("span", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
|
|
11298
|
-
|
|
11299
|
-
|
|
11684
|
+
React.createElement("span", null, translations.FLIGHTS_FORM.FILTER_OPTIONS)),
|
|
11685
|
+
React.createElement("div", { ref: filterRef, className: buildClassName([
|
|
11686
|
+
"flight__filter",
|
|
11687
|
+
filtersVisible && "flight__filter--active",
|
|
11688
|
+
]) },
|
|
11300
11689
|
React.createElement("div", { className: "flight__filter__header" },
|
|
11301
11690
|
React.createElement("div", { className: "flight__filter__header__title" },
|
|
11302
11691
|
React.createElement("h3", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
|
|
@@ -11308,14 +11697,16 @@ var FlightFilter = function (_a) {
|
|
|
11308
11697
|
" ",
|
|
11309
11698
|
translations.FLIGHTS_FORM.FLIGHTS_FOUND_2),
|
|
11310
11699
|
" ",
|
|
11311
|
-
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3))
|
|
11700
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3)),
|
|
11701
|
+
React.createElement("button", { type: "button", className: "cta cta--close", onClick: function () { return setFiltersVisible(false); } },
|
|
11702
|
+
React.createElement(Icon, { name: "ui-close", width: 25, height: 25 }))),
|
|
11312
11703
|
React.createElement("div", { className: "flight__filter__body" },
|
|
11313
11704
|
React.createElement("div", { className: "flight__filter__group" },
|
|
11314
11705
|
React.createElement("div", { className: "flight__filter__group__title" }, translations.FLIGHTS_FORM.AIRLINES),
|
|
11315
11706
|
React.createElement("div", { className: "flight__filter__group__wrapper" }, filterOptions.airlines.map(function (option, k) { return (React.createElement("div", { className: "tree", key: k },
|
|
11316
11707
|
React.createElement("div", { className: "checkbox flight__filter__checkbox" },
|
|
11317
|
-
React.createElement("label", { htmlFor:
|
|
11318
|
-
React.createElement("input", { type: "checkbox", id:
|
|
11708
|
+
React.createElement("label", { htmlFor: "airline_" + option.value, className: "checkbox__label" },
|
|
11709
|
+
React.createElement("input", { type: "checkbox", id: "airline_" + option.value, className: "checkbox__input checkbox__input--parent", onClick: function () { return updateAirlineFilter(option.value); } }),
|
|
11319
11710
|
React.createElement("span", { className: "radiobutton__label-text" },
|
|
11320
11711
|
option.label,
|
|
11321
11712
|
" ",
|
|
@@ -11327,8 +11718,8 @@ var FlightFilter = function (_a) {
|
|
|
11327
11718
|
React.createElement("div", { className: "flight__filter__group__title" }, translations.FLIGHTS_FORM.AIRPORTS),
|
|
11328
11719
|
React.createElement("div", { className: "flight__filter__group__wrapper" }, filterOptions.airports.map(function (option, k) { return (React.createElement("div", { className: "tree", key: k },
|
|
11329
11720
|
React.createElement("div", { className: "checkbox flight__filter__checkbox" },
|
|
11330
|
-
React.createElement("label", { htmlFor:
|
|
11331
|
-
React.createElement("input", { type: "checkbox", id:
|
|
11721
|
+
React.createElement("label", { htmlFor: "airport_" + option.value, className: "checkbox__label" },
|
|
11722
|
+
React.createElement("input", { type: "checkbox", id: "airport_" + option.value, className: "checkbox__input checkbox__input--parent", onClick: function () { return updateAirportFilter(option.value); } }),
|
|
11332
11723
|
React.createElement("span", { className: "radiobutton__label-text" },
|
|
11333
11724
|
option.label,
|
|
11334
11725
|
" ",
|
|
@@ -11340,8 +11731,8 @@ var FlightFilter = function (_a) {
|
|
|
11340
11731
|
React.createElement("div", { className: "flight__filter__group__title" }, translations.FLIGHTS_FORM.NUMBER_OF_STOPS),
|
|
11341
11732
|
React.createElement("div", { className: "flight__filter__group__wrapper" }, filterOptions.numberOfStops.map(function (option, k) { return (React.createElement("div", { className: "tree", key: k },
|
|
11342
11733
|
React.createElement("div", { className: "checkbox flight__filter__checkbox" },
|
|
11343
|
-
React.createElement("label", { htmlFor:
|
|
11344
|
-
React.createElement("input", { type: "checkbox", id:
|
|
11734
|
+
React.createElement("label", { htmlFor: "stops_" + option.value, className: "checkbox__label" },
|
|
11735
|
+
React.createElement("input", { type: "checkbox", id: "stops_" + option.value, className: "checkbox__input checkbox__input--parent", onClick: function () { return updateStopsFilter(option.value); } }),
|
|
11345
11736
|
React.createElement("span", { className: "radiobutton__label-text" },
|
|
11346
11737
|
option.label,
|
|
11347
11738
|
" ",
|
|
@@ -11355,8 +11746,8 @@ var FlightFilter = function (_a) {
|
|
|
11355
11746
|
React.createElement("p", null, translations.FLIGHTS_FORM.DEPARTURE_TIME),
|
|
11356
11747
|
filterOptions.outward.departurePeriod.map(function (option, k) { return (React.createElement("div", { className: "tree", key: k },
|
|
11357
11748
|
React.createElement("div", { className: "checkbox flight__filter__checkbox" },
|
|
11358
|
-
React.createElement("label", { htmlFor:
|
|
11359
|
-
React.createElement("input", { type: "checkbox", id:
|
|
11749
|
+
React.createElement("label", { htmlFor: "outward_time_" + option.value, className: "checkbox__label" },
|
|
11750
|
+
React.createElement("input", { type: "checkbox", id: "outward_time_" + option.value, className: "checkbox__input checkbox__input--parent", onClick: function () { return updateOutwardDeparture(option.value); } }),
|
|
11360
11751
|
React.createElement("span", { className: "radiobutton__label-text" },
|
|
11361
11752
|
option.label,
|
|
11362
11753
|
" ",
|
|
@@ -11376,8 +11767,8 @@ var FlightFilter = function (_a) {
|
|
|
11376
11767
|
React.createElement("p", null, translations.FLIGHTS_FORM.DEPARTURE_TIME),
|
|
11377
11768
|
filterOptions.return.departurePeriod.map(function (option, k) { return (React.createElement("div", { className: "tree", key: k },
|
|
11378
11769
|
React.createElement("div", { className: "checkbox flight__filter__checkbox" },
|
|
11379
|
-
React.createElement("label", { htmlFor:
|
|
11380
|
-
React.createElement("input", { type: "checkbox", id:
|
|
11770
|
+
React.createElement("label", { htmlFor: "return_time_" + option.value, className: "checkbox__label" },
|
|
11771
|
+
React.createElement("input", { type: "checkbox", id: "return_time_" + option.value, className: "checkbox__input checkbox__input--parent", onClick: function () { return updateReturnDeparture(option.value); } }),
|
|
11381
11772
|
React.createElement("span", { className: "radiobutton__label-text" },
|
|
11382
11773
|
option.label,
|
|
11383
11774
|
" ",
|
|
@@ -11524,9 +11915,15 @@ var FlightOptionFlight = function (_a) {
|
|
|
11524
11915
|
React.createElement("p", null, getDateText(details.arrivalDate)),
|
|
11525
11916
|
details.isNextDay && (React.createElement("span", { className: "flight__info__times__days" }, translations.FLIGHTS_FORM.PLUS_ONE_DAY))))),
|
|
11526
11917
|
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
11527
|
-
React.createElement("div", { className: buildClassName([
|
|
11918
|
+
React.createElement("div", { className: buildClassName([
|
|
11919
|
+
"flight__detail__btn",
|
|
11920
|
+
isDetailVisible && "flight__detail__btn--active",
|
|
11921
|
+
]), onClick: function () { return setIsDetailVisible(!isDetailVisible); } },
|
|
11528
11922
|
React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
11529
|
-
React.createElement("div", { className: buildClassName([
|
|
11923
|
+
React.createElement("div", { className: buildClassName([
|
|
11924
|
+
"flight__detail",
|
|
11925
|
+
isDetailVisible && "flight__detail--active",
|
|
11926
|
+
]) }, details.flightLines.map(function (flightLine, flightLineIndex) { return (React.createElement(React.Fragment, { key: flightLineIndex },
|
|
11530
11927
|
React.createElement("div", { className: "flight__info" },
|
|
11531
11928
|
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
11532
11929
|
React.createElement("div", { className: "flight__info__times" },
|
|
@@ -11556,16 +11953,17 @@ var FlightOptionFlight = function (_a) {
|
|
|
11556
11953
|
React.createElement("span", null, translations.FLIGHTS_FORM.STOP_TIME),
|
|
11557
11954
|
React.createElement("strong", null, flightLine.waitDuration))),
|
|
11558
11955
|
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" }))))); })),
|
|
11559
|
-
React.createElement("div", { className: buildClassName([
|
|
11956
|
+
React.createElement("div", { className: buildClassName([
|
|
11957
|
+
"flight__rate",
|
|
11958
|
+
isOptionsVisible && "flight__rate--active",
|
|
11959
|
+
]) })));
|
|
11560
11960
|
};
|
|
11561
11961
|
|
|
11562
11962
|
var FlightOption = function (_a) {
|
|
11563
11963
|
var item = _a.item, isSelected = _a.isSelected, currentPrice = _a.currentPrice, onChange = _a.onChange;
|
|
11564
11964
|
var translations = useSelector(selectTranslations);
|
|
11565
11965
|
var ownTotalPrice = item.selectedOutward.price + item.selectedReturn.price;
|
|
11566
|
-
var priceDifference = item.isSelected
|
|
11567
|
-
? 0
|
|
11568
|
-
: ownTotalPrice - currentPrice;
|
|
11966
|
+
var priceDifference = item.isSelected ? 0 : ownTotalPrice - currentPrice;
|
|
11569
11967
|
var outwardVisible = useState(false)[0];
|
|
11570
11968
|
var returnVisible = useState(false)[0];
|
|
11571
11969
|
var handleButtonClick = function () {
|
|
@@ -11579,11 +11977,14 @@ var FlightOption = function (_a) {
|
|
|
11579
11977
|
React.createElement("div", { className: "flight__flight__header" },
|
|
11580
11978
|
React.createElement("div", { className: "flight__status__container" }),
|
|
11581
11979
|
React.createElement("div", { className: "flight__price" },
|
|
11582
|
-
!isSelected && (React.createElement("span", { className: buildClassName([
|
|
11980
|
+
!isSelected && (React.createElement("span", { className: buildClassName([
|
|
11981
|
+
"price",
|
|
11583
11982
|
priceDifference > 0 && "price--increase",
|
|
11584
|
-
priceDifference < 0 && "price--decrease"
|
|
11983
|
+
priceDifference < 0 && "price--decrease",
|
|
11585
11984
|
]) }, getPriceDifferenceText(priceDifference))),
|
|
11586
|
-
React.createElement("button", { type: "button", className: "cta ".concat(isSelected ?
|
|
11985
|
+
React.createElement("button", { type: "button", className: "cta ".concat(isSelected ? "cta--selected" : "cta--select"), onClick: handleButtonClick }, isSelected
|
|
11986
|
+
? translations.SHARED.SELECTED
|
|
11987
|
+
: translations.SHARED.SELECT)))),
|
|
11587
11988
|
React.createElement(FlightOptionFlight, { details: item.outward, isOptionsVisible: outwardVisible }),
|
|
11588
11989
|
React.createElement(FlightOptionFlight, { details: item.return, isOptionsVisible: returnVisible })))));
|
|
11589
11990
|
};
|
|
@@ -11754,8 +12155,8 @@ var FlightOptionsForm = function () {
|
|
|
11754
12155
|
}
|
|
11755
12156
|
e.preventDefault();
|
|
11756
12157
|
};
|
|
11757
|
-
var currentFlightPrice = (((_b = (_a = flights.outward) === null || _a === void 0 ? void 0 : _a.find(function (x) { return x.isSelected; })) === null || _b === void 0 ? void 0 : _b.price) || 0)
|
|
11758
|
-
|
|
12158
|
+
var currentFlightPrice = (((_b = (_a = flights.outward) === null || _a === void 0 ? void 0 : _a.find(function (x) { return x.isSelected; })) === null || _b === void 0 ? void 0 : _b.price) || 0) +
|
|
12159
|
+
(((_d = (_c = flights.return) === null || _c === void 0 ? void 0 : _c.find(function (x) { return x.isSelected; })) === null || _d === void 0 ? void 0 : _d.price) || 0);
|
|
11759
12160
|
useEffect(function () {
|
|
11760
12161
|
var _a, _b;
|
|
11761
12162
|
if (packageDetails && settings.roomOptions.isHidden) {
|
|
@@ -11791,18 +12192,20 @@ var FlightOptionsForm = function () {
|
|
|
11791
12192
|
return (React.createElement(React.Fragment, null,
|
|
11792
12193
|
React.createElement(FlightOptionModal, null),
|
|
11793
12194
|
React.createElement("form", { className: "form", name: "booking--flights", id: "booking--flights", noValidate: true, onSubmit: handleSubmit },
|
|
11794
|
-
|
|
11795
|
-
|
|
11796
|
-
React.createElement("div", { className: "
|
|
11797
|
-
React.createElement("div", { className: "booking-
|
|
11798
|
-
|
|
11799
|
-
|
|
11800
|
-
React.createElement("div", { className: "
|
|
11801
|
-
|
|
11802
|
-
|
|
11803
|
-
|
|
11804
|
-
|
|
11805
|
-
|
|
12195
|
+
React.createElement("div", { className: "form__booking--flight" },
|
|
12196
|
+
isLoading && settings.loaderComponent,
|
|
12197
|
+
!isLoading && (React.createElement("div", { className: "form__group" },
|
|
12198
|
+
React.createElement("div", { className: "booking-card" },
|
|
12199
|
+
React.createElement("div", { className: "booking-card__body" },
|
|
12200
|
+
filterOptions && (React.createElement(FlightFilter, { filterOptions: filterOptions, resultCount: resultCount, applyFilter: setFilterOptions })),
|
|
12201
|
+
React.createElement("div", { className: "booking-card__group" },
|
|
12202
|
+
React.createElement("div", { className: "flight outward__flights" },
|
|
12203
|
+
isEmpty(filteredGroups) && (React.createElement("p", null, translations.FLIGHTS_FORM.NO_FLIGHTS_FOUND)),
|
|
12204
|
+
!isEmpty(filteredGroups) &&
|
|
12205
|
+
filteredGroups.map(function (flight, index) { return (React.createElement(FlightOption, { key: index, item: flight, isSelected: flight.isSelected, currentPrice: currentFlightPrice, onChange: function (item) {
|
|
12206
|
+
dispatch(setFlights(item));
|
|
12207
|
+
dispatch(fetchPriceDetails());
|
|
12208
|
+
} })); })))))))),
|
|
11806
12209
|
React.createElement("div", { className: "booking__navigator" },
|
|
11807
12210
|
React.createElement("button", { type: "submit", title: translations.STEPS.NEXT, disabled: isLoading, className: buildClassName(["cta", isLoading && "cta--disabled"]) }, translations.STEPS.NEXT)))));
|
|
11808
12211
|
};
|
|
@@ -11812,7 +12215,10 @@ var buildSelectableRooms = function (packageRooms, accommodations, regimes, acco
|
|
|
11812
12215
|
var _a, _b;
|
|
11813
12216
|
var selectedOption = x.options.find(function (x) { return x.isSelected; });
|
|
11814
12217
|
var alternativeOptions = x.options
|
|
11815
|
-
.filter(function (x) {
|
|
12218
|
+
.filter(function (x) {
|
|
12219
|
+
return x.accommodationCode !== selectedOption.accommodationCode &&
|
|
12220
|
+
!x.isLocked;
|
|
12221
|
+
})
|
|
11816
12222
|
.sort(function (a, b) { return a.price - b.price; });
|
|
11817
12223
|
var alternativeAccommodations = [];
|
|
11818
12224
|
alternativeOptions.forEach(function (x) {
|
|
@@ -11823,7 +12229,7 @@ var buildSelectableRooms = function (packageRooms, accommodations, regimes, acco
|
|
|
11823
12229
|
alternativeAccommodation.regimes.push({
|
|
11824
12230
|
code: x.regimeCode,
|
|
11825
12231
|
title: (_a = regime === null || regime === void 0 ? void 0 : regime.title) !== null && _a !== void 0 ? _a : x.regimeName,
|
|
11826
|
-
price: x.price
|
|
12232
|
+
price: x.price,
|
|
11827
12233
|
});
|
|
11828
12234
|
}
|
|
11829
12235
|
else {
|
|
@@ -11835,16 +12241,18 @@ var buildSelectableRooms = function (packageRooms, accommodations, regimes, acco
|
|
|
11835
12241
|
from: x.from,
|
|
11836
12242
|
to: x.to,
|
|
11837
12243
|
price: x.price,
|
|
11838
|
-
regimes: [
|
|
12244
|
+
regimes: [
|
|
12245
|
+
{
|
|
11839
12246
|
code: x.regimeCode,
|
|
11840
12247
|
title: (_b = regime === null || regime === void 0 ? void 0 : regime.title) !== null && _b !== void 0 ? _b : x.regimeName,
|
|
11841
|
-
price: x.price
|
|
11842
|
-
}
|
|
12248
|
+
price: x.price,
|
|
12249
|
+
},
|
|
12250
|
+
],
|
|
11843
12251
|
title: (_c = accommodation_1 === null || accommodation_1 === void 0 ? void 0 : accommodation_1.title) !== null && _c !== void 0 ? _c : x.accommodationName,
|
|
11844
12252
|
image: accommodation_1 === null || accommodation_1 === void 0 ? void 0 : accommodation_1.imageUrl,
|
|
11845
12253
|
usps: (_d = accommodation_1 === null || accommodation_1 === void 0 ? void 0 : accommodation_1.usps) !== null && _d !== void 0 ? _d : [],
|
|
11846
12254
|
description: accommodation_1 === null || accommodation_1 === void 0 ? void 0 : accommodation_1.description,
|
|
11847
|
-
viewHtml: accommodationViews === null || accommodationViews === void 0 ? void 0 : accommodationViews[x.accommodationCode]
|
|
12255
|
+
viewHtml: accommodationViews === null || accommodationViews === void 0 ? void 0 : accommodationViews[x.accommodationCode],
|
|
11848
12256
|
});
|
|
11849
12257
|
}
|
|
11850
12258
|
});
|
|
@@ -11866,17 +12274,17 @@ var buildSelectableRooms = function (packageRooms, accommodations, regimes, acco
|
|
|
11866
12274
|
return {
|
|
11867
12275
|
code: o.regimeCode,
|
|
11868
12276
|
title: (_a = regime === null || regime === void 0 ? void 0 : regime.title) !== null && _a !== void 0 ? _a : o.regimeName,
|
|
11869
|
-
price: o.price
|
|
12277
|
+
price: o.price,
|
|
11870
12278
|
};
|
|
11871
12279
|
}),
|
|
11872
12280
|
title: (_a = accommodation === null || accommodation === void 0 ? void 0 : accommodation.title) !== null && _a !== void 0 ? _a : selectedOption.accommodationName,
|
|
11873
12281
|
image: accommodation === null || accommodation === void 0 ? void 0 : accommodation.imageUrl,
|
|
11874
12282
|
usps: (_b = accommodation === null || accommodation === void 0 ? void 0 : accommodation.usps) !== null && _b !== void 0 ? _b : [],
|
|
11875
12283
|
description: accommodation === null || accommodation === void 0 ? void 0 : accommodation.description,
|
|
11876
|
-
viewHtml: accommodationViews === null || accommodationViews === void 0 ? void 0 : accommodationViews[selectedOption.accommodationCode]
|
|
12284
|
+
viewHtml: accommodationViews === null || accommodationViews === void 0 ? void 0 : accommodationViews[selectedOption.accommodationCode],
|
|
11877
12285
|
},
|
|
11878
12286
|
showAlternatives: false,
|
|
11879
|
-
alternatives: alternativeAccommodations
|
|
12287
|
+
alternatives: alternativeAccommodations,
|
|
11880
12288
|
};
|
|
11881
12289
|
});
|
|
11882
12290
|
};
|
|
@@ -11886,11 +12294,14 @@ var updatePackageRooms = function (rooms, index, accommodationCode, regimeCode,
|
|
|
11886
12294
|
return room;
|
|
11887
12295
|
return __assign(__assign({}, room), { options: room.options.map(function (option) {
|
|
11888
12296
|
return __assign(__assign({}, option), { isSelected: option.accommodationCode === accommodationCode &&
|
|
11889
|
-
(option.regimeCode === regimeCode ||
|
|
12297
|
+
(option.regimeCode === regimeCode ||
|
|
12298
|
+
(option.regimeCode === null && regimeCode === "")) });
|
|
11890
12299
|
}) });
|
|
11891
12300
|
});
|
|
11892
12301
|
var selectedAccommodations = new Map();
|
|
11893
|
-
updatedRooms
|
|
12302
|
+
updatedRooms
|
|
12303
|
+
.map(function (x) { return x.options.find(function (x) { return x.isSelected; }); })
|
|
12304
|
+
.forEach(function (x) {
|
|
11894
12305
|
if (selectedAccommodations.has(x.accommodationCode)) {
|
|
11895
12306
|
selectedAccommodations.set(x.accommodationCode, selectedAccommodations.get(x.accommodationCode) + 1);
|
|
11896
12307
|
}
|
|
@@ -11898,7 +12309,10 @@ var updatePackageRooms = function (rooms, index, accommodationCode, regimeCode,
|
|
|
11898
12309
|
selectedAccommodations.set(x.accommodationCode, 1);
|
|
11899
12310
|
}
|
|
11900
12311
|
});
|
|
11901
|
-
var accoCounter = availabilities.map(function (x) { return ({
|
|
12312
|
+
var accoCounter = availabilities.map(function (x) { return ({
|
|
12313
|
+
code: x.code,
|
|
12314
|
+
count: x.count,
|
|
12315
|
+
}); });
|
|
11902
12316
|
return updatedRooms.map(function (room) {
|
|
11903
12317
|
var selectedOption = room.options.find(function (x) { return x.isSelected; });
|
|
11904
12318
|
return __assign(__assign({}, room), { options: room.options.map(function (option) {
|
|
@@ -11914,7 +12328,10 @@ var updatePackageRooms = function (rooms, index, accommodationCode, regimeCode,
|
|
|
11914
12328
|
: roomsLeft < 0 && ((_c = availability === null || availability === void 0 ? void 0 : availability.onRequestPossible) !== null && _c !== void 0 ? _c : false);
|
|
11915
12329
|
if (isCurrentOption)
|
|
11916
12330
|
accoCount.count--;
|
|
11917
|
-
return __assign(__assign({}, option), { isLocked: !option.isSelected &&
|
|
12331
|
+
return __assign(__assign({}, option), { isLocked: !option.isSelected &&
|
|
12332
|
+
!isOnRequest &&
|
|
12333
|
+
roomsLeft < 0 &&
|
|
12334
|
+
!availability.isExternal, isOnRequest: isOnRequest });
|
|
11918
12335
|
}
|
|
11919
12336
|
else {
|
|
11920
12337
|
return option;
|
|
@@ -11985,7 +12402,7 @@ var OptionItem = function (_a) {
|
|
|
11985
12402
|
? option.isSelected
|
|
11986
12403
|
? -option.line.price
|
|
11987
12404
|
: option.line.price
|
|
11988
|
-
:
|
|
12405
|
+
: option.requirementType === 2 || option.requirementType === 3
|
|
11989
12406
|
? option.line.price - selectedPrice
|
|
11990
12407
|
: 0;
|
|
11991
12408
|
var accommodations = uniqBy(compact(__spreadArray([option.line], option.alternatives, true).map(function (option) {
|
|
@@ -12126,7 +12543,9 @@ var OptionPaxGroup = function (_a) {
|
|
|
12126
12543
|
var updatedGroup = __assign(__assign({}, group), { options: group.options.map(function (o, i) {
|
|
12127
12544
|
return i === index
|
|
12128
12545
|
? option
|
|
12129
|
-
: __assign(__assign({}, o), { isSelected: option.requirementType === 2 || option.requirementType === 3
|
|
12546
|
+
: __assign(__assign({}, o), { isSelected: option.requirementType === 2 || option.requirementType === 3
|
|
12547
|
+
? false
|
|
12548
|
+
: o.isSelected });
|
|
12130
12549
|
}) });
|
|
12131
12550
|
if (onGroupChange)
|
|
12132
12551
|
onGroupChange(updatedGroup, paxId, optionId);
|
|
@@ -12168,13 +12587,16 @@ var OptionPaxGroup = function (_a) {
|
|
|
12168
12587
|
(option.requirementType === 0 ||
|
|
12169
12588
|
option.requirementType === 1) &&
|
|
12170
12589
|
"checkbox",
|
|
12171
|
-
(option.requirementType === 2 ||
|
|
12590
|
+
(option.requirementType === 2 ||
|
|
12591
|
+
option.requirementType === 3) &&
|
|
12592
|
+
"radiobutton",
|
|
12172
12593
|
]) },
|
|
12173
12594
|
React.createElement("label", { htmlFor: "".concat(parentId, "_").concat(index), className: buildClassName([
|
|
12174
12595
|
(option.requirementType === 0 ||
|
|
12175
12596
|
option.requirementType === 1) &&
|
|
12176
12597
|
"checkbox__label",
|
|
12177
|
-
(option.requirementType === 2 ||
|
|
12598
|
+
(option.requirementType === 2 ||
|
|
12599
|
+
option.requirementType === 3) &&
|
|
12178
12600
|
"radiobutton__label",
|
|
12179
12601
|
]) },
|
|
12180
12602
|
React.createElement(OptionItem, { option: option, parentId: parentId, index: index, selectedPrice: selectedPrice, onOptionChange: handleOptionChange }),
|
|
@@ -12213,8 +12635,11 @@ var OptionPaxCard = function (_a) {
|
|
|
12213
12635
|
onPaxChange(updatedPax, parentIndex);
|
|
12214
12636
|
};
|
|
12215
12637
|
var getAirlineGroups = function (p) {
|
|
12216
|
-
return p.airlineGroups
|
|
12217
|
-
|
|
12638
|
+
return p.airlineGroups.filter(function (x) {
|
|
12639
|
+
var _a, _b;
|
|
12640
|
+
return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") ||
|
|
12641
|
+
x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : "");
|
|
12642
|
+
});
|
|
12218
12643
|
};
|
|
12219
12644
|
var handleOnAirlineGroupChange = function (group, paxId) {
|
|
12220
12645
|
var updatedPax = pax.map(function (p) {
|
|
@@ -12228,8 +12653,11 @@ var OptionPaxCard = function (_a) {
|
|
|
12228
12653
|
onPaxChange(updatedPax, parentIndex);
|
|
12229
12654
|
};
|
|
12230
12655
|
var getAirportGroups = function (p) {
|
|
12231
|
-
return p.airportGroups
|
|
12232
|
-
|
|
12656
|
+
return p.airportGroups.filter(function (x) {
|
|
12657
|
+
var _a, _b;
|
|
12658
|
+
return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") ||
|
|
12659
|
+
x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : "");
|
|
12660
|
+
});
|
|
12233
12661
|
};
|
|
12234
12662
|
var handleOnAirportGroupChange = function (group, paxId) {
|
|
12235
12663
|
var updatedPax = pax.map(function (p) {
|
|
@@ -12277,7 +12705,9 @@ var OptionUnitGroup = function (_a) {
|
|
|
12277
12705
|
var updatedGroup = __assign(__assign({}, group), { options: group.options.map(function (o, i) {
|
|
12278
12706
|
return i === index
|
|
12279
12707
|
? option
|
|
12280
|
-
: __assign(__assign({}, o), { isSelected: option.requirementType === 2 || option.requirementType === 3
|
|
12708
|
+
: __assign(__assign({}, o), { isSelected: option.requirementType === 2 || option.requirementType === 3
|
|
12709
|
+
? false
|
|
12710
|
+
: o.isSelected });
|
|
12281
12711
|
}) });
|
|
12282
12712
|
if (onGroupChange)
|
|
12283
12713
|
onGroupChange(updatedGroup, unitIndex, optionId);
|
|
@@ -12326,13 +12756,16 @@ var OptionUnitGroup = function (_a) {
|
|
|
12326
12756
|
(option.requirementType === 0 ||
|
|
12327
12757
|
option.requirementType === 1) &&
|
|
12328
12758
|
"checkbox",
|
|
12329
|
-
(option.requirementType === 2 ||
|
|
12759
|
+
(option.requirementType === 2 ||
|
|
12760
|
+
option.requirementType === 3) &&
|
|
12761
|
+
"radiobutton",
|
|
12330
12762
|
]) },
|
|
12331
12763
|
React.createElement("label", { htmlFor: "".concat(parentId, "_").concat(index), className: buildClassName([
|
|
12332
12764
|
(option.requirementType === 0 ||
|
|
12333
12765
|
option.requirementType === 1) &&
|
|
12334
12766
|
"checkbox__label",
|
|
12335
|
-
(option.requirementType === 2 ||
|
|
12767
|
+
(option.requirementType === 2 ||
|
|
12768
|
+
option.requirementType === 3) &&
|
|
12336
12769
|
"radiobutton__label",
|
|
12337
12770
|
]) },
|
|
12338
12771
|
React.createElement(OptionItem, { option: option, parentId: parentId, index: index, selectedPrice: selectedPrice, onOptionChange: handleOptionChange }),
|
|
@@ -12367,8 +12800,11 @@ var OptionUnitsCard = function (_a) {
|
|
|
12367
12800
|
onUnitsChange(updatedUnits, parentIndex);
|
|
12368
12801
|
};
|
|
12369
12802
|
var getAirlineGroups = function (p) {
|
|
12370
|
-
return p.airlineGroups
|
|
12371
|
-
|
|
12803
|
+
return p.airlineGroups.filter(function (x) {
|
|
12804
|
+
var _a, _b;
|
|
12805
|
+
return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") ||
|
|
12806
|
+
x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : "");
|
|
12807
|
+
});
|
|
12372
12808
|
};
|
|
12373
12809
|
var handleOnAirlineGroupChange = function (group, unitIndex) {
|
|
12374
12810
|
var updatedPax = units.map(function (u) {
|
|
@@ -12382,8 +12818,11 @@ var OptionUnitsCard = function (_a) {
|
|
|
12382
12818
|
onUnitsChange(updatedPax, parentIndex);
|
|
12383
12819
|
};
|
|
12384
12820
|
var getAirportGroups = function (p) {
|
|
12385
|
-
return p.airportGroups
|
|
12386
|
-
|
|
12821
|
+
return p.airportGroups.filter(function (x) {
|
|
12822
|
+
var _a, _b;
|
|
12823
|
+
return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") ||
|
|
12824
|
+
x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : "");
|
|
12825
|
+
});
|
|
12387
12826
|
};
|
|
12388
12827
|
var handleOnAirportGroupChange = function (group, unitIndex) {
|
|
12389
12828
|
var updatedPax = units.map(function (u) {
|
|
@@ -12410,8 +12849,7 @@ var OptionUnitsCard = function (_a) {
|
|
|
12410
12849
|
React.createElement("button", { type: "button", className: "booking-card__toggle", onClick: function () {
|
|
12411
12850
|
setToggleStates(toggleStates === null || toggleStates === void 0 ? void 0 : toggleStates.map(function (s, si) { return (si == i ? !s : s); }));
|
|
12412
12851
|
} }))),
|
|
12413
|
-
toggleStates &&
|
|
12414
|
-
toggleStates[i] && (React.createElement(React.Fragment, null,
|
|
12852
|
+
toggleStates && toggleStates[i] && (React.createElement(React.Fragment, null,
|
|
12415
12853
|
u.groups.map(function (ug) {
|
|
12416
12854
|
return ug && (React.createElement(OptionUnitGroup, { key: ug.name, unitIndex: u.index, group: ug, firstClassName: "booking-card__group-body", secondClassName: "booking-card__group-heading", parentId: "".concat(u.index, "_").concat(ug.name), onGroupChange: onGroupChange }));
|
|
12417
12855
|
}),
|
|
@@ -12430,7 +12868,9 @@ var OptionBookingGroup = function (_a) {
|
|
|
12430
12868
|
var updatedGroup = __assign(__assign({}, group), { options: group.options.map(function (o, i) {
|
|
12431
12869
|
return i === index
|
|
12432
12870
|
? option
|
|
12433
|
-
: __assign(__assign({}, o), { isSelected:
|
|
12871
|
+
: __assign(__assign({}, o), { isSelected: option.requirementType === 2 || option.requirementType === 3
|
|
12872
|
+
? false
|
|
12873
|
+
: o.isSelected });
|
|
12434
12874
|
}) });
|
|
12435
12875
|
if (onGroupChange)
|
|
12436
12876
|
onGroupChange(updatedGroup, optionId);
|
|
@@ -12486,13 +12926,16 @@ var OptionBookingGroup = function (_a) {
|
|
|
12486
12926
|
(option.requirementType === 0 ||
|
|
12487
12927
|
option.requirementType === 1) &&
|
|
12488
12928
|
"checkbox",
|
|
12489
|
-
(option.requirementType === 2 ||
|
|
12929
|
+
(option.requirementType === 2 ||
|
|
12930
|
+
option.requirementType === 3) &&
|
|
12931
|
+
"radiobutton",
|
|
12490
12932
|
]) },
|
|
12491
12933
|
React.createElement("label", { htmlFor: "".concat(parentId, "_").concat(index), className: buildClassName([
|
|
12492
12934
|
(option.requirementType === 0 ||
|
|
12493
12935
|
option.requirementType === 1) &&
|
|
12494
12936
|
"checkbox__label",
|
|
12495
|
-
(option.requirementType === 2 ||
|
|
12937
|
+
(option.requirementType === 2 ||
|
|
12938
|
+
option.requirementType === 3) &&
|
|
12496
12939
|
"radiobutton__label",
|
|
12497
12940
|
]) },
|
|
12498
12941
|
React.createElement(OptionItem, { option: option, parentId: parentId, index: index, selectedPrice: selectedPrice, onOptionChange: handleOptionChange }),
|
|
@@ -12558,7 +13001,10 @@ var OptionRoom = function (_a) {
|
|
|
12558
13001
|
})), "accommodationCode");
|
|
12559
13002
|
var regimes = uniqBy(compact(packageRoom &&
|
|
12560
13003
|
packageRoom.options
|
|
12561
|
-
.filter(function (x) {
|
|
13004
|
+
.filter(function (x) {
|
|
13005
|
+
return !selectedOption ||
|
|
13006
|
+
x.accommodationCode == selectedOption.accommodationCode;
|
|
13007
|
+
})
|
|
12562
13008
|
.map(function (option) {
|
|
12563
13009
|
return {
|
|
12564
13010
|
regimeCode: option.regimeCode,
|
|
@@ -12691,9 +13137,135 @@ var OptionRoom = function (_a) {
|
|
|
12691
13137
|
]) }))))))))))));
|
|
12692
13138
|
};
|
|
12693
13139
|
|
|
13140
|
+
function useOfferPrinter(_a) {
|
|
13141
|
+
var _this = this;
|
|
13142
|
+
var bookingPackage = _a.bookingPackage, getPax = _a.getPax, _b = _a.tagIds, tagIds = _b === void 0 ? [] : _b, _c = _a.printActionId, printActionId = _c === void 0 ? null : _c, onPrinted = _a.onPrinted;
|
|
13143
|
+
var settings = useContext(SettingsContext);
|
|
13144
|
+
if (!settings)
|
|
13145
|
+
throw new Error("useOfferPrinter must be used inside <BookingWizard>");
|
|
13146
|
+
var language = settings.language, officeId = settings.officeId;
|
|
13147
|
+
var agentId = settings.agentAdressId;
|
|
13148
|
+
if (typeof agentId !== "number" || agentId <= 0) {
|
|
13149
|
+
throw new Error("Missing agentAdressId in wizard settings");
|
|
13150
|
+
}
|
|
13151
|
+
var _d = useState("idle"), stage = _d[0], setStage = _d[1];
|
|
13152
|
+
var loading = stage !== "idle";
|
|
13153
|
+
var createOffer = useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
|
|
13154
|
+
var paxRaw, pax, request, cfg;
|
|
13155
|
+
return __generator$1(this, function (_a) {
|
|
13156
|
+
paxRaw = getPax();
|
|
13157
|
+
if (!bookingPackage || !(paxRaw === null || paxRaw === void 0 ? void 0 : paxRaw.length)) {
|
|
13158
|
+
throw new Error("Missing booking package or pax");
|
|
13159
|
+
}
|
|
13160
|
+
pax = paxRaw;
|
|
13161
|
+
request = {
|
|
13162
|
+
officeId: officeId,
|
|
13163
|
+
agentId: agentId,
|
|
13164
|
+
payload: {
|
|
13165
|
+
package: bookingPackage,
|
|
13166
|
+
status: 0,
|
|
13167
|
+
pax: pax,
|
|
13168
|
+
nonTravelPax: [],
|
|
13169
|
+
notifications: [],
|
|
13170
|
+
tagIds: tagIds,
|
|
13171
|
+
customerRequests: [],
|
|
13172
|
+
},
|
|
13173
|
+
};
|
|
13174
|
+
cfg = buildTideClientConfig();
|
|
13175
|
+
return [2 /*return*/, book_1(cfg, request, undefined, language)];
|
|
13176
|
+
});
|
|
13177
|
+
}); }, [
|
|
13178
|
+
agentId,
|
|
13179
|
+
bookingPackage,
|
|
13180
|
+
getPax,
|
|
13181
|
+
language,
|
|
13182
|
+
officeId,
|
|
13183
|
+
tagIds,
|
|
13184
|
+
]);
|
|
13185
|
+
var languageData = [
|
|
13186
|
+
{ code: "nl-BE", tideId: 1 },
|
|
13187
|
+
{ code: "fr-BE", tideId: 2 },
|
|
13188
|
+
{ code: "en-GB", tideId: 3 },
|
|
13189
|
+
];
|
|
13190
|
+
function getTideLanguageId(code) {
|
|
13191
|
+
var _a;
|
|
13192
|
+
return (((_a = languageData.find(function (l) { return l.code === code; })) === null || _a === void 0 ? void 0 : _a.tideId) || 1);
|
|
13193
|
+
}
|
|
13194
|
+
var printOffer = useCallback(function (offer) { return __awaiter$1(_this, void 0, void 0, function () {
|
|
13195
|
+
var cfg, req, res, buf, url;
|
|
13196
|
+
var _a;
|
|
13197
|
+
return __generator$1(this, function (_b) {
|
|
13198
|
+
switch (_b.label) {
|
|
13199
|
+
case 0:
|
|
13200
|
+
cfg = buildTideClientConfig();
|
|
13201
|
+
req = {
|
|
13202
|
+
id: printActionId !== null && printActionId !== void 0 ? printActionId : 0,
|
|
13203
|
+
dossierNumber: (_a = offer.dossierNumber) !== null && _a !== void 0 ? _a : offer.number,
|
|
13204
|
+
languageId: getTideLanguageId(language),
|
|
13205
|
+
};
|
|
13206
|
+
return [4 /*yield*/, print_1(cfg, req)];
|
|
13207
|
+
case 1:
|
|
13208
|
+
res = _b.sent();
|
|
13209
|
+
return [4 /*yield*/, res.arrayBuffer()];
|
|
13210
|
+
case 2:
|
|
13211
|
+
buf = _b.sent();
|
|
13212
|
+
url = URL.createObjectURL(new Blob([buf], { type: "application/pdf" }));
|
|
13213
|
+
onPrinted === null || onPrinted === void 0 ? void 0 : onPrinted(url);
|
|
13214
|
+
window.open(url);
|
|
13215
|
+
return [2 /*return*/];
|
|
13216
|
+
}
|
|
13217
|
+
});
|
|
13218
|
+
}); }, [language, onPrinted]);
|
|
13219
|
+
var handlePrint = useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
|
|
13220
|
+
var offer, err_1;
|
|
13221
|
+
return __generator$1(this, function (_a) {
|
|
13222
|
+
switch (_a.label) {
|
|
13223
|
+
case 0:
|
|
13224
|
+
_a.trys.push([0, 3, 4, 5]);
|
|
13225
|
+
setStage("creating");
|
|
13226
|
+
return [4 /*yield*/, createOffer()];
|
|
13227
|
+
case 1:
|
|
13228
|
+
offer = _a.sent();
|
|
13229
|
+
setStage("printing");
|
|
13230
|
+
return [4 /*yield*/, printOffer(offer)];
|
|
13231
|
+
case 2:
|
|
13232
|
+
_a.sent();
|
|
13233
|
+
return [3 /*break*/, 5];
|
|
13234
|
+
case 3:
|
|
13235
|
+
err_1 = _a.sent();
|
|
13236
|
+
console.error("Offer print failed:", err_1);
|
|
13237
|
+
throw err_1;
|
|
13238
|
+
case 4:
|
|
13239
|
+
setStage("idle");
|
|
13240
|
+
return [7 /*endfinally*/];
|
|
13241
|
+
case 5: return [2 /*return*/];
|
|
13242
|
+
}
|
|
13243
|
+
});
|
|
13244
|
+
}); }, [createOffer, printOffer]);
|
|
13245
|
+
return { handlePrint: handlePrint, loading: loading, stage: stage };
|
|
13246
|
+
}
|
|
13247
|
+
|
|
13248
|
+
var PrintOfferButton = function (_a) {
|
|
13249
|
+
var bookingPackage = _a.bookingPackage, getPax = _a.getPax, tagIds = _a.tagIds, _b = _a.printActionId, printActionId = _b === void 0 ? null : _b, onPrinted = _a.onPrinted, _c = _a.labelIdle, labelIdle = _c === void 0 ? "Print offer" : _c, _d = _a.labelCreating, labelCreating = _d === void 0 ? "Generating offer…" : _d, _e = _a.labelPrinting, labelPrinting = _e === void 0 ? "Generating PDF…" : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, className = _a.className;
|
|
13250
|
+
var _g = useOfferPrinter({
|
|
13251
|
+
bookingPackage: bookingPackage,
|
|
13252
|
+
getPax: getPax,
|
|
13253
|
+
tagIds: tagIds,
|
|
13254
|
+
onPrinted: onPrinted,
|
|
13255
|
+
printActionId: printActionId,
|
|
13256
|
+
}), handlePrint = _g.handlePrint, stage = _g.stage, loading = _g.loading;
|
|
13257
|
+
var label = stage === "creating"
|
|
13258
|
+
? labelCreating
|
|
13259
|
+
: stage === "printing"
|
|
13260
|
+
? labelPrinting
|
|
13261
|
+
: labelIdle;
|
|
13262
|
+
return (React.createElement("button", { type: 'button', onClick: handlePrint, disabled: disabled || loading, className: className }, label));
|
|
13263
|
+
};
|
|
13264
|
+
|
|
12694
13265
|
var OptionsForm = function () {
|
|
12695
13266
|
var _a;
|
|
12696
13267
|
var settings = useContext(SettingsContext);
|
|
13268
|
+
var token = settings.token;
|
|
12697
13269
|
var translations = useSelector(selectTranslations);
|
|
12698
13270
|
var dispatch = useAppDispatch();
|
|
12699
13271
|
var packageDetails = useSelector(selectPackageDetails);
|
|
@@ -12717,7 +13289,9 @@ var OptionsForm = function () {
|
|
|
12717
13289
|
var bookingPackagePax = pax.filter(function (x) {
|
|
12718
13290
|
return room === null || room === void 0 ? void 0 : room.pax.some(function (y) { return y.id == x.id; });
|
|
12719
13291
|
});
|
|
12720
|
-
return bookingPackagePax.length > 0
|
|
13292
|
+
return bookingPackagePax.length > 0
|
|
13293
|
+
? bookingPackagePax
|
|
13294
|
+
: (_a = room === null || room === void 0 ? void 0 : room.pax) !== null && _a !== void 0 ? _a : [];
|
|
12721
13295
|
};
|
|
12722
13296
|
var handleOnRoomChange = function (index, accommodationCode, regimeCode) {
|
|
12723
13297
|
if (!packageRooms)
|
|
@@ -12726,8 +13300,17 @@ var OptionsForm = function () {
|
|
|
12726
13300
|
dispatch(setPackageRooms(updatedPackageRooms));
|
|
12727
13301
|
dispatch(fetchPriceDetails());
|
|
12728
13302
|
};
|
|
13303
|
+
var getPax = function () {
|
|
13304
|
+
var _a;
|
|
13305
|
+
if (!packageDetails)
|
|
13306
|
+
return undefined;
|
|
13307
|
+
var selectedOption = (_a = packageDetails.options.find(function (o) { return o.isSelected; })) !== null && _a !== void 0 ? _a : packageDetails.options[0];
|
|
13308
|
+
return selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.requestRooms.flatMap(function (r) { return r.pax; });
|
|
13309
|
+
};
|
|
12729
13310
|
// TAGS
|
|
12730
|
-
var packageTags = settings.hideTags
|
|
13311
|
+
var packageTags = settings.hideTags
|
|
13312
|
+
? []
|
|
13313
|
+
: useSelector(selectPackageTags);
|
|
12731
13314
|
var tagIds = (_a = useSelector(selectTagIds)) !== null && _a !== void 0 ? _a : [];
|
|
12732
13315
|
var handleSubmit = function (e) {
|
|
12733
13316
|
if (settings.skipRouter) {
|
|
@@ -12788,7 +13371,9 @@ var OptionsForm = function () {
|
|
|
12788
13371
|
};
|
|
12789
13372
|
useEffect(function () {
|
|
12790
13373
|
var _a, _b;
|
|
12791
|
-
if (packageDetails &&
|
|
13374
|
+
if (packageDetails &&
|
|
13375
|
+
settings.roomOptions.isHidden &&
|
|
13376
|
+
settings.flightOptions.isHidden) {
|
|
12792
13377
|
var params = new URLSearchParams(location.search);
|
|
12793
13378
|
var outwardFlight_1 = (_a = params.get("outwardflight")) !== null && _a !== void 0 ? _a : undefined;
|
|
12794
13379
|
var returnFlight_1 = (_b = params.get("returnflight")) !== null && _b !== void 0 ? _b : undefined;
|
|
@@ -12797,11 +13382,13 @@ var OptionsForm = function () {
|
|
|
12797
13382
|
var desiredReturnFlight_1 = packageDetails.returnFlights.find(function (x) { return x.entryLineGuid == returnFlight_1; });
|
|
12798
13383
|
if (desiredOutwardFlight_1 && desiredReturnFlight_1) {
|
|
12799
13384
|
dispatch(setPackage(__assign(__assign({}, packageDetails), { outwardFlights: packageDetails.outwardFlights.map(function (flight) {
|
|
12800
|
-
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13385
|
+
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13386
|
+
desiredOutwardFlight_1.entryLineGuid
|
|
12801
13387
|
? true
|
|
12802
13388
|
: false });
|
|
12803
13389
|
}), returnFlights: packageDetails.returnFlights.map(function (flight) {
|
|
12804
|
-
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13390
|
+
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13391
|
+
desiredReturnFlight_1.entryLineGuid
|
|
12805
13392
|
? true
|
|
12806
13393
|
: false });
|
|
12807
13394
|
}) })));
|
|
@@ -12821,57 +13408,73 @@ var OptionsForm = function () {
|
|
|
12821
13408
|
var previousUrl = settings.roomOptions.isHidden
|
|
12822
13409
|
? "".concat(settings.basePath).concat(settings.flightOptions.pathSuffix, "?").concat(bookingQueryString)
|
|
12823
13410
|
: "".concat(settings.basePath).concat(settings.roomOptions.pathSuffix, "?").concat(bookingQueryString);
|
|
12824
|
-
var hasPrevious = !settings.roomOptions.isHidden ||
|
|
12825
|
-
|
|
13411
|
+
var hasPrevious = !settings.roomOptions.isHidden ||
|
|
13412
|
+
!settings.flightOptions.isHidden;
|
|
13413
|
+
var showPackageTagsOrRoomoptions = showRoomOptions ||
|
|
13414
|
+
(packageTags && !isEmpty(packageTags));
|
|
12826
13415
|
return (React.createElement(React.Fragment, null,
|
|
12827
|
-
React.createElement("form", { className:
|
|
13416
|
+
React.createElement("form", { className: 'form', name: 'booking--options', id: 'booking--options', noValidate: true, onSubmit: handleSubmit },
|
|
12828
13417
|
isLoading && settings.loaderComponent,
|
|
12829
|
-
!isLoading && (React.createElement("div", { className:
|
|
12830
|
-
showPackageTagsOrRoomoptions && (React.createElement("div", { className:
|
|
12831
|
-
React.createElement("div", { className:
|
|
12832
|
-
React.createElement("div", { className:
|
|
13418
|
+
!isLoading && (React.createElement("div", { className: 'form__region' },
|
|
13419
|
+
showPackageTagsOrRoomoptions && (React.createElement("div", { className: 'form__group' },
|
|
13420
|
+
React.createElement("div", { className: 'booking-card' },
|
|
13421
|
+
React.createElement("div", { className: 'booking-card__body' },
|
|
12833
13422
|
React.createElement("div", { className: buildClassName([
|
|
12834
13423
|
"booking-card__group",
|
|
12835
13424
|
"booking-card__group--package",
|
|
12836
13425
|
]) },
|
|
12837
|
-
showRoomOptions && (React.createElement("span", { className:
|
|
12838
|
-
|
|
12839
|
-
|
|
13426
|
+
showRoomOptions && (React.createElement("span", { className: 'booking-card__tag' }, translations.OPTIONS_FORM
|
|
13427
|
+
.PACKAGE)),
|
|
13428
|
+
React.createElement("div", { className: 'booking-card__group-body' },
|
|
13429
|
+
showRoomOptions && (React.createElement("table", { className: 'table table--striped' },
|
|
12840
13430
|
React.createElement("tbody", null, packageRooms &&
|
|
12841
13431
|
packageRooms.map(function (room) { return (React.createElement(OptionRoom, { key: room.index, packageRoom: room, pax: getRoomPax(room.index), optionPax: optionPax, onRoomChange: handleOnRoomChange })); })))),
|
|
12842
|
-
packageTags &&
|
|
12843
|
-
React.createElement("div", { className: "tag-translation-
|
|
12844
|
-
|
|
13432
|
+
packageTags &&
|
|
13433
|
+
!isEmpty(packageTags) && (React.createElement("div", { className: 'booking-card__tag-translations' }, packageTags.map(function (tag, index) { return (React.createElement("label", { key: index, htmlFor: "tag-translation-".concat(index, "-").concat(tag.title), className: 'checkbox__label tag-translation' },
|
|
13434
|
+
React.createElement("div", { className: 'tag-translation-input__container' },
|
|
13435
|
+
React.createElement("input", { type: 'checkbox', id: "tag-translation-".concat(index, "-").concat(tag.title), name: "tag-translation-".concat(index, "-").concat(tag.title), className: 'checkbox__input', checked: tagIds === null || tagIds === void 0 ? void 0 : tagIds.includes(tag.id), onChange: function (e) {
|
|
12845
13436
|
return handleOnTagChange(tag.id, e.target.checked);
|
|
12846
13437
|
} })),
|
|
12847
|
-
React.createElement("span", { className:
|
|
13438
|
+
React.createElement("span", { className: 'tag-translation__title' }, tag.title),
|
|
12848
13439
|
"\u00A0",
|
|
12849
|
-
React.createElement("span", { className:
|
|
12850
|
-
optionUnits && !isEmpty(optionUnits) && (React.createElement("div", { className:
|
|
12851
|
-
React.createElement("div", { className:
|
|
12852
|
-
React.createElement("div", { className:
|
|
12853
|
-
React.createElement("h2", { className:
|
|
12854
|
-
|
|
13440
|
+
React.createElement("span", { className: 'tag-translation__description' }, tag.description))); }))))))))),
|
|
13441
|
+
optionUnits && !isEmpty(optionUnits) && (React.createElement("div", { className: 'form__group' },
|
|
13442
|
+
React.createElement("div", { className: 'booking-card' },
|
|
13443
|
+
React.createElement("div", { className: 'booking-card__header' },
|
|
13444
|
+
React.createElement("h2", { className: 'booking-card__header-heading' }, translations.OPTIONS_FORM
|
|
13445
|
+
.PER_UNIT_TITLE)),
|
|
13446
|
+
React.createElement("div", { className: 'booking-card__body' },
|
|
12855
13447
|
React.createElement(OptionUnitsCard, { units: optionUnits, onUnitsChange: handleOnUnitsChange }))))),
|
|
12856
|
-
optionPax && !isEmpty(optionPax) && (React.createElement("div", { className:
|
|
12857
|
-
React.createElement("div", { className:
|
|
12858
|
-
React.createElement("div", { className:
|
|
12859
|
-
React.createElement("h2", { className:
|
|
12860
|
-
|
|
13448
|
+
optionPax && !isEmpty(optionPax) && (React.createElement("div", { className: 'form__group' },
|
|
13449
|
+
React.createElement("div", { className: 'booking-card' },
|
|
13450
|
+
React.createElement("div", { className: 'booking-card__header' },
|
|
13451
|
+
React.createElement("h2", { className: 'booking-card__header-heading' }, translations.OPTIONS_FORM
|
|
13452
|
+
.PER_PAX_TITLE)),
|
|
13453
|
+
React.createElement("div", { className: 'booking-card__body' },
|
|
12861
13454
|
React.createElement(OptionPaxCard, { pax: optionPax, onPaxChange: handleOnPaxChange, requestRoomsPax: requestRoomsPax }))))),
|
|
12862
|
-
groups && !isEmpty(groups) && (React.createElement("div", { className:
|
|
12863
|
-
React.createElement("div", { className:
|
|
12864
|
-
React.createElement("div", { className:
|
|
12865
|
-
React.createElement("h2", { className:
|
|
12866
|
-
|
|
12867
|
-
|
|
13455
|
+
groups && !isEmpty(groups) && (React.createElement("div", { className: 'form__group' },
|
|
13456
|
+
React.createElement("div", { className: 'booking-card' },
|
|
13457
|
+
React.createElement("div", { className: 'booking-card__header' },
|
|
13458
|
+
React.createElement("h2", { className: 'booking-card__header-heading' }, translations.OPTIONS_FORM
|
|
13459
|
+
.PER_BOOKING_TITLE)),
|
|
13460
|
+
React.createElement("div", { className: 'booking-card__body' },
|
|
13461
|
+
React.createElement("div", { className: 'booking-card__group booking-card__group--active' },
|
|
12868
13462
|
groups.map(function (group, i) { return (React.createElement(OptionBookingGroup, { key: "".concat(group.name, "_").concat(i), group: group, firstClassName: "booking-card__group-body", secondClassName: "booking-card__group-heading", parentId: "booking_".concat(group.name), onGroupChange: handleOnGroupChange })); }), airlineGroups === null || airlineGroups === void 0 ? void 0 :
|
|
12869
13463
|
airlineGroups.map(function (group, i) { return (React.createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: handleOnAirlineGroupChange })); }), airportGroups === null || airportGroups === void 0 ? void 0 :
|
|
12870
13464
|
airportGroups.map(function (group, i) { return (React.createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: handleOnAirportGroupChange })); })))))),
|
|
12871
|
-
isEmpty(groups) &&
|
|
12872
|
-
|
|
12873
|
-
|
|
12874
|
-
|
|
13465
|
+
isEmpty(groups) &&
|
|
13466
|
+
isEmpty(optionUnits) &&
|
|
13467
|
+
isEmpty(optionPax) && React.createElement(NoOptions, null))),
|
|
13468
|
+
React.createElement("div", { className: 'booking__navigator' },
|
|
13469
|
+
hasPrevious && (React.createElement(React.Fragment, null, 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: previousUrl, title: translations.STEPS.PREVIOUS, className: 'cta cta--secondary' }, translations.STEPS.PREVIOUS)))),
|
|
13470
|
+
token &&
|
|
13471
|
+
settings.options.reportPrintActionId && (React.createElement(PrintOfferButton, { bookingPackage: packageDetails, getPax: getPax, tagIds: tagIds, printActionId: settings.options.reportPrintActionId, labelIdle: translations.PRINT_OFFER_BUTTON.LABEL_IDLE, labelCreating: translations.PRINT_OFFER_BUTTON
|
|
13472
|
+
.LABEL_CREATING, labelPrinting: translations.PRINT_OFFER_BUTTON
|
|
13473
|
+
.LABEL_PRINTING, className: 'cta spinner-button' })),
|
|
13474
|
+
React.createElement("button", { type: 'submit', title: translations.STEPS.NEXT, disabled: isLoading, className: buildClassName([
|
|
13475
|
+
"cta",
|
|
13476
|
+
isLoading && "cta--disabled",
|
|
13477
|
+
]) }, translations.STEPS.NEXT)))));
|
|
12875
13478
|
};
|
|
12876
13479
|
|
|
12877
13480
|
var RoomOption = function (_a) {
|
|
@@ -12898,7 +13501,7 @@ var RoomOption = function (_a) {
|
|
|
12898
13501
|
};
|
|
12899
13502
|
var handleRegimeChange = function (e) {
|
|
12900
13503
|
var regimeCode = e.currentTarget.value;
|
|
12901
|
-
var option = room.regimes.find(function (x) { return x.code === regimeCode || (x.code === null && regimeCode ===
|
|
13504
|
+
var option = room.regimes.find(function (x) { return x.code === regimeCode || (x.code === null && regimeCode === ""); });
|
|
12902
13505
|
setRoomRegimeCode(option.code);
|
|
12903
13506
|
setRoomPrice(option.price);
|
|
12904
13507
|
if (onRegimeChange) {
|
|
@@ -12937,7 +13540,12 @@ var RoomOption = function (_a) {
|
|
|
12937
13540
|
" ",
|
|
12938
13541
|
getPriceDifference(regime.price, roomPrice)));
|
|
12939
13542
|
})))),
|
|
12940
|
-
React.createElement("button", { type: "button", onClick: selectAccommodation, className: buildClassName([
|
|
13543
|
+
React.createElement("button", { type: "button", onClick: selectAccommodation, className: buildClassName([
|
|
13544
|
+
"cta",
|
|
13545
|
+
selectedRoomPrice ? "cta--select" : "cta--selected",
|
|
13546
|
+
]) }, selectedRoomPrice
|
|
13547
|
+
? translations.SHARED.SELECT
|
|
13548
|
+
: translations.SHARED.SELECTED))))));
|
|
12941
13549
|
};
|
|
12942
13550
|
|
|
12943
13551
|
var TravelerRooms = function (_a) {
|
|
@@ -12945,22 +13553,25 @@ var TravelerRooms = function (_a) {
|
|
|
12945
13553
|
var translations = useSelector(selectTranslations);
|
|
12946
13554
|
var _b = useState(false), showAlternatives = _b[0], setShowAlternatives = _b[1];
|
|
12947
13555
|
var selectedAccommodationCode = room.selected.code;
|
|
12948
|
-
return (React.createElement("div", { key: room.index },
|
|
13556
|
+
return (React.createElement("div", { key: room.index, className: "form__room__container" },
|
|
12949
13557
|
React.createElement("div", { className: "form__room__header" },
|
|
12950
13558
|
React.createElement("h5", null,
|
|
12951
13559
|
translations.ROOM_OPTIONS_FORM.TRAVELER_GROUP,
|
|
12952
13560
|
" ",
|
|
12953
13561
|
room.index + 1)),
|
|
12954
|
-
React.createElement(RoomOption, { room: room.selected, hasAlternatives: !isEmpty(room.alternatives), onRegimeChange: function (regimeCode) {
|
|
13562
|
+
React.createElement(RoomOption, { room: room.selected, hasAlternatives: !isEmpty(room.alternatives), onRegimeChange: function (regimeCode) {
|
|
13563
|
+
return onRoomChange(index, selectedAccommodationCode, regimeCode);
|
|
13564
|
+
}, onToggleAlternatives: function () { return setShowAlternatives(!showAlternatives); } }),
|
|
12955
13565
|
!isEmpty(room.alternatives) && showAlternatives && (React.createElement("div", { className: "form__room__alternatives" },
|
|
12956
13566
|
React.createElement("div", { className: "form__room__alternatives__header" },
|
|
12957
13567
|
translations.ROOM_OPTIONS_FORM.ALTERNATIVES_TRAVELER_GROUP,
|
|
12958
13568
|
" ",
|
|
12959
13569
|
room.index + 1),
|
|
12960
|
-
showAlternatives && (React.createElement(React.Fragment, null,
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
13570
|
+
showAlternatives && (React.createElement(React.Fragment, null,
|
|
13571
|
+
React.createElement("div", { className: "form__room__alternatives__content" }, room.alternatives.map(function (alternative, alternativeIndex) { return (React.createElement(RoomOption, { key: alternativeIndex, room: alternative, selectedRoomPrice: room.selected.price, onAcommodationChange: function (accommodationCode, regimeCode) {
|
|
13572
|
+
setShowAlternatives(false);
|
|
13573
|
+
onRoomChange(index, accommodationCode, regimeCode);
|
|
13574
|
+
} })); }))))))));
|
|
12964
13575
|
};
|
|
12965
13576
|
|
|
12966
13577
|
var RoomOptionsForm = function () {
|
|
@@ -13095,83 +13706,84 @@ var Sidebar = function (_a) {
|
|
|
13095
13706
|
React.createElement("div", { className: "booking__sidebar-frame" },
|
|
13096
13707
|
React.createElement(ProductCard, { productName: productName, thumbnailUrl: thumbnailUrl, handleToggleClick: handleToggleClick }),
|
|
13097
13708
|
React.createElement("div", { className: "pricing-summary" },
|
|
13098
|
-
React.createElement("div", { className: "pricing-
|
|
13099
|
-
React.createElement("div", { className: "pricing-
|
|
13100
|
-
React.createElement("
|
|
13101
|
-
|
|
13102
|
-
(travelerRooms
|
|
13709
|
+
React.createElement("div", { className: "pricing-summary__wrapper" },
|
|
13710
|
+
React.createElement("div", { className: "pricing-summary__region ".concat(!isLoading ? "pricing-summary__region--fade-in" : "") },
|
|
13711
|
+
React.createElement("div", { className: "pricing-summary__group" },
|
|
13712
|
+
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.TRAVEL_INFO),
|
|
13713
|
+
!isEmpty(travelerRooms) &&
|
|
13714
|
+
(travelerRooms === null || travelerRooms === void 0 ? void 0 : travelerRooms.map(function (room, rIndex) { return (React.createElement("div", { className: "pricing-summary__row", key: rIndex },
|
|
13715
|
+
React.createElement("div", { className: "pricing-summary__property" },
|
|
13716
|
+
translations.SHARED.ROOM,
|
|
13717
|
+
" ",
|
|
13718
|
+
rIndex + 1),
|
|
13719
|
+
React.createElement("div", { className: "pricing-summary__value" }, room))); })),
|
|
13720
|
+
startDateText && (React.createElement("div", { className: "pricing-summary__row" },
|
|
13721
|
+
React.createElement("div", { className: "pricing-summary__property" }, startDateText && endDateText
|
|
13722
|
+
? translations.SIDEBAR.DEPARTURE
|
|
13723
|
+
: translations.SIDEBAR.DEPARTURE_SINGLE),
|
|
13724
|
+
React.createElement("div", { className: "pricing-summary__value" }, startDateText))),
|
|
13725
|
+
endDateText && (React.createElement("div", { className: "pricing-summary__row" },
|
|
13726
|
+
React.createElement("div", { className: "pricing-summary__property" }, translations.SIDEBAR.ARRIVAL),
|
|
13727
|
+
React.createElement("div", { className: "pricing-summary__value" }, endDateText)))),
|
|
13728
|
+
isLoading && loaderComponent,
|
|
13729
|
+
!isLoading && departureFlight && returnFlight && (React.createElement(React.Fragment, null,
|
|
13730
|
+
React.createElement(SidebarFlight, { title: translations.SIDEBAR.DEPARTURE_FLIGHT, flight: departureFlight }),
|
|
13731
|
+
React.createElement(SidebarFlight, { title: translations.SIDEBAR.ARRIVAL_FLIGHT, flight: returnFlight }))),
|
|
13732
|
+
accommodations && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13733
|
+
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.ACCOMMODATION),
|
|
13734
|
+
accommodations.map(function (accommodation) {
|
|
13735
|
+
var option = accommodation.options.find(function (x) { return x.isSelected; });
|
|
13736
|
+
return (React.createElement("div", { key: accommodation.index },
|
|
13737
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13738
|
+
React.createElement("div", { className: "pricing-summary__property" }, option === null || option === void 0 ? void 0 :
|
|
13739
|
+
option.accommodationName,
|
|
13740
|
+
isOnRequest
|
|
13741
|
+
? " (".concat(translations.SIDEBAR.ON_REQUEST, ")")
|
|
13742
|
+
: "",
|
|
13743
|
+
(option === null || option === void 0 ? void 0 : option.isOnRequest)
|
|
13744
|
+
? " (".concat(translations.SIDEBAR.ON_REQUEST, ")")
|
|
13745
|
+
: "")),
|
|
13746
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13747
|
+
React.createElement("div", { className: "price-summarty__property" }, option === null || option === void 0 ? void 0 : option.regimeName),
|
|
13748
|
+
React.createElement("div", { className: "price-summary__value" }, getDatePeriodText(option === null || option === void 0 ? void 0 : option.from, option === null || option === void 0 ? void 0 : option.to, true)))));
|
|
13749
|
+
})))),
|
|
13750
|
+
!isLoading && canShowPriceBreakdownSection && (React.createElement("div", { className: "pricing-summary__region ".concat(!isLoading ? "pricing-summary__region--fade-in" : "") },
|
|
13751
|
+
basePrice !== undefined && basePrice > 0 && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13752
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13103
13753
|
React.createElement("div", { className: "pricing-summary__property" },
|
|
13104
|
-
translations.
|
|
13105
|
-
|
|
13106
|
-
|
|
13107
|
-
|
|
13108
|
-
|
|
13109
|
-
|
|
13110
|
-
|
|
13111
|
-
|
|
13112
|
-
|
|
13113
|
-
|
|
13114
|
-
|
|
13115
|
-
|
|
13116
|
-
|
|
13117
|
-
|
|
13118
|
-
|
|
13119
|
-
|
|
13120
|
-
|
|
13121
|
-
React.createElement("
|
|
13122
|
-
|
|
13123
|
-
|
|
13124
|
-
|
|
13125
|
-
React.createElement(
|
|
13126
|
-
|
|
13127
|
-
|
|
13128
|
-
|
|
13129
|
-
|
|
13130
|
-
|
|
13131
|
-
(
|
|
13132
|
-
|
|
13133
|
-
|
|
13134
|
-
|
|
13135
|
-
|
|
13136
|
-
|
|
13137
|
-
})))),
|
|
13138
|
-
!isLoading && canShowPriceBreakdownSection && (React.createElement("div", { className: "pricing-summary__region" },
|
|
13139
|
-
basePrice !== undefined && basePrice > 0 && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13140
|
-
React.createElement("div", { className: "pricing-summary__row" },
|
|
13141
|
-
React.createElement("div", { className: "pricing-summary__property" },
|
|
13142
|
-
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.BASE_PRICE)),
|
|
13143
|
-
React.createElement("div", { className: "pricing-summary__value" }, formatPrice(basePrice))))),
|
|
13144
|
-
!isEmpty(includedCosts) && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13145
|
-
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.INCLUDED_COSTS), includedCosts === null || includedCosts === void 0 ? void 0 :
|
|
13146
|
-
includedCosts.map(function (priceDetail, index) {
|
|
13147
|
-
var _a;
|
|
13148
|
-
return (React.createElement(React.Fragment, { key: compact([
|
|
13149
|
-
priceDetail.productCode,
|
|
13150
|
-
priceDetail.accommodationCode,
|
|
13151
|
-
index,
|
|
13152
|
-
]).join("_") },
|
|
13153
|
-
React.createElement("div", { className: "pricing-summary__row" },
|
|
13154
|
-
React.createElement("div", { className: "pricing-summary__property" }, priceDetail.productName),
|
|
13155
|
-
priceDetail.showPrice && (React.createElement("div", { className: "pricing-summary__value" }, formatPrice(priceDetail.price * priceDetail.amount)))),
|
|
13156
|
-
React.createElement("div", { className: "pricing-summary__row" },
|
|
13157
|
-
React.createElement("div", { className: "price-summary__property" }, (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode))));
|
|
13158
|
-
}))),
|
|
13159
|
-
!isEmpty(extraCosts) && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13160
|
-
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.EXTRA_COSTS), extraCosts === null || extraCosts === void 0 ? void 0 :
|
|
13161
|
-
extraCosts.map(function (priceDetail, index) {
|
|
13162
|
-
var _a;
|
|
13163
|
-
return (React.createElement(React.Fragment, { key: compact([
|
|
13164
|
-
priceDetail.productCode,
|
|
13165
|
-
priceDetail.accommodationCode,
|
|
13166
|
-
index,
|
|
13167
|
-
]).join("_") },
|
|
13168
|
-
React.createElement("div", { className: "pricing-summary__row" },
|
|
13169
|
-
React.createElement("div", { className: "pricing-summary__property" }, priceDetail.productName),
|
|
13170
|
-
priceDetail.showPrice && (React.createElement("div", { className: "pricing-summary__value" }, formatPrice(priceDetail.price * priceDetail.amount)))),
|
|
13171
|
-
React.createElement("div", { className: "pricing-summary__row" },
|
|
13172
|
-
React.createElement("div", { className: "price-summary__property" }, (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode))));
|
|
13173
|
-
}))))),
|
|
13174
|
-
!isLoading && canShowTotalPriceSection && (React.createElement("div", { className: "pricing-summary__region pricing-summary__region--pricing" }, deposit ? (React.createElement("div", { className: "pricing-summary__group" },
|
|
13754
|
+
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.BASE_PRICE)),
|
|
13755
|
+
React.createElement("div", { className: "pricing-summary__value" }, formatPrice(basePrice))))),
|
|
13756
|
+
!isEmpty(includedCosts) && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13757
|
+
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.INCLUDED_COSTS), includedCosts === null || includedCosts === void 0 ? void 0 :
|
|
13758
|
+
includedCosts.map(function (priceDetail, index) {
|
|
13759
|
+
var _a;
|
|
13760
|
+
return (React.createElement(React.Fragment, { key: compact([
|
|
13761
|
+
priceDetail.productCode,
|
|
13762
|
+
priceDetail.accommodationCode,
|
|
13763
|
+
index,
|
|
13764
|
+
]).join("_") },
|
|
13765
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13766
|
+
React.createElement("div", { className: "pricing-summary__property" }, priceDetail.productName),
|
|
13767
|
+
priceDetail.showPrice && (React.createElement("div", { className: "pricing-summary__value" }, formatPrice(priceDetail.price * priceDetail.amount)))),
|
|
13768
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13769
|
+
React.createElement("div", { className: "price-summary__property" }, (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode))));
|
|
13770
|
+
}))),
|
|
13771
|
+
!isEmpty(extraCosts) && (React.createElement("div", { className: "pricing-summary__group" },
|
|
13772
|
+
React.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.EXTRA_COSTS), extraCosts === null || extraCosts === void 0 ? void 0 :
|
|
13773
|
+
extraCosts.map(function (priceDetail, index) {
|
|
13774
|
+
var _a;
|
|
13775
|
+
return (React.createElement(React.Fragment, { key: compact([
|
|
13776
|
+
priceDetail.productCode,
|
|
13777
|
+
priceDetail.accommodationCode,
|
|
13778
|
+
index,
|
|
13779
|
+
]).join("_") },
|
|
13780
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13781
|
+
React.createElement("div", { className: "pricing-summary__property" }, priceDetail.productName),
|
|
13782
|
+
priceDetail.showPrice && (React.createElement("div", { className: "pricing-summary__value" }, formatPrice(priceDetail.price * priceDetail.amount)))),
|
|
13783
|
+
React.createElement("div", { className: "pricing-summary__row" },
|
|
13784
|
+
React.createElement("div", { className: "price-summary__property" }, (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode))));
|
|
13785
|
+
})))))),
|
|
13786
|
+
!isLoading && canShowTotalPriceSection && (React.createElement("div", { className: "pricing-summary__region pricing-summary__region--pricing ".concat(!isLoading ? "pricing-summary__region--fade-in" : "") }, deposit ? (React.createElement("div", { className: "pricing-summary__group" },
|
|
13175
13787
|
totalPrice !== undefined && totalPrice > 0 && (React.createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
13176
13788
|
React.createElement("div", { className: "pricing-summary__property" },
|
|
13177
13789
|
React.createElement("h6", { className: "pricing-summary__title" }, translations.SHARED.TOTAL_PRICE)),
|
|
@@ -13193,7 +13805,7 @@ var Sidebar = function (_a) {
|
|
|
13193
13805
|
formatPrice(remainingAmount),
|
|
13194
13806
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
13195
13807
|
React.createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
13196
|
-
translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React.createElement("div", { className: "pricing-summary__group" }, totalPrice !== undefined && totalPrice > 0 && (React.createElement("div", { className: "pricing-summary__row" },
|
|
13808
|
+
translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React.createElement("div", { className: "pricing-summary__group" }, totalPrice !== undefined && totalPrice > 0 && (React.createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
13197
13809
|
React.createElement("div", { className: "pricing-summary__property" },
|
|
13198
13810
|
React.createElement("h6", { className: "pricing-summary__title" }, translations.SHARED.TOTAL_PRICE)),
|
|
13199
13811
|
React.createElement("div", { className: "pricing-summary__value" },
|
|
@@ -13222,28 +13834,29 @@ var SidebarContainer = function (_a) {
|
|
|
13222
13834
|
var SummaryPerPaxOptionGroup = function (_a) {
|
|
13223
13835
|
var group = _a.group;
|
|
13224
13836
|
var groupOptions = group.options.filter(function (x) { return x.isSelected; });
|
|
13225
|
-
return (React.createElement(
|
|
13837
|
+
var renderOptions = function () { return (React.createElement(React.Fragment, null, groupOptions.map(function (opt) {
|
|
13838
|
+
var _a;
|
|
13839
|
+
return (React.createElement("li", { key: opt.line.entryLineGuid, className: "list__item" },
|
|
13840
|
+
opt.line.productName,
|
|
13841
|
+
React.createElement("ul", null,
|
|
13842
|
+
React.createElement("li", null,
|
|
13843
|
+
opt.line.accommodationName,
|
|
13844
|
+
!isNil((_a = opt.line) === null || _a === void 0 ? void 0 : _a.regimeName) && ", ",
|
|
13845
|
+
opt.line.regimeName)),
|
|
13846
|
+
getDateText(opt.line.startDate),
|
|
13847
|
+
opt.line.startDate != opt.line.endDate
|
|
13848
|
+
? " > ".concat(getDateText(opt.line.endDate))
|
|
13849
|
+
: "",
|
|
13850
|
+
React.createElement("ul", { className: "list" }, !isEmpty(opt === null || opt === void 0 ? void 0 : opt.groups) &&
|
|
13851
|
+
(opt === null || opt === void 0 ? void 0 : opt.groups.map(function (x) {
|
|
13852
|
+
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
13853
|
+
return;
|
|
13854
|
+
return React.createElement(SummaryPerPaxOptionGroup, { group: x });
|
|
13855
|
+
})))));
|
|
13856
|
+
}))); };
|
|
13857
|
+
return (React.createElement(React.Fragment, null, group.title ? (React.createElement("li", { className: "list__item" },
|
|
13226
13858
|
React.createElement("h6", null, group.title),
|
|
13227
|
-
React.createElement("ul", { className: "list" },
|
|
13228
|
-
var _a;
|
|
13229
|
-
return (React.createElement("li", { key: opt.line.entryLineGuid, className: "list__item" },
|
|
13230
|
-
opt.line.productName,
|
|
13231
|
-
": ",
|
|
13232
|
-
opt.line.accommodationName,
|
|
13233
|
-
!isNil((_a = opt.line) === null || _a === void 0 ? void 0 : _a.regimeName) && ", ",
|
|
13234
|
-
opt.line.regimeName,
|
|
13235
|
-
React.createElement("br", null),
|
|
13236
|
-
getDateText(opt.line.startDate),
|
|
13237
|
-
opt.line.startDate != opt.line.endDate
|
|
13238
|
-
? " > ".concat(getDateText(opt.line.endDate))
|
|
13239
|
-
: "",
|
|
13240
|
-
React.createElement("ul", { className: "list" }, !isEmpty(opt === null || opt === void 0 ? void 0 : opt.groups) &&
|
|
13241
|
-
(opt === null || opt === void 0 ? void 0 : opt.groups.map(function (x) {
|
|
13242
|
-
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
13243
|
-
return;
|
|
13244
|
-
return React.createElement(SummaryPerPaxOptionGroup, { group: x });
|
|
13245
|
-
})))));
|
|
13246
|
-
}))));
|
|
13859
|
+
React.createElement("ul", { className: "list" }, renderOptions()))) : (React.createElement(React.Fragment, null, renderOptions()))));
|
|
13247
13860
|
};
|
|
13248
13861
|
|
|
13249
13862
|
var SummaryBookingOptionPax = function (_a) {
|
|
@@ -13259,31 +13872,32 @@ var SummaryBookingOptionPax = function (_a) {
|
|
|
13259
13872
|
var SummaryPerUnitOptionGroup = function (_a) {
|
|
13260
13873
|
var group = _a.group;
|
|
13261
13874
|
var groupOptions = group.options.filter(function (x) { return x.isSelected; });
|
|
13262
|
-
return (React.createElement(
|
|
13875
|
+
var renderOptions = function () { return (React.createElement(React.Fragment, null, groupOptions.map(function (opt) {
|
|
13876
|
+
var _a;
|
|
13877
|
+
return (React.createElement("li", { key: opt.line.entryLineGuid, className: "list__item" },
|
|
13878
|
+
opt.line.productName,
|
|
13879
|
+
React.createElement("ul", null,
|
|
13880
|
+
React.createElement("li", null,
|
|
13881
|
+
opt.line.accommodationName,
|
|
13882
|
+
!isNil((_a = opt.line) === null || _a === void 0 ? void 0 : _a.regimeName) && ", ",
|
|
13883
|
+
opt.line.regimeName)),
|
|
13884
|
+
getDateText(opt.line.startDate),
|
|
13885
|
+
opt.line.startDate != opt.line.endDate
|
|
13886
|
+
? " > ".concat(getDateText(opt.line.endDate))
|
|
13887
|
+
: "",
|
|
13888
|
+
React.createElement("ul", null,
|
|
13889
|
+
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.groups) &&
|
|
13890
|
+
(opt === null || opt === void 0 ? void 0 : opt.groups.map(function (x) {
|
|
13891
|
+
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
13892
|
+
return;
|
|
13893
|
+
return React.createElement(SummaryPerUnitOptionGroup, { group: x });
|
|
13894
|
+
})),
|
|
13895
|
+
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.pax) &&
|
|
13896
|
+
(opt === null || opt === void 0 ? void 0 : opt.pax.map(function (x) { return React.createElement(SummaryBookingOptionPax, { pax: x }); })))));
|
|
13897
|
+
}))); };
|
|
13898
|
+
return (React.createElement(React.Fragment, null, group.title ? (React.createElement("li", { className: "list__item" },
|
|
13263
13899
|
React.createElement("h6", null, group.title),
|
|
13264
|
-
React.createElement("ul", { className: "list" },
|
|
13265
|
-
var _a;
|
|
13266
|
-
return (React.createElement("li", { key: opt.line.entryLineGuid, className: "list__item" },
|
|
13267
|
-
opt.line.productName,
|
|
13268
|
-
": ",
|
|
13269
|
-
opt.line.accommodationName,
|
|
13270
|
-
!isNil((_a = opt.line) === null || _a === void 0 ? void 0 : _a.regimeName) && ", ",
|
|
13271
|
-
opt.line.regimeName,
|
|
13272
|
-
React.createElement("br", null),
|
|
13273
|
-
getDateText(opt.line.startDate),
|
|
13274
|
-
opt.line.startDate != opt.line.endDate
|
|
13275
|
-
? " > ".concat(getDateText(opt.line.endDate))
|
|
13276
|
-
: "",
|
|
13277
|
-
React.createElement("ul", null,
|
|
13278
|
-
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.groups) &&
|
|
13279
|
-
(opt === null || opt === void 0 ? void 0 : opt.groups.map(function (x) {
|
|
13280
|
-
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
13281
|
-
return;
|
|
13282
|
-
return React.createElement(SummaryPerUnitOptionGroup, { group: x });
|
|
13283
|
-
})),
|
|
13284
|
-
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.pax) &&
|
|
13285
|
-
(opt === null || opt === void 0 ? void 0 : opt.pax.map(function (x) { return React.createElement(SummaryBookingOptionPax, { pax: x }); })))));
|
|
13286
|
-
}))));
|
|
13900
|
+
React.createElement("ul", { className: "list" }, renderOptions()))) : (React.createElement(React.Fragment, null, renderOptions()))));
|
|
13287
13901
|
};
|
|
13288
13902
|
|
|
13289
13903
|
var SummaryBookingOptionUnit = function (_a) {
|
|
@@ -13331,33 +13945,34 @@ var SummaryFlight = function (_a) {
|
|
|
13331
13945
|
var SummaryPerBookingOptionGroup = function (_a) {
|
|
13332
13946
|
var group = _a.group;
|
|
13333
13947
|
var groupOptions = group.options.filter(function (x) { return x.isSelected; });
|
|
13334
|
-
return (React.createElement(
|
|
13948
|
+
var renderOptions = function () { return (React.createElement(React.Fragment, null, groupOptions.map(function (opt) {
|
|
13949
|
+
var _a;
|
|
13950
|
+
return (React.createElement("li", { key: opt.line.entryLineGuid, className: "list__item" },
|
|
13951
|
+
opt.line.productName,
|
|
13952
|
+
React.createElement("ul", null,
|
|
13953
|
+
React.createElement("li", null,
|
|
13954
|
+
opt.line.accommodationName,
|
|
13955
|
+
!isNil((_a = opt.line) === null || _a === void 0 ? void 0 : _a.regimeName) && ", ",
|
|
13956
|
+
opt.line.regimeName)),
|
|
13957
|
+
getDateText(opt.line.startDate),
|
|
13958
|
+
opt.line.startDate != opt.line.endDate
|
|
13959
|
+
? " > ".concat(getDateText(opt.line.endDate))
|
|
13960
|
+
: "",
|
|
13961
|
+
React.createElement("ul", null,
|
|
13962
|
+
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.groups) &&
|
|
13963
|
+
(opt === null || opt === void 0 ? void 0 : opt.groups.map(function (x) {
|
|
13964
|
+
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
13965
|
+
return;
|
|
13966
|
+
return React.createElement(SummaryPerBookingOptionGroup, { group: x });
|
|
13967
|
+
})),
|
|
13968
|
+
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.units) &&
|
|
13969
|
+
(opt === null || opt === void 0 ? void 0 : opt.units.map(function (x) { return React.createElement(SummaryBookingOptionUnit, { unit: x }); })),
|
|
13970
|
+
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.pax) &&
|
|
13971
|
+
(opt === null || opt === void 0 ? void 0 : opt.pax.map(function (x) { return React.createElement(SummaryBookingOptionPax, { pax: x }); })))));
|
|
13972
|
+
}))); };
|
|
13973
|
+
return (React.createElement(React.Fragment, null, group.title ? (React.createElement("li", { className: "list__item" },
|
|
13335
13974
|
React.createElement("h6", null, group.title),
|
|
13336
|
-
React.createElement("ul", { className: "list" },
|
|
13337
|
-
var _a;
|
|
13338
|
-
return (React.createElement("li", { key: opt.line.entryLineGuid, className: "list__item" },
|
|
13339
|
-
opt.line.productName,
|
|
13340
|
-
": ",
|
|
13341
|
-
opt.line.accommodationName,
|
|
13342
|
-
!isNil((_a = opt.line) === null || _a === void 0 ? void 0 : _a.regimeName) && ", ",
|
|
13343
|
-
opt.line.regimeName,
|
|
13344
|
-
React.createElement("br", null),
|
|
13345
|
-
getDateText(opt.line.startDate),
|
|
13346
|
-
opt.line.startDate != opt.line.endDate
|
|
13347
|
-
? " > ".concat(getDateText(opt.line.endDate))
|
|
13348
|
-
: "",
|
|
13349
|
-
React.createElement("ul", null,
|
|
13350
|
-
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.groups) &&
|
|
13351
|
-
(opt === null || opt === void 0 ? void 0 : opt.groups.map(function (x) {
|
|
13352
|
-
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
13353
|
-
return;
|
|
13354
|
-
return React.createElement(SummaryPerBookingOptionGroup, { group: x });
|
|
13355
|
-
})),
|
|
13356
|
-
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.units) &&
|
|
13357
|
-
(opt === null || opt === void 0 ? void 0 : opt.units.map(function (x) { return React.createElement(SummaryBookingOptionUnit, { unit: x }); })),
|
|
13358
|
-
!isEmpty(opt === null || opt === void 0 ? void 0 : opt.pax) &&
|
|
13359
|
-
(opt === null || opt === void 0 ? void 0 : opt.pax.map(function (x) { return React.createElement(SummaryBookingOptionPax, { pax: x }); })))));
|
|
13360
|
-
}))));
|
|
13975
|
+
React.createElement("ul", { className: "list" }, renderOptions()))) : (React.createElement(React.Fragment, null, renderOptions()))));
|
|
13361
13976
|
};
|
|
13362
13977
|
|
|
13363
13978
|
var Summary = function () {
|
|
@@ -13374,6 +13989,8 @@ var Summary = function () {
|
|
|
13374
13989
|
var activeOption = useSelector(selectActiveOption);
|
|
13375
13990
|
var apiSettings = useSelector(selectApiSettings);
|
|
13376
13991
|
var languageCode = useSelector(selectLanguageCode);
|
|
13992
|
+
var officeId = useSelector(selectOfficeId);
|
|
13993
|
+
var agentId = useSelector(selectAgentAdressId);
|
|
13377
13994
|
if (!travelerFormValues) {
|
|
13378
13995
|
if (settings.skipRouter) {
|
|
13379
13996
|
dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
|
|
@@ -13472,7 +14089,7 @@ var Summary = function () {
|
|
|
13472
14089
|
dispatch(setBookingRemarks(text));
|
|
13473
14090
|
setRemarks(text);
|
|
13474
14091
|
};
|
|
13475
|
-
var handleValidateVoucher = function (
|
|
14092
|
+
var handleValidateVoucher = function () { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
13476
14093
|
var request, tideClientConfig, result;
|
|
13477
14094
|
var _a;
|
|
13478
14095
|
return __generator$1(this, function (_b) {
|
|
@@ -13480,10 +14097,13 @@ var Summary = function () {
|
|
|
13480
14097
|
case 0:
|
|
13481
14098
|
if (!(voucher === null || voucher === void 0 ? void 0 : voucher.code))
|
|
13482
14099
|
return [2 /*return*/];
|
|
13483
|
-
request =
|
|
13484
|
-
|
|
13485
|
-
|
|
13486
|
-
|
|
14100
|
+
request = {
|
|
14101
|
+
officeId: officeId,
|
|
14102
|
+
agentId: agentId,
|
|
14103
|
+
payload: {
|
|
14104
|
+
code: voucher.code,
|
|
14105
|
+
otherCodes: (_a = bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) !== null && _a !== void 0 ? _a : [],
|
|
14106
|
+
},
|
|
13487
14107
|
};
|
|
13488
14108
|
tideClientConfig = buildTideClientConfig(apiSettings);
|
|
13489
14109
|
if (!tideClientConfig)
|
|
@@ -13520,176 +14140,185 @@ var Summary = function () {
|
|
|
13520
14140
|
return (React.createElement(React.Fragment, null,
|
|
13521
14141
|
isSubmitting && settings.loaderComponent,
|
|
13522
14142
|
!isSubmitting && (React.createElement("form", { className: "form", name: "booking--summary", id: "booking--summary", onSubmit: handleSubmit },
|
|
13523
|
-
React.createElement("div", { className: "
|
|
13524
|
-
React.createElement("div", { className: "
|
|
13525
|
-
React.createElement("div", { className: "
|
|
13526
|
-
React.createElement("div", { className: "
|
|
13527
|
-
React.createElement("
|
|
13528
|
-
|
|
13529
|
-
React.createElement("div", { className: "
|
|
13530
|
-
React.createElement("div", { className: "
|
|
13531
|
-
React.createElement("
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
rIndex + 1),
|
|
13535
|
-
React.createElement("p", { className: "form__region-label" }, "".concat(r.adults.length + r.children.length, " ").concat(r.adults.length + r.children.length === 1
|
|
13536
|
-
? translations.SUMMARY.TRAVELER
|
|
13537
|
-
: translations.SUMMARY.TRAVELERS, ": ").concat(compact([
|
|
13538
|
-
r.adults.length,
|
|
13539
|
-
r.adults.length === 1 &&
|
|
13540
|
-
" ".concat(translations.SUMMARY.ADULT),
|
|
13541
|
-
r.adults.length > 1 &&
|
|
13542
|
-
" ".concat(translations.SUMMARY.ADULTS),
|
|
13543
|
-
r.adults &&
|
|
13544
|
-
r.adults.length &&
|
|
13545
|
-
r.children &&
|
|
13546
|
-
r.children.length &&
|
|
13547
|
-
", ",
|
|
13548
|
-
r.children.length,
|
|
13549
|
-
r.children.length === 1 &&
|
|
13550
|
-
" ".concat(translations.SUMMARY.CHILD),
|
|
13551
|
-
r.children.length > 1 &&
|
|
13552
|
-
" ".concat(translations.SUMMARY.CHILDREN),
|
|
13553
|
-
]).join(""))))),
|
|
13554
|
-
__spreadArray(__spreadArray([], r.adults, true), r.children, true).map(function (traveler) {
|
|
13555
|
-
var isMainBooker = traveler.id === (travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.mainBookerId);
|
|
13556
|
-
return (React.createElement("div", { className: "form__group form__group--sm-50", key: traveler.id },
|
|
13557
|
-
React.createElement("ul", { className: "list list--plain" },
|
|
13558
|
-
React.createElement("li", { className: "list__item" },
|
|
13559
|
-
React.createElement("strong", null,
|
|
13560
|
-
traveler.firstName,
|
|
13561
|
-
" ",
|
|
13562
|
-
traveler.lastName),
|
|
14143
|
+
React.createElement("div", { className: "form__booking--summary" },
|
|
14144
|
+
React.createElement("div", { className: "form__region" },
|
|
14145
|
+
React.createElement("div", { className: "form__row" },
|
|
14146
|
+
React.createElement("div", { className: "form__group" },
|
|
14147
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14148
|
+
React.createElement("h5", { className: "form__region-heading" }, translations.SUMMARY.PERSONAL_DETAILS)))),
|
|
14149
|
+
rooms.map(function (r, rIndex) { return (React.createElement("div", { className: "form__row" },
|
|
14150
|
+
React.createElement("div", { className: "form__group" },
|
|
14151
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14152
|
+
React.createElement("h5", { className: "form__region-heading" },
|
|
14153
|
+
translations.SHARED.ROOM,
|
|
13563
14154
|
" ",
|
|
13564
|
-
|
|
14155
|
+
rIndex + 1),
|
|
14156
|
+
React.createElement("p", { className: "form__region-label" }, "".concat(r.adults.length + r.children.length, " ").concat(r.adults.length + r.children.length === 1
|
|
14157
|
+
? translations.SUMMARY.TRAVELER
|
|
14158
|
+
: translations.SUMMARY.TRAVELERS, ": ").concat(compact([
|
|
14159
|
+
r.adults.length,
|
|
14160
|
+
r.adults.length === 1 &&
|
|
14161
|
+
" ".concat(translations.SUMMARY.ADULT),
|
|
14162
|
+
r.adults.length > 1 &&
|
|
14163
|
+
" ".concat(translations.SUMMARY.ADULTS),
|
|
14164
|
+
r.adults &&
|
|
14165
|
+
r.adults.length &&
|
|
14166
|
+
r.children &&
|
|
14167
|
+
r.children.length &&
|
|
14168
|
+
", ",
|
|
14169
|
+
r.children.length,
|
|
14170
|
+
r.children.length === 1 &&
|
|
14171
|
+
" ".concat(translations.SUMMARY.CHILD),
|
|
14172
|
+
r.children.length > 1 &&
|
|
14173
|
+
" ".concat(translations.SUMMARY.CHILDREN),
|
|
14174
|
+
]).join(""))))),
|
|
14175
|
+
__spreadArray(__spreadArray([], r.adults, true), r.children, true).map(function (traveler) {
|
|
14176
|
+
var isMainBooker = traveler.id === (travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.mainBookerId);
|
|
14177
|
+
return (React.createElement("div", { className: "form__group form__group--sm-50", key: traveler.id },
|
|
14178
|
+
React.createElement("ul", { className: "list list--plain" },
|
|
14179
|
+
React.createElement("li", { className: "list__item" },
|
|
14180
|
+
React.createElement("strong", null,
|
|
14181
|
+
traveler.firstName,
|
|
14182
|
+
" ",
|
|
14183
|
+
traveler.lastName),
|
|
14184
|
+
" ",
|
|
14185
|
+
isMainBooker && (React.createElement("em", null,
|
|
14186
|
+
"(",
|
|
14187
|
+
translations.SUMMARY.MAIN_BOOKER,
|
|
14188
|
+
")"))),
|
|
14189
|
+
React.createElement("li", { className: "list__item" }, traveler.birthDate.split("-").reverse().join("/")),
|
|
14190
|
+
isMainBooker && (React.createElement(React.Fragment, null,
|
|
14191
|
+
React.createElement("li", { className: "list__item" }, "".concat(travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.street, " ").concat(compact([
|
|
14192
|
+
travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.houseNumber,
|
|
14193
|
+
travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.box,
|
|
14194
|
+
]).join(" "), ", ").concat(travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.zipCode, " ").concat(travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.place)),
|
|
14195
|
+
React.createElement("li", { className: "list__item" }, travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.phone),
|
|
14196
|
+
React.createElement("li", { className: "list__item" }, travelerFormValues === null || travelerFormValues === void 0 ? void 0 : travelerFormValues.email))))));
|
|
14197
|
+
}))); })),
|
|
14198
|
+
React.createElement("div", { className: "form__region" },
|
|
14199
|
+
React.createElement("div", { className: "form__row" },
|
|
14200
|
+
React.createElement("div", { className: "form__group" },
|
|
14201
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14202
|
+
React.createElement("h5", { className: "form__region-heading" }, translations.SUMMARY.OPTIONS)))),
|
|
14203
|
+
React.createElement("div", { className: "form__row" },
|
|
14204
|
+
React.createElement("div", { className: "form__group" },
|
|
14205
|
+
React.createElement("ul", { className: "list list--booking-summary" },
|
|
14206
|
+
React.createElement("li", null,
|
|
14207
|
+
React.createElement("h6", null, activeOption === null || activeOption === void 0 ? void 0 : activeOption.name),
|
|
14208
|
+
React.createElement("ul", null, activeOption === null || activeOption === void 0 ? void 0 : activeOption.rooms.map(function (r, ri) {
|
|
14209
|
+
var roomOption = r.options.find(function (x) { return x.isSelected; });
|
|
14210
|
+
return (React.createElement("li", { key: ri, className: "list__item" }, roomOption === null || roomOption === void 0 ? void 0 :
|
|
14211
|
+
roomOption.accommodationName,
|
|
14212
|
+
!isNil(roomOption === null || roomOption === void 0 ? void 0 : roomOption.regimeName) && ", ", roomOption === null || roomOption === void 0 ? void 0 :
|
|
14213
|
+
roomOption.regimeName));
|
|
14214
|
+
})),
|
|
14215
|
+
React.createElement("p", null,
|
|
13565
14216
|
"(",
|
|
13566
|
-
|
|
13567
|
-
"
|
|
13568
|
-
|
|
13569
|
-
|
|
13570
|
-
|
|
13571
|
-
|
|
13572
|
-
|
|
13573
|
-
|
|
13574
|
-
|
|
13575
|
-
|
|
13576
|
-
|
|
13577
|
-
|
|
13578
|
-
|
|
13579
|
-
|
|
13580
|
-
|
|
13581
|
-
|
|
13582
|
-
|
|
13583
|
-
|
|
13584
|
-
|
|
13585
|
-
|
|
13586
|
-
|
|
13587
|
-
|
|
13588
|
-
|
|
13589
|
-
|
|
13590
|
-
|
|
13591
|
-
|
|
13592
|
-
|
|
13593
|
-
})),
|
|
13594
|
-
|
|
13595
|
-
|
|
13596
|
-
|
|
13597
|
-
|
|
14217
|
+
getDateText(activeOption === null || activeOption === void 0 ? void 0 : activeOption.fromDate),
|
|
14218
|
+
" >",
|
|
14219
|
+
" ",
|
|
14220
|
+
getDateText(activeOption === null || activeOption === void 0 ? void 0 : activeOption.toDate),
|
|
14221
|
+
")")),
|
|
14222
|
+
!isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.groups) &&
|
|
14223
|
+
(activeOption === null || activeOption === void 0 ? void 0 : activeOption.groups.map(function (x, i) {
|
|
14224
|
+
if (!x.options.some(function (y) { return y.isSelected; }))
|
|
14225
|
+
return;
|
|
14226
|
+
return React.createElement(SummaryPerBookingOptionGroup, { key: i, group: x });
|
|
14227
|
+
})),
|
|
14228
|
+
!isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits) &&
|
|
14229
|
+
(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionUnits.map(function (x) { return (React.createElement(SummaryBookingOptionUnit, { unit: x })); })),
|
|
14230
|
+
!isEmpty(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax) &&
|
|
14231
|
+
(activeOption === null || activeOption === void 0 ? void 0 : activeOption.optionPax.map(function (x) { return (React.createElement(SummaryBookingOptionPax, { pax: x })); })),
|
|
14232
|
+
(packageDetails === null || packageDetails === void 0 ? void 0 : packageDetails.outwardFlights) &&
|
|
14233
|
+
packageDetails.outwardFlights
|
|
14234
|
+
.filter(function (x) { return x.isSelected; })
|
|
14235
|
+
.map(function (flight, i) { return (React.createElement(SummaryFlight, { key: i, flight: flight, header: translations.SIDEBAR.DEPARTURE_FLIGHT })); }),
|
|
14236
|
+
(packageDetails === null || packageDetails === void 0 ? void 0 : packageDetails.returnFlights) &&
|
|
14237
|
+
packageDetails.returnFlights
|
|
14238
|
+
.filter(function (x) { return x.isSelected; })
|
|
14239
|
+
.map(function (flight, i) { return (React.createElement(SummaryFlight, { key: i, flight: flight, header: translations.SIDEBAR.ARRIVAL_FLIGHT })); }))))),
|
|
14240
|
+
settings.enableVoucher && (React.createElement("div", { className: "form__region" },
|
|
14241
|
+
React.createElement("div", { className: "form__row" },
|
|
14242
|
+
React.createElement("div", { className: "form__group" },
|
|
14243
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14244
|
+
React.createElement("h5", { className: "form__region-heading" }, translations.SUMMARY.VOUCHERS)))),
|
|
14245
|
+
React.createElement("div", { className: "form__row" },
|
|
14246
|
+
React.createElement("div", { className: "form__group" },
|
|
14247
|
+
React.createElement("input", { type: "text", className: "form__input info-message__voucher__input", defaultValue: voucher.code, onChange: function (e) { return setVoucher({ code: e.target.value }); } }),
|
|
14248
|
+
React.createElement("button", { type: "button", className: buildClassName([
|
|
14249
|
+
"cta",
|
|
14250
|
+
!voucher.code && "cta--disabled",
|
|
14251
|
+
]), onClick: function (e) { return handleValidateVoucher(); } }, translations.SUMMARY.VOUCHER_VALIDATE))),
|
|
14252
|
+
React.createElement("div", { className: "form__row" },
|
|
14253
|
+
React.createElement("div", { className: "form__group info-message__voucher" },
|
|
14254
|
+
voucher.isValid && voucher.isValidated && (React.createElement("div", { className: "info-message info-message__voucher__valid" },
|
|
14255
|
+
React.createElement("span", null, translations.SUMMARY.VOUCHER_VALID),
|
|
14256
|
+
React.createElement("button", { type: "button", className: "cta cta--secondary", onClick: handleAddVoucher }, translations.SUMMARY.ADD_VOUCHER))),
|
|
14257
|
+
!voucher.isValid && voucher.isValidated && (React.createElement("div", { className: "info-message--error" }, translations.SUMMARY.VOUCHER_INVALID)))),
|
|
14258
|
+
React.createElement("div", { className: "form__row" },
|
|
14259
|
+
React.createElement("ul", { className: "info-message__voucher" }, !isEmpty(bookRequest === null || bookRequest === void 0 ? void 0 : bookRequest.payload.voucherCodes) &&
|
|
14260
|
+
((_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,
|
|
14261
|
+
React.createElement("div", { className: "info-message__voucher__list" },
|
|
14262
|
+
y,
|
|
13598
14263
|
" ",
|
|
13599
|
-
|
|
13600
|
-
|
|
13601
|
-
|
|
13602
|
-
|
|
13603
|
-
|
|
13604
|
-
|
|
13605
|
-
|
|
13606
|
-
}
|
|
13607
|
-
|
|
13608
|
-
|
|
13609
|
-
|
|
13610
|
-
|
|
13611
|
-
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13620
|
-
React.createElement("div", { className: "
|
|
13621
|
-
React.createElement("div", { className: "
|
|
13622
|
-
React.createElement("div", { className: "
|
|
13623
|
-
React.createElement("
|
|
13624
|
-
|
|
13625
|
-
React.createElement("div", { className: "
|
|
13626
|
-
React.createElement("
|
|
13627
|
-
|
|
13628
|
-
|
|
13629
|
-
|
|
13630
|
-
|
|
13631
|
-
|
|
13632
|
-
|
|
13633
|
-
|
|
13634
|
-
|
|
13635
|
-
|
|
13636
|
-
|
|
13637
|
-
|
|
13638
|
-
|
|
13639
|
-
|
|
13640
|
-
|
|
13641
|
-
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
|
|
13648
|
-
React.createElement("div", { className: "info-message__copy" },
|
|
13649
|
-
React.createElement("h5", null, translations.SUMMARY.NOTIFICATIONS_TITLE),
|
|
13650
|
-
React.createElement(React.Fragment, null,
|
|
13651
|
-
uniqBy(notifications.filter(function (x) { return !x.hasToBeConfirmed; }), "id").map(function (notification) { return (React.createElement("span", { key: notification.id, className: "checkbox__label-text" },
|
|
13652
|
-
React.createElement("strong", { className: "checkbox__label-text--title" }, notification.title),
|
|
13653
|
-
React.createElement("span", { className: "checkbox__label-text--description" }, notification.description))); }),
|
|
13654
|
-
uniqBy(notifications.filter(function (x) { return x.hasToBeConfirmed; }), "id").map(function (notification) { return (React.createElement("div", { className: "checkbox", key: notification.id },
|
|
13655
|
-
React.createElement("label", { className: "checkbox__label" },
|
|
13656
|
-
React.createElement("input", { type: "checkbox", className: "checkbox__input", checked: notification.isConfirmed, onChange: function (e) {
|
|
13657
|
-
return handleNotificationChange(notification.id, e.target.checked);
|
|
13658
|
-
} }),
|
|
13659
|
-
React.createElement("span", { className: "checkbox__label-text" },
|
|
13660
|
-
React.createElement("strong", { className: "checkbox__label-text--title" }, notification.title),
|
|
13661
|
-
React.createElement("span", { className: "checkbox__label-text--description" }, notification.description))))); })))))))),
|
|
13662
|
-
React.createElement("div", { className: "form__region" },
|
|
13663
|
-
React.createElement("div", { className: "form__row" },
|
|
13664
|
-
React.createElement("div", { className: "form__group" },
|
|
13665
|
-
React.createElement("div", { className: "form__region-header" },
|
|
13666
|
-
React.createElement("h5", { className: "form__region-heading" }, translations.SUMMARY.REMARKS)))),
|
|
13667
|
-
React.createElement("div", { className: "form__row" },
|
|
13668
|
-
React.createElement("div", { className: "form__group" },
|
|
13669
|
-
React.createElement("textarea", { className: "form__input", defaultValue: remarks, onChange: function (e) { return handleRemarksChange(e.target.value); } })))),
|
|
13670
|
-
React.createElement("div", { className: "form__region" },
|
|
13671
|
-
React.createElement("div", { className: "form__row" },
|
|
13672
|
-
React.createElement("div", { className: "form__group" },
|
|
13673
|
-
React.createElement("div", { className: "info-message" },
|
|
13674
|
-
React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
|
|
13675
|
-
React.createElement("div", { className: "info-message__copy" },
|
|
13676
|
-
React.createElement("h5", null, translations.SUMMARY.VALIDATE_TITLE),
|
|
13677
|
-
React.createElement("p", null, settings.isOffer ? translations.SUMMARY.VALIDATE_TEXT_OFFER : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
|
|
13678
|
-
checkboxes &&
|
|
13679
|
-
checkboxes.map(function (checkbox) { return (React.createElement("div", { className: "checkbox", key: checkbox.id },
|
|
13680
|
-
React.createElement("label", { className: "checkbox__label" },
|
|
13681
|
-
React.createElement("input", { type: "checkbox", className: "checkbox__input", checked: checkbox.isSelected, onChange: function (e) {
|
|
13682
|
-
return handleCheckboxChange(checkbox.id, e.target.checked);
|
|
13683
|
-
} }),
|
|
13684
|
-
React.createElement("span", { className: "checkbox__label-text", dangerouslySetInnerHTML: {
|
|
13685
|
-
__html: checkbox.text,
|
|
13686
|
-
} })))); })))))),
|
|
14264
|
+
React.createElement("button", { type: "button", className: "cta--add-remove", onClick: function (e) { return handleRemoveVoucher(y); } },
|
|
14265
|
+
React.createElement(Icon, { height: 16, name: "ui-trashcan" }))))); })))))),
|
|
14266
|
+
!isEmpty(notifications) && (React.createElement("div", { className: "form__region" },
|
|
14267
|
+
React.createElement("div", { className: "form__row" },
|
|
14268
|
+
React.createElement("div", { className: "form__group" },
|
|
14269
|
+
React.createElement("div", { className: "info-message" },
|
|
14270
|
+
React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
|
|
14271
|
+
React.createElement("div", { className: "info-message__copy" },
|
|
14272
|
+
React.createElement("h5", null, translations.SUMMARY.NOTIFICATIONS_TITLE),
|
|
14273
|
+
React.createElement(React.Fragment, null,
|
|
14274
|
+
uniqBy(notifications.filter(function (x) { return !x.hasToBeConfirmed; }), "id").map(function (notification) { return (React.createElement("span", { key: notification.id, className: "checkbox__label-text" },
|
|
14275
|
+
React.createElement("strong", { className: "checkbox__label-text--title" }, notification.title),
|
|
14276
|
+
React.createElement("span", { className: "checkbox__label-text--description" }, notification.description))); }),
|
|
14277
|
+
uniqBy(notifications.filter(function (x) { return x.hasToBeConfirmed; }), "id").map(function (notification) { return (React.createElement("div", { className: "checkbox", key: notification.id },
|
|
14278
|
+
React.createElement("label", { className: "checkbox__label" },
|
|
14279
|
+
React.createElement("input", { type: "checkbox", className: "checkbox__input", checked: notification.isConfirmed, onChange: function (e) {
|
|
14280
|
+
return handleNotificationChange(notification.id, e.target.checked);
|
|
14281
|
+
} }),
|
|
14282
|
+
React.createElement("span", { className: "checkbox__label-text" },
|
|
14283
|
+
React.createElement("strong", { className: "checkbox__label-text--title" }, notification.title),
|
|
14284
|
+
React.createElement("span", { className: "checkbox__label-text--description" }, notification.description))))); })))))))),
|
|
14285
|
+
React.createElement("div", { className: "form__region" },
|
|
14286
|
+
React.createElement("div", { className: "form__row" },
|
|
14287
|
+
React.createElement("div", { className: "form__group" },
|
|
14288
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14289
|
+
React.createElement("h5", { className: "form__region-heading" }, translations.SUMMARY.REMARKS)))),
|
|
14290
|
+
React.createElement("div", { className: "form__row" },
|
|
14291
|
+
React.createElement("div", { className: "form__group" },
|
|
14292
|
+
React.createElement("textarea", { className: "form__input", defaultValue: remarks, onChange: function (e) { return handleRemarksChange(e.target.value); } })))),
|
|
14293
|
+
React.createElement("div", { className: "form__region" },
|
|
14294
|
+
React.createElement("div", { className: "form__row" },
|
|
14295
|
+
React.createElement("div", { className: "form__group" },
|
|
14296
|
+
React.createElement("div", { className: "info-message" },
|
|
14297
|
+
React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
|
|
14298
|
+
React.createElement("div", { className: "info-message__copy" },
|
|
14299
|
+
React.createElement("h5", null, translations.SUMMARY.VALIDATE_TITLE),
|
|
14300
|
+
React.createElement("p", null, settings.isOffer
|
|
14301
|
+
? translations.SUMMARY.VALIDATE_TEXT_OFFER
|
|
14302
|
+
: translations.SUMMARY.VALIDATE_TEXT_BOOKING),
|
|
14303
|
+
checkboxes &&
|
|
14304
|
+
checkboxes.map(function (checkbox) { return (React.createElement("div", { className: "checkbox", key: checkbox.id },
|
|
14305
|
+
React.createElement("label", { className: "checkbox__label" },
|
|
14306
|
+
React.createElement("input", { type: "checkbox", className: "checkbox__input", checked: checkbox.isSelected, onChange: function (e) {
|
|
14307
|
+
return handleCheckboxChange(checkbox.id, e.target.checked);
|
|
14308
|
+
} }),
|
|
14309
|
+
React.createElement("span", { className: "checkbox__label-text", dangerouslySetInnerHTML: {
|
|
14310
|
+
__html: checkbox.text,
|
|
14311
|
+
} })))); }))))))),
|
|
13687
14312
|
React.createElement("div", { className: "booking__navigator" },
|
|
13688
14313
|
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)),
|
|
13689
|
-
React.createElement("button", { title: settings.isOffer
|
|
14314
|
+
React.createElement("button", { title: settings.isOffer
|
|
14315
|
+
? translations.STEPS.SUBMIT_OFFER
|
|
14316
|
+
: translations.STEPS.SUBMIT_BOOKING, className: buildClassName([
|
|
13690
14317
|
"cta",
|
|
13691
14318
|
!userValidated && "cta--disabled",
|
|
13692
|
-
]), disabled: !userValidated }, settings.isOffer
|
|
14319
|
+
]), disabled: !userValidated }, settings.isOffer
|
|
14320
|
+
? translations.STEPS.SUBMIT_OFFER
|
|
14321
|
+
: translations.STEPS.SUBMIT_BOOKING))))));
|
|
13693
14322
|
};
|
|
13694
14323
|
|
|
13695
14324
|
var LabeledInput = function (_a) {
|
|
@@ -13731,7 +14360,7 @@ var TypeAheadInput = function (_a) {
|
|
|
13731
14360
|
};
|
|
13732
14361
|
return (React.createElement("div", { className: "typeahead" },
|
|
13733
14362
|
React.createElement("div", { className: "typeahead__trigger typeahead__trigger--icon" },
|
|
13734
|
-
React.createElement(Icon, { name: "qsm-location" }),
|
|
14363
|
+
React.createElement(Icon, { name: "ui-qsm-location" }),
|
|
13735
14364
|
React.createElement("input", { type: "text", className: "form__input", name: name, value: value, onChange: handleChange, placeholder: placeholder, required: true, autoComplete: "off", onKeyDown: function (e) {
|
|
13736
14365
|
if (e.key === "Tab" && options && onSelect) {
|
|
13737
14366
|
onSelect(options[0].key);
|
|
@@ -14025,159 +14654,160 @@ var TravelersForm = function () {
|
|
|
14025
14654
|
return get$2(formik.errors, key) && get$2(formik.touched, key);
|
|
14026
14655
|
};
|
|
14027
14656
|
return (React.createElement("form", { className: "form form__travelers", name: "booking--travellers", id: "booking--travellers", noValidate: true, onSubmit: formik.handleSubmit, onReset: formik.handleReset },
|
|
14028
|
-
|
|
14029
|
-
React.createElement("div", {
|
|
14657
|
+
React.createElement("div", { className: "form__travelers__wrapper" },
|
|
14658
|
+
formik.values.rooms.map(function (room, rIndex) { return (React.createElement("div", { key: rIndex },
|
|
14659
|
+
React.createElement("div", { className: "form__region" },
|
|
14660
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14661
|
+
React.createElement("h5", { className: "form__region-heading" },
|
|
14662
|
+
translations.SHARED.ROOM,
|
|
14663
|
+
" ",
|
|
14664
|
+
rIndex + 1),
|
|
14665
|
+
React.createElement("p", { className: "form__region-label" }, compact([
|
|
14666
|
+
room.adults.length,
|
|
14667
|
+
room.adults.length === 1 &&
|
|
14668
|
+
" ".concat(translations.TRAVELERS_FORM.ADULT),
|
|
14669
|
+
room.adults.length > 1 &&
|
|
14670
|
+
" ".concat(translations.TRAVELERS_FORM.ADULTS),
|
|
14671
|
+
room.adults &&
|
|
14672
|
+
room.adults.length &&
|
|
14673
|
+
room.children &&
|
|
14674
|
+
room.children.length &&
|
|
14675
|
+
", ",
|
|
14676
|
+
room.children.length,
|
|
14677
|
+
room.children.length === 1 &&
|
|
14678
|
+
" ".concat(translations.TRAVELERS_FORM.CHILD),
|
|
14679
|
+
room.children.length > 1 &&
|
|
14680
|
+
" ".concat(translations.TRAVELERS_FORM.CHILDREN),
|
|
14681
|
+
]).join("")))),
|
|
14682
|
+
room.adults.map(function (travelerValues, index) { return (React.createElement("div", { className: "form__region", key: travelerValues.id },
|
|
14683
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14684
|
+
React.createElement("h5", { className: "form__region-heading" },
|
|
14685
|
+
translations.TRAVELERS_FORM.TRAVELER,
|
|
14686
|
+
" ",
|
|
14687
|
+
index + 1),
|
|
14688
|
+
React.createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.ADULT),
|
|
14689
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14690
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14691
|
+
React.createElement("input", { type: "radio", name: "mainBookerId", onChange: handleMainBookerChange, onBlur: formik.handleBlur, value: travelerValues.id, checked: formik.values.mainBookerId === travelerValues.id, className: "radiobutton__input" }),
|
|
14692
|
+
translations.TRAVELERS_FORM.MAIN_BOOKER))),
|
|
14693
|
+
React.createElement("div", { className: "form__row" },
|
|
14694
|
+
React.createElement("div", { className: buildClassName([
|
|
14695
|
+
"form__group",
|
|
14696
|
+
hasVisibleError("rooms[".concat(rIndex, "].adults[").concat(index, "].gender")) && "form__group--error",
|
|
14697
|
+
]) },
|
|
14698
|
+
React.createElement("label", { className: "form__label" },
|
|
14699
|
+
translations.TRAVELERS_FORM.GENDER,
|
|
14700
|
+
" *"),
|
|
14701
|
+
React.createElement("div", { className: "radiobutton-group" },
|
|
14702
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14703
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14704
|
+
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" }),
|
|
14705
|
+
translations.TRAVELERS_FORM.MALE)),
|
|
14706
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14707
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14708
|
+
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" }),
|
|
14709
|
+
translations.TRAVELERS_FORM.FEMALE)),
|
|
14710
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14711
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14712
|
+
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" }),
|
|
14713
|
+
translations.TRAVELERS_FORM.OTHER))))),
|
|
14714
|
+
React.createElement("div", { className: "form__row" },
|
|
14715
|
+
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 }),
|
|
14716
|
+
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 }),
|
|
14717
|
+
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 })))); }),
|
|
14718
|
+
room.children.map(function (travelerValues, index) { return (React.createElement("div", { className: "form__region", key: travelerValues.id },
|
|
14719
|
+
React.createElement("div", { className: "form__region-header" },
|
|
14720
|
+
React.createElement("h5", { className: "form__region-heading" },
|
|
14721
|
+
translations.TRAVELERS_FORM.TRAVELER,
|
|
14722
|
+
" ",
|
|
14723
|
+
room.adults.length + index + 1),
|
|
14724
|
+
React.createElement("p", { className: "form__region-label" }, translations.TRAVELERS_FORM.CHILD)),
|
|
14725
|
+
React.createElement("div", { className: "form__row" },
|
|
14726
|
+
React.createElement("div", { className: buildClassName([
|
|
14727
|
+
"form__group",
|
|
14728
|
+
hasVisibleError("rooms[".concat(rIndex, "].children[").concat(index, "].gender")) && "form__group--error",
|
|
14729
|
+
]) },
|
|
14730
|
+
React.createElement("label", { className: "form__label" },
|
|
14731
|
+
translations.TRAVELERS_FORM.GENDER,
|
|
14732
|
+
" *"),
|
|
14733
|
+
React.createElement("div", { className: "radiobutton-group" },
|
|
14734
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14735
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14736
|
+
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" }),
|
|
14737
|
+
translations.TRAVELERS_FORM.MALE)),
|
|
14738
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14739
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14740
|
+
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" }),
|
|
14741
|
+
translations.TRAVELERS_FORM.FEMALE)),
|
|
14742
|
+
React.createElement("div", { className: "radiobutton" },
|
|
14743
|
+
React.createElement("label", { className: "radiobutton__label" },
|
|
14744
|
+
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" }),
|
|
14745
|
+
translations.TRAVELERS_FORM.OTHER))))),
|
|
14746
|
+
React.createElement("div", { className: "form__row" },
|
|
14747
|
+
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 }),
|
|
14748
|
+
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 }),
|
|
14749
|
+
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 })))); }))); }),
|
|
14750
|
+
bookingType != "b2b" ? (React.createElement("div", { className: "form__region" },
|
|
14030
14751
|
React.createElement("div", { className: "form__region-header" },
|
|
14031
|
-
React.createElement("h5", { className: "form__region-heading" },
|
|
14032
|
-
translations.SHARED.ROOM,
|
|
14033
|
-
" ",
|
|
14034
|
-
rIndex + 1),
|
|
14752
|
+
React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.MAIN_BOOKER),
|
|
14035
14753
|
React.createElement("p", { className: "form__region-label" }, compact([
|
|
14036
|
-
|
|
14037
|
-
|
|
14038
|
-
"
|
|
14039
|
-
|
|
14040
|
-
|
|
14041
|
-
|
|
14042
|
-
|
|
14043
|
-
|
|
14044
|
-
|
|
14045
|
-
|
|
14046
|
-
|
|
14047
|
-
|
|
14048
|
-
" "
|
|
14049
|
-
|
|
14050
|
-
|
|
14051
|
-
|
|
14052
|
-
|
|
14053
|
-
|
|
14054
|
-
|
|
14055
|
-
|
|
14056
|
-
|
|
14057
|
-
|
|
14058
|
-
|
|
14059
|
-
|
|
14060
|
-
|
|
14061
|
-
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
React.createElement("label", { className: "radiobutton__label" },
|
|
14078
|
-
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" }),
|
|
14079
|
-
translations.TRAVELERS_FORM.FEMALE)),
|
|
14080
|
-
React.createElement("div", { className: "radiobutton" },
|
|
14081
|
-
React.createElement("label", { className: "radiobutton__label" },
|
|
14082
|
-
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" }),
|
|
14083
|
-
translations.TRAVELERS_FORM.OTHER))))),
|
|
14754
|
+
compact([mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName, mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName]).join(" "),
|
|
14755
|
+
(mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
|
|
14756
|
+
format$1(parse(mainBooker.birthDate, "yyyy-MM-dd", new Date()), "dd-MM-yyyy"),
|
|
14757
|
+
]).join(", "))),
|
|
14758
|
+
React.createElement(React.Fragment, null,
|
|
14759
|
+
React.createElement("div", { className: "form__twocolumn" },
|
|
14760
|
+
React.createElement("div", { className: "form__twocolumn-column" },
|
|
14761
|
+
React.createElement("div", { className: "form__row" },
|
|
14762
|
+
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 }),
|
|
14763
|
+
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 }),
|
|
14764
|
+
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 }))),
|
|
14765
|
+
React.createElement("div", { className: "form__twocolumn-column" },
|
|
14766
|
+
React.createElement("div", { className: "form__row" },
|
|
14767
|
+
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 }),
|
|
14768
|
+
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 }),
|
|
14769
|
+
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: [
|
|
14770
|
+
{
|
|
14771
|
+
key: "empty",
|
|
14772
|
+
label: translations.TRAVELERS_FORM.SELECT_COUNTRY,
|
|
14773
|
+
value: undefined,
|
|
14774
|
+
},
|
|
14775
|
+
{
|
|
14776
|
+
key: "be",
|
|
14777
|
+
value: "be",
|
|
14778
|
+
label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM,
|
|
14779
|
+
},
|
|
14780
|
+
{
|
|
14781
|
+
key: "nl",
|
|
14782
|
+
value: "nl",
|
|
14783
|
+
label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS,
|
|
14784
|
+
},
|
|
14785
|
+
{
|
|
14786
|
+
key: "fr",
|
|
14787
|
+
value: "fr",
|
|
14788
|
+
label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE,
|
|
14789
|
+
},
|
|
14790
|
+
] })))),
|
|
14791
|
+
React.createElement("div", { className: "form__row" },
|
|
14792
|
+
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 }),
|
|
14793
|
+
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 }),
|
|
14794
|
+
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" },
|
|
14084
14795
|
React.createElement("div", { className: "form__row" },
|
|
14085
|
-
React.createElement(LabeledInput, { hasError: hasVisibleError("
|
|
14086
|
-
|
|
14087
|
-
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 })))); }),
|
|
14088
|
-
room.children.map(function (travelerValues, index) { return (React.createElement("div", { className: "form__region", key: travelerValues.id },
|
|
14796
|
+
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 })))),
|
|
14797
|
+
showAgentSelection && (React.createElement("div", { className: "form__region" },
|
|
14089
14798
|
React.createElement("div", { className: "form__region-header" },
|
|
14090
|
-
React.createElement("h5", { className: "form__region-heading" },
|
|
14091
|
-
|
|
14092
|
-
" ",
|
|
14093
|
-
|
|
14094
|
-
|
|
14095
|
-
React.createElement("div", { className: "form__row" },
|
|
14799
|
+
React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
|
|
14800
|
+
React.createElement("div", { className: "checkbox", id: "cbxChooseOffice" },
|
|
14801
|
+
React.createElement("label", { className: "checkbox__label" },
|
|
14802
|
+
React.createElement("input", { type: "checkbox", name: "booking--mainbooker", defaultChecked: showAgents, onClick: function () { return toggleAgent(!showAgents); }, className: "checkbox__input" }),
|
|
14803
|
+
translations.TRAVELERS_FORM.CHOOSE_OFFICE))),
|
|
14804
|
+
showAgents && (React.createElement("div", { className: "form__row form__row--choose-office" },
|
|
14096
14805
|
React.createElement("div", { className: buildClassName([
|
|
14097
14806
|
"form__group",
|
|
14098
|
-
|
|
14807
|
+
"form__group--icon",
|
|
14808
|
+
hasVisibleError("travelAgentId") && "form__group--error",
|
|
14099
14809
|
]) },
|
|
14100
|
-
React.createElement(
|
|
14101
|
-
translations.TRAVELERS_FORM.GENDER,
|
|
14102
|
-
" *"),
|
|
14103
|
-
React.createElement("div", { className: "radiobutton-group" },
|
|
14104
|
-
React.createElement("div", { className: "radiobutton" },
|
|
14105
|
-
React.createElement("label", { className: "radiobutton__label" },
|
|
14106
|
-
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" }),
|
|
14107
|
-
translations.TRAVELERS_FORM.MALE)),
|
|
14108
|
-
React.createElement("div", { className: "radiobutton" },
|
|
14109
|
-
React.createElement("label", { className: "radiobutton__label" },
|
|
14110
|
-
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" }),
|
|
14111
|
-
translations.TRAVELERS_FORM.FEMALE)),
|
|
14112
|
-
React.createElement("div", { className: "radiobutton" },
|
|
14113
|
-
React.createElement("label", { className: "radiobutton__label" },
|
|
14114
|
-
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" }),
|
|
14115
|
-
translations.TRAVELERS_FORM.OTHER))))),
|
|
14116
|
-
React.createElement("div", { className: "form__row" },
|
|
14117
|
-
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 }),
|
|
14118
|
-
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 }),
|
|
14119
|
-
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 })))); }))); }),
|
|
14120
|
-
bookingType != "b2b" ? (React.createElement("div", { className: "form__region" },
|
|
14121
|
-
React.createElement("div", { className: "form__region-header" },
|
|
14122
|
-
React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.MAIN_BOOKER),
|
|
14123
|
-
React.createElement("p", { className: "form__region-label" }, compact([
|
|
14124
|
-
compact([mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName, mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName]).join(" "),
|
|
14125
|
-
(mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
|
|
14126
|
-
format$1(parse(mainBooker.birthDate, "yyyy-MM-dd", new Date()), "dd-MM-yyyy"),
|
|
14127
|
-
]).join(", "))),
|
|
14128
|
-
React.createElement(React.Fragment, null,
|
|
14129
|
-
React.createElement("div", { className: "form__twocolumn" },
|
|
14130
|
-
React.createElement("div", { className: "form__twocolumn-column" },
|
|
14131
|
-
React.createElement("div", { className: "form__row" },
|
|
14132
|
-
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 }),
|
|
14133
|
-
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 }),
|
|
14134
|
-
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 }))),
|
|
14135
|
-
React.createElement("div", { className: "form__twocolumn-column" },
|
|
14136
|
-
React.createElement("div", { className: "form__row" },
|
|
14137
|
-
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 }),
|
|
14138
|
-
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 }),
|
|
14139
|
-
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: [
|
|
14140
|
-
{
|
|
14141
|
-
key: "empty",
|
|
14142
|
-
label: translations.TRAVELERS_FORM.SELECT_COUNTRY,
|
|
14143
|
-
value: undefined,
|
|
14144
|
-
},
|
|
14145
|
-
{
|
|
14146
|
-
key: "be",
|
|
14147
|
-
value: "be",
|
|
14148
|
-
label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM,
|
|
14149
|
-
},
|
|
14150
|
-
{
|
|
14151
|
-
key: "nl",
|
|
14152
|
-
value: "nl",
|
|
14153
|
-
label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS,
|
|
14154
|
-
},
|
|
14155
|
-
{
|
|
14156
|
-
key: "fr",
|
|
14157
|
-
value: "fr",
|
|
14158
|
-
label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE,
|
|
14159
|
-
},
|
|
14160
|
-
] })))),
|
|
14161
|
-
React.createElement("div", { className: "form__row" },
|
|
14162
|
-
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 }),
|
|
14163
|
-
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 }),
|
|
14164
|
-
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" },
|
|
14165
|
-
React.createElement("div", { className: "form__row" },
|
|
14166
|
-
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 })))),
|
|
14167
|
-
showAgentSelection && (React.createElement("div", { className: "form__region" },
|
|
14168
|
-
React.createElement("div", { className: "form__region-header" },
|
|
14169
|
-
React.createElement("h5", { className: "form__region-heading" }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
|
|
14170
|
-
React.createElement("div", { className: "checkbox", id: "cbxChooseOffice" },
|
|
14171
|
-
React.createElement("label", { className: "checkbox__label" },
|
|
14172
|
-
React.createElement("input", { type: "checkbox", name: "booking--mainbooker", defaultChecked: showAgents, onClick: function () { return toggleAgent(!showAgents); }, className: "checkbox__input" }),
|
|
14173
|
-
translations.TRAVELERS_FORM.CHOOSE_OFFICE))),
|
|
14174
|
-
showAgents && (React.createElement("div", { className: "form__row form__row--choose-office" },
|
|
14175
|
-
React.createElement("div", { className: buildClassName([
|
|
14176
|
-
"form__group",
|
|
14177
|
-
"form__group--icon",
|
|
14178
|
-
hasVisibleError("travelAgentId") && "form__group--error",
|
|
14179
|
-
]) },
|
|
14180
|
-
React.createElement(TypeAheadInput, { value: formik.values.travelAgentName, options: filteredAgents, onChange: handleAgentChange, onSelect: handleAgentSelect, onClear: handleAgentClear, name: "travelAgentName", placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER })))))),
|
|
14810
|
+
React.createElement(TypeAheadInput, { value: formik.values.travelAgentName, options: filteredAgents, onChange: handleAgentChange, onSelect: handleAgentSelect, onClear: handleAgentClear, name: "travelAgentName", placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER }))))))),
|
|
14181
14811
|
Object.keys(flatErrors).length > 0 && (React.createElement("div", { className: "form__region form__region--errors" },
|
|
14182
14812
|
React.createElement("div", { className: "form__row" },
|
|
14183
14813
|
React.createElement("div", { className: "form__group" },
|
|
@@ -14215,6 +14845,7 @@ var Booking = function (_a) {
|
|
|
14215
14845
|
var catalog = getNumberFromParams(params, "catalog");
|
|
14216
14846
|
var rooms = getRoomsFromParams(params, "rooms");
|
|
14217
14847
|
var flight = getFlightsFromParams(params, "flight");
|
|
14848
|
+
var flightRouteId = getStringFromParams(params, "flightRouteId");
|
|
14218
14849
|
var allotmentName = getStringFromParams(params, "allotmentName");
|
|
14219
14850
|
var allotmentIds = getNumbersFromParams(params, "allotmentId");
|
|
14220
14851
|
var tourCode = getStringFromParams(params, "tourCode");
|
|
@@ -14240,6 +14871,7 @@ var Booking = function (_a) {
|
|
|
14240
14871
|
allotmentName: allotmentName,
|
|
14241
14872
|
allotmentIds: allotmentIds,
|
|
14242
14873
|
tourCode: tourCode,
|
|
14874
|
+
flightRouteId: flightRouteId,
|
|
14243
14875
|
}));
|
|
14244
14876
|
}
|
|
14245
14877
|
else {
|
|
@@ -14277,7 +14909,11 @@ var Booking = function (_a) {
|
|
|
14277
14909
|
return __generator$1(this, function (_b) {
|
|
14278
14910
|
switch (_b.label) {
|
|
14279
14911
|
case 0:
|
|
14280
|
-
translations = translationFiles === null || translationFiles === void 0 ? void 0 : translationFiles.map(function (x) {
|
|
14912
|
+
translations = translationFiles === null || translationFiles === void 0 ? void 0 : translationFiles.map(function (x) {
|
|
14913
|
+
return fetch(x.path)
|
|
14914
|
+
.then(function (y) { return y.json(); })
|
|
14915
|
+
.then(function (z) { return ({ language: x.language, value: z }); });
|
|
14916
|
+
});
|
|
14281
14917
|
_a = translations;
|
|
14282
14918
|
if (!_a) return [3 /*break*/, 2];
|
|
14283
14919
|
return [4 /*yield*/, Promise.all(translations)];
|
|
@@ -14326,7 +14962,7 @@ var Booking = function (_a) {
|
|
|
14326
14962
|
setCalculateDeposit,
|
|
14327
14963
|
tagIds,
|
|
14328
14964
|
agentAdressId,
|
|
14329
|
-
accommodationViewId
|
|
14965
|
+
accommodationViewId,
|
|
14330
14966
|
]);
|
|
14331
14967
|
useEffect(function () {
|
|
14332
14968
|
if (!productAttributes ||
|
|
@@ -14367,7 +15003,9 @@ var Booking = function (_a) {
|
|
|
14367
15003
|
!packageDetails && !bookingNumber && !isUnvailable && (React.createElement("div", { className: "booking" },
|
|
14368
15004
|
React.createElement("div", { className: "booking__loader" },
|
|
14369
15005
|
loaderComponent,
|
|
14370
|
-
React.createElement("p", { className: "booking__loader-text" }, isOffer
|
|
15006
|
+
React.createElement("p", { className: "booking__loader-text" }, isOffer
|
|
15007
|
+
? translations.MAIN.PREPARING_OFFER
|
|
15008
|
+
: translations.MAIN.PREPARING_BOOKING)))),
|
|
14371
15009
|
isUnvailable && (React.createElement("div", { className: "booking" },
|
|
14372
15010
|
React.createElement("div", { className: "booking__loader" },
|
|
14373
15011
|
React.createElement("p", { className: "booking__loader-text" }, translations.MAIN.PRODUCT_UNAVAILABLE))))));
|