@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.
- package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
- package/build/build-cjs/booking-product/components/icon.d.ts +2 -0
- package/build/build-cjs/booking-product/types.d.ts +2 -1
- package/build/build-cjs/booking-wizard/components/icon.d.ts +2 -0
- package/build/build-cjs/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
- package/build/build-cjs/booking-wizard/types.d.ts +1 -0
- package/build/build-cjs/index.js +1851 -558
- package/build/build-cjs/shared/utils/localization-util.d.ts +17 -10
- package/build/build-esm/booking-product/components/footer.d.ts +1 -0
- package/build/build-esm/booking-product/components/icon.d.ts +2 -0
- package/build/build-esm/booking-product/types.d.ts +2 -1
- package/build/build-esm/booking-wizard/components/icon.d.ts +2 -0
- package/build/build-esm/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
- package/build/build-esm/booking-wizard/types.d.ts +1 -0
- package/build/build-esm/index.js +1853 -560
- package/build/build-esm/shared/utils/localization-util.d.ts +17 -10
- package/package.json +4 -3
- package/src/booking-product/components/amount-input.tsx +8 -20
- package/src/booking-product/components/date-range-picker/calendar.tsx +3 -3
- package/src/booking-product/components/dates.tsx +26 -20
- package/src/booking-product/components/footer.tsx +4 -2
- package/src/booking-product/components/header.tsx +4 -4
- package/src/booking-product/components/icon.tsx +187 -11
- package/src/booking-product/components/product.tsx +31 -16
- package/src/{shared → booking-product}/components/rating.tsx +3 -3
- package/src/booking-product/components/rooms.tsx +116 -113
- package/src/booking-product/settings-context.ts +0 -1
- package/src/booking-product/types.ts +2 -1
- package/src/booking-wizard/components/icon.tsx +42 -15
- package/src/{booking-product → booking-wizard}/components/multi-range-filter.tsx +0 -1
- package/src/booking-wizard/declarations.d.ts +4 -0
- package/src/booking-wizard/features/booking/booking-self-contained.tsx +3 -2
- package/src/booking-wizard/features/booking/booking.tsx +3 -2
- package/src/booking-wizard/features/confirmation/confirmation.tsx +8 -4
- package/src/booking-wizard/features/flight-options/flight-filter.tsx +7 -6
- package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +29 -28
- package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +193 -192
- package/src/booking-wizard/features/room-options/index.tsx +1 -5
- package/src/booking-wizard/features/summary/summary.tsx +23 -26
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +0 -2
- package/src/booking-wizard/features/travelers-form/validate-form.ts +1 -1
- package/src/booking-wizard/index.tsx +2 -2
- package/src/booking-wizard/types.ts +1 -0
- package/src/shared/tide-sprites.svg +117 -0
- package/src/shared/translations/fr-BE.json +230 -222
- package/src/shared/translations/nl-BE.json +229 -222
- package/styles/booking-product-variables.scss +288 -0
- package/styles/booking-product.scss +440 -0
- package/styles/booking-wizard-variables.scss +0 -0
- package/styles/booking-wizard.scss +4 -0
- package/styles/components/_animations.scss +39 -0
- package/styles/components/_base.scss +106 -0
- package/styles/components/_button.scss +185 -0
- package/styles/components/_cta.scss +67 -0
- package/styles/components/_date-range-picker.scss +224 -0
- package/styles/components/_decrement-increment.scss +37 -0
- package/styles/components/_dropdown.scss +74 -0
- package/styles/components/_form.scss +136 -0
- package/styles/components/_loader.scss +71 -0
- package/styles/components/_mixins.scss +518 -0
- package/styles/components/_placeholders.scss +166 -0
- package/styles/components/_qsm.scss +20 -0
- package/styles/components/_variables.scss +89 -0
- package/src/booking-product/components/multi-range-filter.css +0 -115
- /package/build/build-cjs/{shared → booking-product}/components/rating.d.ts +0 -0
- /package/build/build-esm/{shared → booking-product}/components/rating.d.ts +0 -0
package/build/build-cjs/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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: "
|
|
185
|
-
SELECTED: "
|
|
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: "
|
|
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: "
|
|
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
|
|
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
|
|
261
|
-
MAIN_BOOKER_FIELD: "Principal réservant: {0}",
|
|
262
|
-
MAIN_BOOKER_EMAIL_IS_INVALID: "Principal réservant:
|
|
263
|
-
MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: "Principal réservant:
|
|
264
|
-
AGENT_IS_REQUIRED: "Agent de voyage
|
|
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: "
|
|
282
|
-
PER_BOOKING_TITLE: "
|
|
283
|
-
PER_UNIT_TITLE: "
|
|
284
|
-
NONE: "
|
|
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
|
|
298
|
+
MAIN_BOOKER: "Principal réservant",
|
|
295
299
|
NOTIFICATIONS_TITLE: "Attention",
|
|
296
300
|
VALIDATE_TITLE: "Vérifiez vos données",
|
|
297
|
-
|
|
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: "
|
|
304
|
-
VOUCHER_INVALID: "
|
|
308
|
+
VOUCHER_VALID: "Bon valide",
|
|
309
|
+
VOUCHER_INVALID: "Bon invalide"
|
|
305
310
|
};
|
|
306
311
|
var CONFIRMATION$1 = {
|
|
307
|
-
|
|
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
|
-
|
|
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: "
|
|
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
|
-
|
|
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
|
|
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: "
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
7612
|
-
|
|
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
|
-
|
|
7681
|
-
|
|
7682
|
-
|
|
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
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
7772
|
-
|
|
7773
|
-
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
|
|
7778
|
-
|
|
7779
|
-
|
|
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
|
-
|
|
7783
|
-
|
|
7784
|
-
var
|
|
7785
|
-
|
|
7786
|
-
|
|
7787
|
-
|
|
7788
|
-
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7797
|
-
|
|
7798
|
-
|
|
7799
|
-
|
|
7800
|
-
|
|
7801
|
-
|
|
7802
|
-
|
|
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-
|
|
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: "
|
|
7874
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7939
|
-
React__default["default"].createElement("
|
|
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-
|
|
7959
|
-
React__default["default"].createElement("div", { className: "booking-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
React__default["default"].createElement("
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
|
|
7974
|
-
|
|
7975
|
-
|
|
7976
|
-
|
|
7977
|
-
|
|
7978
|
-
|
|
7979
|
-
|
|
7980
|
-
|
|
7981
|
-
|
|
7982
|
-
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
|
|
7986
|
-
|
|
7987
|
-
|
|
7988
|
-
|
|
7989
|
-
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
|
|
7993
|
-
|
|
7994
|
-
|
|
7995
|
-
|
|
7996
|
-
|
|
7997
|
-
|
|
7998
|
-
|
|
7999
|
-
|
|
8000
|
-
React__default["default"].createElement(
|
|
8001
|
-
|
|
8002
|
-
|
|
8003
|
-
React__default["default"].createElement("
|
|
8004
|
-
React__default["default"].createElement(
|
|
8005
|
-
|
|
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
|
-
|
|
8023
|
-
|
|
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 =
|
|
8071
|
-
if (!response.errorCode) {
|
|
8072
|
-
selectedOption =
|
|
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
|
-
|
|
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 =
|
|
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:
|
|
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,
|
|
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$
|
|
9413
|
+
var initialState$3 = {
|
|
8204
9414
|
formValues: undefined,
|
|
8205
9415
|
};
|
|
8206
9416
|
var travelersFormSlice = toolkit.createSlice({
|
|
8207
9417
|
name: "travelersForm",
|
|
8208
|
-
initialState: initialState$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
9205
|
-
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9210
|
-
|
|
9211
|
-
|
|
9212
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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("
|
|
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=
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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
|
-
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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,
|
|
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,
|
|
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",
|
|
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))))));
|