@qite/tide-booking-component 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
  2. package/build/build-cjs/booking-product/components/icon.d.ts +2 -0
  3. package/build/build-cjs/booking-product/types.d.ts +2 -1
  4. package/build/build-cjs/booking-wizard/components/icon.d.ts +2 -0
  5. package/build/build-cjs/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
  6. package/build/build-cjs/booking-wizard/types.d.ts +1 -0
  7. package/build/build-cjs/index.js +1851 -558
  8. package/build/build-cjs/shared/utils/localization-util.d.ts +17 -10
  9. package/build/build-esm/booking-product/components/footer.d.ts +1 -0
  10. package/build/build-esm/booking-product/components/icon.d.ts +2 -0
  11. package/build/build-esm/booking-product/types.d.ts +2 -1
  12. package/build/build-esm/booking-wizard/components/icon.d.ts +2 -0
  13. package/build/build-esm/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
  14. package/build/build-esm/booking-wizard/types.d.ts +1 -0
  15. package/build/build-esm/index.js +1853 -560
  16. package/build/build-esm/shared/utils/localization-util.d.ts +17 -10
  17. package/package.json +4 -3
  18. package/src/booking-product/components/amount-input.tsx +8 -20
  19. package/src/booking-product/components/date-range-picker/calendar.tsx +3 -3
  20. package/src/booking-product/components/dates.tsx +26 -20
  21. package/src/booking-product/components/footer.tsx +4 -2
  22. package/src/booking-product/components/header.tsx +4 -4
  23. package/src/booking-product/components/icon.tsx +187 -11
  24. package/src/booking-product/components/product.tsx +31 -16
  25. package/src/{shared → booking-product}/components/rating.tsx +3 -3
  26. package/src/booking-product/components/rooms.tsx +116 -113
  27. package/src/booking-product/settings-context.ts +0 -1
  28. package/src/booking-product/types.ts +2 -1
  29. package/src/booking-wizard/components/icon.tsx +42 -15
  30. package/src/{booking-product → booking-wizard}/components/multi-range-filter.tsx +0 -1
  31. package/src/booking-wizard/declarations.d.ts +4 -0
  32. package/src/booking-wizard/features/booking/booking-self-contained.tsx +3 -2
  33. package/src/booking-wizard/features/booking/booking.tsx +3 -2
  34. package/src/booking-wizard/features/confirmation/confirmation.tsx +8 -4
  35. package/src/booking-wizard/features/flight-options/flight-filter.tsx +7 -6
  36. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +29 -28
  37. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +193 -192
  38. package/src/booking-wizard/features/room-options/index.tsx +1 -5
  39. package/src/booking-wizard/features/summary/summary.tsx +23 -26
  40. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +0 -2
  41. package/src/booking-wizard/features/travelers-form/validate-form.ts +1 -1
  42. package/src/booking-wizard/index.tsx +2 -2
  43. package/src/booking-wizard/types.ts +1 -0
  44. package/src/shared/tide-sprites.svg +117 -0
  45. package/src/shared/translations/fr-BE.json +230 -222
  46. package/src/shared/translations/nl-BE.json +229 -222
  47. package/styles/booking-product-variables.scss +288 -0
  48. package/styles/booking-product.scss +440 -0
  49. package/styles/booking-wizard-variables.scss +0 -0
  50. package/styles/booking-wizard.scss +4 -0
  51. package/styles/components/_animations.scss +39 -0
  52. package/styles/components/_base.scss +106 -0
  53. package/styles/components/_button.scss +185 -0
  54. package/styles/components/_cta.scss +67 -0
  55. package/styles/components/_date-range-picker.scss +224 -0
  56. package/styles/components/_decrement-increment.scss +37 -0
  57. package/styles/components/_dropdown.scss +74 -0
  58. package/styles/components/_form.scss +136 -0
  59. package/styles/components/_loader.scss +71 -0
  60. package/styles/components/_mixins.scss +518 -0
  61. package/styles/components/_placeholders.scss +166 -0
  62. package/styles/components/_qsm.scss +20 -0
  63. package/styles/components/_variables.scss +89 -0
  64. package/src/booking-product/components/multi-range-filter.css +0 -115
  65. /package/build/build-cjs/{shared → booking-product}/components/rating.d.ts +0 -0
  66. /package/build/build-esm/{shared → booking-product}/components/rating.d.ts +0 -0
@@ -10,8 +10,8 @@ var lodash = require('lodash');
10
10
  var locale = require('date-fns/locale');
11
11
  var reactPopper = require('react-popper');
12
12
  var reactRedux = require('react-redux');
13
- var toolkit = require('@reduxjs/toolkit');
14
13
  var router = require('@reach/router');
14
+ var toolkit = require('@reduxjs/toolkit');
15
15
  var flat = require('flat');
16
16
  var formik = require('formik');
17
17
  var produce = require('immer');
@@ -110,69 +110,73 @@ var STEPS$1 = {
110
110
  ERROR: "Échec de réservation",
111
111
  PREVIOUS: "Étape précédente",
112
112
  NEXT: "Étape suivante",
113
- SUBMIT: "Confirmer la réservation",
113
+ SUBMIT_BOOKING: "Confirmer la réservation",
114
+ SUBMIT_OFFER: "Demander un devis",
114
115
  COMPOSE: "Composer",
115
- ROOM_OPTIONS: "",
116
- FLIGHT_OPTIONS: ""
116
+ ROOM_OPTIONS: "Options de chambre",
117
+ FLIGHT_OPTIONS: "Options de vol"
117
118
  };
118
119
  var INPUT$1 = {
119
- INCREASE: "",
120
- DECREASE: ""
120
+ INCREASE: "Augmenter",
121
+ DECREASE: "Diminuer"
121
122
  };
122
123
  var FLIGHTS_FORM$1 = {
123
- OUTWARD_FLIGHTS: "",
124
- OUTWARD_FLIGHT: "",
125
- RETURN_FLIGHTS: "",
126
- RETURN_FLIGHT: "",
127
- DIRECT_FLIGHT: "",
128
- STOP: "",
129
- STOPS: "",
130
- FLIGHT_STOPS: "",
131
- DIFFERENT_OPTION_WARNING: "",
132
- FILTER_OPTIONS: "",
133
- AIRLINES: "",
134
- AIRPORTS: "",
135
- NUMBER_OF_STOPS: "",
136
- FLIGHT_OUTWARD: "",
137
- DEPARTURE_TIME: "",
138
- TRAVEL_DURATION: "",
139
- CHANGE_TIME: "",
140
- FLIGHT_RETURN: "",
141
- NO_FLIGHTS_FOUND: "",
142
- STARTING: "",
143
- LOWEST_PRICE: "",
144
- CHOOSE_YOUR_CLASS: "",
145
- PLUS_ONE_DAY: "",
146
- STOP_TIME: "",
147
- NIGHT_DEPARTURE: "",
148
- MORNING_DEPARTURE: "",
149
- AFTERNOON_DEPARTURE: "",
150
- EVENING_DEPARTURE: ""
124
+ OUTWARD_FLIGHTS: "Vols aller",
125
+ OUTWARD_FLIGHT: "Vol aller",
126
+ RETURN_FLIGHTS: "Vols retour",
127
+ RETURN_FLIGHT: "Vol retour",
128
+ DIRECT_FLIGHT: "Vol direct",
129
+ STOP: "escale",
130
+ STOPS: "escales",
131
+ FLIGHT_STOPS: "escale(s)",
132
+ DIFFERENT_OPTION_WARNING: "Attention : Ce vol modifie la durée du séjour.",
133
+ FILTER_OPTIONS: "Options de filtre",
134
+ AIRLINES: "Compagnies aériennes",
135
+ AIRPORTS: "Aéroports",
136
+ NUMBER_OF_STOPS: "Nombre d'escales",
137
+ FLIGHT_OUTWARD: "Vol aller",
138
+ DEPARTURE_TIME: "Heure de départ",
139
+ TRAVEL_DURATION: "Durée du voyage",
140
+ CHANGE_TIME: "Temps de correspondance",
141
+ FLIGHT_RETURN: "Vol retour",
142
+ NO_FLIGHTS_FOUND: "Aucun vol trouvé.",
143
+ STARTING: "À partir de",
144
+ LOWEST_PRICE: "Prix le plus bas",
145
+ CHOOSE_YOUR_CLASS: "Choisissez votre classe :",
146
+ PLUS_ONE_DAY: "+1 jour",
147
+ STOP_TIME: "Temps d'escale",
148
+ NIGHT_DEPARTURE: "Nuit (00:00 - 05:00)",
149
+ MORNING_DEPARTURE: "Matin (05:00 - 12:00)",
150
+ AFTERNOON_DEPARTURE: "Après-midi (12:00 - 18:00)",
151
+ EVENING_DEPARTURE: "Soir (18:00 - 00:00)"
151
152
  };
152
153
  var PRODUCT$1 = {
153
- STAY_INCLUDED: "",
154
- FLIGHT_INCLUDED: "",
155
- TRANSFER_INCLUDED: "",
156
- LOADING_PRICE: "",
157
- PER_PERSON: "",
158
- PER_NIGHT: "",
159
- PER_PERSON_PER_NIGHT: "",
160
- BOOK_NOW: "",
161
- NOT_AVAILABLE: "",
162
- NUMBER_OF_ROOMS: "",
163
- AGE_BY_DEPARTURE_DATE: "",
164
- YEAR: "",
165
- APPLY: "",
166
- EDIT: "",
167
- DEPARTURE: "",
168
- DEPARTURE_DATE: "",
169
- RETURN: "",
170
- RETURN_DATE: "",
171
- WHO_YOU_TRAVELING_WITH: "",
172
- TRAVEL_PERIOD: ""
154
+ STAY_INCLUDED: "Séjour inclus",
155
+ FLIGHT_INCLUDED: "Vol inclus",
156
+ TRANSFER_INCLUDED: "Transfert inclus",
157
+ LOADING_PRICE: "Votre prix est en cours de composition.",
158
+ PER_PERSON: "Par personne",
159
+ PER_NIGHT: "Par nuit",
160
+ PER_PERSON_PER_NIGHT: "Par personne / par nuit",
161
+ BOOK_NOW: "Réserver maintenant",
162
+ TO_YOUR_OFFER: "Vers votre devis",
163
+ NOT_AVAILABLE: "Non disponible",
164
+ NUMBER_OF_ROOMS: "Nombre de chambres",
165
+ AGE_BY_DEPARTURE_DATE: "Âge des enfants à la date de départ",
166
+ YEAR: "Année",
167
+ APPLY: "Appliquer",
168
+ EDIT: "Modifier",
169
+ DEPARTURE: "Départ",
170
+ DEPARTURE_DATE: "Date de départ",
171
+ RETURN: "Retour",
172
+ RETURN_DATE: "Date de retour",
173
+ WHO_YOU_TRAVELING_WITH: "Avec qui voyagez-vous ?",
174
+ TRAVEL_PERIOD: "Période de voyage",
175
+ CLOSE: "Fermer"
173
176
  };
174
177
  var MAIN$1 = {
175
178
  PREPARING_BOOKING: "Veuillez patienter, nous préparons votre réservation",
179
+ PREPARING_OFFER: "Veuillez patienter, nous préparons votre devis",
176
180
  PRODUCT_UNAVAILABLE: "Produit non disponible"
177
181
  };
178
182
  var SHARED$1 = {
@@ -181,8 +185,8 @@ var SHARED$1 = {
181
185
  TOTAL_PRICE: "Prix total",
182
186
  ADULTS: "Adultes",
183
187
  CHILDREN: "Enfants",
184
- SELECT: "Selecteer",
185
- SELECTED: "Geselecteerd"
188
+ SELECT: "Sélectionner",
189
+ SELECTED: "Sélectionné"
186
190
  };
187
191
  var SIDEBAR$1 = {
188
192
  OVERVIEW: "Aperçu",
@@ -216,7 +220,7 @@ var SIDEBAR$1 = {
216
220
  FLIGHT_DEPARTURE: "Départ",
217
221
  FLIGHT_ARRIVAL: "Arrivée",
218
222
  ON_REQUEST: "Sur demande",
219
- CHANGES: "Changements"
223
+ CHANGES: "correspondances"
220
224
  };
221
225
  var TRAVELERS_FORM$1 = {
222
226
  TRAVELER: "Voyageur",
@@ -224,7 +228,7 @@ var TRAVELERS_FORM$1 = {
224
228
  ADULTS: "adultes",
225
229
  CHILD: "enfant",
226
230
  CHILDREN: "enfants",
227
- GENDER: "Civilité",
231
+ GENDER: "Titre",
228
232
  MALE: "Monsieur",
229
233
  FEMALE: "Madame",
230
234
  OTHER: "Autre",
@@ -244,31 +248,26 @@ var TRAVELERS_FORM$1 = {
244
248
  PHONE: "Numéro de téléphone",
245
249
  EMAIL: "E-mail",
246
250
  REPEAT_EMAIL: "Répéter l'e-mail",
247
- VALIDATION_MESSAGE: "Veuillez vérifier les champs du formulaire ci-dessous et les remplir correctement.",
251
+ VALIDATION_MESSAGE: "Veuillez vérifier les champs du formulaire ci-dessous et remplissez-les correctement.",
248
252
  BOOK_WITH_AGENT: "Je souhaite réserver auprès de mon agent de voyage local",
249
253
  CHOOSE_OFFICE: "Je choisis une agence",
250
- CHOOSE_AGENT_PLACEHOLDER: "Choisissez votre agent de voyage",
251
254
  COUNTRIES: {
252
255
  BELGIUM: "Belgique",
253
256
  NETHERLANDS: "Pays-Bas",
254
257
  FRANCE: "France"
255
258
  },
259
+ CHOOSE_AGENT_PLACEHOLDER: "Choisissez votre agent de voyage",
256
260
  VALIDATION: {
257
- TRAVELER_X_FIELD: "Chambre {0} - Voyageur {1}: {2}",
258
- TRAVELER_X_IS_NO_ADULT: "Chambre {0} - Voyageur {1}: n'est pas un adulte",
259
- TRAVELER_X_IS_NO_CHILD: "Chambre {0} - Voyageur {1}: n'est pas un enfant",
260
- NO_MAIN_BOOKER_SELECTED: "Aucun principal réservant n'a été sélectionné",
261
- MAIN_BOOKER_FIELD: "Principal réservant: {0}",
262
- MAIN_BOOKER_EMAIL_IS_INVALID: "Principal réservant: l'e-mail n'est pas valide",
263
- MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: "Principal réservant: l'e-mail ne correspond pas",
264
- AGENT_IS_REQUIRED: "Agent de voyage est requis"
261
+ TRAVELER_X_FIELD: "Chambre {0} - Voyageur {1} : {2}",
262
+ TRAVELER_X_IS_NO_ADULT: "Chambre {0} - Voyageur {1} : n'est pas un adulte",
263
+ TRAVELER_X_IS_NO_CHILD: "Chambre {0} - Voyageur {1} : n'est pas un enfant",
264
+ NO_MAIN_BOOKER_SELECTED: "Aucun réservant principal n'a été sélectionné",
265
+ MAIN_BOOKER_FIELD: "Principal réservant : {0}",
266
+ MAIN_BOOKER_EMAIL_IS_INVALID: "Principal réservant : e-mail invalide",
267
+ MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: "Principal réservant : e-mail ne correspond pas",
268
+ AGENT_IS_REQUIRED: "Agent de voyage requis"
265
269
  }
266
270
  };
267
- var ROOM_OPTIONS_FORM$1 = {
268
- TRAVELER_GROUP: "",
269
- ALTERNATIVES_TRAVELER_GROUP: "",
270
- SHOW_ALTERNATIVES: ""
271
- };
272
271
  var OPTIONS_FORM$1 = {
273
272
  NO_OPTIONS_TITLE: "Aucune option",
274
273
  NO_OPTIONS_MESSAGE: "Ce voyage n'a pas d'options supplémentaires.",
@@ -278,10 +277,15 @@ var OPTIONS_FORM$1 = {
278
277
  DAYS: "jours",
279
278
  NIGHT: "nuit",
280
279
  NIGHTS: "nuits",
281
- PER_PAX_TITLE: "Composer par voyageur",
282
- PER_BOOKING_TITLE: "Composer par dossier",
283
- PER_UNIT_TITLE: "Composer par groupe",
284
- NONE: "Aucun"
280
+ PER_PAX_TITLE: "Sélectionner les options par voyageur",
281
+ PER_BOOKING_TITLE: "Sélectionner les options par dossier",
282
+ PER_UNIT_TITLE: "Sélectionner les options par groupe",
283
+ NONE: "Aucune"
284
+ };
285
+ var ROOM_OPTIONS_FORM$1 = {
286
+ TRAVELER_GROUP: "Groupe de voyageurs",
287
+ ALTERNATIVES_TRAVELER_GROUP: "Options de chambre alternatives pour le groupe de voyageurs",
288
+ SHOW_ALTERNATIVES: "Afficher les options de chambre alternatives"
285
289
  };
286
290
  var SUMMARY$1 = {
287
291
  PERSONAL_DETAILS: "Coordonnées personnelles",
@@ -291,27 +295,30 @@ var SUMMARY$1 = {
291
295
  ADULT: "adulte",
292
296
  CHILDREN: "enfants",
293
297
  CHILD: "enfant",
294
- MAIN_BOOKER: "Principal réservataire",
298
+ MAIN_BOOKER: "Principal réservant",
295
299
  NOTIFICATIONS_TITLE: "Attention",
296
300
  VALIDATE_TITLE: "Vérifiez vos données",
297
- VALIDATE_TEXT: "Vous êtes sur le point de confirmer votre réservation. Veuillez vérifier que toutes les informations sont correctes. Elles sont définitives et ne peuvent plus être modifiées.",
301
+ VALIDATE_TEXT_BOOKING: "Vous êtes sur le point de confirmer votre réservation. Veuillez vérifier que toutes les informations sont correctes et que les noms sont tels qu'ils apparaissent sur votre carte d'identité ou votre passeport. Elles sont définitives et ne peuvent plus être modifiées.",
302
+ VALIDATE_TEXT_OFFER: "Vous êtes sur le point de demander un devis. Veuillez vérifier que toutes les informations sont correctes et que les noms sont tels qu'ils apparaissent sur votre carte d'identité ou votre passeport. Cela nous permettra d'éviter les problèmes en cas de réservation.",
298
303
  OPTIONS: "Options",
299
304
  REMARKS: "Remarques",
300
305
  VOUCHERS: "Bons",
301
306
  VOUCHER_VALIDATE: "Valider le bon",
302
307
  ADD_VOUCHER: "Ajouter un bon",
303
- VOUCHER_VALID: "Le bon est valide",
304
- VOUCHER_INVALID: "Le bon n'est pas valide"
308
+ VOUCHER_VALID: "Bon valide",
309
+ VOUCHER_INVALID: "Bon invalide"
305
310
  };
306
311
  var CONFIRMATION$1 = {
307
- TITLE_TEXT: "Votre réservation avec le numéro {0} est confirmée",
312
+ TITLE_TEXT_OFFER: "Votre devis numéro {0} a été demandé",
313
+ TITLE_TEXT_BOOKING: "Votre réservation avec le numéro {0} est confirmée",
308
314
  MESSAGE_TEXT1: "Votre voyage de rêve est maintenant très proche.",
309
- MESSAGE_TEXT2: "Nos spécialistes du voyage traitent votre réservation et vous contacteront dans les 48 heures.",
315
+ MESSAGE_TEXT2_OFFER: "Nos spécialistes voyages traitent votre demande et vous contacteront dans les 48 heures.",
316
+ MESSAGE_TEXT2_BOOKING: "Nos spécialistes voyages traitent votre réservation et vous contacteront dans les 48 heures.",
310
317
  QUESTIONS_TEXT1: "Avez-vous d'autres questions? ",
311
318
  QUESTIONS_TEXT2: "Faites-le nous savoir",
312
319
  QUESTIONS_TEXT3: ".",
313
320
  QUESTIONS_ALT: "Contactez-nous",
314
- MAIL_SUBJECT: "Informations sur la réservation"
321
+ MAIL_SUBJECT: "Infos réservation"
315
322
  };
316
323
  var ERROR$1 = {
317
324
  TRY_AGAIN: "Réessayez de réserver",
@@ -331,8 +338,8 @@ var frJson = {
331
338
  SHARED: SHARED$1,
332
339
  SIDEBAR: SIDEBAR$1,
333
340
  TRAVELERS_FORM: TRAVELERS_FORM$1,
334
- ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$1,
335
341
  OPTIONS_FORM: OPTIONS_FORM$1,
342
+ ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$1,
336
343
  SUMMARY: SUMMARY$1,
337
344
  CONFIRMATION: CONFIRMATION$1,
338
345
  ERROR: ERROR$1
@@ -346,7 +353,8 @@ var STEPS = {
346
353
  ERROR: "Boeken mislukt",
347
354
  PREVIOUS: "Vorige stap",
348
355
  NEXT: "Volgende stap",
349
- SUBMIT: "Bevestig boeking",
356
+ SUBMIT_BOOKING: "Bevestig boeking",
357
+ SUBMIT_OFFER: "Vraag offerte aan",
350
358
  COMPOSE: "Samenstellen",
351
359
  ROOM_OPTIONS: "Kamer opties",
352
360
  FLIGHT_OPTIONS: "Vlucht opties"
@@ -369,7 +377,7 @@ var FLIGHTS_FORM = {
369
377
  AIRLINES: "Luchtvaartmaatschappijen",
370
378
  AIRPORTS: "Luchthavens",
371
379
  NUMBER_OF_STOPS: "Aantal stops",
372
- FLIGHT_OUTWARD: "Vlucht heenrijs",
380
+ FLIGHT_OUTWARD: "Vlucht heenreis",
373
381
  DEPARTURE_TIME: "Vertrektijd",
374
382
  TRAVEL_DURATION: "Reisduur",
375
383
  CHANGE_TIME: "Overstaptijd",
@@ -379,7 +387,7 @@ var FLIGHTS_FORM = {
379
387
  LOWEST_PRICE: "Laagste prijs",
380
388
  CHOOSE_YOUR_CLASS: "Kies uw klasse:",
381
389
  PLUS_ONE_DAY: "+1 dag",
382
- STOP_TIME: "Stoptijd",
390
+ STOP_TIME: "Overstaptijd",
383
391
  NIGHT_DEPARTURE: "Nacht (00:00 - 05:00)",
384
392
  MORNING_DEPARTURE: "Ochtend (05:00 - 12:00)",
385
393
  AFTERNOON_DEPARTURE: "Namiddag (12:00 - 18:00)",
@@ -394,9 +402,10 @@ var PRODUCT = {
394
402
  PER_NIGHT: "Per nacht",
395
403
  PER_PERSON_PER_NIGHT: "Per persoon / per nacht",
396
404
  BOOK_NOW: "Boek nu",
405
+ TO_YOUR_OFFER: "Naar uw offerte",
397
406
  NOT_AVAILABLE: "Niet beschikbaar",
398
407
  NUMBER_OF_ROOMS: "Aantal kamers",
399
- AGE_BY_DEPARTURE_DATE: "Leeftijd kindren op vertrekdatum",
408
+ AGE_BY_DEPARTURE_DATE: "Leeftijd kinderen op vertrekdatum",
400
409
  YEAR: "Jaar",
401
410
  APPLY: "Toepassen",
402
411
  EDIT: "Wijzigen",
@@ -405,10 +414,12 @@ var PRODUCT = {
405
414
  RETURN: "Terugkeer",
406
415
  RETURN_DATE: "Terugkeerdatum",
407
416
  WHO_YOU_TRAVELING_WITH: "Met wie ga je?",
408
- TRAVEL_PERIOD: "Reisperiode"
417
+ TRAVEL_PERIOD: "Reisperiode",
418
+ CLOSE: "Sluiten"
409
419
  };
410
420
  var MAIN = {
411
421
  PREPARING_BOOKING: "Even geduld, we bereiden uw boeking voor",
422
+ PREPARING_OFFER: "Even geduld, we bereiden uw offerte voor",
412
423
  PRODUCT_UNAVAILABLE: "Product niet beschikbaar"
413
424
  };
414
425
  var SHARED = {
@@ -530,7 +541,8 @@ var SUMMARY = {
530
541
  MAIN_BOOKER: "Hoofdboeker",
531
542
  NOTIFICATIONS_TITLE: "Aandacht",
532
543
  VALIDATE_TITLE: "Controleer je gegevens",
533
- VALIDATE_TEXT: "Je staat op het punt je boeking te bevestigen. Contoleer of alle gegevens correct zijn. Deze zijn definitief en niet meer aanpasbaar.",
544
+ VALIDATE_TEXT_BOOKING: "Je staat op het punt je boeking te bevestigen. Controleer of alle gegevens correct zijn en de namen zoals vermeld op je identiteitskaart of paspoort gebruikt worden. Deze zijn definitief en niet meer aanpasbaar.",
545
+ VALIDATE_TEXT_OFFER: "Je staat op het punt een offerte aan te vragen. Controleer of alle gegevens correct zijn en de namen zoals vermeld op je identiteitskaart of paspoort gebruikt worden. Zo vermijden we problemen bij een eventuele boeking.",
534
546
  OPTIONS: "Opties",
535
547
  REMARKS: "Opmerkingen",
536
548
  VOUCHERS: "Vouchers",
@@ -540,9 +552,11 @@ var SUMMARY = {
540
552
  VOUCHER_INVALID: "Voucher is niet geldig"
541
553
  };
542
554
  var CONFIRMATION = {
543
- TITLE_TEXT: "Je boeking met nummer {0} is bevestigd",
555
+ TITLE_TEXT_OFFER: "Je offerte met nummer {0} is aangevraagd",
556
+ TITLE_TEXT_BOOKING: "Je boeking met nummer {0} is bevestigd",
544
557
  MESSAGE_TEXT1: "Jouw droomreis komt nu heel dichtbij.",
545
- MESSAGE_TEXT2: "Onze reisspecialisten verwerken je reservatie en nemen binnen de 48u contact met je op.",
558
+ MESSAGE_TEXT2_OFFER: "Onze reisspecialisten verwerken je aanvraag en nemen binnen de 48u contact met je op.",
559
+ MESSAGE_TEXT2_BOOKING: "Onze reisspecialisten verwerken je reservatie en nemen binnen de 48u contact met je op.",
546
560
  QUESTIONS_TEXT1: "Heb je nog vragen? ",
547
561
  QUESTIONS_TEXT2: "Laat het ons weten",
548
562
  QUESTIONS_TEXT3: ".",
@@ -691,7 +705,6 @@ var SettingsContext$1 = React__default["default"].createContext({
691
705
  officeId: 1,
692
706
  catalogueId: 1,
693
707
  language: "nl-BE",
694
- currency: "EUR",
695
708
  basePath: 'boeken',
696
709
  priceMode: 0
697
710
  });
@@ -7517,73 +7530,6 @@ var buildClassName = function (parts) {
7517
7530
  return lodash.compact(sanitizedParts).join(" ");
7518
7531
  };
7519
7532
 
7520
- var SettingsContext = React__default["default"].createContext({
7521
- language: "nl-BE",
7522
- generatePaymentUrl: false,
7523
- currency: "EUR",
7524
- officeId: 1,
7525
- tagIds: [],
7526
- hideAgentSelection: false,
7527
- agentAdressId: undefined,
7528
- affiliateSlug: undefined,
7529
- productPath: "/",
7530
- basePath: "/boeken",
7531
- roomOptions: {
7532
- pathSuffix: "/",
7533
- },
7534
- flightOptions: {
7535
- pathSuffix: "/vluchten",
7536
- },
7537
- options: {
7538
- pathSuffix: "/opties",
7539
- },
7540
- travellers: {
7541
- pathSuffix: "/reizigers",
7542
- },
7543
- summary: {
7544
- pathSuffix: "/samenvatting",
7545
- checkboxes: null,
7546
- },
7547
- confirmation: {
7548
- pathSuffix: "/bevestiging",
7549
- },
7550
- error: {
7551
- pathSuffix: "/mislukt",
7552
- },
7553
- companyContactEmail: "info@tidesoftware.be",
7554
- companyContactPhone: "093362299",
7555
- showProductCardRating: false,
7556
- showSidebarDeposit: false,
7557
- sidebarHeaderComponent: null,
7558
- sidebarFooterComponent: null,
7559
- loaderComponent: null,
7560
- icons: null,
7561
- bookingOptions: {
7562
- b2b: {
7563
- entryStatus: 0,
7564
- },
7565
- b2b2c: {
7566
- entryStatus: 0,
7567
- },
7568
- b2c: {
7569
- entryStatus: 0,
7570
- },
7571
- },
7572
- });
7573
-
7574
- var Icon$1 = function (_a) {
7575
- var name = _a.name, className = _a.className, title = _a.title;
7576
- var icons = React.useContext(SettingsContext).icons;
7577
- if (!icons) {
7578
- return null;
7579
- }
7580
- return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
7581
- .filter(function (className) { return !lodash.isEmpty(className); })
7582
- .join(" ") },
7583
- title && React__default["default"].createElement("title", null, title),
7584
- React__default["default"].createElement("use", { href: "".concat(icons, "#").concat(name) })));
7585
- };
7586
-
7587
7533
  var CalendarDay = function (_a) {
7588
7534
  var day = _a.day, isSelected = _a.isSelected, isDisabled = _a.isDisabled, isOutsideMonth = _a.isOutsideMonth, _b = _a.extraClassNames, extraClassNames = _b === void 0 ? [] : _b, children = _a.children, onClick = _a.onClick, onMouseOver = _a.onMouseOver;
7589
7535
  var handleClick = function () {
@@ -7608,198 +7554,1473 @@ var CalendarDay = function (_a) {
7608
7554
  children));
7609
7555
  };
7610
7556
 
7611
- var Calendar = function (_a) {
7612
- var _b = _a.year, year = _b === void 0 ? dateFns.getYear(new Date()) : _b, _c = _a.month, month = _c === void 0 ? dateFns.getMonth(new Date()) : _c, _d = _a.hasPreviousButton, hasPreviousButton = _d === void 0 ? true : _d, _e = _a.hasNextButton, hasNextButton = _e === void 0 ? true : _e, _f = _a.hasFixedHeight, hasFixedHeight = _f === void 0 ? true : _f, _g = _a.weekStartsOn, weekStartsOn = _g === void 0 ? 1 : _g, disabledDaysFunction = _a.disabledDaysFunction, selectedDaysFunction = _a.selectedDaysFunction, extraClassNamesFunction = _a.extraClassNamesFunction, dayContentFunction = _a.dayContentFunction, onDayClick = _a.onDayClick, onDayMouseOver = _a.onDayMouseOver, onNextClick = _a.onNextClick, onPreviousClick = _a.onPreviousClick;
7613
- var language = React.useContext(SettingsContext$1).language;
7614
- var locale = getLocale(language);
7615
- var handleDayClick = function (day) {
7616
- if (onDayClick) {
7617
- onDayClick(day);
7618
- }
7619
- };
7620
- var handleDayMouseOver = function (day) {
7621
- if (onDayMouseOver) {
7622
- onDayMouseOver(day);
7623
- }
7624
- };
7625
- var handleNextClick = function () {
7626
- var nextMonth = (month + 1) % 12;
7627
- var nextMonthsYear = nextMonth < month ? year + 1 : year;
7628
- if (onNextClick) {
7629
- onNextClick(nextMonthsYear, nextMonth);
7630
- }
7631
- };
7632
- var handlePreviousClick = function () {
7633
- var previousMonth = (month - 1) % 12;
7634
- var previousMonthsYear = previousMonth > month ? year - 1 : year;
7635
- if (onPreviousClick) {
7636
- onPreviousClick(previousMonthsYear, previousMonth);
7637
- }
7638
- };
7639
- var focusDate = new Date(year, month);
7640
- var firstDay = dateFns.startOfWeek(dateFns.startOfMonth(focusDate), { weekStartsOn: weekStartsOn });
7641
- var lastDay = hasFixedHeight
7642
- ? dateFns.endOfWeek(dateFns.addWeeks(firstDay, 5), { weekStartsOn: weekStartsOn })
7643
- : dateFns.endOfWeek(dateFns.endOfMonth(focusDate), { weekStartsOn: weekStartsOn });
7644
- var calendarDays = dateFns.eachDayOfInterval({ start: firstDay, end: lastDay });
7645
- var mapDay = function (day) {
7646
- var isoDay = dateFns.getISODay(day);
7647
- var isDisabled = lodash.isFunction(disabledDaysFunction) && disabledDaysFunction(day);
7648
- var isSelected = lodash.isFunction(selectedDaysFunction) && selectedDaysFunction(day);
7649
- var isOutsideMonth = !dateFns.isSameMonth(day, focusDate);
7650
- var extraClassNames = lodash.isFunction(extraClassNamesFunction)
7651
- ? extraClassNamesFunction(day)
7652
- : undefined;
7653
- return (React__default["default"].createElement(CalendarDay, { key: "day_".concat(isoDay), day: day, isSelected: isSelected, isDisabled: isDisabled, isOutsideMonth: isOutsideMonth, extraClassNames: extraClassNames, onClick: handleDayClick, onMouseOver: handleDayMouseOver }, lodash.isFunction(dayContentFunction) ? dayContentFunction(day) : undefined));
7654
- };
7655
- var mapWeek = function (weekDays) {
7656
- if (weekDays.length === 0) {
7657
- return null;
7658
- }
7659
- var isoWeek = dateFns.getISOWeek(weekDays[0]);
7660
- return (React__default["default"].createElement("div", { className: "calendar__week", key: "week_".concat(isoWeek) }, weekDays.map(mapDay)));
7661
- };
7662
- return (React__default["default"].createElement("div", { className: "calendar" },
7663
- React__default["default"].createElement("div", { className: "calendar__header" },
7664
- React__default["default"].createElement("div", { className: "calendar__pager" },
7665
- React__default["default"].createElement("div", { className: buildClassName([
7666
- "calendar__previous",
7667
- !hasPreviousButton && "calendar__previous--disabled",
7668
- ]), onClick: handlePreviousClick },
7669
- React__default["default"].createElement(Icon$1, { name: "ui-chevron-left" })),
7670
- React__default["default"].createElement("div", { className: "calendar__current-month" }, dateFns.format(focusDate, "MMMM yyyy", { locale: locale })),
7671
- React__default["default"].createElement("div", { className: buildClassName([
7672
- "calendar__next",
7673
- !hasNextButton && "calendar__next--disabled",
7674
- ]), onClick: handleNextClick },
7675
- React__default["default"].createElement(Icon$1, { name: "ui-chevron-right" }))),
7676
- React__default["default"].createElement("div", { className: "calendar__day-labels" }, lodash.range(0, 7).map(function (i) { return (React__default["default"].createElement("div", { className: "calendar__day-label", key: "day_".concat(i) }, dateFns.format(calendarDays[i], "EEEEEE", { locale: locale }))); }))),
7677
- React__default["default"].createElement("div", { className: "calendar__body" }, lodash.chunk(calendarDays, 7).map(mapWeek))));
7678
- };
7557
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
7558
+ var useLayoutEffect = useIsomorphicLayoutEffect;
7679
7559
 
7680
- var DateRangePicker = function (props) {
7681
- var _a, _b, _c, _d;
7682
- var _e = React.useState(props.fromDate), fromDate = _e[0], setFromDate = _e[1];
7683
- var _f = React.useState(props.toDate), toDate = _f[0], setToDate = _f[1];
7684
- var _g = React.useState((_a = props.focusMonth) !== null && _a !== void 0 ? _a : { year: dateFns.getYear(new Date()), month: dateFns.getMonth(new Date()) }), focusMonth = _g[0], setFocusMonth = _g[1];
7685
- var _h = React.useState(false), isWaitingForToDate = _h[0], setWaitingForToDate = _h[1];
7686
- var handleDayClick = function (day) {
7687
- var onSelectionChange = props.onSelectionChange;
7688
- if (isWaitingForToDate && !lodash.isNil(fromDate) && dateFns.isAfter(day, fromDate)) {
7689
- setToDate(day);
7690
- setWaitingForToDate(false);
7691
- if (props.onToDateChange) {
7692
- props.onToDateChange(undefined);
7693
- }
7694
- if (onSelectionChange) {
7695
- onSelectionChange(fromDate, day);
7696
- }
7697
- }
7698
- else {
7699
- setFromDate(day);
7700
- if (props.duration) {
7701
- var to = new Date(Date.UTC(day.getFullYear(), day.getMonth(), day.getDate() + props.duration));
7702
- setToDate(to);
7703
- if (onSelectionChange) {
7704
- onSelectionChange(day, to);
7705
- }
7706
- }
7707
- else {
7708
- setToDate(undefined);
7709
- setWaitingForToDate(true);
7710
- }
7711
- if (props.onFromDateChange) {
7712
- props.onFromDateChange(day);
7713
- }
7714
- }
7715
- };
7716
- var handleDayMouseOver = function (day) {
7717
- if (isWaitingForToDate &&
7718
- (lodash.isNil(fromDate) || dateFns.isEqual(day, fromDate) || dateFns.isAfter(day, fromDate))) {
7719
- setToDate(day);
7720
- }
7721
- };
7722
- var handlePreviousClick = function () {
7723
- var month = focusMonth.month, year = focusMonth.year;
7724
- var previousMonth = (month - 1) % 12;
7725
- var previousMonthsYear = previousMonth > month ? year - 1 : year;
7726
- var newFocusMonth = { year: previousMonthsYear, month: previousMonth };
7727
- setFocusMonth(newFocusMonth);
7728
- if (props.onFocusMonthChange) {
7729
- props.onFocusMonthChange(newFocusMonth);
7730
- }
7731
- };
7732
- var handleNextClick = function () {
7733
- var month = focusMonth.month, year = focusMonth.year;
7734
- var nextMonth = (month + 1) % 12;
7735
- var nextMonthsYear = nextMonth < month ? year + 1 : year;
7736
- var newFocusMonth = { year: nextMonthsYear, month: nextMonth };
7737
- setFocusMonth(newFocusMonth);
7738
- if (props.onFocusMonthChange) {
7739
- props.onFocusMonthChange(newFocusMonth);
7740
- }
7741
- };
7742
- var today = dateFns.startOfDay(new Date());
7743
- var firstCalendarYear = focusMonth.year;
7744
- var firstCalendarMonth = focusMonth.month;
7745
- var secondCalendarMonth = (firstCalendarMonth + 1) % 12;
7746
- var secondCalendarYear = secondCalendarMonth < firstCalendarMonth ? firstCalendarYear + 1 : firstCalendarYear;
7747
- var checkIfDateIsSelected = function (date) {
7748
- return lodash.isNil(toDate)
7749
- ? !lodash.isNil(fromDate) && dateFns.isEqual(date, fromDate)
7750
- : !lodash.isNil(fromDate) &&
7751
- dateFns.isWithinInterval(date, { start: dateFns.startOfDay(fromDate), end: dateFns.endOfDay(toDate) });
7752
- };
7753
- React.useEffect(function () {
7754
- setFromDate(props.fromDate);
7755
- setToDate(props.toDate);
7756
- }, [(_b = props.fromDate) === null || _b === void 0 ? void 0 : _b.valueOf(), (_c = props.toDate) === null || _c === void 0 ? void 0 : _c.valueOf()]);
7757
- React.useEffect(function () {
7758
- if (props.fromDate) {
7759
- setFocusMonth({ month: props.fromDate.getMonth(), year: props.fromDate.getFullYear() });
7760
- }
7761
- }, [(_d = props.fromDate) === null || _d === void 0 ? void 0 : _d.valueOf()]);
7762
- return (React__default["default"].createElement("div", { className: "date-range-picker" },
7763
- React__default["default"].createElement("div", { className: "date-range-picker__from" },
7764
- React__default["default"].createElement(Calendar, { year: firstCalendarYear, month: firstCalendarMonth, onDayClick: handleDayClick, onDayMouseOver: handleDayMouseOver, onPreviousClick: handlePreviousClick, hasPreviousButton: dateFns.isAfter(new Date(firstCalendarYear, firstCalendarMonth), dateFns.endOfMonth(today)), hasNextButton: false, selectedDaysFunction: checkIfDateIsSelected, disabledDaysFunction: props.disabledDaysFunction, extraClassNamesFunction: props.extraClassNamesFunction, dayContentFunction: props.dayContentFunction, hasFixedHeight: true })),
7765
- React__default["default"].createElement("div", { className: "date-range-picker__to" },
7766
- React__default["default"].createElement(Calendar, { year: secondCalendarYear, month: secondCalendarMonth, onDayClick: handleDayClick, onDayMouseOver: handleDayMouseOver, onNextClick: handleNextClick, hasPreviousButton: false, selectedDaysFunction: checkIfDateIsSelected, disabledDaysFunction: props.disabledDaysFunction, extraClassNamesFunction: props.extraClassNamesFunction, dayContentFunction: props.dayContentFunction, hasFixedHeight: true }))));
7767
- };
7560
+ function createCommonjsModule(fn, module) {
7561
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
7562
+ }
7768
7563
 
7769
- var Icon = function (_a) {
7770
- var name = _a.name, className = _a.className, title = _a.title;
7771
- var icons = React.useContext(SettingsContext$1).icons;
7772
- if (!icons) {
7773
- return null;
7774
- }
7775
- return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
7776
- .filter(function (className) { return !lodash.isEmpty(className); })
7777
- .join(" ") },
7778
- title && React__default["default"].createElement("title", null, title),
7779
- React__default["default"].createElement("use", { href: "".concat(icons, "#").concat(name) })));
7780
- };
7564
+ /** @license React v16.13.1
7565
+ * react-is.production.min.js
7566
+ *
7567
+ * Copyright (c) Facebook, Inc. and its affiliates.
7568
+ *
7569
+ * This source code is licensed under the MIT license found in the
7570
+ * LICENSE file in the root directory of this source tree.
7571
+ */
7572
+ var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
7573
+ Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
7574
+ function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}var AsyncMode=l;var ConcurrentMode=m;var ContextConsumer=k;var ContextProvider=h;var Element=c;var ForwardRef=n;var Fragment=e;var Lazy=t;var Memo=r;var Portal=d;
7575
+ var Profiler=g;var StrictMode=f;var Suspense=p;var isAsyncMode=function(a){return A(a)||z(a)===l};var isConcurrentMode=A;var isContextConsumer=function(a){return z(a)===k};var isContextProvider=function(a){return z(a)===h};var isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};var isForwardRef=function(a){return z(a)===n};var isFragment=function(a){return z(a)===e};var isLazy=function(a){return z(a)===t};
7576
+ var isMemo=function(a){return z(a)===r};var isPortal=function(a){return z(a)===d};var isProfiler=function(a){return z(a)===g};var isStrictMode=function(a){return z(a)===f};var isSuspense=function(a){return z(a)===p};
7577
+ var isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};var typeOf=z;
7578
+
7579
+ var reactIs_production_min = {
7580
+ AsyncMode: AsyncMode,
7581
+ ConcurrentMode: ConcurrentMode,
7582
+ ContextConsumer: ContextConsumer,
7583
+ ContextProvider: ContextProvider,
7584
+ Element: Element,
7585
+ ForwardRef: ForwardRef,
7586
+ Fragment: Fragment,
7587
+ Lazy: Lazy,
7588
+ Memo: Memo,
7589
+ Portal: Portal,
7590
+ Profiler: Profiler,
7591
+ StrictMode: StrictMode,
7592
+ Suspense: Suspense,
7593
+ isAsyncMode: isAsyncMode,
7594
+ isConcurrentMode: isConcurrentMode,
7595
+ isContextConsumer: isContextConsumer,
7596
+ isContextProvider: isContextProvider,
7597
+ isElement: isElement,
7598
+ isForwardRef: isForwardRef,
7599
+ isFragment: isFragment,
7600
+ isLazy: isLazy,
7601
+ isMemo: isMemo,
7602
+ isPortal: isPortal,
7603
+ isProfiler: isProfiler,
7604
+ isStrictMode: isStrictMode,
7605
+ isSuspense: isSuspense,
7606
+ isValidElementType: isValidElementType,
7607
+ typeOf: typeOf
7608
+ };
7609
+
7610
+ var reactIs_development = createCommonjsModule(function (module, exports) {
7611
+
7612
+
7613
+
7614
+ if (process.env.NODE_ENV !== "production") {
7615
+ (function() {
7616
+
7617
+ // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
7618
+ // nor polyfill, then a plain number is used for performance.
7619
+ var hasSymbol = typeof Symbol === 'function' && Symbol.for;
7620
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
7621
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
7622
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
7623
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
7624
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
7625
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
7626
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
7627
+ // (unstable) APIs that have been removed. Can we remove the symbols?
7628
+
7629
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
7630
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
7631
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
7632
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
7633
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
7634
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
7635
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
7636
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
7637
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
7638
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
7639
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
7640
+
7641
+ function isValidElementType(type) {
7642
+ return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
7643
+ type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
7644
+ }
7781
7645
 
7782
- var Dates = function (_a) {
7783
- var value = _a.value, duration = _a.duration, onChange = _a.onChange;
7784
- var language = React.useContext(SettingsContext$1).language;
7785
- var translations = getTranslations(language);
7786
- var mql = typeof window !== "undefined" ? window.matchMedia("(min-width: 1200px)") : undefined;
7787
- var _b = React.useState(null), referenceElement = _b[0], setReferenceElement = _b[1];
7788
- var _c = React.useState(null), popperElement = _c[0], setPopperElement = _c[1];
7789
- var _d = React.useState(false), panelActive = _d[0], setPanelActive = _d[1];
7790
- var _e = reactPopper.usePopper(referenceElement, popperElement, {
7791
- placement: "top",
7792
- modifiers: [
7793
- {
7794
- name: "offset",
7795
- options: {
7796
- offset: [0, 20],
7797
- },
7798
- },
7799
- {
7800
- name: "preventOverflow",
7801
- options: {
7802
- padding: 40,
7646
+ function typeOf(object) {
7647
+ if (typeof object === 'object' && object !== null) {
7648
+ var $$typeof = object.$$typeof;
7649
+
7650
+ switch ($$typeof) {
7651
+ case REACT_ELEMENT_TYPE:
7652
+ var type = object.type;
7653
+
7654
+ switch (type) {
7655
+ case REACT_ASYNC_MODE_TYPE:
7656
+ case REACT_CONCURRENT_MODE_TYPE:
7657
+ case REACT_FRAGMENT_TYPE:
7658
+ case REACT_PROFILER_TYPE:
7659
+ case REACT_STRICT_MODE_TYPE:
7660
+ case REACT_SUSPENSE_TYPE:
7661
+ return type;
7662
+
7663
+ default:
7664
+ var $$typeofType = type && type.$$typeof;
7665
+
7666
+ switch ($$typeofType) {
7667
+ case REACT_CONTEXT_TYPE:
7668
+ case REACT_FORWARD_REF_TYPE:
7669
+ case REACT_LAZY_TYPE:
7670
+ case REACT_MEMO_TYPE:
7671
+ case REACT_PROVIDER_TYPE:
7672
+ return $$typeofType;
7673
+
7674
+ default:
7675
+ return $$typeof;
7676
+ }
7677
+
7678
+ }
7679
+
7680
+ case REACT_PORTAL_TYPE:
7681
+ return $$typeof;
7682
+ }
7683
+ }
7684
+
7685
+ return undefined;
7686
+ } // AsyncMode is deprecated along with isAsyncMode
7687
+
7688
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
7689
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
7690
+ var ContextConsumer = REACT_CONTEXT_TYPE;
7691
+ var ContextProvider = REACT_PROVIDER_TYPE;
7692
+ var Element = REACT_ELEMENT_TYPE;
7693
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
7694
+ var Fragment = REACT_FRAGMENT_TYPE;
7695
+ var Lazy = REACT_LAZY_TYPE;
7696
+ var Memo = REACT_MEMO_TYPE;
7697
+ var Portal = REACT_PORTAL_TYPE;
7698
+ var Profiler = REACT_PROFILER_TYPE;
7699
+ var StrictMode = REACT_STRICT_MODE_TYPE;
7700
+ var Suspense = REACT_SUSPENSE_TYPE;
7701
+ var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
7702
+
7703
+ function isAsyncMode(object) {
7704
+ {
7705
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
7706
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
7707
+
7708
+ console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
7709
+ }
7710
+ }
7711
+
7712
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
7713
+ }
7714
+ function isConcurrentMode(object) {
7715
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
7716
+ }
7717
+ function isContextConsumer(object) {
7718
+ return typeOf(object) === REACT_CONTEXT_TYPE;
7719
+ }
7720
+ function isContextProvider(object) {
7721
+ return typeOf(object) === REACT_PROVIDER_TYPE;
7722
+ }
7723
+ function isElement(object) {
7724
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
7725
+ }
7726
+ function isForwardRef(object) {
7727
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
7728
+ }
7729
+ function isFragment(object) {
7730
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
7731
+ }
7732
+ function isLazy(object) {
7733
+ return typeOf(object) === REACT_LAZY_TYPE;
7734
+ }
7735
+ function isMemo(object) {
7736
+ return typeOf(object) === REACT_MEMO_TYPE;
7737
+ }
7738
+ function isPortal(object) {
7739
+ return typeOf(object) === REACT_PORTAL_TYPE;
7740
+ }
7741
+ function isProfiler(object) {
7742
+ return typeOf(object) === REACT_PROFILER_TYPE;
7743
+ }
7744
+ function isStrictMode(object) {
7745
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
7746
+ }
7747
+ function isSuspense(object) {
7748
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
7749
+ }
7750
+
7751
+ exports.AsyncMode = AsyncMode;
7752
+ exports.ConcurrentMode = ConcurrentMode;
7753
+ exports.ContextConsumer = ContextConsumer;
7754
+ exports.ContextProvider = ContextProvider;
7755
+ exports.Element = Element;
7756
+ exports.ForwardRef = ForwardRef;
7757
+ exports.Fragment = Fragment;
7758
+ exports.Lazy = Lazy;
7759
+ exports.Memo = Memo;
7760
+ exports.Portal = Portal;
7761
+ exports.Profiler = Profiler;
7762
+ exports.StrictMode = StrictMode;
7763
+ exports.Suspense = Suspense;
7764
+ exports.isAsyncMode = isAsyncMode;
7765
+ exports.isConcurrentMode = isConcurrentMode;
7766
+ exports.isContextConsumer = isContextConsumer;
7767
+ exports.isContextProvider = isContextProvider;
7768
+ exports.isElement = isElement;
7769
+ exports.isForwardRef = isForwardRef;
7770
+ exports.isFragment = isFragment;
7771
+ exports.isLazy = isLazy;
7772
+ exports.isMemo = isMemo;
7773
+ exports.isPortal = isPortal;
7774
+ exports.isProfiler = isProfiler;
7775
+ exports.isStrictMode = isStrictMode;
7776
+ exports.isSuspense = isSuspense;
7777
+ exports.isValidElementType = isValidElementType;
7778
+ exports.typeOf = typeOf;
7779
+ })();
7780
+ }
7781
+ });
7782
+ reactIs_development.AsyncMode;
7783
+ reactIs_development.ConcurrentMode;
7784
+ reactIs_development.ContextConsumer;
7785
+ reactIs_development.ContextProvider;
7786
+ reactIs_development.Element;
7787
+ reactIs_development.ForwardRef;
7788
+ reactIs_development.Fragment;
7789
+ reactIs_development.Lazy;
7790
+ reactIs_development.Memo;
7791
+ reactIs_development.Portal;
7792
+ reactIs_development.Profiler;
7793
+ reactIs_development.StrictMode;
7794
+ reactIs_development.Suspense;
7795
+ reactIs_development.isAsyncMode;
7796
+ reactIs_development.isConcurrentMode;
7797
+ reactIs_development.isContextConsumer;
7798
+ reactIs_development.isContextProvider;
7799
+ reactIs_development.isElement;
7800
+ reactIs_development.isForwardRef;
7801
+ reactIs_development.isFragment;
7802
+ reactIs_development.isLazy;
7803
+ reactIs_development.isMemo;
7804
+ reactIs_development.isPortal;
7805
+ reactIs_development.isProfiler;
7806
+ reactIs_development.isStrictMode;
7807
+ reactIs_development.isSuspense;
7808
+ reactIs_development.isValidElementType;
7809
+ reactIs_development.typeOf;
7810
+
7811
+ var reactIs = createCommonjsModule(function (module) {
7812
+
7813
+ if (process.env.NODE_ENV === 'production') {
7814
+ module.exports = reactIs_production_min;
7815
+ } else {
7816
+ module.exports = reactIs_development;
7817
+ }
7818
+ });
7819
+
7820
+ /*
7821
+ object-assign
7822
+ (c) Sindre Sorhus
7823
+ @license MIT
7824
+ */
7825
+ /* eslint-disable no-unused-vars */
7826
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
7827
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
7828
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
7829
+
7830
+ function toObject(val) {
7831
+ if (val === null || val === undefined) {
7832
+ throw new TypeError('Object.assign cannot be called with null or undefined');
7833
+ }
7834
+
7835
+ return Object(val);
7836
+ }
7837
+
7838
+ function shouldUseNative() {
7839
+ try {
7840
+ if (!Object.assign) {
7841
+ return false;
7842
+ }
7843
+
7844
+ // Detect buggy property enumeration order in older V8 versions.
7845
+
7846
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
7847
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
7848
+ test1[5] = 'de';
7849
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
7850
+ return false;
7851
+ }
7852
+
7853
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7854
+ var test2 = {};
7855
+ for (var i = 0; i < 10; i++) {
7856
+ test2['_' + String.fromCharCode(i)] = i;
7857
+ }
7858
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
7859
+ return test2[n];
7860
+ });
7861
+ if (order2.join('') !== '0123456789') {
7862
+ return false;
7863
+ }
7864
+
7865
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7866
+ var test3 = {};
7867
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
7868
+ test3[letter] = letter;
7869
+ });
7870
+ if (Object.keys(Object.assign({}, test3)).join('') !==
7871
+ 'abcdefghijklmnopqrst') {
7872
+ return false;
7873
+ }
7874
+
7875
+ return true;
7876
+ } catch (err) {
7877
+ // We don't expect any of the above to throw, but better to be safe.
7878
+ return false;
7879
+ }
7880
+ }
7881
+
7882
+ var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
7883
+ var from;
7884
+ var to = toObject(target);
7885
+ var symbols;
7886
+
7887
+ for (var s = 1; s < arguments.length; s++) {
7888
+ from = Object(arguments[s]);
7889
+
7890
+ for (var key in from) {
7891
+ if (hasOwnProperty.call(from, key)) {
7892
+ to[key] = from[key];
7893
+ }
7894
+ }
7895
+
7896
+ if (getOwnPropertySymbols) {
7897
+ symbols = getOwnPropertySymbols(from);
7898
+ for (var i = 0; i < symbols.length; i++) {
7899
+ if (propIsEnumerable.call(from, symbols[i])) {
7900
+ to[symbols[i]] = from[symbols[i]];
7901
+ }
7902
+ }
7903
+ }
7904
+ }
7905
+
7906
+ return to;
7907
+ };
7908
+
7909
+ /**
7910
+ * Copyright (c) 2013-present, Facebook, Inc.
7911
+ *
7912
+ * This source code is licensed under the MIT license found in the
7913
+ * LICENSE file in the root directory of this source tree.
7914
+ */
7915
+
7916
+ var ReactPropTypesSecret$2 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
7917
+
7918
+ var ReactPropTypesSecret_1 = ReactPropTypesSecret$2;
7919
+
7920
+ var has$2 = Function.call.bind(Object.prototype.hasOwnProperty);
7921
+
7922
+ var ReactPropTypesSecret$1 = ReactPropTypesSecret_1;
7923
+
7924
+ var has$1 = has$2;
7925
+
7926
+ var printWarning$1 = function() {};
7927
+
7928
+ if (process.env.NODE_ENV !== 'production') {
7929
+ var ReactPropTypesSecret = ReactPropTypesSecret$1;
7930
+ var loggedTypeFailures = {};
7931
+ var has = has$1;
7932
+
7933
+ printWarning$1 = function(text) {
7934
+ var message = 'Warning: ' + text;
7935
+ if (typeof console !== 'undefined') {
7936
+ console.error(message);
7937
+ }
7938
+ try {
7939
+ // --- Welcome to debugging React ---
7940
+ // This error was thrown as a convenience so that you can use this stack
7941
+ // to find the callsite that caused this warning to fire.
7942
+ throw new Error(message);
7943
+ } catch (x) { /**/ }
7944
+ };
7945
+ }
7946
+
7947
+ /**
7948
+ * Assert that the values match with the type specs.
7949
+ * Error messages are memorized and will only be shown once.
7950
+ *
7951
+ * @param {object} typeSpecs Map of name to a ReactPropType
7952
+ * @param {object} values Runtime values that need to be type-checked
7953
+ * @param {string} location e.g. "prop", "context", "child context"
7954
+ * @param {string} componentName Name of the component for error messages.
7955
+ * @param {?Function} getStack Returns the component stack.
7956
+ * @private
7957
+ */
7958
+ function checkPropTypes$1(typeSpecs, values, location, componentName, getStack) {
7959
+ if (process.env.NODE_ENV !== 'production') {
7960
+ for (var typeSpecName in typeSpecs) {
7961
+ if (has(typeSpecs, typeSpecName)) {
7962
+ var error;
7963
+ // Prop type validation may throw. In case they do, we don't want to
7964
+ // fail the render phase where it didn't fail before. So we log it.
7965
+ // After these have been cleaned up, we'll let them throw.
7966
+ try {
7967
+ // This is intentionally an invariant that gets caught. It's the same
7968
+ // behavior as without this statement except with a better message.
7969
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
7970
+ var err = Error(
7971
+ (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
7972
+ 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
7973
+ 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
7974
+ );
7975
+ err.name = 'Invariant Violation';
7976
+ throw err;
7977
+ }
7978
+ error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
7979
+ } catch (ex) {
7980
+ error = ex;
7981
+ }
7982
+ if (error && !(error instanceof Error)) {
7983
+ printWarning$1(
7984
+ (componentName || 'React class') + ': type specification of ' +
7985
+ location + ' `' + typeSpecName + '` is invalid; the type checker ' +
7986
+ 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
7987
+ 'You may have forgotten to pass an argument to the type checker ' +
7988
+ 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
7989
+ 'shape all require an argument).'
7990
+ );
7991
+ }
7992
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
7993
+ // Only monitor this failure once because there tends to be a lot of the
7994
+ // same error.
7995
+ loggedTypeFailures[error.message] = true;
7996
+
7997
+ var stack = getStack ? getStack() : '';
7998
+
7999
+ printWarning$1(
8000
+ 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
8001
+ );
8002
+ }
8003
+ }
8004
+ }
8005
+ }
8006
+ }
8007
+
8008
+ /**
8009
+ * Resets warning cache when testing.
8010
+ *
8011
+ * @private
8012
+ */
8013
+ checkPropTypes$1.resetWarningCache = function() {
8014
+ if (process.env.NODE_ENV !== 'production') {
8015
+ loggedTypeFailures = {};
8016
+ }
8017
+ };
8018
+
8019
+ var checkPropTypes_1 = checkPropTypes$1;
8020
+
8021
+ var checkPropTypes = checkPropTypes_1;
8022
+
8023
+ var printWarning = function() {};
8024
+
8025
+ if (process.env.NODE_ENV !== 'production') {
8026
+ printWarning = function(text) {
8027
+ var message = 'Warning: ' + text;
8028
+ if (typeof console !== 'undefined') {
8029
+ console.error(message);
8030
+ }
8031
+ try {
8032
+ // --- Welcome to debugging React ---
8033
+ // This error was thrown as a convenience so that you can use this stack
8034
+ // to find the callsite that caused this warning to fire.
8035
+ throw new Error(message);
8036
+ } catch (x) {}
8037
+ };
8038
+ }
8039
+
8040
+ function emptyFunctionThatReturnsNull() {
8041
+ return null;
8042
+ }
8043
+
8044
+ var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {
8045
+ /* global Symbol */
8046
+ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8047
+ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8048
+
8049
+ /**
8050
+ * Returns the iterator method function contained on the iterable object.
8051
+ *
8052
+ * Be sure to invoke the function with the iterable as context:
8053
+ *
8054
+ * var iteratorFn = getIteratorFn(myIterable);
8055
+ * if (iteratorFn) {
8056
+ * var iterator = iteratorFn.call(myIterable);
8057
+ * ...
8058
+ * }
8059
+ *
8060
+ * @param {?object} maybeIterable
8061
+ * @return {?function}
8062
+ */
8063
+ function getIteratorFn(maybeIterable) {
8064
+ var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8065
+ if (typeof iteratorFn === 'function') {
8066
+ return iteratorFn;
8067
+ }
8068
+ }
8069
+
8070
+ /**
8071
+ * Collection of methods that allow declaration and validation of props that are
8072
+ * supplied to React components. Example usage:
8073
+ *
8074
+ * var Props = require('ReactPropTypes');
8075
+ * var MyArticle = React.createClass({
8076
+ * propTypes: {
8077
+ * // An optional string prop named "description".
8078
+ * description: Props.string,
8079
+ *
8080
+ * // A required enum prop named "category".
8081
+ * category: Props.oneOf(['News','Photos']).isRequired,
8082
+ *
8083
+ * // A prop named "dialog" that requires an instance of Dialog.
8084
+ * dialog: Props.instanceOf(Dialog).isRequired
8085
+ * },
8086
+ * render: function() { ... }
8087
+ * });
8088
+ *
8089
+ * A more formal specification of how these methods are used:
8090
+ *
8091
+ * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8092
+ * decl := ReactPropTypes.{type}(.isRequired)?
8093
+ *
8094
+ * Each and every declaration produces a function with the same signature. This
8095
+ * allows the creation of custom validation functions. For example:
8096
+ *
8097
+ * var MyLink = React.createClass({
8098
+ * propTypes: {
8099
+ * // An optional string or URI prop named "href".
8100
+ * href: function(props, propName, componentName) {
8101
+ * var propValue = props[propName];
8102
+ * if (propValue != null && typeof propValue !== 'string' &&
8103
+ * !(propValue instanceof URI)) {
8104
+ * return new Error(
8105
+ * 'Expected a string or an URI for ' + propName + ' in ' +
8106
+ * componentName
8107
+ * );
8108
+ * }
8109
+ * }
8110
+ * },
8111
+ * render: function() {...}
8112
+ * });
8113
+ *
8114
+ * @internal
8115
+ */
8116
+
8117
+ var ANONYMOUS = '<<anonymous>>';
8118
+
8119
+ // Important!
8120
+ // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8121
+ var ReactPropTypes = {
8122
+ array: createPrimitiveTypeChecker('array'),
8123
+ bigint: createPrimitiveTypeChecker('bigint'),
8124
+ bool: createPrimitiveTypeChecker('boolean'),
8125
+ func: createPrimitiveTypeChecker('function'),
8126
+ number: createPrimitiveTypeChecker('number'),
8127
+ object: createPrimitiveTypeChecker('object'),
8128
+ string: createPrimitiveTypeChecker('string'),
8129
+ symbol: createPrimitiveTypeChecker('symbol'),
8130
+
8131
+ any: createAnyTypeChecker(),
8132
+ arrayOf: createArrayOfTypeChecker,
8133
+ element: createElementTypeChecker(),
8134
+ elementType: createElementTypeTypeChecker(),
8135
+ instanceOf: createInstanceTypeChecker,
8136
+ node: createNodeChecker(),
8137
+ objectOf: createObjectOfTypeChecker,
8138
+ oneOf: createEnumTypeChecker,
8139
+ oneOfType: createUnionTypeChecker,
8140
+ shape: createShapeTypeChecker,
8141
+ exact: createStrictShapeTypeChecker,
8142
+ };
8143
+
8144
+ /**
8145
+ * inlined Object.is polyfill to avoid requiring consumers ship their own
8146
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8147
+ */
8148
+ /*eslint-disable no-self-compare*/
8149
+ function is(x, y) {
8150
+ // SameValue algorithm
8151
+ if (x === y) {
8152
+ // Steps 1-5, 7-10
8153
+ // Steps 6.b-6.e: +0 != -0
8154
+ return x !== 0 || 1 / x === 1 / y;
8155
+ } else {
8156
+ // Step 6.a: NaN == NaN
8157
+ return x !== x && y !== y;
8158
+ }
8159
+ }
8160
+ /*eslint-enable no-self-compare*/
8161
+
8162
+ /**
8163
+ * We use an Error-like object for backward compatibility as people may call
8164
+ * PropTypes directly and inspect their output. However, we don't use real
8165
+ * Errors anymore. We don't inspect their stack anyway, and creating them
8166
+ * is prohibitively expensive if they are created too often, such as what
8167
+ * happens in oneOfType() for any type before the one that matched.
8168
+ */
8169
+ function PropTypeError(message, data) {
8170
+ this.message = message;
8171
+ this.data = data && typeof data === 'object' ? data: {};
8172
+ this.stack = '';
8173
+ }
8174
+ // Make `instanceof Error` still work for returned errors.
8175
+ PropTypeError.prototype = Error.prototype;
8176
+
8177
+ function createChainableTypeChecker(validate) {
8178
+ if (process.env.NODE_ENV !== 'production') {
8179
+ var manualPropTypeCallCache = {};
8180
+ var manualPropTypeWarningCount = 0;
8181
+ }
8182
+ function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8183
+ componentName = componentName || ANONYMOUS;
8184
+ propFullName = propFullName || propName;
8185
+
8186
+ if (secret !== ReactPropTypesSecret$1) {
8187
+ if (throwOnDirectAccess) {
8188
+ // New behavior only for users of `prop-types` package
8189
+ var err = new Error(
8190
+ 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8191
+ 'Use `PropTypes.checkPropTypes()` to call them. ' +
8192
+ 'Read more at http://fb.me/use-check-prop-types'
8193
+ );
8194
+ err.name = 'Invariant Violation';
8195
+ throw err;
8196
+ } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
8197
+ // Old behavior for people using React.PropTypes
8198
+ var cacheKey = componentName + ':' + propName;
8199
+ if (
8200
+ !manualPropTypeCallCache[cacheKey] &&
8201
+ // Avoid spamming the console because they are often not actionable except for lib authors
8202
+ manualPropTypeWarningCount < 3
8203
+ ) {
8204
+ printWarning(
8205
+ 'You are manually calling a React.PropTypes validation ' +
8206
+ 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
8207
+ 'and will throw in the standalone `prop-types` package. ' +
8208
+ 'You may be seeing this warning due to a third-party PropTypes ' +
8209
+ 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
8210
+ );
8211
+ manualPropTypeCallCache[cacheKey] = true;
8212
+ manualPropTypeWarningCount++;
8213
+ }
8214
+ }
8215
+ }
8216
+ if (props[propName] == null) {
8217
+ if (isRequired) {
8218
+ if (props[propName] === null) {
8219
+ return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8220
+ }
8221
+ return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8222
+ }
8223
+ return null;
8224
+ } else {
8225
+ return validate(props, propName, componentName, location, propFullName);
8226
+ }
8227
+ }
8228
+
8229
+ var chainedCheckType = checkType.bind(null, false);
8230
+ chainedCheckType.isRequired = checkType.bind(null, true);
8231
+
8232
+ return chainedCheckType;
8233
+ }
8234
+
8235
+ function createPrimitiveTypeChecker(expectedType) {
8236
+ function validate(props, propName, componentName, location, propFullName, secret) {
8237
+ var propValue = props[propName];
8238
+ var propType = getPropType(propValue);
8239
+ if (propType !== expectedType) {
8240
+ // `propValue` being instance of, say, date/regexp, pass the 'object'
8241
+ // check, but we can offer a more precise error message here rather than
8242
+ // 'of type `object`'.
8243
+ var preciseType = getPreciseType(propValue);
8244
+
8245
+ return new PropTypeError(
8246
+ 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
8247
+ {expectedType: expectedType}
8248
+ );
8249
+ }
8250
+ return null;
8251
+ }
8252
+ return createChainableTypeChecker(validate);
8253
+ }
8254
+
8255
+ function createAnyTypeChecker() {
8256
+ return createChainableTypeChecker(emptyFunctionThatReturnsNull);
8257
+ }
8258
+
8259
+ function createArrayOfTypeChecker(typeChecker) {
8260
+ function validate(props, propName, componentName, location, propFullName) {
8261
+ if (typeof typeChecker !== 'function') {
8262
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8263
+ }
8264
+ var propValue = props[propName];
8265
+ if (!Array.isArray(propValue)) {
8266
+ var propType = getPropType(propValue);
8267
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8268
+ }
8269
+ for (var i = 0; i < propValue.length; i++) {
8270
+ var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret$1);
8271
+ if (error instanceof Error) {
8272
+ return error;
8273
+ }
8274
+ }
8275
+ return null;
8276
+ }
8277
+ return createChainableTypeChecker(validate);
8278
+ }
8279
+
8280
+ function createElementTypeChecker() {
8281
+ function validate(props, propName, componentName, location, propFullName) {
8282
+ var propValue = props[propName];
8283
+ if (!isValidElement(propValue)) {
8284
+ var propType = getPropType(propValue);
8285
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8286
+ }
8287
+ return null;
8288
+ }
8289
+ return createChainableTypeChecker(validate);
8290
+ }
8291
+
8292
+ function createElementTypeTypeChecker() {
8293
+ function validate(props, propName, componentName, location, propFullName) {
8294
+ var propValue = props[propName];
8295
+ if (!reactIs.isValidElementType(propValue)) {
8296
+ var propType = getPropType(propValue);
8297
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
8298
+ }
8299
+ return null;
8300
+ }
8301
+ return createChainableTypeChecker(validate);
8302
+ }
8303
+
8304
+ function createInstanceTypeChecker(expectedClass) {
8305
+ function validate(props, propName, componentName, location, propFullName) {
8306
+ if (!(props[propName] instanceof expectedClass)) {
8307
+ var expectedClassName = expectedClass.name || ANONYMOUS;
8308
+ var actualClassName = getClassName(props[propName]);
8309
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8310
+ }
8311
+ return null;
8312
+ }
8313
+ return createChainableTypeChecker(validate);
8314
+ }
8315
+
8316
+ function createEnumTypeChecker(expectedValues) {
8317
+ if (!Array.isArray(expectedValues)) {
8318
+ if (process.env.NODE_ENV !== 'production') {
8319
+ if (arguments.length > 1) {
8320
+ printWarning(
8321
+ 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
8322
+ 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
8323
+ );
8324
+ } else {
8325
+ printWarning('Invalid argument supplied to oneOf, expected an array.');
8326
+ }
8327
+ }
8328
+ return emptyFunctionThatReturnsNull;
8329
+ }
8330
+
8331
+ function validate(props, propName, componentName, location, propFullName) {
8332
+ var propValue = props[propName];
8333
+ for (var i = 0; i < expectedValues.length; i++) {
8334
+ if (is(propValue, expectedValues[i])) {
8335
+ return null;
8336
+ }
8337
+ }
8338
+
8339
+ var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
8340
+ var type = getPreciseType(value);
8341
+ if (type === 'symbol') {
8342
+ return String(value);
8343
+ }
8344
+ return value;
8345
+ });
8346
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8347
+ }
8348
+ return createChainableTypeChecker(validate);
8349
+ }
8350
+
8351
+ function createObjectOfTypeChecker(typeChecker) {
8352
+ function validate(props, propName, componentName, location, propFullName) {
8353
+ if (typeof typeChecker !== 'function') {
8354
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8355
+ }
8356
+ var propValue = props[propName];
8357
+ var propType = getPropType(propValue);
8358
+ if (propType !== 'object') {
8359
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8360
+ }
8361
+ for (var key in propValue) {
8362
+ if (has$1(propValue, key)) {
8363
+ var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
8364
+ if (error instanceof Error) {
8365
+ return error;
8366
+ }
8367
+ }
8368
+ }
8369
+ return null;
8370
+ }
8371
+ return createChainableTypeChecker(validate);
8372
+ }
8373
+
8374
+ function createUnionTypeChecker(arrayOfTypeCheckers) {
8375
+ if (!Array.isArray(arrayOfTypeCheckers)) {
8376
+ process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
8377
+ return emptyFunctionThatReturnsNull;
8378
+ }
8379
+
8380
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8381
+ var checker = arrayOfTypeCheckers[i];
8382
+ if (typeof checker !== 'function') {
8383
+ printWarning(
8384
+ 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8385
+ 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
8386
+ );
8387
+ return emptyFunctionThatReturnsNull;
8388
+ }
8389
+ }
8390
+
8391
+ function validate(props, propName, componentName, location, propFullName) {
8392
+ var expectedTypes = [];
8393
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8394
+ var checker = arrayOfTypeCheckers[i];
8395
+ var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret$1);
8396
+ if (checkerResult == null) {
8397
+ return null;
8398
+ }
8399
+ if (checkerResult.data && has$1(checkerResult.data, 'expectedType')) {
8400
+ expectedTypes.push(checkerResult.data.expectedType);
8401
+ }
8402
+ }
8403
+ var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
8404
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
8405
+ }
8406
+ return createChainableTypeChecker(validate);
8407
+ }
8408
+
8409
+ function createNodeChecker() {
8410
+ function validate(props, propName, componentName, location, propFullName) {
8411
+ if (!isNode(props[propName])) {
8412
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8413
+ }
8414
+ return null;
8415
+ }
8416
+ return createChainableTypeChecker(validate);
8417
+ }
8418
+
8419
+ function invalidValidatorError(componentName, location, propFullName, key, type) {
8420
+ return new PropTypeError(
8421
+ (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
8422
+ 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
8423
+ );
8424
+ }
8425
+
8426
+ function createShapeTypeChecker(shapeTypes) {
8427
+ function validate(props, propName, componentName, location, propFullName) {
8428
+ var propValue = props[propName];
8429
+ var propType = getPropType(propValue);
8430
+ if (propType !== 'object') {
8431
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8432
+ }
8433
+ for (var key in shapeTypes) {
8434
+ var checker = shapeTypes[key];
8435
+ if (typeof checker !== 'function') {
8436
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8437
+ }
8438
+ var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
8439
+ if (error) {
8440
+ return error;
8441
+ }
8442
+ }
8443
+ return null;
8444
+ }
8445
+ return createChainableTypeChecker(validate);
8446
+ }
8447
+
8448
+ function createStrictShapeTypeChecker(shapeTypes) {
8449
+ function validate(props, propName, componentName, location, propFullName) {
8450
+ var propValue = props[propName];
8451
+ var propType = getPropType(propValue);
8452
+ if (propType !== 'object') {
8453
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8454
+ }
8455
+ // We need to check all keys in case some are required but missing from props.
8456
+ var allKeys = objectAssign({}, props[propName], shapeTypes);
8457
+ for (var key in allKeys) {
8458
+ var checker = shapeTypes[key];
8459
+ if (has$1(shapeTypes, key) && typeof checker !== 'function') {
8460
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8461
+ }
8462
+ if (!checker) {
8463
+ return new PropTypeError(
8464
+ 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8465
+ '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8466
+ '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8467
+ );
8468
+ }
8469
+ var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
8470
+ if (error) {
8471
+ return error;
8472
+ }
8473
+ }
8474
+ return null;
8475
+ }
8476
+
8477
+ return createChainableTypeChecker(validate);
8478
+ }
8479
+
8480
+ function isNode(propValue) {
8481
+ switch (typeof propValue) {
8482
+ case 'number':
8483
+ case 'string':
8484
+ case 'undefined':
8485
+ return true;
8486
+ case 'boolean':
8487
+ return !propValue;
8488
+ case 'object':
8489
+ if (Array.isArray(propValue)) {
8490
+ return propValue.every(isNode);
8491
+ }
8492
+ if (propValue === null || isValidElement(propValue)) {
8493
+ return true;
8494
+ }
8495
+
8496
+ var iteratorFn = getIteratorFn(propValue);
8497
+ if (iteratorFn) {
8498
+ var iterator = iteratorFn.call(propValue);
8499
+ var step;
8500
+ if (iteratorFn !== propValue.entries) {
8501
+ while (!(step = iterator.next()).done) {
8502
+ if (!isNode(step.value)) {
8503
+ return false;
8504
+ }
8505
+ }
8506
+ } else {
8507
+ // Iterator will provide entry [k,v] tuples rather than values.
8508
+ while (!(step = iterator.next()).done) {
8509
+ var entry = step.value;
8510
+ if (entry) {
8511
+ if (!isNode(entry[1])) {
8512
+ return false;
8513
+ }
8514
+ }
8515
+ }
8516
+ }
8517
+ } else {
8518
+ return false;
8519
+ }
8520
+
8521
+ return true;
8522
+ default:
8523
+ return false;
8524
+ }
8525
+ }
8526
+
8527
+ function isSymbol(propType, propValue) {
8528
+ // Native Symbol.
8529
+ if (propType === 'symbol') {
8530
+ return true;
8531
+ }
8532
+
8533
+ // falsy value can't be a Symbol
8534
+ if (!propValue) {
8535
+ return false;
8536
+ }
8537
+
8538
+ // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8539
+ if (propValue['@@toStringTag'] === 'Symbol') {
8540
+ return true;
8541
+ }
8542
+
8543
+ // Fallback for non-spec compliant Symbols which are polyfilled.
8544
+ if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8545
+ return true;
8546
+ }
8547
+
8548
+ return false;
8549
+ }
8550
+
8551
+ // Equivalent of `typeof` but with special handling for array and regexp.
8552
+ function getPropType(propValue) {
8553
+ var propType = typeof propValue;
8554
+ if (Array.isArray(propValue)) {
8555
+ return 'array';
8556
+ }
8557
+ if (propValue instanceof RegExp) {
8558
+ // Old webkits (at least until Android 4.0) return 'function' rather than
8559
+ // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8560
+ // passes PropTypes.object.
8561
+ return 'object';
8562
+ }
8563
+ if (isSymbol(propType, propValue)) {
8564
+ return 'symbol';
8565
+ }
8566
+ return propType;
8567
+ }
8568
+
8569
+ // This handles more types than `getPropType`. Only used for error messages.
8570
+ // See `createPrimitiveTypeChecker`.
8571
+ function getPreciseType(propValue) {
8572
+ if (typeof propValue === 'undefined' || propValue === null) {
8573
+ return '' + propValue;
8574
+ }
8575
+ var propType = getPropType(propValue);
8576
+ if (propType === 'object') {
8577
+ if (propValue instanceof Date) {
8578
+ return 'date';
8579
+ } else if (propValue instanceof RegExp) {
8580
+ return 'regexp';
8581
+ }
8582
+ }
8583
+ return propType;
8584
+ }
8585
+
8586
+ // Returns a string that is postfixed to a warning about an invalid type.
8587
+ // For example, "undefined" or "of type array"
8588
+ function getPostfixForTypeWarning(value) {
8589
+ var type = getPreciseType(value);
8590
+ switch (type) {
8591
+ case 'array':
8592
+ case 'object':
8593
+ return 'an ' + type;
8594
+ case 'boolean':
8595
+ case 'date':
8596
+ case 'regexp':
8597
+ return 'a ' + type;
8598
+ default:
8599
+ return type;
8600
+ }
8601
+ }
8602
+
8603
+ // Returns class name of the object, if any.
8604
+ function getClassName(propValue) {
8605
+ if (!propValue.constructor || !propValue.constructor.name) {
8606
+ return ANONYMOUS;
8607
+ }
8608
+ return propValue.constructor.name;
8609
+ }
8610
+
8611
+ ReactPropTypes.checkPropTypes = checkPropTypes;
8612
+ ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
8613
+ ReactPropTypes.PropTypes = ReactPropTypes;
8614
+
8615
+ return ReactPropTypes;
8616
+ };
8617
+
8618
+ function emptyFunction() {}
8619
+ function emptyFunctionWithReset() {}
8620
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
8621
+
8622
+ var factoryWithThrowingShims = function() {
8623
+ function shim(props, propName, componentName, location, propFullName, secret) {
8624
+ if (secret === ReactPropTypesSecret$1) {
8625
+ // It is still safe when called from React.
8626
+ return;
8627
+ }
8628
+ var err = new Error(
8629
+ 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8630
+ 'Use PropTypes.checkPropTypes() to call them. ' +
8631
+ 'Read more at http://fb.me/use-check-prop-types'
8632
+ );
8633
+ err.name = 'Invariant Violation';
8634
+ throw err;
8635
+ } shim.isRequired = shim;
8636
+ function getShim() {
8637
+ return shim;
8638
+ } // Important!
8639
+ // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
8640
+ var ReactPropTypes = {
8641
+ array: shim,
8642
+ bigint: shim,
8643
+ bool: shim,
8644
+ func: shim,
8645
+ number: shim,
8646
+ object: shim,
8647
+ string: shim,
8648
+ symbol: shim,
8649
+
8650
+ any: shim,
8651
+ arrayOf: getShim,
8652
+ element: shim,
8653
+ elementType: shim,
8654
+ instanceOf: getShim,
8655
+ node: shim,
8656
+ objectOf: getShim,
8657
+ oneOf: getShim,
8658
+ oneOfType: getShim,
8659
+ shape: getShim,
8660
+ exact: getShim,
8661
+
8662
+ checkPropTypes: emptyFunctionWithReset,
8663
+ resetWarningCache: emptyFunction
8664
+ };
8665
+
8666
+ ReactPropTypes.PropTypes = ReactPropTypes;
8667
+
8668
+ return ReactPropTypes;
8669
+ };
8670
+
8671
+ var require$$1 = factoryWithTypeCheckers;
8672
+
8673
+ var require$$2 = factoryWithThrowingShims;
8674
+
8675
+ var propTypes = createCommonjsModule(function (module) {
8676
+ /**
8677
+ * Copyright (c) 2013-present, Facebook, Inc.
8678
+ *
8679
+ * This source code is licensed under the MIT license found in the
8680
+ * LICENSE file in the root directory of this source tree.
8681
+ */
8682
+
8683
+ if (process.env.NODE_ENV !== 'production') {
8684
+ var ReactIs = reactIs;
8685
+
8686
+ // By explicitly using `prop-types` you are opting into new development behavior.
8687
+ // http://fb.me/prop-types-in-prod
8688
+ var throwOnDirectAccess = true;
8689
+ module.exports = require$$1(ReactIs.isElement, throwOnDirectAccess);
8690
+ } else {
8691
+ // By explicitly using `prop-types` you are opting into new production behavior.
8692
+ // http://fb.me/prop-types-in-prod
8693
+ module.exports = require$$2();
8694
+ }
8695
+ });
8696
+
8697
+ var PropTypes = propTypes;
8698
+
8699
+ /**
8700
+ * @param {{text: string}} props
8701
+ */
8702
+ var HTMLComment = function HTMLComment(props) {
8703
+ var text = props.text;
8704
+ var ref = /*#__PURE__*/React__default["default"].createRef();
8705
+ useLayoutEffect(function () {
8706
+ var el = null;
8707
+ var parent = null;
8708
+ var comm = null;
8709
+ if (ref.current) {
8710
+ el = ref.current;
8711
+ parent = el.parentNode;
8712
+ comm = (window || global).document.createComment(" ".concat(text.trim(), " "));
8713
+ try {
8714
+ if (parent && parent.contains(el)) {
8715
+ parent.replaceChild(comm, el);
8716
+ }
8717
+ } catch (err) {
8718
+ console.error(err);
8719
+ }
8720
+ }
8721
+ return function () {
8722
+ if (parent && el && comm) {
8723
+ parent.replaceChild(el, comm);
8724
+ }
8725
+ };
8726
+ }, []);
8727
+ return /*#__PURE__*/React__default["default"].createElement("span", {
8728
+ ref: ref,
8729
+ style: {
8730
+ display: 'none'
8731
+ }
8732
+ });
8733
+ };
8734
+ HTMLComment.propTypes = {
8735
+ text: PropTypes.string
8736
+ };
8737
+
8738
+ var Icon$1 = function (_a) {
8739
+ var name = _a.name, className = _a.className, title = _a.title, width = _a.width, height = _a.height;
8740
+ var icons = React.useContext(SettingsContext$1).icons;
8741
+ if (icons) {
8742
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8743
+ .filter(function (className) { return !lodash.isEmpty(className); })
8744
+ .join(" "), width: width, height: height },
8745
+ title && React__default["default"].createElement("title", null, title),
8746
+ React__default["default"].createElement("use", { href: "".concat(icons, "#").concat(name) })));
8747
+ }
8748
+ switch (name) {
8749
+ case "ui-close":
8750
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8751
+ .filter(function (className) { return !lodash.isEmpty(className); })
8752
+ .join(" "), width: width, height: height, viewBox: "0 0 384 512" },
8753
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8754
+ title && React__default["default"].createElement("title", null, title),
8755
+ React__default["default"].createElement("path", { d: "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" })));
8756
+ case "ui-plus":
8757
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8758
+ .filter(function (className) { return !lodash.isEmpty(className); })
8759
+ .join(" "), width: width, height: height, viewBox: "0 0 448 512" },
8760
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8761
+ title && React__default["default"].createElement("title", null, title),
8762
+ React__default["default"].createElement("path", { d: "M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z" })));
8763
+ case "ui-min":
8764
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8765
+ .filter(function (className) { return !lodash.isEmpty(className); })
8766
+ .join(" "), width: width, height: height, viewBox: "0 0 448 512" },
8767
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8768
+ title && React__default["default"].createElement("title", null, title),
8769
+ React__default["default"].createElement("path", { d: "M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z" })));
8770
+ case "ui-chevron":
8771
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8772
+ .filter(function (className) { return !lodash.isEmpty(className); })
8773
+ .join(" "), width: width, height: height, viewBox: "0 0 320 512" },
8774
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8775
+ title && React__default["default"].createElement("title", null, title),
8776
+ React__default["default"].createElement("path", { d: "M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z" })));
8777
+ case "ui-calendar":
8778
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8779
+ .filter(function (className) { return !lodash.isEmpty(className); })
8780
+ .join(" "), width: width, height: height, viewBox: "0 0 448 512" },
8781
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8782
+ title && React__default["default"].createElement("title", null, title),
8783
+ React__default["default"].createElement("path", { d: "M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z" })));
8784
+ case "ui-bed":
8785
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8786
+ .filter(function (className) { return !lodash.isEmpty(className); })
8787
+ .join(" "), width: width, height: height, viewBox: "0 0 640 512" },
8788
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8789
+ title && React__default["default"].createElement("title", null, title),
8790
+ React__default["default"].createElement("path", { d: "M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z" })));
8791
+ case "ui-flight":
8792
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8793
+ .filter(function (className) { return !lodash.isEmpty(className); })
8794
+ .join(" "), width: width, height: height, viewBox: "0 0 576 512" },
8795
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8796
+ title && React__default["default"].createElement("title", null, title),
8797
+ React__default["default"].createElement("path", { d: "M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z" })));
8798
+ case "ui-transfer":
8799
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8800
+ .filter(function (className) { return !lodash.isEmpty(className); })
8801
+ .join(" "), width: width, height: height, viewBox: "0 0 512 512" },
8802
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8803
+ title && React__default["default"].createElement("title", null, title),
8804
+ React__default["default"].createElement("path", { d: "M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" })));
8805
+ case "ui-star":
8806
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8807
+ .filter(function (className) { return !lodash.isEmpty(className); })
8808
+ .join(" "), width: width, height: height, viewBox: "0 0 576 512" },
8809
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8810
+ title && React__default["default"].createElement("title", null, title),
8811
+ React__default["default"].createElement("path", { d: "M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z" })));
8812
+ case "ui-halfstar":
8813
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8814
+ .filter(function (className) { return !lodash.isEmpty(className); })
8815
+ .join(" "), width: width, height: height, viewBox: "0 0 576 512" },
8816
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8817
+ title && React__default["default"].createElement("title", null, title),
8818
+ React__default["default"].createElement("path", { d: "M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z" })));
8819
+ case "ui-user":
8820
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8821
+ .filter(function (className) { return !lodash.isEmpty(className); })
8822
+ .join(" "), width: width, height: height, viewBox: "0 0 448 512" },
8823
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8824
+ title && React__default["default"].createElement("title", null, title),
8825
+ React__default["default"].createElement("path", { d: "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z" })));
8826
+ case "ui-pencil":
8827
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8828
+ .filter(function (className) { return !lodash.isEmpty(className); })
8829
+ .join(" "), width: width, height: height, viewBox: "0 0 512 512" },
8830
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8831
+ title && React__default["default"].createElement("title", null, title),
8832
+ React__default["default"].createElement("path", { d: "M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z" })));
8833
+ case "ui-check":
8834
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
8835
+ .filter(function (className) { return !lodash.isEmpty(className); })
8836
+ .join(" "), width: width, height: height, viewBox: "0 0 448 512" },
8837
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
8838
+ title && React__default["default"].createElement("title", null, title),
8839
+ React__default["default"].createElement("path", { d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" })));
8840
+ default:
8841
+ return null;
8842
+ }
8843
+ };
8844
+
8845
+ var Calendar = function (_a) {
8846
+ var _b = _a.year, year = _b === void 0 ? dateFns.getYear(new Date()) : _b, _c = _a.month, month = _c === void 0 ? dateFns.getMonth(new Date()) : _c, _d = _a.hasPreviousButton, hasPreviousButton = _d === void 0 ? true : _d, _e = _a.hasNextButton, hasNextButton = _e === void 0 ? true : _e, _f = _a.hasFixedHeight, hasFixedHeight = _f === void 0 ? true : _f, _g = _a.weekStartsOn, weekStartsOn = _g === void 0 ? 1 : _g, disabledDaysFunction = _a.disabledDaysFunction, selectedDaysFunction = _a.selectedDaysFunction, extraClassNamesFunction = _a.extraClassNamesFunction, dayContentFunction = _a.dayContentFunction, onDayClick = _a.onDayClick, onDayMouseOver = _a.onDayMouseOver, onNextClick = _a.onNextClick, onPreviousClick = _a.onPreviousClick;
8847
+ var language = React.useContext(SettingsContext$1).language;
8848
+ var locale = getLocale(language);
8849
+ var handleDayClick = function (day) {
8850
+ if (onDayClick) {
8851
+ onDayClick(day);
8852
+ }
8853
+ };
8854
+ var handleDayMouseOver = function (day) {
8855
+ if (onDayMouseOver) {
8856
+ onDayMouseOver(day);
8857
+ }
8858
+ };
8859
+ var handleNextClick = function () {
8860
+ var nextMonth = (month + 1) % 12;
8861
+ var nextMonthsYear = nextMonth < month ? year + 1 : year;
8862
+ if (onNextClick) {
8863
+ onNextClick(nextMonthsYear, nextMonth);
8864
+ }
8865
+ };
8866
+ var handlePreviousClick = function () {
8867
+ var previousMonth = (month - 1) % 12;
8868
+ var previousMonthsYear = previousMonth > month ? year - 1 : year;
8869
+ if (onPreviousClick) {
8870
+ onPreviousClick(previousMonthsYear, previousMonth);
8871
+ }
8872
+ };
8873
+ var focusDate = new Date(year, month);
8874
+ var firstDay = dateFns.startOfWeek(dateFns.startOfMonth(focusDate), { weekStartsOn: weekStartsOn });
8875
+ var lastDay = hasFixedHeight
8876
+ ? dateFns.endOfWeek(dateFns.addWeeks(firstDay, 5), { weekStartsOn: weekStartsOn })
8877
+ : dateFns.endOfWeek(dateFns.endOfMonth(focusDate), { weekStartsOn: weekStartsOn });
8878
+ var calendarDays = dateFns.eachDayOfInterval({ start: firstDay, end: lastDay });
8879
+ var mapDay = function (day) {
8880
+ var isoDay = dateFns.getISODay(day);
8881
+ var isDisabled = lodash.isFunction(disabledDaysFunction) && disabledDaysFunction(day);
8882
+ var isSelected = lodash.isFunction(selectedDaysFunction) && selectedDaysFunction(day);
8883
+ var isOutsideMonth = !dateFns.isSameMonth(day, focusDate);
8884
+ var extraClassNames = lodash.isFunction(extraClassNamesFunction)
8885
+ ? extraClassNamesFunction(day)
8886
+ : undefined;
8887
+ return (React__default["default"].createElement(CalendarDay, { key: "day_".concat(isoDay), day: day, isSelected: isSelected, isDisabled: isDisabled, isOutsideMonth: isOutsideMonth, extraClassNames: extraClassNames, onClick: handleDayClick, onMouseOver: handleDayMouseOver }, lodash.isFunction(dayContentFunction) ? dayContentFunction(day) : undefined));
8888
+ };
8889
+ var mapWeek = function (weekDays) {
8890
+ if (weekDays.length === 0) {
8891
+ return null;
8892
+ }
8893
+ var isoWeek = dateFns.getISOWeek(weekDays[0]);
8894
+ return (React__default["default"].createElement("div", { className: "calendar__week", key: "week_".concat(isoWeek) }, weekDays.map(mapDay)));
8895
+ };
8896
+ return (React__default["default"].createElement("div", { className: "calendar" },
8897
+ React__default["default"].createElement("div", { className: "calendar__header" },
8898
+ React__default["default"].createElement("div", { className: "calendar__pager" },
8899
+ React__default["default"].createElement("div", { className: buildClassName([
8900
+ "calendar__previous",
8901
+ !hasPreviousButton && "calendar__previous--disabled",
8902
+ ]), onClick: handlePreviousClick },
8903
+ React__default["default"].createElement(Icon$1, { name: "ui-chevron" })),
8904
+ React__default["default"].createElement("div", { className: "calendar__current-month" }, dateFns.format(focusDate, "MMMM yyyy", { locale: locale })),
8905
+ React__default["default"].createElement("div", { className: buildClassName([
8906
+ "calendar__next",
8907
+ !hasNextButton && "calendar__next--disabled",
8908
+ ]), onClick: handleNextClick },
8909
+ React__default["default"].createElement(Icon$1, { name: "ui-chevron" }))),
8910
+ React__default["default"].createElement("div", { className: "calendar__day-labels" }, lodash.range(0, 7).map(function (i) { return (React__default["default"].createElement("div", { className: "calendar__day-label", key: "day_".concat(i) }, dateFns.format(calendarDays[i], "EEEEEE", { locale: locale }))); }))),
8911
+ React__default["default"].createElement("div", { className: "calendar__body" }, lodash.chunk(calendarDays, 7).map(mapWeek))));
8912
+ };
8913
+
8914
+ var DateRangePicker = function (props) {
8915
+ var _a, _b, _c, _d;
8916
+ var _e = React.useState(props.fromDate), fromDate = _e[0], setFromDate = _e[1];
8917
+ var _f = React.useState(props.toDate), toDate = _f[0], setToDate = _f[1];
8918
+ var _g = React.useState((_a = props.focusMonth) !== null && _a !== void 0 ? _a : { year: dateFns.getYear(new Date()), month: dateFns.getMonth(new Date()) }), focusMonth = _g[0], setFocusMonth = _g[1];
8919
+ var _h = React.useState(false), isWaitingForToDate = _h[0], setWaitingForToDate = _h[1];
8920
+ var handleDayClick = function (day) {
8921
+ var onSelectionChange = props.onSelectionChange;
8922
+ if (isWaitingForToDate && !lodash.isNil(fromDate) && dateFns.isAfter(day, fromDate)) {
8923
+ setToDate(day);
8924
+ setWaitingForToDate(false);
8925
+ if (props.onToDateChange) {
8926
+ props.onToDateChange(undefined);
8927
+ }
8928
+ if (onSelectionChange) {
8929
+ onSelectionChange(fromDate, day);
8930
+ }
8931
+ }
8932
+ else {
8933
+ setFromDate(day);
8934
+ if (props.duration) {
8935
+ var to = new Date(Date.UTC(day.getFullYear(), day.getMonth(), day.getDate() + props.duration));
8936
+ setToDate(to);
8937
+ if (onSelectionChange) {
8938
+ onSelectionChange(day, to);
8939
+ }
8940
+ }
8941
+ else {
8942
+ setToDate(undefined);
8943
+ setWaitingForToDate(true);
8944
+ }
8945
+ if (props.onFromDateChange) {
8946
+ props.onFromDateChange(day);
8947
+ }
8948
+ }
8949
+ };
8950
+ var handleDayMouseOver = function (day) {
8951
+ if (isWaitingForToDate &&
8952
+ (lodash.isNil(fromDate) || dateFns.isEqual(day, fromDate) || dateFns.isAfter(day, fromDate))) {
8953
+ setToDate(day);
8954
+ }
8955
+ };
8956
+ var handlePreviousClick = function () {
8957
+ var month = focusMonth.month, year = focusMonth.year;
8958
+ var previousMonth = (month - 1) % 12;
8959
+ var previousMonthsYear = previousMonth > month ? year - 1 : year;
8960
+ var newFocusMonth = { year: previousMonthsYear, month: previousMonth };
8961
+ setFocusMonth(newFocusMonth);
8962
+ if (props.onFocusMonthChange) {
8963
+ props.onFocusMonthChange(newFocusMonth);
8964
+ }
8965
+ };
8966
+ var handleNextClick = function () {
8967
+ var month = focusMonth.month, year = focusMonth.year;
8968
+ var nextMonth = (month + 1) % 12;
8969
+ var nextMonthsYear = nextMonth < month ? year + 1 : year;
8970
+ var newFocusMonth = { year: nextMonthsYear, month: nextMonth };
8971
+ setFocusMonth(newFocusMonth);
8972
+ if (props.onFocusMonthChange) {
8973
+ props.onFocusMonthChange(newFocusMonth);
8974
+ }
8975
+ };
8976
+ var today = dateFns.startOfDay(new Date());
8977
+ var firstCalendarYear = focusMonth.year;
8978
+ var firstCalendarMonth = focusMonth.month;
8979
+ var secondCalendarMonth = (firstCalendarMonth + 1) % 12;
8980
+ var secondCalendarYear = secondCalendarMonth < firstCalendarMonth ? firstCalendarYear + 1 : firstCalendarYear;
8981
+ var checkIfDateIsSelected = function (date) {
8982
+ return lodash.isNil(toDate)
8983
+ ? !lodash.isNil(fromDate) && dateFns.isEqual(date, fromDate)
8984
+ : !lodash.isNil(fromDate) &&
8985
+ dateFns.isWithinInterval(date, { start: dateFns.startOfDay(fromDate), end: dateFns.endOfDay(toDate) });
8986
+ };
8987
+ React.useEffect(function () {
8988
+ setFromDate(props.fromDate);
8989
+ setToDate(props.toDate);
8990
+ }, [(_b = props.fromDate) === null || _b === void 0 ? void 0 : _b.valueOf(), (_c = props.toDate) === null || _c === void 0 ? void 0 : _c.valueOf()]);
8991
+ React.useEffect(function () {
8992
+ if (props.fromDate) {
8993
+ setFocusMonth({ month: props.fromDate.getMonth(), year: props.fromDate.getFullYear() });
8994
+ }
8995
+ }, [(_d = props.fromDate) === null || _d === void 0 ? void 0 : _d.valueOf()]);
8996
+ return (React__default["default"].createElement("div", { className: "date-range-picker" },
8997
+ React__default["default"].createElement("div", { className: "date-range-picker__from" },
8998
+ React__default["default"].createElement(Calendar, { year: firstCalendarYear, month: firstCalendarMonth, onDayClick: handleDayClick, onDayMouseOver: handleDayMouseOver, onPreviousClick: handlePreviousClick, hasPreviousButton: dateFns.isAfter(new Date(firstCalendarYear, firstCalendarMonth), dateFns.endOfMonth(today)), hasNextButton: false, selectedDaysFunction: checkIfDateIsSelected, disabledDaysFunction: props.disabledDaysFunction, extraClassNamesFunction: props.extraClassNamesFunction, dayContentFunction: props.dayContentFunction, hasFixedHeight: true })),
8999
+ React__default["default"].createElement("div", { className: "date-range-picker__to" },
9000
+ React__default["default"].createElement(Calendar, { year: secondCalendarYear, month: secondCalendarMonth, onDayClick: handleDayClick, onDayMouseOver: handleDayMouseOver, onNextClick: handleNextClick, hasPreviousButton: false, selectedDaysFunction: checkIfDateIsSelected, disabledDaysFunction: props.disabledDaysFunction, extraClassNamesFunction: props.extraClassNamesFunction, dayContentFunction: props.dayContentFunction, hasFixedHeight: true }))));
9001
+ };
9002
+
9003
+ var Dates = function (_a) {
9004
+ var value = _a.value, duration = _a.duration, onChange = _a.onChange;
9005
+ var language = React.useContext(SettingsContext$1).language;
9006
+ var translations = getTranslations(language);
9007
+ var mql = typeof window !== "undefined" ? window.matchMedia("(min-width: 1200px)") : undefined;
9008
+ var _b = React.useState(null), referenceElement = _b[0], setReferenceElement = _b[1];
9009
+ var _c = React.useState(null), popperElement = _c[0], setPopperElement = _c[1];
9010
+ var _d = React.useState(false), panelActive = _d[0], setPanelActive = _d[1];
9011
+ var _e = reactPopper.usePopper(referenceElement, popperElement, {
9012
+ placement: "top",
9013
+ modifiers: [
9014
+ {
9015
+ name: "offset",
9016
+ options: {
9017
+ offset: [0, -40],
9018
+ },
9019
+ },
9020
+ {
9021
+ name: "preventOverflow",
9022
+ options: {
9023
+ padding: 40,
7803
9024
  },
7804
9025
  }
7805
9026
  ],
@@ -7828,7 +9049,7 @@ var Dates = function (_a) {
7828
9049
  };
7829
9050
  return (React__default["default"].createElement("div", { className: "booking-product__dates", ref: setReferenceElement },
7830
9051
  React__default["default"].createElement("div", { className: "booking-product__dates-title" },
7831
- React__default["default"].createElement(Icon, { name: "ui-calendar" }),
9052
+ React__default["default"].createElement(Icon$1, { name: "ui-calendar", width: 25, height: 25 }),
7832
9053
  translations.PRODUCT.TRAVEL_PERIOD),
7833
9054
  React__default["default"].createElement("div", { className: "form__group form__group--datepicker form__group--icon" },
7834
9055
  React__default["default"].createElement("div", { className: "form__group-input" },
@@ -7840,8 +9061,11 @@ var Dates = function (_a) {
7840
9061
  React__default["default"].createElement("div", __assign({ ref: setPopperElement, className: buildClassName([
7841
9062
  "qsm__panel qsm__panel--bordered qsm__panel--dates-pricing",
7842
9063
  panelActive && "qsm__panel--active",
9064
+ !(mql === null || mql === void 0 ? void 0 : mql.matches) && "qsm__panel--mobile"
7843
9065
  ]), style: (mql === null || mql === void 0 ? void 0 : mql.matches) ? styles.popper : undefined }, attributes.popper),
7844
- React__default["default"].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) { return dateFns.isBefore(date, dateFns.startOfDay(new Date())); }, onSelectionChange: handleSelectionChange })))));
9066
+ React__default["default"].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) { return dateFns.isBefore(date, dateFns.startOfDay(new Date())); }, onSelectionChange: handleSelectionChange }),
9067
+ !(mql === null || mql === void 0 ? void 0 : mql.matches) && (React__default["default"].createElement("div", { className: "qsm__close", onClick: function () { return setPanelActive(false); } },
9068
+ React__default["default"].createElement(Icon$1, { name: "ui-close", height: 25, width: 25 })))))));
7845
9069
  };
7846
9070
 
7847
9071
  var Loader = function (_a) {
@@ -7852,7 +9076,7 @@ var Loader = function (_a) {
7852
9076
  };
7853
9077
 
7854
9078
  var Footer = function (_a) {
7855
- var priceText = _a.priceText, isLoading = _a.isLoading, handleBookClick = _a.handleBookClick;
9079
+ var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, handleBookClick = _a.handleBookClick;
7856
9080
  var _b = React.useContext(SettingsContext$1), language = _b.language, alternativeActionText = _b.alternativeActionText, alternativeAction = _b.alternativeAction;
7857
9081
  var translations = getTranslations(language);
7858
9082
  return (React__default["default"].createElement("div", { className: "booking-product__footer" }, isLoading
@@ -7860,8 +9084,8 @@ var Footer = function (_a) {
7860
9084
  : (React__default["default"].createElement(React__default["default"].Fragment, null,
7861
9085
  priceText && (React__default["default"].createElement("div", { className: "booking-product__footer-total" },
7862
9086
  React__default["default"].createElement("div", { className: "booking-product__footer-label" }, translations.SHARED.TOTAL_PRICE),
7863
- React__default["default"].createElement("div", { className: "booking-summary__footer-price" }, priceText))),
7864
- React__default["default"].createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React__default["default"].createElement("button", { type: "button", className: "cta", onClick: handleBookClick }, translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
9087
+ React__default["default"].createElement("div", { className: "booking-product__footer-price" }, priceText))),
9088
+ React__default["default"].createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React__default["default"].createElement("button", { type: "button", className: "cta", onClick: handleBookClick }, isOffer ? translations.PRODUCT.TO_YOUR_OFFER : translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
7865
9089
  ? (React__default["default"].createElement("a", { href: "#offer-form", className: "cta", onClick: alternativeAction }, alternativeActionText))
7866
9090
  : (React__default["default"].createElement(React__default["default"].Fragment, null, translations.PRODUCT.NOT_AVAILABLE))))))));
7867
9091
  };
@@ -7870,8 +9094,8 @@ var Rating = function (_a) {
7870
9094
  var rating = _a.rating;
7871
9095
  var clampedRating = lodash.clamp(rating, 0, 5);
7872
9096
  return (React__default["default"].createElement("div", { className: "rating" },
7873
- lodash.range(0, Math.floor(clampedRating)).map(function (i) { return (React__default["default"].createElement(Icon$1, { name: "product-star", key: "rating-star-".concat(i) })); }),
7874
- clampedRating % 1 > 0 && React__default["default"].createElement(Icon$1, { name: "product-halfstar" })));
9097
+ lodash.range(0, Math.floor(clampedRating)).map(function (i) { return (React__default["default"].createElement(Icon$1, { name: "ui-star", key: "rating-star-".concat(i), width: 25, height: 25 })); }),
9098
+ rating % 1 > 0 && React__default["default"].createElement(Icon$1, { name: "ui-halfstar", width: 25, height: 25 })));
7875
9099
  };
7876
9100
 
7877
9101
  var Header = function (_a) {
@@ -7888,11 +9112,11 @@ var Header = function (_a) {
7888
9112
  React__default["default"].createElement("div", { className: "pricing__header pricing__price" }, priceText),
7889
9113
  React__default["default"].createElement("div", { className: "package-icons" },
7890
9114
  priceText && (React__default["default"].createElement("div", { className: "package-icons__icon" },
7891
- React__default["default"].createElement(Icon, { name: "ui-bed", title: translations.PRODUCT.STAY_INCLUDED }))),
9115
+ React__default["default"].createElement(Icon$1, { name: "ui-bed", title: translations.PRODUCT.STAY_INCLUDED, width: 25, height: 25 }))),
7892
9116
  hasFlight && (React__default["default"].createElement("div", { className: "package-icons__icon" },
7893
- React__default["default"].createElement(Icon, { name: "ui-flight", title: translations.PRODUCT.FLIGHT_INCLUDED }))),
9117
+ React__default["default"].createElement(Icon$1, { name: "ui-flight", title: translations.PRODUCT.FLIGHT_INCLUDED, width: 25, height: 25 }))),
7894
9118
  hasTransfer && (React__default["default"].createElement("div", { className: "package-icons__icon" },
7895
- React__default["default"].createElement(Icon, { name: "ui-transfer", title: translations.PRODUCT.TRANSFER_INCLUDED })))))))));
9119
+ React__default["default"].createElement(Icon$1, { name: "ui-transfer", title: translations.PRODUCT.TRANSFER_INCLUDED, width: 25, height: 25 })))))))));
7896
9120
  };
7897
9121
 
7898
9122
  var AgeSelect = function (_a) {
@@ -7925,18 +9149,14 @@ var AmountInput = function (_a) {
7925
9149
  onChange(Math.max(value - 1, min !== null && min !== void 0 ? min : 0));
7926
9150
  }
7927
9151
  };
7928
- var handleInputChange = function (event) {
7929
- if (onChange) {
7930
- var value_1 = event.target.valueAsNumber < (min !== null && min !== void 0 ? min : 0) ? min !== null && min !== void 0 ? min : 0 : event.target.valueAsNumber;
7931
- onChange(value_1);
7932
- }
7933
- };
7934
- return (React__default["default"].createElement("div", { className: "decrement-increment" },
9152
+ return (React__default["default"].createElement("div", { className: buildClassName(["decrement-increment", disabled && "decrement-increment--disabled"]) },
7935
9153
  React__default["default"].createElement("label", { className: "decrement-increment__label" }, label),
7936
9154
  React__default["default"].createElement("div", { className: "decrement-increment__ui" },
7937
- React__default["default"].createElement("button", { type: "button", className: "button button--decrement", title: translations.INPUT.DECREASE, disabled: disabled, onClick: handleDecreaseClick }),
7938
- React__default["default"].createElement("input", { type: "number", min: min, value: value, className: "decrement-increment__input", onChange: handleInputChange }),
7939
- React__default["default"].createElement("button", { type: "button", className: "button button--increment", title: translations.INPUT.INCREASE, disabled: disabled, onClick: handleIncreaseClick }))));
9155
+ !disabled && (React__default["default"].createElement("button", { type: "button", className: "button button--decrement", title: translations.INPUT.DECREASE, disabled: disabled, onClick: handleDecreaseClick },
9156
+ React__default["default"].createElement(Icon$1, { name: "ui-min" }))),
9157
+ React__default["default"].createElement("span", null, value),
9158
+ !disabled && (React__default["default"].createElement("button", { type: "button", className: "button button--increment", title: translations.INPUT.INCREASE, disabled: disabled, onClick: handleIncreaseClick },
9159
+ React__default["default"].createElement(Icon$1, { name: "ui-plus" }))))));
7940
9160
  };
7941
9161
 
7942
9162
  var Rooms = function (_a) {
@@ -7953,62 +9173,63 @@ var Rooms = function (_a) {
7953
9173
  };
7954
9174
  return (React__default["default"].createElement("div", { className: "booking-product__rooms" },
7955
9175
  React__default["default"].createElement("div", { className: "booking-product__rooms-title" },
7956
- React__default["default"].createElement(Icon, { name: "ui-user" }),
9176
+ React__default["default"].createElement(Icon$1, { name: "ui-user", width: 25, height: 25 }),
7957
9177
  translations.PRODUCT.WHO_YOU_TRAVELING_WITH),
7958
- React__default["default"].createElement("div", { className: "booking-product__rooms__header" },
7959
- React__default["default"].createElement("div", { className: "booking-product__rooms__heading" }, translations.SHARED.ROOMS),
7960
- React__default["default"].createElement("div", { className: "booking-product__rooms__actions" },
7961
- React__default["default"].createElement(AmountInput, { label: translations.PRODUCT.NUMBER_OF_ROOMS, value: currentRooms.length, disabled: isDisabled, min: 1, onChange: function (value) {
7962
- setRoomState(lodash.range(0, value).map(function (roomIndex) { var _a; return (_a = currentRooms[roomIndex]) !== null && _a !== void 0 ? _a : { adults: 2, children: 0, childAges: [] }; }));
7963
- setIsTouched(true);
7964
- } }))),
7965
- React__default["default"].createElement("div", { className: "booking-product__rooms-body" }, currentRooms.map(function (room, roomIndex) { return (React__default["default"].createElement("div", { className: "booking-product__room", key: roomIndex },
7966
- React__default["default"].createElement("div", { className: "booking-product__room__header" },
7967
- React__default["default"].createElement("h3", { className: "booking-product__room__heading" }, translations.SHARED.ROOM + " " + (roomIndex + 1)),
7968
- React__default["default"].createElement("div", { className: "booking-product__room__actions" },
7969
- React__default["default"].createElement(AmountInput, { label: translations.SHARED.ADULTS, value: room.adults, disabled: isDisabled, min: 1, onChange: function (value) {
7970
- setRoomState(currentRooms.map(function (room, i) {
7971
- return i === roomIndex ? __assign(__assign({}, room), { adults: value }) : room;
7972
- }));
7973
- setIsTouched(true);
7974
- } }),
7975
- React__default["default"].createElement(AmountInput, { label: translations.SHARED.CHILDREN, value: room.children, disabled: isDisabled, onChange: function (value) {
7976
- setRoomState(currentRooms.map(function (room, i) {
7977
- return i === roomIndex
7978
- ? __assign(__assign({}, room), { children: value, childAges: lodash.range(0, value).map(function (childIndex) { var _a; return (_a = room.childAges[childIndex]) !== null && _a !== void 0 ? _a : 0; }) }) : room;
7979
- }));
7980
- setIsTouched(true);
7981
- } }))),
7982
- room.children > 0 && (React__default["default"].createElement("div", { className: "booking-product__room-children" },
7983
- React__default["default"].createElement("label", { className: "booking-product__room-children-label" }, translations.PRODUCT.AGE_BY_DEPARTURE_DATE),
7984
- React__default["default"].createElement("div", { className: "booking-product__room-children-ages" }, lodash.range(0, room.children).map(function (childIndex) { return (React__default["default"].createElement(AgeSelect, { key: childIndex, value: room.childAges[childIndex], disabled: isDisabled, onChange: function (value) {
7985
- setRoomState(currentRooms.map(function (room, selectorRoomIndex) {
7986
- return roomIndex === selectorRoomIndex
7987
- ? __assign(__assign({}, room), { childAges: room.childAges
7988
- .map(function (age, i) { return (childIndex === i ? value : age); })
7989
- .sort(function (a, b) { return b - a; }) }) : room;
7990
- }));
7991
- setIsTouched(true);
7992
- } })); })))))); })),
7993
- React__default["default"].createElement("div", { className: "booking-product__rooms-footer" }, isDisabled
7994
- ? (React__default["default"].createElement("button", { type: "button", className: buildClassName(["cta", "cta--primary", "cta--add"]), title: translations.PRODUCT.EDIT, onClick: function () {
7995
- console.log('EDIT CLICK');
7996
- setIsDisabled(false);
7997
- setIsTouched(false);
7998
- } },
7999
- React__default["default"].createElement("span", null,
8000
- React__default["default"].createElement(Icon, { name: "ui-pencil" }),
8001
- translations.PRODUCT.EDIT)))
8002
- : (React__default["default"].createElement("button", { type: "button", className: buildClassName(["cta", (isTouched ? "cta--primary" : "cta--secondary"), "cta--add"]), title: translations.PRODUCT.APPLY, onClick: handleCloseClick },
8003
- React__default["default"].createElement("span", null,
8004
- React__default["default"].createElement(Icon, { name: "ui-check" }),
8005
- translations.PRODUCT.APPLY))))));
9178
+ React__default["default"].createElement("div", { className: "booking-product__rooms__container" },
9179
+ React__default["default"].createElement("div", { className: "booking-product__rooms__wrapper" },
9180
+ React__default["default"].createElement("div", { className: "booking-product__rooms__header" },
9181
+ React__default["default"].createElement("div", { className: "booking-product__rooms__heading" }, translations.SHARED.ROOMS),
9182
+ React__default["default"].createElement("div", { className: "booking-product__rooms__actions" },
9183
+ React__default["default"].createElement(AmountInput, { label: translations.PRODUCT.NUMBER_OF_ROOMS, value: currentRooms.length, disabled: isDisabled, min: 1, onChange: function (value) {
9184
+ setRoomState(lodash.range(0, value).map(function (roomIndex) { var _a; return (_a = currentRooms[roomIndex]) !== null && _a !== void 0 ? _a : { adults: 2, children: 0, childAges: [] }; }));
9185
+ setIsTouched(true);
9186
+ } }))),
9187
+ React__default["default"].createElement("div", { className: "booking-product__rooms-body" }, currentRooms.map(function (room, roomIndex) { return (React__default["default"].createElement("div", { className: "booking-product__room", key: roomIndex },
9188
+ React__default["default"].createElement("div", { className: "booking-product__room__header" },
9189
+ React__default["default"].createElement("h3", { className: "booking-product__room__heading" }, translations.SHARED.ROOM + " " + (roomIndex + 1)),
9190
+ React__default["default"].createElement("div", { className: "booking-product__room__actions" },
9191
+ React__default["default"].createElement(AmountInput, { label: translations.SHARED.ADULTS, value: room.adults, disabled: isDisabled, min: 1, onChange: function (value) {
9192
+ setRoomState(currentRooms.map(function (room, i) {
9193
+ return i === roomIndex ? __assign(__assign({}, room), { adults: value }) : room;
9194
+ }));
9195
+ setIsTouched(true);
9196
+ } }),
9197
+ React__default["default"].createElement(AmountInput, { label: translations.SHARED.CHILDREN, value: room.children, disabled: isDisabled, onChange: function (value) {
9198
+ setRoomState(currentRooms.map(function (room, i) {
9199
+ return i === roomIndex
9200
+ ? __assign(__assign({}, room), { children: value, childAges: lodash.range(0, value).map(function (childIndex) { var _a; return (_a = room.childAges[childIndex]) !== null && _a !== void 0 ? _a : 0; }) }) : room;
9201
+ }));
9202
+ setIsTouched(true);
9203
+ } }))),
9204
+ room.children > 0 && (React__default["default"].createElement("div", { className: "booking-product__room-children" },
9205
+ React__default["default"].createElement("label", { className: "booking-product__room-children-label" }, translations.PRODUCT.AGE_BY_DEPARTURE_DATE),
9206
+ React__default["default"].createElement("div", { className: "booking-product__room-children-ages" }, lodash.range(0, room.children).map(function (childIndex) { return (React__default["default"].createElement(AgeSelect, { key: childIndex, value: room.childAges[childIndex], disabled: isDisabled, onChange: function (value) {
9207
+ setRoomState(currentRooms.map(function (room, selectorRoomIndex) {
9208
+ return roomIndex === selectorRoomIndex
9209
+ ? __assign(__assign({}, room), { childAges: room.childAges
9210
+ .map(function (age, i) { return (childIndex === i ? value : age); })
9211
+ .sort(function (a, b) { return b - a; }) }) : room;
9212
+ }));
9213
+ setIsTouched(true);
9214
+ } })); })))))); }))),
9215
+ React__default["default"].createElement("div", { className: "booking-product__rooms-footer" }, isDisabled
9216
+ ? (React__default["default"].createElement("button", { type: "button", className: buildClassName(["cta--secondary", "cta--add"]), title: translations.PRODUCT.EDIT, onClick: function () {
9217
+ setIsDisabled(false);
9218
+ setIsTouched(false);
9219
+ } },
9220
+ React__default["default"].createElement("span", null,
9221
+ React__default["default"].createElement(Icon$1, { name: "ui-pencil", width: 25, height: 25 }),
9222
+ translations.PRODUCT.EDIT)))
9223
+ : (React__default["default"].createElement("button", { type: "button", className: buildClassName(["cta", (isTouched ? "cta--secondary" : "cta--secondary"), "cta--add"]), title: translations.PRODUCT.APPLY, onClick: handleCloseClick },
9224
+ React__default["default"].createElement("span", null,
9225
+ React__default["default"].createElement(Icon$1, { name: "ui-check" }),
9226
+ translations.PRODUCT.APPLY)))))));
8006
9227
  };
8007
9228
 
8008
9229
  var Product = function (_a) {
8009
9230
  var _b, _c;
8010
9231
  var productCode = _a.productCode, productName = _a.productName, duration = _a.duration, rating = _a.rating;
8011
- var _d = React.useContext(SettingsContext$1), apiKey = _d.apiKey, apiUrl = _d.apiUrl, officeId = _d.officeId, agentId = _d.agentId, catalogueId = _d.catalogueId, includeFlights = _d.includeFlights, language = _d.language, basePath = _d.basePath, priceMode = _d.priceMode;
9232
+ var _d = React.useContext(SettingsContext$1), apiKey = _d.apiKey, apiUrl = _d.apiUrl, officeId = _d.officeId, agentId = _d.agentId, catalogueId = _d.catalogueId, includeFlights = _d.includeFlights, language = _d.language, basePath = _d.basePath, priceMode = _d.priceMode, addProductToQuery = _d.addProductToQuery, isOffer = _d.isOffer;
8012
9233
  var translations = getTranslations(language);
8013
9234
  var _e = React.useState(false), loaded = _e[0], setLoaded = _e[1];
8014
9235
  var _f = React.useState(false), isLoading = _f[0], setIsLoading = _f[1];
@@ -8017,11 +9238,11 @@ var Product = function (_a) {
8017
9238
  var _j = React.useState(false), hasTransfer = _j[0], setHasTransfer = _j[1];
8018
9239
  var _k = React.useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _k[0], setRooms = _k[1];
8019
9240
  var _l = React.useState(), dateRange = _l[0], setDateRange = _l[1];
9241
+ var _m = React.useState(productName), packageProductName = _m[0], setPackageProductName = _m[1];
8020
9242
  var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
8021
9243
  var apiSettingsState, startDate, endDate, requestRooms, request, response, selectedOption, hasFlight_1, hasTranfer;
8022
- var _a;
8023
- return __generator$1(this, function (_b) {
8024
- switch (_b.label) {
9244
+ return __generator$1(this, function (_a) {
9245
+ switch (_a.label) {
8025
9246
  case 0:
8026
9247
  if (!(loaded &&
8027
9248
  productCode &&
@@ -8067,15 +9288,18 @@ var Product = function (_a) {
8067
9288
  setIsLoading(true);
8068
9289
  return [4 /*yield*/, packageApi$1.fetchDetails(request, signal, language, apiSettingsState)];
8069
9290
  case 1:
8070
- response = _b.sent();
8071
- if (!response.errorCode) {
8072
- selectedOption = (_a = response.payload) === null || _a === void 0 ? void 0 : _a.options.find(function (x) { return x.isSelected; });
9291
+ response = _a.sent();
9292
+ if (!response.errorCode && response.payload) {
9293
+ selectedOption = response.payload.options.find(function (x) { return x.isSelected; });
8073
9294
  if (selectedOption) {
8074
9295
  hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
8075
9296
  hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
8076
9297
  setPrice(selectedOption.price);
8077
9298
  setHasFlight(hasFlight_1);
8078
9299
  setHasTransfer(hasTranfer);
9300
+ if (!productName) {
9301
+ setPackageProductName(selectedOption.name);
9302
+ }
8079
9303
  }
8080
9304
  }
8081
9305
  else {
@@ -8084,7 +9308,7 @@ var Product = function (_a) {
8084
9308
  setHasTransfer(false);
8085
9309
  }
8086
9310
  setIsLoading(false);
8087
- _b.label = 2;
9311
+ _a.label = 2;
8088
9312
  case 2: return [2 /*return*/];
8089
9313
  }
8090
9314
  });
@@ -8104,11 +9328,17 @@ var Product = function (_a) {
8104
9328
  params["endDate"] = dateFns.format(dateRange.toDate, "yyyy-MM-dd");
8105
9329
  }
8106
9330
  params["catalog"] = catalogueId.toString();
9331
+ if (addProductToQuery) {
9332
+ params["productCode"] = productCode;
9333
+ params["productName"] = JsonURL__default["default"].stringify(packageProductName, { AQF: true });
9334
+ }
8107
9335
  var path = window.location.pathname;
8108
9336
  var paramString = Object.keys(params)
8109
9337
  .map(function (key) { return "".concat(key, "=").concat(params[key]); })
8110
9338
  .join("&");
8111
- window.location.href = "".concat(path).concat(path.endsWith("/") ? "" : "/").concat(basePath, "?").concat(paramString);
9339
+ window.location.href = basePath.startsWith('/')
9340
+ ? "".concat(window.location.protocol, "//").concat(window.location.host).concat(basePath, "?").concat(paramString)
9341
+ : "".concat(path).concat(path.endsWith("/") ? "" : "/").concat(basePath, "?").concat(paramString);
8112
9342
  };
8113
9343
  var handleRoomChange = function (rooms) {
8114
9344
  setRooms(rooms);
@@ -8166,11 +9396,11 @@ var Product = function (_a) {
8166
9396
  var durationCount = 0;
8167
9397
  var priceText = formatPriceByMode(price, priceMode, personCount, durationCount, translations.PRODUCT.PER_PERSON, translations.PRODUCT.PER_NIGHT, translations.PRODUCT.PER_PERSON_PER_NIGHT);
8168
9398
  return (React__default["default"].createElement("div", { className: "booking-product" },
8169
- React__default["default"].createElement(Header, { name: productName, rating: rating, priceText: priceText, isLoading: isLoading, hasFlight: hasFlight, hasTransfer: hasTransfer }),
9399
+ React__default["default"].createElement(Header, { name: packageProductName, rating: rating, priceText: priceText, isLoading: isLoading, hasFlight: hasFlight, hasTransfer: hasTransfer }),
8170
9400
  React__default["default"].createElement("div", { className: "booking-product__body" },
8171
9401
  React__default["default"].createElement(Rooms, { rooms: rooms, onChange: handleRoomChange }),
8172
9402
  React__default["default"].createElement(Dates, { value: dateRange, duration: duration, onChange: handleDateChange })),
8173
- React__default["default"].createElement(Footer, { priceText: priceText, handleBookClick: handleBookClick, isLoading: isLoading })));
9403
+ React__default["default"].createElement(Footer, { priceText: priceText, isLoading: isLoading, isOffer: isOffer, handleBookClick: handleBookClick })));
8174
9404
  };
8175
9405
 
8176
9406
  var BookingProduct = function (_a) {
@@ -8179,33 +9409,13 @@ var BookingProduct = function (_a) {
8179
9409
  React__default["default"].createElement(Product, { productCode: productCode, productName: productName, rating: rating })));
8180
9410
  };
8181
9411
 
8182
- var _a$2;
8183
- var initialState$3 = {
8184
- apiUrl: "",
8185
- apiKey: "",
8186
- };
8187
- var apiSettingsSlice = toolkit.createSlice({
8188
- name: "settings",
8189
- initialState: initialState$3,
8190
- reducers: {
8191
- setApiUrl: function (state, action) {
8192
- state.apiUrl = action.payload;
8193
- },
8194
- setApiKey: function (state, action) {
8195
- state.apiKey = action.payload;
8196
- },
8197
- },
8198
- });
8199
- (_a$2 = apiSettingsSlice.actions, _a$2.setApiUrl); _a$2.setApiKey;
8200
- var apiSettingsReducer = apiSettingsSlice.reducer;
8201
-
8202
9412
  var CHILD_MAX_AGE = 17;
8203
- var initialState$2 = {
9413
+ var initialState$3 = {
8204
9414
  formValues: undefined,
8205
9415
  };
8206
9416
  var travelersFormSlice = toolkit.createSlice({
8207
9417
  name: "travelersForm",
8208
- initialState: initialState$2,
9418
+ initialState: initialState$3,
8209
9419
  reducers: {
8210
9420
  setFormValues: function (state, action) {
8211
9421
  state.formValues = action.payload;
@@ -8370,7 +9580,7 @@ var updateBookingGroups = function (groups, changedLines) {
8370
9580
  }) })); });
8371
9581
  };
8372
9582
 
8373
- var _a$1;
9583
+ var _a$2;
8374
9584
  var fetchPriceDetails = toolkit.createAsyncThunk("priceDetails/fetchPriceDetails", function (_, _a) {
8375
9585
  var dispatch = _a.dispatch, getState = _a.getState, signal = _a.signal;
8376
9586
  return __awaiter$1(void 0, void 0, void 0, function () {
@@ -8468,7 +9678,7 @@ var selectNotifications = function (state) {
8468
9678
  return state.priceDetails.notifications;
8469
9679
  };
8470
9680
  var setFetchingPriceDetails = priceDetailsSlice.actions.setFetchingPriceDetails;
8471
- var resetPriceDetails = (_a$1 = priceDetailsSlice.actions, _a$1.resetPriceDetails), setNotifications = _a$1.setNotifications;
9681
+ var resetPriceDetails = (_a$2 = priceDetailsSlice.actions, _a$2.resetPriceDetails), setNotifications = _a$2.setNotifications;
8472
9682
  var priceDetailsReducer = priceDetailsSlice.reducer;
8473
9683
 
8474
9684
  var selectGeneratePaymentUrl = function (state) {
@@ -8731,8 +9941,8 @@ var parseGender = function (gender) {
8731
9941
  }
8732
9942
  };
8733
9943
 
8734
- var _a;
8735
- var initialState$1 = {
9944
+ var _a$1;
9945
+ var initialState$2 = {
8736
9946
  officeId: 1,
8737
9947
  languageCode: "nl-BE",
8738
9948
  bookingOptions: {
@@ -8984,7 +10194,7 @@ var changePackageOption = function (state) {
8984
10194
  };
8985
10195
  var bookingSlice = toolkit.createSlice({
8986
10196
  name: "booking",
8987
- initialState: initialState$1,
10197
+ initialState: initialState$2,
8988
10198
  reducers: {
8989
10199
  setOfficeId: function (state, action) {
8990
10200
  state.officeId = action.payload;
@@ -9198,37 +10408,62 @@ var bookingSlice = toolkit.createSlice({
9198
10408
  });
9199
10409
  },
9200
10410
  });
9201
- var setOfficeId = (_a = bookingSlice.actions, _a.setOfficeId), setLanguageCode = _a.setLanguageCode, setTranslations = _a.setTranslations, setBookingOptions = _a.setBookingOptions, setBookingType = _a.setBookingType, setProductAttributes = _a.setProductAttributes, setBookingAttributes = _a.setBookingAttributes, setCalculateDeposit = _a.setCalculateDeposit, setBookingNumber = _a.setBookingNumber, setIsRetry = _a.setIsRetry, setFetchingPackage = _a.setFetchingPackage, setPackage = _a.setPackage, setPackageRooms = _a.setPackageRooms, setPackageOptionPax = _a.setPackageOptionPax, setPackageOptionUnits = _a.setPackageOptionUnits, setPackageGroups = _a.setPackageGroups, setSkipPayment = _a.setSkipPayment, setGeneratePaymentUrl = _a.setGeneratePaymentUrl, setTagIds = _a.setTagIds, setAgentAdressId = _a.setAgentAdressId, setBookingRemarks = _a.setBookingRemarks, setVoucherCodes = _a.setVoucherCodes, setCurrentStep = _a.setCurrentStep, setPackageAirlineGroups = _a.setPackageAirlineGroups, setPackageAirportGroups = _a.setPackageAirportGroups, setFlights = _a.setFlights, setAccommodationViewId = _a.setAccommodationViewId;
10411
+ var setOfficeId = (_a$1 = bookingSlice.actions, _a$1.setOfficeId), setLanguageCode = _a$1.setLanguageCode, setTranslations = _a$1.setTranslations, setBookingOptions = _a$1.setBookingOptions, setBookingType = _a$1.setBookingType, setProductAttributes = _a$1.setProductAttributes, setBookingAttributes = _a$1.setBookingAttributes, setCalculateDeposit = _a$1.setCalculateDeposit, setBookingNumber = _a$1.setBookingNumber, setIsRetry = _a$1.setIsRetry, setFetchingPackage = _a$1.setFetchingPackage, setPackage = _a$1.setPackage, setPackageRooms = _a$1.setPackageRooms, setPackageOptionPax = _a$1.setPackageOptionPax, setPackageOptionUnits = _a$1.setPackageOptionUnits, setPackageGroups = _a$1.setPackageGroups, setSkipPayment = _a$1.setSkipPayment, setGeneratePaymentUrl = _a$1.setGeneratePaymentUrl, setTagIds = _a$1.setTagIds, setAgentAdressId = _a$1.setAgentAdressId, setBookingRemarks = _a$1.setBookingRemarks, setVoucherCodes = _a$1.setVoucherCodes, setCurrentStep = _a$1.setCurrentStep, setPackageAirlineGroups = _a$1.setPackageAirlineGroups, setPackageAirportGroups = _a$1.setPackageAirportGroups, setFlights = _a$1.setFlights, setAccommodationViewId = _a$1.setAccommodationViewId;
9202
10412
  var bookingReducer = bookingSlice.reducer;
9203
10413
 
9204
- var initialState = {
9205
- userValidated: false,
9206
- };
9207
- var summarySlice = toolkit.createSlice({
9208
- name: "summary",
9209
- initialState: initialState,
9210
- reducers: {
9211
- setUserValidated: function (state, action) {
9212
- state.userValidated = action.payload;
9213
- },
10414
+ var SettingsContext = React__default["default"].createContext({
10415
+ language: "nl-BE",
10416
+ generatePaymentUrl: false,
10417
+ currency: "EUR",
10418
+ officeId: 1,
10419
+ tagIds: [],
10420
+ hideAgentSelection: false,
10421
+ agentAdressId: undefined,
10422
+ affiliateSlug: undefined,
10423
+ productPath: "/",
10424
+ basePath: "/boeken",
10425
+ roomOptions: {
10426
+ pathSuffix: "/",
9214
10427
  },
9215
- });
9216
- var setUserValidated = summarySlice.actions.setUserValidated;
9217
- var selectUserValidated = function (state) {
9218
- return state.summary.userValidated;
9219
- };
9220
- var summaryReducer = summarySlice.reducer;
9221
-
9222
- var store = toolkit.configureStore({
9223
- reducer: {
9224
- booking: bookingReducer,
9225
- travelersForm: travelersFormReducer,
9226
- priceDetails: priceDetailsReducer,
9227
- summary: summaryReducer,
9228
- apiSettings: apiSettingsReducer,
10428
+ flightOptions: {
10429
+ pathSuffix: "/vluchten",
9229
10430
  },
9230
- });
9231
- var useAppDispatch = function () { return reactRedux.useDispatch(); };
10431
+ options: {
10432
+ pathSuffix: "/opties",
10433
+ },
10434
+ travellers: {
10435
+ pathSuffix: "/reizigers",
10436
+ },
10437
+ summary: {
10438
+ pathSuffix: "/samenvatting",
10439
+ checkboxes: null,
10440
+ },
10441
+ confirmation: {
10442
+ pathSuffix: "/bevestiging",
10443
+ },
10444
+ error: {
10445
+ pathSuffix: "/mislukt",
10446
+ },
10447
+ companyContactEmail: "info@tidesoftware.be",
10448
+ companyContactPhone: "093362299",
10449
+ showProductCardRating: false,
10450
+ showSidebarDeposit: false,
10451
+ sidebarHeaderComponent: null,
10452
+ sidebarFooterComponent: null,
10453
+ loaderComponent: null,
10454
+ icons: null,
10455
+ bookingOptions: {
10456
+ b2b: {
10457
+ entryStatus: 0,
10458
+ },
10459
+ b2b2c: {
10460
+ entryStatus: 0,
10461
+ },
10462
+ b2c: {
10463
+ entryStatus: 0,
10464
+ },
10465
+ },
10466
+ });
9232
10467
 
9233
10468
  var StepIndicators = function (_a) {
9234
10469
  var currentStep = _a.currentStep;
@@ -9268,6 +10503,91 @@ var StepRoute = function (_a) {
9268
10503
  React__default["default"].createElement("div", { className: "booking__panel-body" }, component))));
9269
10504
  };
9270
10505
 
10506
+ var _a;
10507
+ var initialState$1 = {
10508
+ apiUrl: "",
10509
+ apiKey: "",
10510
+ };
10511
+ var apiSettingsSlice = toolkit.createSlice({
10512
+ name: "settings",
10513
+ initialState: initialState$1,
10514
+ reducers: {
10515
+ setApiUrl: function (state, action) {
10516
+ state.apiUrl = action.payload;
10517
+ },
10518
+ setApiKey: function (state, action) {
10519
+ state.apiKey = action.payload;
10520
+ },
10521
+ },
10522
+ });
10523
+ (_a = apiSettingsSlice.actions, _a.setApiUrl); _a.setApiKey;
10524
+ var apiSettingsReducer = apiSettingsSlice.reducer;
10525
+
10526
+ var initialState = {
10527
+ userValidated: false,
10528
+ };
10529
+ var summarySlice = toolkit.createSlice({
10530
+ name: "summary",
10531
+ initialState: initialState,
10532
+ reducers: {
10533
+ setUserValidated: function (state, action) {
10534
+ state.userValidated = action.payload;
10535
+ },
10536
+ },
10537
+ });
10538
+ var setUserValidated = summarySlice.actions.setUserValidated;
10539
+ var selectUserValidated = function (state) {
10540
+ return state.summary.userValidated;
10541
+ };
10542
+ var summaryReducer = summarySlice.reducer;
10543
+
10544
+ var store = toolkit.configureStore({
10545
+ reducer: {
10546
+ booking: bookingReducer,
10547
+ travelersForm: travelersFormReducer,
10548
+ priceDetails: priceDetailsReducer,
10549
+ summary: summaryReducer,
10550
+ apiSettings: apiSettingsReducer,
10551
+ },
10552
+ });
10553
+ var useAppDispatch = function () { return reactRedux.useDispatch(); };
10554
+
10555
+ var Icon = function (_a) {
10556
+ var name = _a.name, className = _a.className, title = _a.title, width = _a.width, height = _a.height;
10557
+ var icons = React.useContext(SettingsContext).icons;
10558
+ if (icons) {
10559
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10560
+ .filter(function (className) { return !lodash.isEmpty(className); })
10561
+ .join(" "), width: width, height: height },
10562
+ title && React__default["default"].createElement("title", null, title),
10563
+ React__default["default"].createElement("use", { href: "".concat(icons, "#").concat(name) })));
10564
+ }
10565
+ switch (name) {
10566
+ case "ui-chevron":
10567
+ case "ui-error":
10568
+ case "ui-tel":
10569
+ case "ui-mail":
10570
+ case "ui-home":
10571
+ case "ui-filter":
10572
+ case "ui-close":
10573
+ case "ui-ticket":
10574
+ case "ui-payback":
10575
+ case "ui-backpack":
10576
+ case "ui-suitcase":
10577
+ case "ui-business-lounge":
10578
+ case "ui-shopping-bag":
10579
+ case "ui-priority":
10580
+ case "ui-tooltip":
10581
+ case "ui-tooltip":
10582
+ case "ui-qsm-location":
10583
+ case "ui-plane-depart":
10584
+ case "ui-plane-arrive":
10585
+ case "ui-clock":
10586
+ default:
10587
+ return null;
10588
+ }
10589
+ };
10590
+
9271
10591
  var Message = function (_a) {
9272
10592
  var type = _a.type, title = _a.title, actionComponent = _a.actionComponent, children = _a.children;
9273
10593
  return (React__default["default"].createElement("div", { className: buildClassName([
@@ -9275,7 +10595,7 @@ var Message = function (_a) {
9275
10595
  type === "error" && "booking-message--error",
9276
10596
  type === "success" && "booking-message--success",
9277
10597
  ]) },
9278
- type === "error" && React__default["default"].createElement(Icon$1, { name: "ui-error" }),
10598
+ type === "error" && React__default["default"].createElement(Icon, { name: "ui-error" }),
9279
10599
  React__default["default"].createElement("h4", { className: "booking-message__heading" }, title),
9280
10600
  React__default["default"].createElement("div", { className: "booking-message__text" }, children),
9281
10601
  actionComponent && (React__default["default"].createElement("div", { className: "booking-message__actions" }, actionComponent))));
@@ -9296,21 +10616,24 @@ var Confirmation = function () {
9296
10616
  }
9297
10617
  var translations = reactRedux.useSelector(selectTranslations);
9298
10618
  var encodedMailSubject = encodeURI(translations.CONFIRMATION.MAIL_SUBJECT);
10619
+ var titleText = settings.isOffer
10620
+ ? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
10621
+ : format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
9299
10622
  return (React__default["default"].createElement("div", { className: "form", id: "booking--confirmation" },
9300
10623
  React__default["default"].createElement("div", { className: "form__region" },
9301
10624
  React__default["default"].createElement("div", { className: "form__row" },
9302
10625
  React__default["default"].createElement("div", { className: "form__group" },
9303
- React__default["default"].createElement(Message, { type: "success", title: format(translations.CONFIRMATION.TITLE_TEXT, [bookingNumber]), actionComponent: React__default["default"].createElement("div", { className: "sm" },
10626
+ React__default["default"].createElement(Message, { type: "success", title: titleText, actionComponent: React__default["default"].createElement("div", { className: "sm" },
9304
10627
  React__default["default"].createElement("a", { href: "tel://".concat(settings.companyContactPhone), className: "sm__icon" },
9305
- React__default["default"].createElement(Icon$1, { name: "tel" })),
10628
+ React__default["default"].createElement(Icon, { name: "tel" })),
9306
10629
  React__default["default"].createElement("a", { href: "mailto://".concat(settings.companyContactEmail), className: "sm__icon" },
9307
- React__default["default"].createElement(Icon$1, { name: "mail" })),
10630
+ React__default["default"].createElement(Icon, { name: "mail" })),
9308
10631
  React__default["default"].createElement("a", { href: "/", className: "sm__icon" },
9309
- React__default["default"].createElement(Icon$1, { name: "home" }))) },
10632
+ React__default["default"].createElement(Icon, { name: "home" }))) },
9310
10633
  React__default["default"].createElement("p", null,
9311
10634
  translations.CONFIRMATION.MESSAGE_TEXT1,
9312
10635
  React__default["default"].createElement("br", null),
9313
- translations.CONFIRMATION.MESSAGE_TEXT2),
10636
+ settings.isOffer ? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER : translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
9314
10637
  React__default["default"].createElement("p", null,
9315
10638
  translations.CONFIRMATION.QUESTIONS_TEXT1,
9316
10639
  " ",
@@ -9816,8 +11139,7 @@ var FlightFilter = function (_a) {
9816
11139
  };
9817
11140
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
9818
11141
  React__default["default"].createElement("button", { type: "button", className: "cta cta--filter", onClick: function () { return setFiltersVisible(!filtersVisible); } },
9819
- React__default["default"].createElement("svg", { width: 11, height: 10 },
9820
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#filter" })),
11142
+ React__default["default"].createElement(Icon, { name: "filter", width: 11, height: 10 }),
9821
11143
  React__default["default"].createElement("span", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
9822
11144
  filtersVisible),
9823
11145
  React__default["default"].createElement("div", { className: buildClassName(["flight__filter", filtersVisible && "flight__filter--active"]) },
@@ -10020,7 +11342,7 @@ var FlightOptionFlight = function (_a) {
10020
11342
  React__default["default"].createElement("div", { className: "flight__flight__container" },
10021
11343
  React__default["default"].createElement("div", { className: "flight__flight__wrapper" },
10022
11344
  React__default["default"].createElement("div", { className: "flight__logo__wrapper" },
10023
- React__default["default"].createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/".concat(details.airlineCode, ".png?height=30"), alt: "", className: "flight__logo" }),
11345
+ React__default["default"].createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/".concat(details.airlineCode, ".png?height=256"), alt: "", className: "flight__logo" }),
10024
11346
  React__default["default"].createElement("span", null, details.airline)),
10025
11347
  React__default["default"].createElement("div", { className: "flight__info" },
10026
11348
  React__default["default"].createElement("div", { className: "flight__info__times" },
@@ -10046,8 +11368,7 @@ var FlightOptionFlight = function (_a) {
10046
11368
  details.isNextDay && (React__default["default"].createElement("span", { className: "flight__info__times__days" }, translations.FLIGHTS_FORM.PLUS_ONE_DAY))))),
10047
11369
  React__default["default"].createElement("div", { className: "flight__detail__btn__wrapper" },
10048
11370
  React__default["default"].createElement("div", { className: buildClassName(["flight__detail__btn", isDetailVisible && "flight__detail__btn--active"]), onClick: function () { return setIsDetailVisible(!isDetailVisible); } },
10049
- React__default["default"].createElement("svg", { width: 16, height: 16, className: "flight__detail__btn__arrow" },
10050
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#chevron" }))))),
11371
+ React__default["default"].createElement(Icon, { name: "chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
10051
11372
  React__default["default"].createElement("div", { className: buildClassName(["flight__detail", isDetailVisible && "flight__detail--active"]) }, details.flightLines.map(function (flightLine, flightLineIndex) { return (React__default["default"].createElement(React__default["default"].Fragment, { key: flightLineIndex },
10052
11373
  React__default["default"].createElement("div", { className: "flight__info" },
10053
11374
  React__default["default"].createElement("div", { className: "flight__info__times__wrapper" },
@@ -10058,8 +11379,7 @@ var FlightOptionFlight = function (_a) {
10058
11379
  flightLine.departureAirport),
10059
11380
  React__default["default"].createElement("p", null, getDateText(flightLine.departureDate))),
10060
11381
  React__default["default"].createElement("div", null,
10061
- React__default["default"].createElement("svg", { width: 30, height: 20 },
10062
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#plane-depart" })))),
11382
+ React__default["default"].createElement(Icon, { name: "plane-depart", width: 30, height: 20 }))),
10063
11383
  React__default["default"].createElement("div", { className: "flight__info__duration" },
10064
11384
  React__default["default"].createElement("p", null, flightLine.travelDuration),
10065
11385
  React__default["default"].createElement("div", { className: "flight__info__duration__stops" }),
@@ -10067,8 +11387,7 @@ var FlightOptionFlight = function (_a) {
10067
11387
  React__default["default"].createElement("strong", null, flightLine.number)),
10068
11388
  React__default["default"].createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
10069
11389
  React__default["default"].createElement("div", null,
10070
- React__default["default"].createElement("svg", { width: 35, height: 25 },
10071
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#plane-arive" }))),
11390
+ React__default["default"].createElement(Icon, { name: "plane-arive", width: 35, height: 25 })),
10072
11391
  React__default["default"].createElement("div", { className: "flight__info__times flight__info__times--arrival" },
10073
11392
  React__default["default"].createElement("strong", null,
10074
11393
  flightLine.arrivalTime,
@@ -10079,8 +11398,7 @@ var FlightOptionFlight = function (_a) {
10079
11398
  React__default["default"].createElement("div", { className: "flight__info__times" }),
10080
11399
  React__default["default"].createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
10081
11400
  React__default["default"].createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
10082
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10083
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#clock" }))),
11401
+ React__default["default"].createElement(Icon, { name: "clock", width: 20, height: 20 })),
10084
11402
  React__default["default"].createElement("div", { className: "flight__info__duration__stoptime" },
10085
11403
  React__default["default"].createElement("span", null, translations.FLIGHTS_FORM.STOP_TIME),
10086
11404
  React__default["default"].createElement("strong", null, flightLine.waitDuration))),
@@ -10124,8 +11442,7 @@ var FlightOptionModal = function (_a) {
10124
11442
  React__default["default"].createElement("div", { className: "flight__rate__modal__header" },
10125
11443
  React__default["default"].createElement("h3", { className: "flight__rate__modal__header__title" }, "Selecteer een tarief"),
10126
11444
  React__default["default"].createElement("button", { className: "flight__rate__modal__header__close" },
10127
- React__default["default"].createElement("svg", { width: 18, height: 18 },
10128
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#close" })))),
11445
+ React__default["default"].createElement(Icon, { name: "close", width: 18, height: 18 }))),
10129
11446
  React__default["default"].createElement("div", { className: "flight__rate__modal__tabs" },
10130
11447
  React__default["default"].createElement("button", { className: "flight__rate__modal__tab flight__rate__modal__tab--active" }, "Economy / Economy premium"),
10131
11448
  React__default["default"].createElement("button", { className: "flight__rate__modal__tab" }, "Business / Business premium")),
@@ -10137,33 +11454,28 @@ var FlightOptionModal = function (_a) {
10137
11454
  React__default["default"].createElement("p", { className: "flight__rate__modal__card__header__class" }, "Klasse: Economy")),
10138
11455
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__items flight__rate__modal__card__items--top" },
10139
11456
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item flight__rate__modal__card__item--disabled" },
10140
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10141
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#ticket" })),
11457
+ React__default["default"].createElement(Icon, { name: "ticket", width: 20, height: 20 }),
10142
11458
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10143
11459
  React__default["default"].createElement("strong", null, "Wijzigingen in het ticket"),
10144
11460
  React__default["default"].createElement("p", null, "Wijzigingen toestaan"))),
10145
11461
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item flight__rate__modal__card__item--disabled" },
10146
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10147
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#payback" })),
11462
+ React__default["default"].createElement(Icon, { name: "payback", width: 20, height: 20 }),
10148
11463
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10149
11464
  React__default["default"].createElement("strong", null, "Terugbetaling van ticket"),
10150
11465
  React__default["default"].createElement("p", null, "Ticket retourneerbaar")))),
10151
11466
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__items" },
10152
11467
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10153
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10154
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#shopping-bag" })),
11468
+ React__default["default"].createElement(Icon, { name: "shopping-bag", width: 20, height: 20 }),
10155
11469
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10156
11470
  React__default["default"].createElement("strong", null, "persoonlijke items"),
10157
11471
  React__default["default"].createElement("p", null, "Gratis"))),
10158
11472
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10159
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10160
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#backpack" })),
11473
+ React__default["default"].createElement(Icon, { name: "backpack", width: 20, height: 20 }),
10161
11474
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10162
11475
  React__default["default"].createElement("strong", null, "Handbagage"),
10163
11476
  React__default["default"].createElement("p", null, "Gratis: 2 x 8kg"))),
10164
11477
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10165
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10166
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#suitcase" })),
11478
+ React__default["default"].createElement(Icon, { name: "suitcase", width: 20, height: 20 }),
10167
11479
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10168
11480
  React__default["default"].createElement("strong", null, "Ingecheckte bagage"),
10169
11481
  React__default["default"].createElement("p", null, "Gratis: 2 x 32kg"))))),
@@ -10177,33 +11489,28 @@ var FlightOptionModal = function (_a) {
10177
11489
  React__default["default"].createElement("p", { className: "flight__rate__modal__card__header__class" }, "Klasse: Economy")),
10178
11490
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__items flight__rate__modal__card__items--top" },
10179
11491
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10180
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10181
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#ticket" })),
11492
+ React__default["default"].createElement(Icon, { name: "ticket", width: 20, height: 20 }),
10182
11493
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10183
11494
  React__default["default"].createElement("strong", null, "Wijzigingen in het ticket"),
10184
11495
  React__default["default"].createElement("p", null, "Wijzigingen toestaan"))),
10185
11496
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10186
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10187
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#payback" })),
11497
+ React__default["default"].createElement(Icon, { name: "payback", width: 20, height: 20 }),
10188
11498
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10189
11499
  React__default["default"].createElement("strong", null, "Terugbetaling van ticket"),
10190
11500
  React__default["default"].createElement("p", null, "Ticket retourneerbaar")))),
10191
11501
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__items" },
10192
11502
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10193
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10194
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#shopping-bag" })),
11503
+ React__default["default"].createElement(Icon, { name: "shopping-bag", width: 20, height: 20 }),
10195
11504
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10196
11505
  React__default["default"].createElement("strong", null, "persoonlijke items"),
10197
11506
  React__default["default"].createElement("p", null, "Gratis"))),
10198
11507
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10199
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10200
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#backpack" })),
11508
+ React__default["default"].createElement(Icon, { name: "backpack", width: 20, height: 20 }),
10201
11509
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10202
11510
  React__default["default"].createElement("strong", null, "Handbagage"),
10203
11511
  React__default["default"].createElement("p", null, "Gratis: 2 x 8kg"))),
10204
11512
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10205
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10206
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#suitcase" })),
11513
+ React__default["default"].createElement(Icon, { name: "suitcase", width: 20, height: 20 }),
10207
11514
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10208
11515
  React__default["default"].createElement("strong", null, "Ingecheckte bagage"),
10209
11516
  React__default["default"].createElement("p", null, "Gratis: 2 x 32kg"))))),
@@ -10217,57 +11524,48 @@ var FlightOptionModal = function (_a) {
10217
11524
  React__default["default"].createElement("p", { className: "flight__rate__modal__card__header__class" }, "Klasse: Economy")),
10218
11525
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__items flight__rate__modal__card__items--top" },
10219
11526
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10220
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10221
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#ticket" })),
11527
+ React__default["default"].createElement(Icon, { name: "ticket", width: 20, height: 20 }),
10222
11528
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10223
11529
  React__default["default"].createElement("strong", null, "Wijzigingen in het ticket"),
10224
11530
  React__default["default"].createElement("p", null, "Wijzigingen toestaan"))),
10225
11531
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item flight__rate__modal__card__item--disabled" },
10226
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10227
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#payback" })),
11532
+ React__default["default"].createElement(Icon, { name: "payback", width: 20, height: 20 }),
10228
11533
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10229
11534
  React__default["default"].createElement("strong", null, "Terugbetaling van ticket"),
10230
11535
  React__default["default"].createElement("p", null, "Ticket retourneerbaar")))),
10231
11536
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__items" },
10232
11537
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10233
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10234
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#shopping-bag" })),
11538
+ React__default["default"].createElement(Icon, { name: "shopping-bag", width: 20, height: 20 }),
10235
11539
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10236
11540
  React__default["default"].createElement("strong", null, "persoonlijke items"),
10237
11541
  React__default["default"].createElement("p", null, "Gratis"))),
10238
11542
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10239
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10240
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#backpack" })),
11543
+ React__default["default"].createElement(Icon, { name: "backpack", width: 20, height: 20 }),
10241
11544
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10242
11545
  React__default["default"].createElement("strong", null, "Handbagage"),
10243
11546
  React__default["default"].createElement("p", null, "Gratis: 2 x 8kg"))),
10244
11547
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10245
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10246
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#suitcase" })),
11548
+ React__default["default"].createElement(Icon, { name: "suitcase", width: 20, height: 20 }),
10247
11549
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10248
11550
  React__default["default"].createElement("strong", null, "Ingecheckte bagage"),
10249
11551
  React__default["default"].createElement("p", null, "Gratis: 2 x 32kg"))),
10250
11552
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10251
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10252
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#seat-selection" })),
11553
+ React__default["default"].createElement(Icon, { name: "seat-selection", width: 20, height: 20 }),
10253
11554
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10254
11555
  React__default["default"].createElement("strong", null, "Stoelselectie"),
10255
11556
  React__default["default"].createElement("p", null, "kies uw stoel in het vliegtijg"))),
10256
11557
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10257
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10258
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#check-in" })),
11558
+ React__default["default"].createElement(Icon, { name: "check-in", width: 20, height: 20 }),
10259
11559
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10260
11560
  React__default["default"].createElement("strong", null, "Sneller inchecken"),
10261
11561
  React__default["default"].createElement("p", null, "Sla de wachtrijen voor de veiligheidscontrole over"))),
10262
11562
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10263
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10264
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#business-lounge" })),
11563
+ React__default["default"].createElement(Icon, { name: "business-lounge", width: 20, height: 20 }),
10265
11564
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10266
11565
  React__default["default"].createElement("strong", null, "Zakenlunge"),
10267
11566
  React__default["default"].createElement("p", null, "Ontspan voor uw vlucht"))),
10268
11567
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item" },
10269
- React__default["default"].createElement("svg", { width: 20, height: 20 },
10270
- React__default["default"].createElement("use", { href: "/icons/svg-sprite.svg#priority" })),
11568
+ React__default["default"].createElement(Icon, { name: "priority", width: 20, height: 20 }),
10271
11569
  React__default["default"].createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
10272
11570
  React__default["default"].createElement("strong", null, "Prioriteit"),
10273
11571
  React__default["default"].createElement("p", null, "Stap voor anderen aan boord"))))),
@@ -11453,12 +12751,7 @@ var RoomOptionsForm = function () {
11453
12751
  };
11454
12752
  var handleSubmit = function (e) {
11455
12753
  if (settings.skipRouter) {
11456
- if (settings.flightOptions.isHidden) {
11457
- dispatch(setCurrentStep(OPTIONS_FORM_STEP));
11458
- }
11459
- else {
11460
- dispatch(setCurrentStep(FLIGHT_OPTIONS_FORM_STEP));
11461
- }
12754
+ dispatch(setCurrentStep(OPTIONS_FORM_STEP));
11462
12755
  }
11463
12756
  else {
11464
12757
  router.navigate("".concat(settings.basePath).concat(settings.options.pathSuffix, "?").concat(bookingQueryString));
@@ -12122,7 +13415,7 @@ var Summary = function () {
12122
13415
  React__default["default"].createElement("div", { className: "form__row" },
12123
13416
  React__default["default"].createElement("div", { className: "form__group" },
12124
13417
  React__default["default"].createElement("div", { className: "info-message" },
12125
- React__default["default"].createElement(Icon$1, { name: "ui-tooltip", className: "icon--secondary-color" }),
13418
+ React__default["default"].createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
12126
13419
  React__default["default"].createElement("div", { className: "info-message__copy" },
12127
13420
  React__default["default"].createElement("h5", null, translations.SUMMARY.NOTIFICATIONS_TITLE),
12128
13421
  React__default["default"].createElement(React__default["default"].Fragment, null,
@@ -12149,10 +13442,10 @@ var Summary = function () {
12149
13442
  React__default["default"].createElement("div", { className: "form__row" },
12150
13443
  React__default["default"].createElement("div", { className: "form__group" },
12151
13444
  React__default["default"].createElement("div", { className: "info-message" },
12152
- React__default["default"].createElement(Icon$1, { name: "ui-tooltip", className: "icon--secondary-color" }),
13445
+ React__default["default"].createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
12153
13446
  React__default["default"].createElement("div", { className: "info-message__copy" },
12154
13447
  React__default["default"].createElement("h5", null, translations.SUMMARY.VALIDATE_TITLE),
12155
- React__default["default"].createElement("p", null, translations.SUMMARY.VALIDATE_TEXT),
13448
+ React__default["default"].createElement("p", null, settings.isOffer ? translations.SUMMARY.VALIDATE_TEXT_OFFER : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
12156
13449
  checkboxes &&
12157
13450
  checkboxes.map(function (checkbox) { return (React__default["default"].createElement("div", { className: "checkbox", key: checkbox.id },
12158
13451
  React__default["default"].createElement("label", { className: "checkbox__label" },
@@ -12164,10 +13457,10 @@ var Summary = function () {
12164
13457
  } })))); })))))),
12165
13458
  React__default["default"].createElement("div", { className: "booking__navigator" },
12166
13459
  settings.skipRouter ? (React__default["default"].createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) : (React__default["default"].createElement(router.Link, { to: "".concat(settings.basePath).concat(settings.travellers.pathSuffix, "?").concat(bookingQueryString), title: translations.STEPS.PREVIOUS, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)),
12167
- React__default["default"].createElement("button", { title: translations.STEPS.SUBMIT, className: buildClassName([
13460
+ React__default["default"].createElement("button", { title: settings.isOffer ? translations.STEPS.SUBMIT_OFFER : translations.STEPS.SUBMIT_BOOKING, className: buildClassName([
12168
13461
  "cta",
12169
13462
  !userValidated && "cta--disabled",
12170
- ]), disabled: !userValidated }, translations.STEPS.SUBMIT))))));
13463
+ ]), disabled: !userValidated }, settings.isOffer ? translations.STEPS.SUBMIT_OFFER : translations.STEPS.SUBMIT_BOOKING))))));
12171
13464
  };
12172
13465
 
12173
13466
  var LabeledInput = function (_a) {
@@ -12209,7 +13502,7 @@ var TypeAheadInput = function (_a) {
12209
13502
  };
12210
13503
  return (React__default["default"].createElement("div", { className: "typeahead" },
12211
13504
  React__default["default"].createElement("div", { className: "typeahead__trigger typeahead__trigger--icon" },
12212
- React__default["default"].createElement(Icon$1, { name: "qsm-location" }),
13505
+ React__default["default"].createElement(Icon, { name: "qsm-location" }),
12213
13506
  React__default["default"].createElement("input", { type: "text", className: "form__input", name: name, value: value, onChange: handleChange, placeholder: placeholder, required: true, autoComplete: "off", onKeyDown: function (e) {
12214
13507
  if (e.key === "Tab" && options && onSelect) {
12215
13508
  onSelect(options[0].key);
@@ -12237,7 +13530,7 @@ var TypeAheadInput = function (_a) {
12237
13530
  };
12238
13531
 
12239
13532
  function isValidEmail(email) {
12240
- return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email);
13533
+ return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,24}$/i.test(email);
12241
13534
  }
12242
13535
  function getAge(birthDateText, startDateText) {
12243
13536
  var birthDate = new Date(birthDateText);
@@ -12607,13 +13900,13 @@ var TravelersForm = function () {
12607
13900
  React__default["default"].createElement("div", { className: "form__twocolumn" },
12608
13901
  React__default["default"].createElement("div", { className: "form__twocolumn-column" },
12609
13902
  React__default["default"].createElement("div", { className: "form__row" },
12610
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, placeholder: translations.TRAVELERS_FORM.STREET_PLACEHOLDER, value: formik$1.values.street }),
13903
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.street }),
12611
13904
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("houseNumber"), extraClassName: "form__group--30 form__group--sm-20", label: translations.TRAVELERS_FORM.HOUSE_NUMBER, required: true, name: "houseNumber", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.houseNumber }),
12612
13905
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("box"), extraClassName: "form__group--20", label: translations.TRAVELERS_FORM.POST_BOX, name: "box", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.box }))),
12613
13906
  React__default["default"].createElement("div", { className: "form__twocolumn-column" },
12614
13907
  React__default["default"].createElement("div", { className: "form__row" },
12615
13908
  React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("zipCode"), extraClassName: "form__group--40 form__group--sm-20", label: translations.TRAVELERS_FORM.ZIPCODE, required: true, name: "zipCode", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.zipCode }),
12616
- React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", placeholder: translations.TRAVELERS_FORM.CITY_PLACEHOLDER, onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.place }),
13909
+ React__default["default"].createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.place }),
12617
13910
  React__default["default"].createElement(LabeledSelect, { hasError: hasVisibleError("country"), extraClassName: "form__group--sm-40", label: translations.TRAVELERS_FORM.COUNTRY, required: true, name: "country", onChange: formik$1.handleChange, onBlur: formik$1.handleBlur, value: formik$1.values.country, options: [
12618
13911
  {
12619
13912
  key: "empty",
@@ -12670,7 +13963,7 @@ var TravelersForm = function () {
12670
13963
 
12671
13964
  var Booking = function (_a) {
12672
13965
  var productCode = _a.productCode, productName = _a.productName, thumbnailUrl = _a.thumbnailUrl;
12673
- var _b = React.useContext(SettingsContext), officeId = _b.officeId, bookingOptions = _b.bookingOptions, basePath = _b.basePath, roomOptions = _b.roomOptions, flightOptions = _b.flightOptions, options = _b.options, travellers = _b.travellers, summary = _b.summary, confirmation = _b.confirmation, error = _b.error, showSidebarDeposit = _b.showSidebarDeposit, includeFlights = _b.includeFlights, loaderComponent = _b.loaderComponent, skipPaymentWithAgent = _b.skipPaymentWithAgent, generatePaymentUrl = _b.generatePaymentUrl, tagIds = _b.tagIds, agentAdressId = _b.agentAdressId, language = _b.language, translationFiles = _b.translationFiles, accommodationViewId = _b.accommodationViewId;
13966
+ var _b = React.useContext(SettingsContext), officeId = _b.officeId, bookingOptions = _b.bookingOptions, basePath = _b.basePath, roomOptions = _b.roomOptions, flightOptions = _b.flightOptions, options = _b.options, travellers = _b.travellers, summary = _b.summary, confirmation = _b.confirmation, error = _b.error, showSidebarDeposit = _b.showSidebarDeposit, includeFlights = _b.includeFlights, loaderComponent = _b.loaderComponent, skipPaymentWithAgent = _b.skipPaymentWithAgent, generatePaymentUrl = _b.generatePaymentUrl, tagIds = _b.tagIds, agentAdressId = _b.agentAdressId, language = _b.language, translationFiles = _b.translationFiles, accommodationViewId = _b.accommodationViewId, isOffer = _b.isOffer;
12674
13967
  var dispatch = useAppDispatch();
12675
13968
  var location = router.useLocation();
12676
13969
  var productAttributes = reactRedux.useSelector(selectProductAttributes);
@@ -12845,7 +14138,7 @@ var Booking = function (_a) {
12845
14138
  !packageDetails && !bookingNumber && !isUnvailable && (React__default["default"].createElement("div", { className: "booking" },
12846
14139
  React__default["default"].createElement("div", { className: "booking__loader" },
12847
14140
  loaderComponent,
12848
- React__default["default"].createElement("p", { className: "booking__loader-text" }, translations.MAIN.PREPARING_BOOKING)))),
14141
+ React__default["default"].createElement("p", { className: "booking__loader-text" }, isOffer ? translations.MAIN.PREPARING_OFFER : translations.MAIN.PREPARING_BOOKING)))),
12849
14142
  isUnvailable && (React__default["default"].createElement("div", { className: "booking" },
12850
14143
  React__default["default"].createElement("div", { className: "booking__loader" },
12851
14144
  React__default["default"].createElement("p", { className: "booking__loader-text" }, translations.MAIN.PRODUCT_UNAVAILABLE))))));