@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-esm/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
import React, { useContext, useState
|
|
2
|
+
import React, { useLayoutEffect as useLayoutEffect$1, useEffect, useContext, useState } from 'react';
|
|
3
3
|
import JsonURL from '@jsonurl/jsonurl';
|
|
4
4
|
import { isToday, getDate, getYear, getMonth, startOfWeek, startOfMonth, endOfWeek, addWeeks, endOfMonth, eachDayOfInterval, format as format$1, getISOWeek, getISODay, isSameMonth, startOfDay, isAfter, isEqual, isWithinInterval, endOfDay, isBefore, addMonths, addDays, formatISO, differenceInYears, parseISO, differenceInMinutes, differenceInCalendarDays, parse } from 'date-fns';
|
|
5
5
|
import { isNil, isArray, compact, isEmpty, range, chunk, isFunction, clamp, omit, sum, first, orderBy, uniq, uniqBy, sortBy, last, findIndex, set, get as get$2 } from 'lodash';
|
|
6
6
|
import { nlBE, fr } from 'date-fns/locale';
|
|
7
7
|
import { usePopper } from 'react-popper';
|
|
8
|
-
import {
|
|
9
|
-
import { createSlice, createSelector, createAsyncThunk, configureStore } from '@reduxjs/toolkit';
|
|
8
|
+
import { useSelector, useDispatch, Provider } from 'react-redux';
|
|
10
9
|
import { navigate, Link, useLocation, Router } from '@reach/router';
|
|
10
|
+
import { createSlice, createSelector, createAsyncThunk, configureStore } from '@reduxjs/toolkit';
|
|
11
11
|
import flat from 'flat';
|
|
12
12
|
import { useFormik } from 'formik';
|
|
13
13
|
import produce from 'immer';
|
|
@@ -99,69 +99,73 @@ var STEPS$1 = {
|
|
|
99
99
|
ERROR: "Échec de réservation",
|
|
100
100
|
PREVIOUS: "Étape précédente",
|
|
101
101
|
NEXT: "Étape suivante",
|
|
102
|
-
|
|
102
|
+
SUBMIT_BOOKING: "Confirmer la réservation",
|
|
103
|
+
SUBMIT_OFFER: "Demander un devis",
|
|
103
104
|
COMPOSE: "Composer",
|
|
104
|
-
ROOM_OPTIONS: "",
|
|
105
|
-
FLIGHT_OPTIONS: ""
|
|
105
|
+
ROOM_OPTIONS: "Options de chambre",
|
|
106
|
+
FLIGHT_OPTIONS: "Options de vol"
|
|
106
107
|
};
|
|
107
108
|
var INPUT$1 = {
|
|
108
|
-
INCREASE: "",
|
|
109
|
-
DECREASE: ""
|
|
109
|
+
INCREASE: "Augmenter",
|
|
110
|
+
DECREASE: "Diminuer"
|
|
110
111
|
};
|
|
111
112
|
var FLIGHTS_FORM$1 = {
|
|
112
|
-
OUTWARD_FLIGHTS: "",
|
|
113
|
-
OUTWARD_FLIGHT: "",
|
|
114
|
-
RETURN_FLIGHTS: "",
|
|
115
|
-
RETURN_FLIGHT: "",
|
|
116
|
-
DIRECT_FLIGHT: "",
|
|
117
|
-
STOP: "",
|
|
118
|
-
STOPS: "",
|
|
119
|
-
FLIGHT_STOPS: "",
|
|
120
|
-
DIFFERENT_OPTION_WARNING: "",
|
|
121
|
-
FILTER_OPTIONS: "",
|
|
122
|
-
AIRLINES: "",
|
|
123
|
-
AIRPORTS: "",
|
|
124
|
-
NUMBER_OF_STOPS: "",
|
|
125
|
-
FLIGHT_OUTWARD: "",
|
|
126
|
-
DEPARTURE_TIME: "",
|
|
127
|
-
TRAVEL_DURATION: "",
|
|
128
|
-
CHANGE_TIME: "",
|
|
129
|
-
FLIGHT_RETURN: "",
|
|
130
|
-
NO_FLIGHTS_FOUND: "",
|
|
131
|
-
STARTING: "",
|
|
132
|
-
LOWEST_PRICE: "",
|
|
133
|
-
CHOOSE_YOUR_CLASS: "",
|
|
134
|
-
PLUS_ONE_DAY: "",
|
|
135
|
-
STOP_TIME: "",
|
|
136
|
-
NIGHT_DEPARTURE: "",
|
|
137
|
-
MORNING_DEPARTURE: "",
|
|
138
|
-
AFTERNOON_DEPARTURE: "",
|
|
139
|
-
EVENING_DEPARTURE: ""
|
|
113
|
+
OUTWARD_FLIGHTS: "Vols aller",
|
|
114
|
+
OUTWARD_FLIGHT: "Vol aller",
|
|
115
|
+
RETURN_FLIGHTS: "Vols retour",
|
|
116
|
+
RETURN_FLIGHT: "Vol retour",
|
|
117
|
+
DIRECT_FLIGHT: "Vol direct",
|
|
118
|
+
STOP: "escale",
|
|
119
|
+
STOPS: "escales",
|
|
120
|
+
FLIGHT_STOPS: "escale(s)",
|
|
121
|
+
DIFFERENT_OPTION_WARNING: "Attention : Ce vol modifie la durée du séjour.",
|
|
122
|
+
FILTER_OPTIONS: "Options de filtre",
|
|
123
|
+
AIRLINES: "Compagnies aériennes",
|
|
124
|
+
AIRPORTS: "Aéroports",
|
|
125
|
+
NUMBER_OF_STOPS: "Nombre d'escales",
|
|
126
|
+
FLIGHT_OUTWARD: "Vol aller",
|
|
127
|
+
DEPARTURE_TIME: "Heure de départ",
|
|
128
|
+
TRAVEL_DURATION: "Durée du voyage",
|
|
129
|
+
CHANGE_TIME: "Temps de correspondance",
|
|
130
|
+
FLIGHT_RETURN: "Vol retour",
|
|
131
|
+
NO_FLIGHTS_FOUND: "Aucun vol trouvé.",
|
|
132
|
+
STARTING: "À partir de",
|
|
133
|
+
LOWEST_PRICE: "Prix le plus bas",
|
|
134
|
+
CHOOSE_YOUR_CLASS: "Choisissez votre classe :",
|
|
135
|
+
PLUS_ONE_DAY: "+1 jour",
|
|
136
|
+
STOP_TIME: "Temps d'escale",
|
|
137
|
+
NIGHT_DEPARTURE: "Nuit (00:00 - 05:00)",
|
|
138
|
+
MORNING_DEPARTURE: "Matin (05:00 - 12:00)",
|
|
139
|
+
AFTERNOON_DEPARTURE: "Après-midi (12:00 - 18:00)",
|
|
140
|
+
EVENING_DEPARTURE: "Soir (18:00 - 00:00)"
|
|
140
141
|
};
|
|
141
142
|
var PRODUCT$1 = {
|
|
142
|
-
STAY_INCLUDED: "",
|
|
143
|
-
FLIGHT_INCLUDED: "",
|
|
144
|
-
TRANSFER_INCLUDED: "",
|
|
145
|
-
LOADING_PRICE: "",
|
|
146
|
-
PER_PERSON: "",
|
|
147
|
-
PER_NIGHT: "",
|
|
148
|
-
PER_PERSON_PER_NIGHT: "",
|
|
149
|
-
BOOK_NOW: "",
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
143
|
+
STAY_INCLUDED: "Séjour inclus",
|
|
144
|
+
FLIGHT_INCLUDED: "Vol inclus",
|
|
145
|
+
TRANSFER_INCLUDED: "Transfert inclus",
|
|
146
|
+
LOADING_PRICE: "Votre prix est en cours de composition.",
|
|
147
|
+
PER_PERSON: "Par personne",
|
|
148
|
+
PER_NIGHT: "Par nuit",
|
|
149
|
+
PER_PERSON_PER_NIGHT: "Par personne / par nuit",
|
|
150
|
+
BOOK_NOW: "Réserver maintenant",
|
|
151
|
+
TO_YOUR_OFFER: "Vers votre devis",
|
|
152
|
+
NOT_AVAILABLE: "Non disponible",
|
|
153
|
+
NUMBER_OF_ROOMS: "Nombre de chambres",
|
|
154
|
+
AGE_BY_DEPARTURE_DATE: "Âge des enfants à la date de départ",
|
|
155
|
+
YEAR: "Année",
|
|
156
|
+
APPLY: "Appliquer",
|
|
157
|
+
EDIT: "Modifier",
|
|
158
|
+
DEPARTURE: "Départ",
|
|
159
|
+
DEPARTURE_DATE: "Date de départ",
|
|
160
|
+
RETURN: "Retour",
|
|
161
|
+
RETURN_DATE: "Date de retour",
|
|
162
|
+
WHO_YOU_TRAVELING_WITH: "Avec qui voyagez-vous ?",
|
|
163
|
+
TRAVEL_PERIOD: "Période de voyage",
|
|
164
|
+
CLOSE: "Fermer"
|
|
162
165
|
};
|
|
163
166
|
var MAIN$1 = {
|
|
164
167
|
PREPARING_BOOKING: "Veuillez patienter, nous préparons votre réservation",
|
|
168
|
+
PREPARING_OFFER: "Veuillez patienter, nous préparons votre devis",
|
|
165
169
|
PRODUCT_UNAVAILABLE: "Produit non disponible"
|
|
166
170
|
};
|
|
167
171
|
var SHARED$1 = {
|
|
@@ -170,8 +174,8 @@ var SHARED$1 = {
|
|
|
170
174
|
TOTAL_PRICE: "Prix total",
|
|
171
175
|
ADULTS: "Adultes",
|
|
172
176
|
CHILDREN: "Enfants",
|
|
173
|
-
SELECT: "
|
|
174
|
-
SELECTED: "
|
|
177
|
+
SELECT: "Sélectionner",
|
|
178
|
+
SELECTED: "Sélectionné"
|
|
175
179
|
};
|
|
176
180
|
var SIDEBAR$1 = {
|
|
177
181
|
OVERVIEW: "Aperçu",
|
|
@@ -205,7 +209,7 @@ var SIDEBAR$1 = {
|
|
|
205
209
|
FLIGHT_DEPARTURE: "Départ",
|
|
206
210
|
FLIGHT_ARRIVAL: "Arrivée",
|
|
207
211
|
ON_REQUEST: "Sur demande",
|
|
208
|
-
CHANGES: "
|
|
212
|
+
CHANGES: "correspondances"
|
|
209
213
|
};
|
|
210
214
|
var TRAVELERS_FORM$1 = {
|
|
211
215
|
TRAVELER: "Voyageur",
|
|
@@ -213,7 +217,7 @@ var TRAVELERS_FORM$1 = {
|
|
|
213
217
|
ADULTS: "adultes",
|
|
214
218
|
CHILD: "enfant",
|
|
215
219
|
CHILDREN: "enfants",
|
|
216
|
-
GENDER: "
|
|
220
|
+
GENDER: "Titre",
|
|
217
221
|
MALE: "Monsieur",
|
|
218
222
|
FEMALE: "Madame",
|
|
219
223
|
OTHER: "Autre",
|
|
@@ -233,31 +237,26 @@ var TRAVELERS_FORM$1 = {
|
|
|
233
237
|
PHONE: "Numéro de téléphone",
|
|
234
238
|
EMAIL: "E-mail",
|
|
235
239
|
REPEAT_EMAIL: "Répéter l'e-mail",
|
|
236
|
-
VALIDATION_MESSAGE: "Veuillez vérifier les champs du formulaire ci-dessous et les
|
|
240
|
+
VALIDATION_MESSAGE: "Veuillez vérifier les champs du formulaire ci-dessous et remplissez-les correctement.",
|
|
237
241
|
BOOK_WITH_AGENT: "Je souhaite réserver auprès de mon agent de voyage local",
|
|
238
242
|
CHOOSE_OFFICE: "Je choisis une agence",
|
|
239
|
-
CHOOSE_AGENT_PLACEHOLDER: "Choisissez votre agent de voyage",
|
|
240
243
|
COUNTRIES: {
|
|
241
244
|
BELGIUM: "Belgique",
|
|
242
245
|
NETHERLANDS: "Pays-Bas",
|
|
243
246
|
FRANCE: "France"
|
|
244
247
|
},
|
|
248
|
+
CHOOSE_AGENT_PLACEHOLDER: "Choisissez votre agent de voyage",
|
|
245
249
|
VALIDATION: {
|
|
246
|
-
TRAVELER_X_FIELD: "Chambre {0} - Voyageur {1}: {2}",
|
|
247
|
-
TRAVELER_X_IS_NO_ADULT: "Chambre {0} - Voyageur {1}: n'est pas un adulte",
|
|
248
|
-
TRAVELER_X_IS_NO_CHILD: "Chambre {0} - Voyageur {1}: n'est pas un enfant",
|
|
249
|
-
NO_MAIN_BOOKER_SELECTED: "Aucun principal
|
|
250
|
-
MAIN_BOOKER_FIELD: "Principal réservant: {0}",
|
|
251
|
-
MAIN_BOOKER_EMAIL_IS_INVALID: "Principal réservant:
|
|
252
|
-
MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: "Principal réservant:
|
|
253
|
-
AGENT_IS_REQUIRED: "Agent de voyage
|
|
250
|
+
TRAVELER_X_FIELD: "Chambre {0} - Voyageur {1} : {2}",
|
|
251
|
+
TRAVELER_X_IS_NO_ADULT: "Chambre {0} - Voyageur {1} : n'est pas un adulte",
|
|
252
|
+
TRAVELER_X_IS_NO_CHILD: "Chambre {0} - Voyageur {1} : n'est pas un enfant",
|
|
253
|
+
NO_MAIN_BOOKER_SELECTED: "Aucun réservant principal n'a été sélectionné",
|
|
254
|
+
MAIN_BOOKER_FIELD: "Principal réservant : {0}",
|
|
255
|
+
MAIN_BOOKER_EMAIL_IS_INVALID: "Principal réservant : e-mail invalide",
|
|
256
|
+
MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: "Principal réservant : e-mail ne correspond pas",
|
|
257
|
+
AGENT_IS_REQUIRED: "Agent de voyage requis"
|
|
254
258
|
}
|
|
255
259
|
};
|
|
256
|
-
var ROOM_OPTIONS_FORM$1 = {
|
|
257
|
-
TRAVELER_GROUP: "",
|
|
258
|
-
ALTERNATIVES_TRAVELER_GROUP: "",
|
|
259
|
-
SHOW_ALTERNATIVES: ""
|
|
260
|
-
};
|
|
261
260
|
var OPTIONS_FORM$1 = {
|
|
262
261
|
NO_OPTIONS_TITLE: "Aucune option",
|
|
263
262
|
NO_OPTIONS_MESSAGE: "Ce voyage n'a pas d'options supplémentaires.",
|
|
@@ -267,10 +266,15 @@ var OPTIONS_FORM$1 = {
|
|
|
267
266
|
DAYS: "jours",
|
|
268
267
|
NIGHT: "nuit",
|
|
269
268
|
NIGHTS: "nuits",
|
|
270
|
-
PER_PAX_TITLE: "
|
|
271
|
-
PER_BOOKING_TITLE: "
|
|
272
|
-
PER_UNIT_TITLE: "
|
|
273
|
-
NONE: "
|
|
269
|
+
PER_PAX_TITLE: "Sélectionner les options par voyageur",
|
|
270
|
+
PER_BOOKING_TITLE: "Sélectionner les options par dossier",
|
|
271
|
+
PER_UNIT_TITLE: "Sélectionner les options par groupe",
|
|
272
|
+
NONE: "Aucune"
|
|
273
|
+
};
|
|
274
|
+
var ROOM_OPTIONS_FORM$1 = {
|
|
275
|
+
TRAVELER_GROUP: "Groupe de voyageurs",
|
|
276
|
+
ALTERNATIVES_TRAVELER_GROUP: "Options de chambre alternatives pour le groupe de voyageurs",
|
|
277
|
+
SHOW_ALTERNATIVES: "Afficher les options de chambre alternatives"
|
|
274
278
|
};
|
|
275
279
|
var SUMMARY$1 = {
|
|
276
280
|
PERSONAL_DETAILS: "Coordonnées personnelles",
|
|
@@ -280,27 +284,30 @@ var SUMMARY$1 = {
|
|
|
280
284
|
ADULT: "adulte",
|
|
281
285
|
CHILDREN: "enfants",
|
|
282
286
|
CHILD: "enfant",
|
|
283
|
-
MAIN_BOOKER: "Principal
|
|
287
|
+
MAIN_BOOKER: "Principal réservant",
|
|
284
288
|
NOTIFICATIONS_TITLE: "Attention",
|
|
285
289
|
VALIDATE_TITLE: "Vérifiez vos données",
|
|
286
|
-
|
|
290
|
+
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.",
|
|
291
|
+
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.",
|
|
287
292
|
OPTIONS: "Options",
|
|
288
293
|
REMARKS: "Remarques",
|
|
289
294
|
VOUCHERS: "Bons",
|
|
290
295
|
VOUCHER_VALIDATE: "Valider le bon",
|
|
291
296
|
ADD_VOUCHER: "Ajouter un bon",
|
|
292
|
-
VOUCHER_VALID: "
|
|
293
|
-
VOUCHER_INVALID: "
|
|
297
|
+
VOUCHER_VALID: "Bon valide",
|
|
298
|
+
VOUCHER_INVALID: "Bon invalide"
|
|
294
299
|
};
|
|
295
300
|
var CONFIRMATION$1 = {
|
|
296
|
-
|
|
301
|
+
TITLE_TEXT_OFFER: "Votre devis numéro {0} a été demandé",
|
|
302
|
+
TITLE_TEXT_BOOKING: "Votre réservation avec le numéro {0} est confirmée",
|
|
297
303
|
MESSAGE_TEXT1: "Votre voyage de rêve est maintenant très proche.",
|
|
298
|
-
|
|
304
|
+
MESSAGE_TEXT2_OFFER: "Nos spécialistes voyages traitent votre demande et vous contacteront dans les 48 heures.",
|
|
305
|
+
MESSAGE_TEXT2_BOOKING: "Nos spécialistes voyages traitent votre réservation et vous contacteront dans les 48 heures.",
|
|
299
306
|
QUESTIONS_TEXT1: "Avez-vous d'autres questions? ",
|
|
300
307
|
QUESTIONS_TEXT2: "Faites-le nous savoir",
|
|
301
308
|
QUESTIONS_TEXT3: ".",
|
|
302
309
|
QUESTIONS_ALT: "Contactez-nous",
|
|
303
|
-
MAIL_SUBJECT: "
|
|
310
|
+
MAIL_SUBJECT: "Infos réservation"
|
|
304
311
|
};
|
|
305
312
|
var ERROR$1 = {
|
|
306
313
|
TRY_AGAIN: "Réessayez de réserver",
|
|
@@ -320,8 +327,8 @@ var frJson = {
|
|
|
320
327
|
SHARED: SHARED$1,
|
|
321
328
|
SIDEBAR: SIDEBAR$1,
|
|
322
329
|
TRAVELERS_FORM: TRAVELERS_FORM$1,
|
|
323
|
-
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$1,
|
|
324
330
|
OPTIONS_FORM: OPTIONS_FORM$1,
|
|
331
|
+
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$1,
|
|
325
332
|
SUMMARY: SUMMARY$1,
|
|
326
333
|
CONFIRMATION: CONFIRMATION$1,
|
|
327
334
|
ERROR: ERROR$1
|
|
@@ -335,7 +342,8 @@ var STEPS = {
|
|
|
335
342
|
ERROR: "Boeken mislukt",
|
|
336
343
|
PREVIOUS: "Vorige stap",
|
|
337
344
|
NEXT: "Volgende stap",
|
|
338
|
-
|
|
345
|
+
SUBMIT_BOOKING: "Bevestig boeking",
|
|
346
|
+
SUBMIT_OFFER: "Vraag offerte aan",
|
|
339
347
|
COMPOSE: "Samenstellen",
|
|
340
348
|
ROOM_OPTIONS: "Kamer opties",
|
|
341
349
|
FLIGHT_OPTIONS: "Vlucht opties"
|
|
@@ -358,7 +366,7 @@ var FLIGHTS_FORM = {
|
|
|
358
366
|
AIRLINES: "Luchtvaartmaatschappijen",
|
|
359
367
|
AIRPORTS: "Luchthavens",
|
|
360
368
|
NUMBER_OF_STOPS: "Aantal stops",
|
|
361
|
-
FLIGHT_OUTWARD: "Vlucht
|
|
369
|
+
FLIGHT_OUTWARD: "Vlucht heenreis",
|
|
362
370
|
DEPARTURE_TIME: "Vertrektijd",
|
|
363
371
|
TRAVEL_DURATION: "Reisduur",
|
|
364
372
|
CHANGE_TIME: "Overstaptijd",
|
|
@@ -368,7 +376,7 @@ var FLIGHTS_FORM = {
|
|
|
368
376
|
LOWEST_PRICE: "Laagste prijs",
|
|
369
377
|
CHOOSE_YOUR_CLASS: "Kies uw klasse:",
|
|
370
378
|
PLUS_ONE_DAY: "+1 dag",
|
|
371
|
-
STOP_TIME: "
|
|
379
|
+
STOP_TIME: "Overstaptijd",
|
|
372
380
|
NIGHT_DEPARTURE: "Nacht (00:00 - 05:00)",
|
|
373
381
|
MORNING_DEPARTURE: "Ochtend (05:00 - 12:00)",
|
|
374
382
|
AFTERNOON_DEPARTURE: "Namiddag (12:00 - 18:00)",
|
|
@@ -383,9 +391,10 @@ var PRODUCT = {
|
|
|
383
391
|
PER_NIGHT: "Per nacht",
|
|
384
392
|
PER_PERSON_PER_NIGHT: "Per persoon / per nacht",
|
|
385
393
|
BOOK_NOW: "Boek nu",
|
|
394
|
+
TO_YOUR_OFFER: "Naar uw offerte",
|
|
386
395
|
NOT_AVAILABLE: "Niet beschikbaar",
|
|
387
396
|
NUMBER_OF_ROOMS: "Aantal kamers",
|
|
388
|
-
AGE_BY_DEPARTURE_DATE: "Leeftijd
|
|
397
|
+
AGE_BY_DEPARTURE_DATE: "Leeftijd kinderen op vertrekdatum",
|
|
389
398
|
YEAR: "Jaar",
|
|
390
399
|
APPLY: "Toepassen",
|
|
391
400
|
EDIT: "Wijzigen",
|
|
@@ -394,10 +403,12 @@ var PRODUCT = {
|
|
|
394
403
|
RETURN: "Terugkeer",
|
|
395
404
|
RETURN_DATE: "Terugkeerdatum",
|
|
396
405
|
WHO_YOU_TRAVELING_WITH: "Met wie ga je?",
|
|
397
|
-
TRAVEL_PERIOD: "Reisperiode"
|
|
406
|
+
TRAVEL_PERIOD: "Reisperiode",
|
|
407
|
+
CLOSE: "Sluiten"
|
|
398
408
|
};
|
|
399
409
|
var MAIN = {
|
|
400
410
|
PREPARING_BOOKING: "Even geduld, we bereiden uw boeking voor",
|
|
411
|
+
PREPARING_OFFER: "Even geduld, we bereiden uw offerte voor",
|
|
401
412
|
PRODUCT_UNAVAILABLE: "Product niet beschikbaar"
|
|
402
413
|
};
|
|
403
414
|
var SHARED = {
|
|
@@ -519,7 +530,8 @@ var SUMMARY = {
|
|
|
519
530
|
MAIN_BOOKER: "Hoofdboeker",
|
|
520
531
|
NOTIFICATIONS_TITLE: "Aandacht",
|
|
521
532
|
VALIDATE_TITLE: "Controleer je gegevens",
|
|
522
|
-
|
|
533
|
+
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.",
|
|
534
|
+
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.",
|
|
523
535
|
OPTIONS: "Opties",
|
|
524
536
|
REMARKS: "Opmerkingen",
|
|
525
537
|
VOUCHERS: "Vouchers",
|
|
@@ -529,9 +541,11 @@ var SUMMARY = {
|
|
|
529
541
|
VOUCHER_INVALID: "Voucher is niet geldig"
|
|
530
542
|
};
|
|
531
543
|
var CONFIRMATION = {
|
|
532
|
-
|
|
544
|
+
TITLE_TEXT_OFFER: "Je offerte met nummer {0} is aangevraagd",
|
|
545
|
+
TITLE_TEXT_BOOKING: "Je boeking met nummer {0} is bevestigd",
|
|
533
546
|
MESSAGE_TEXT1: "Jouw droomreis komt nu heel dichtbij.",
|
|
534
|
-
|
|
547
|
+
MESSAGE_TEXT2_OFFER: "Onze reisspecialisten verwerken je aanvraag en nemen binnen de 48u contact met je op.",
|
|
548
|
+
MESSAGE_TEXT2_BOOKING: "Onze reisspecialisten verwerken je reservatie en nemen binnen de 48u contact met je op.",
|
|
535
549
|
QUESTIONS_TEXT1: "Heb je nog vragen? ",
|
|
536
550
|
QUESTIONS_TEXT2: "Laat het ons weten",
|
|
537
551
|
QUESTIONS_TEXT3: ".",
|
|
@@ -680,7 +694,6 @@ var SettingsContext$1 = React.createContext({
|
|
|
680
694
|
officeId: 1,
|
|
681
695
|
catalogueId: 1,
|
|
682
696
|
language: "nl-BE",
|
|
683
|
-
currency: "EUR",
|
|
684
697
|
basePath: 'boeken',
|
|
685
698
|
priceMode: 0
|
|
686
699
|
});
|
|
@@ -7506,73 +7519,6 @@ var buildClassName = function (parts) {
|
|
|
7506
7519
|
return compact(sanitizedParts).join(" ");
|
|
7507
7520
|
};
|
|
7508
7521
|
|
|
7509
|
-
var SettingsContext = React.createContext({
|
|
7510
|
-
language: "nl-BE",
|
|
7511
|
-
generatePaymentUrl: false,
|
|
7512
|
-
currency: "EUR",
|
|
7513
|
-
officeId: 1,
|
|
7514
|
-
tagIds: [],
|
|
7515
|
-
hideAgentSelection: false,
|
|
7516
|
-
agentAdressId: undefined,
|
|
7517
|
-
affiliateSlug: undefined,
|
|
7518
|
-
productPath: "/",
|
|
7519
|
-
basePath: "/boeken",
|
|
7520
|
-
roomOptions: {
|
|
7521
|
-
pathSuffix: "/",
|
|
7522
|
-
},
|
|
7523
|
-
flightOptions: {
|
|
7524
|
-
pathSuffix: "/vluchten",
|
|
7525
|
-
},
|
|
7526
|
-
options: {
|
|
7527
|
-
pathSuffix: "/opties",
|
|
7528
|
-
},
|
|
7529
|
-
travellers: {
|
|
7530
|
-
pathSuffix: "/reizigers",
|
|
7531
|
-
},
|
|
7532
|
-
summary: {
|
|
7533
|
-
pathSuffix: "/samenvatting",
|
|
7534
|
-
checkboxes: null,
|
|
7535
|
-
},
|
|
7536
|
-
confirmation: {
|
|
7537
|
-
pathSuffix: "/bevestiging",
|
|
7538
|
-
},
|
|
7539
|
-
error: {
|
|
7540
|
-
pathSuffix: "/mislukt",
|
|
7541
|
-
},
|
|
7542
|
-
companyContactEmail: "info@tidesoftware.be",
|
|
7543
|
-
companyContactPhone: "093362299",
|
|
7544
|
-
showProductCardRating: false,
|
|
7545
|
-
showSidebarDeposit: false,
|
|
7546
|
-
sidebarHeaderComponent: null,
|
|
7547
|
-
sidebarFooterComponent: null,
|
|
7548
|
-
loaderComponent: null,
|
|
7549
|
-
icons: null,
|
|
7550
|
-
bookingOptions: {
|
|
7551
|
-
b2b: {
|
|
7552
|
-
entryStatus: 0,
|
|
7553
|
-
},
|
|
7554
|
-
b2b2c: {
|
|
7555
|
-
entryStatus: 0,
|
|
7556
|
-
},
|
|
7557
|
-
b2c: {
|
|
7558
|
-
entryStatus: 0,
|
|
7559
|
-
},
|
|
7560
|
-
},
|
|
7561
|
-
});
|
|
7562
|
-
|
|
7563
|
-
var Icon$1 = function (_a) {
|
|
7564
|
-
var name = _a.name, className = _a.className, title = _a.title;
|
|
7565
|
-
var icons = useContext(SettingsContext).icons;
|
|
7566
|
-
if (!icons) {
|
|
7567
|
-
return null;
|
|
7568
|
-
}
|
|
7569
|
-
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
7570
|
-
.filter(function (className) { return !isEmpty(className); })
|
|
7571
|
-
.join(" ") },
|
|
7572
|
-
title && React.createElement("title", null, title),
|
|
7573
|
-
React.createElement("use", { href: "".concat(icons, "#").concat(name) })));
|
|
7574
|
-
};
|
|
7575
|
-
|
|
7576
7522
|
var CalendarDay = function (_a) {
|
|
7577
7523
|
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;
|
|
7578
7524
|
var handleClick = function () {
|
|
@@ -7597,198 +7543,1473 @@ var CalendarDay = function (_a) {
|
|
|
7597
7543
|
children));
|
|
7598
7544
|
};
|
|
7599
7545
|
|
|
7600
|
-
var
|
|
7601
|
-
|
|
7602
|
-
var language = useContext(SettingsContext$1).language;
|
|
7603
|
-
var locale = getLocale(language);
|
|
7604
|
-
var handleDayClick = function (day) {
|
|
7605
|
-
if (onDayClick) {
|
|
7606
|
-
onDayClick(day);
|
|
7607
|
-
}
|
|
7608
|
-
};
|
|
7609
|
-
var handleDayMouseOver = function (day) {
|
|
7610
|
-
if (onDayMouseOver) {
|
|
7611
|
-
onDayMouseOver(day);
|
|
7612
|
-
}
|
|
7613
|
-
};
|
|
7614
|
-
var handleNextClick = function () {
|
|
7615
|
-
var nextMonth = (month + 1) % 12;
|
|
7616
|
-
var nextMonthsYear = nextMonth < month ? year + 1 : year;
|
|
7617
|
-
if (onNextClick) {
|
|
7618
|
-
onNextClick(nextMonthsYear, nextMonth);
|
|
7619
|
-
}
|
|
7620
|
-
};
|
|
7621
|
-
var handlePreviousClick = function () {
|
|
7622
|
-
var previousMonth = (month - 1) % 12;
|
|
7623
|
-
var previousMonthsYear = previousMonth > month ? year - 1 : year;
|
|
7624
|
-
if (onPreviousClick) {
|
|
7625
|
-
onPreviousClick(previousMonthsYear, previousMonth);
|
|
7626
|
-
}
|
|
7627
|
-
};
|
|
7628
|
-
var focusDate = new Date(year, month);
|
|
7629
|
-
var firstDay = startOfWeek(startOfMonth(focusDate), { weekStartsOn: weekStartsOn });
|
|
7630
|
-
var lastDay = hasFixedHeight
|
|
7631
|
-
? endOfWeek(addWeeks(firstDay, 5), { weekStartsOn: weekStartsOn })
|
|
7632
|
-
: endOfWeek(endOfMonth(focusDate), { weekStartsOn: weekStartsOn });
|
|
7633
|
-
var calendarDays = eachDayOfInterval({ start: firstDay, end: lastDay });
|
|
7634
|
-
var mapDay = function (day) {
|
|
7635
|
-
var isoDay = getISODay(day);
|
|
7636
|
-
var isDisabled = isFunction(disabledDaysFunction) && disabledDaysFunction(day);
|
|
7637
|
-
var isSelected = isFunction(selectedDaysFunction) && selectedDaysFunction(day);
|
|
7638
|
-
var isOutsideMonth = !isSameMonth(day, focusDate);
|
|
7639
|
-
var extraClassNames = isFunction(extraClassNamesFunction)
|
|
7640
|
-
? extraClassNamesFunction(day)
|
|
7641
|
-
: undefined;
|
|
7642
|
-
return (React.createElement(CalendarDay, { key: "day_".concat(isoDay), day: day, isSelected: isSelected, isDisabled: isDisabled, isOutsideMonth: isOutsideMonth, extraClassNames: extraClassNames, onClick: handleDayClick, onMouseOver: handleDayMouseOver }, isFunction(dayContentFunction) ? dayContentFunction(day) : undefined));
|
|
7643
|
-
};
|
|
7644
|
-
var mapWeek = function (weekDays) {
|
|
7645
|
-
if (weekDays.length === 0) {
|
|
7646
|
-
return null;
|
|
7647
|
-
}
|
|
7648
|
-
var isoWeek = getISOWeek(weekDays[0]);
|
|
7649
|
-
return (React.createElement("div", { className: "calendar__week", key: "week_".concat(isoWeek) }, weekDays.map(mapDay)));
|
|
7650
|
-
};
|
|
7651
|
-
return (React.createElement("div", { className: "calendar" },
|
|
7652
|
-
React.createElement("div", { className: "calendar__header" },
|
|
7653
|
-
React.createElement("div", { className: "calendar__pager" },
|
|
7654
|
-
React.createElement("div", { className: buildClassName([
|
|
7655
|
-
"calendar__previous",
|
|
7656
|
-
!hasPreviousButton && "calendar__previous--disabled",
|
|
7657
|
-
]), onClick: handlePreviousClick },
|
|
7658
|
-
React.createElement(Icon$1, { name: "ui-chevron-left" })),
|
|
7659
|
-
React.createElement("div", { className: "calendar__current-month" }, format$1(focusDate, "MMMM yyyy", { locale: locale })),
|
|
7660
|
-
React.createElement("div", { className: buildClassName([
|
|
7661
|
-
"calendar__next",
|
|
7662
|
-
!hasNextButton && "calendar__next--disabled",
|
|
7663
|
-
]), onClick: handleNextClick },
|
|
7664
|
-
React.createElement(Icon$1, { name: "ui-chevron-right" }))),
|
|
7665
|
-
React.createElement("div", { className: "calendar__day-labels" }, range(0, 7).map(function (i) { return (React.createElement("div", { className: "calendar__day-label", key: "day_".concat(i) }, format$1(calendarDays[i], "EEEEEE", { locale: locale }))); }))),
|
|
7666
|
-
React.createElement("div", { className: "calendar__body" }, chunk(calendarDays, 7).map(mapWeek))));
|
|
7667
|
-
};
|
|
7546
|
+
var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect$1 : useEffect;
|
|
7547
|
+
var useLayoutEffect = useIsomorphicLayoutEffect;
|
|
7668
7548
|
|
|
7669
|
-
|
|
7670
|
-
|
|
7671
|
-
|
|
7672
|
-
var _f = useState(props.toDate), toDate = _f[0], setToDate = _f[1];
|
|
7673
|
-
var _g = useState((_a = props.focusMonth) !== null && _a !== void 0 ? _a : { year: getYear(new Date()), month: getMonth(new Date()) }), focusMonth = _g[0], setFocusMonth = _g[1];
|
|
7674
|
-
var _h = useState(false), isWaitingForToDate = _h[0], setWaitingForToDate = _h[1];
|
|
7675
|
-
var handleDayClick = function (day) {
|
|
7676
|
-
var onSelectionChange = props.onSelectionChange;
|
|
7677
|
-
if (isWaitingForToDate && !isNil(fromDate) && isAfter(day, fromDate)) {
|
|
7678
|
-
setToDate(day);
|
|
7679
|
-
setWaitingForToDate(false);
|
|
7680
|
-
if (props.onToDateChange) {
|
|
7681
|
-
props.onToDateChange(undefined);
|
|
7682
|
-
}
|
|
7683
|
-
if (onSelectionChange) {
|
|
7684
|
-
onSelectionChange(fromDate, day);
|
|
7685
|
-
}
|
|
7686
|
-
}
|
|
7687
|
-
else {
|
|
7688
|
-
setFromDate(day);
|
|
7689
|
-
if (props.duration) {
|
|
7690
|
-
var to = new Date(Date.UTC(day.getFullYear(), day.getMonth(), day.getDate() + props.duration));
|
|
7691
|
-
setToDate(to);
|
|
7692
|
-
if (onSelectionChange) {
|
|
7693
|
-
onSelectionChange(day, to);
|
|
7694
|
-
}
|
|
7695
|
-
}
|
|
7696
|
-
else {
|
|
7697
|
-
setToDate(undefined);
|
|
7698
|
-
setWaitingForToDate(true);
|
|
7699
|
-
}
|
|
7700
|
-
if (props.onFromDateChange) {
|
|
7701
|
-
props.onFromDateChange(day);
|
|
7702
|
-
}
|
|
7703
|
-
}
|
|
7704
|
-
};
|
|
7705
|
-
var handleDayMouseOver = function (day) {
|
|
7706
|
-
if (isWaitingForToDate &&
|
|
7707
|
-
(isNil(fromDate) || isEqual(day, fromDate) || isAfter(day, fromDate))) {
|
|
7708
|
-
setToDate(day);
|
|
7709
|
-
}
|
|
7710
|
-
};
|
|
7711
|
-
var handlePreviousClick = function () {
|
|
7712
|
-
var month = focusMonth.month, year = focusMonth.year;
|
|
7713
|
-
var previousMonth = (month - 1) % 12;
|
|
7714
|
-
var previousMonthsYear = previousMonth > month ? year - 1 : year;
|
|
7715
|
-
var newFocusMonth = { year: previousMonthsYear, month: previousMonth };
|
|
7716
|
-
setFocusMonth(newFocusMonth);
|
|
7717
|
-
if (props.onFocusMonthChange) {
|
|
7718
|
-
props.onFocusMonthChange(newFocusMonth);
|
|
7719
|
-
}
|
|
7720
|
-
};
|
|
7721
|
-
var handleNextClick = function () {
|
|
7722
|
-
var month = focusMonth.month, year = focusMonth.year;
|
|
7723
|
-
var nextMonth = (month + 1) % 12;
|
|
7724
|
-
var nextMonthsYear = nextMonth < month ? year + 1 : year;
|
|
7725
|
-
var newFocusMonth = { year: nextMonthsYear, month: nextMonth };
|
|
7726
|
-
setFocusMonth(newFocusMonth);
|
|
7727
|
-
if (props.onFocusMonthChange) {
|
|
7728
|
-
props.onFocusMonthChange(newFocusMonth);
|
|
7729
|
-
}
|
|
7730
|
-
};
|
|
7731
|
-
var today = startOfDay(new Date());
|
|
7732
|
-
var firstCalendarYear = focusMonth.year;
|
|
7733
|
-
var firstCalendarMonth = focusMonth.month;
|
|
7734
|
-
var secondCalendarMonth = (firstCalendarMonth + 1) % 12;
|
|
7735
|
-
var secondCalendarYear = secondCalendarMonth < firstCalendarMonth ? firstCalendarYear + 1 : firstCalendarYear;
|
|
7736
|
-
var checkIfDateIsSelected = function (date) {
|
|
7737
|
-
return isNil(toDate)
|
|
7738
|
-
? !isNil(fromDate) && isEqual(date, fromDate)
|
|
7739
|
-
: !isNil(fromDate) &&
|
|
7740
|
-
isWithinInterval(date, { start: startOfDay(fromDate), end: endOfDay(toDate) });
|
|
7741
|
-
};
|
|
7742
|
-
useEffect(function () {
|
|
7743
|
-
setFromDate(props.fromDate);
|
|
7744
|
-
setToDate(props.toDate);
|
|
7745
|
-
}, [(_b = props.fromDate) === null || _b === void 0 ? void 0 : _b.valueOf(), (_c = props.toDate) === null || _c === void 0 ? void 0 : _c.valueOf()]);
|
|
7746
|
-
useEffect(function () {
|
|
7747
|
-
if (props.fromDate) {
|
|
7748
|
-
setFocusMonth({ month: props.fromDate.getMonth(), year: props.fromDate.getFullYear() });
|
|
7749
|
-
}
|
|
7750
|
-
}, [(_d = props.fromDate) === null || _d === void 0 ? void 0 : _d.valueOf()]);
|
|
7751
|
-
return (React.createElement("div", { className: "date-range-picker" },
|
|
7752
|
-
React.createElement("div", { className: "date-range-picker__from" },
|
|
7753
|
-
React.createElement(Calendar, { year: firstCalendarYear, month: firstCalendarMonth, onDayClick: handleDayClick, onDayMouseOver: handleDayMouseOver, onPreviousClick: handlePreviousClick, hasPreviousButton: isAfter(new Date(firstCalendarYear, firstCalendarMonth), endOfMonth(today)), hasNextButton: false, selectedDaysFunction: checkIfDateIsSelected, disabledDaysFunction: props.disabledDaysFunction, extraClassNamesFunction: props.extraClassNamesFunction, dayContentFunction: props.dayContentFunction, hasFixedHeight: true })),
|
|
7754
|
-
React.createElement("div", { className: "date-range-picker__to" },
|
|
7755
|
-
React.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 }))));
|
|
7756
|
-
};
|
|
7549
|
+
function createCommonjsModule(fn, module) {
|
|
7550
|
+
return module = { exports: {} }, fn(module, module.exports), module.exports;
|
|
7551
|
+
}
|
|
7757
7552
|
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
};
|
|
7553
|
+
/** @license React v16.13.1
|
|
7554
|
+
* react-is.production.min.js
|
|
7555
|
+
*
|
|
7556
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
7557
|
+
*
|
|
7558
|
+
* This source code is licensed under the MIT license found in the
|
|
7559
|
+
* LICENSE file in the root directory of this source tree.
|
|
7560
|
+
*/
|
|
7561
|
+
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?
|
|
7562
|
+
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;
|
|
7563
|
+
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;
|
|
7564
|
+
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};
|
|
7565
|
+
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};
|
|
7566
|
+
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;
|
|
7567
|
+
|
|
7568
|
+
var reactIs_production_min = {
|
|
7569
|
+
AsyncMode: AsyncMode,
|
|
7570
|
+
ConcurrentMode: ConcurrentMode,
|
|
7571
|
+
ContextConsumer: ContextConsumer,
|
|
7572
|
+
ContextProvider: ContextProvider,
|
|
7573
|
+
Element: Element,
|
|
7574
|
+
ForwardRef: ForwardRef,
|
|
7575
|
+
Fragment: Fragment,
|
|
7576
|
+
Lazy: Lazy,
|
|
7577
|
+
Memo: Memo,
|
|
7578
|
+
Portal: Portal,
|
|
7579
|
+
Profiler: Profiler,
|
|
7580
|
+
StrictMode: StrictMode,
|
|
7581
|
+
Suspense: Suspense,
|
|
7582
|
+
isAsyncMode: isAsyncMode,
|
|
7583
|
+
isConcurrentMode: isConcurrentMode,
|
|
7584
|
+
isContextConsumer: isContextConsumer,
|
|
7585
|
+
isContextProvider: isContextProvider,
|
|
7586
|
+
isElement: isElement,
|
|
7587
|
+
isForwardRef: isForwardRef,
|
|
7588
|
+
isFragment: isFragment,
|
|
7589
|
+
isLazy: isLazy,
|
|
7590
|
+
isMemo: isMemo,
|
|
7591
|
+
isPortal: isPortal,
|
|
7592
|
+
isProfiler: isProfiler,
|
|
7593
|
+
isStrictMode: isStrictMode,
|
|
7594
|
+
isSuspense: isSuspense,
|
|
7595
|
+
isValidElementType: isValidElementType,
|
|
7596
|
+
typeOf: typeOf
|
|
7597
|
+
};
|
|
7598
|
+
|
|
7599
|
+
var reactIs_development = createCommonjsModule(function (module, exports) {
|
|
7600
|
+
|
|
7601
|
+
|
|
7602
|
+
|
|
7603
|
+
if (process.env.NODE_ENV !== "production") {
|
|
7604
|
+
(function() {
|
|
7605
|
+
|
|
7606
|
+
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
|
|
7607
|
+
// nor polyfill, then a plain number is used for performance.
|
|
7608
|
+
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
|
|
7609
|
+
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
|
|
7610
|
+
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
|
|
7611
|
+
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
|
|
7612
|
+
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
|
|
7613
|
+
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
|
|
7614
|
+
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
|
|
7615
|
+
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
|
|
7616
|
+
// (unstable) APIs that have been removed. Can we remove the symbols?
|
|
7617
|
+
|
|
7618
|
+
var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
|
|
7619
|
+
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
|
|
7620
|
+
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
|
|
7621
|
+
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
|
|
7622
|
+
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
|
|
7623
|
+
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
|
|
7624
|
+
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
|
|
7625
|
+
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
|
|
7626
|
+
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
|
|
7627
|
+
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
|
|
7628
|
+
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
|
|
7629
|
+
|
|
7630
|
+
function isValidElementType(type) {
|
|
7631
|
+
return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
|
|
7632
|
+
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);
|
|
7633
|
+
}
|
|
7770
7634
|
|
|
7771
|
-
|
|
7772
|
-
|
|
7773
|
-
var
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
|
|
7778
|
-
|
|
7779
|
-
|
|
7780
|
-
|
|
7781
|
-
|
|
7782
|
-
|
|
7783
|
-
|
|
7784
|
-
|
|
7785
|
-
|
|
7786
|
-
|
|
7787
|
-
|
|
7788
|
-
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
|
|
7635
|
+
function typeOf(object) {
|
|
7636
|
+
if (typeof object === 'object' && object !== null) {
|
|
7637
|
+
var $$typeof = object.$$typeof;
|
|
7638
|
+
|
|
7639
|
+
switch ($$typeof) {
|
|
7640
|
+
case REACT_ELEMENT_TYPE:
|
|
7641
|
+
var type = object.type;
|
|
7642
|
+
|
|
7643
|
+
switch (type) {
|
|
7644
|
+
case REACT_ASYNC_MODE_TYPE:
|
|
7645
|
+
case REACT_CONCURRENT_MODE_TYPE:
|
|
7646
|
+
case REACT_FRAGMENT_TYPE:
|
|
7647
|
+
case REACT_PROFILER_TYPE:
|
|
7648
|
+
case REACT_STRICT_MODE_TYPE:
|
|
7649
|
+
case REACT_SUSPENSE_TYPE:
|
|
7650
|
+
return type;
|
|
7651
|
+
|
|
7652
|
+
default:
|
|
7653
|
+
var $$typeofType = type && type.$$typeof;
|
|
7654
|
+
|
|
7655
|
+
switch ($$typeofType) {
|
|
7656
|
+
case REACT_CONTEXT_TYPE:
|
|
7657
|
+
case REACT_FORWARD_REF_TYPE:
|
|
7658
|
+
case REACT_LAZY_TYPE:
|
|
7659
|
+
case REACT_MEMO_TYPE:
|
|
7660
|
+
case REACT_PROVIDER_TYPE:
|
|
7661
|
+
return $$typeofType;
|
|
7662
|
+
|
|
7663
|
+
default:
|
|
7664
|
+
return $$typeof;
|
|
7665
|
+
}
|
|
7666
|
+
|
|
7667
|
+
}
|
|
7668
|
+
|
|
7669
|
+
case REACT_PORTAL_TYPE:
|
|
7670
|
+
return $$typeof;
|
|
7671
|
+
}
|
|
7672
|
+
}
|
|
7673
|
+
|
|
7674
|
+
return undefined;
|
|
7675
|
+
} // AsyncMode is deprecated along with isAsyncMode
|
|
7676
|
+
|
|
7677
|
+
var AsyncMode = REACT_ASYNC_MODE_TYPE;
|
|
7678
|
+
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
|
|
7679
|
+
var ContextConsumer = REACT_CONTEXT_TYPE;
|
|
7680
|
+
var ContextProvider = REACT_PROVIDER_TYPE;
|
|
7681
|
+
var Element = REACT_ELEMENT_TYPE;
|
|
7682
|
+
var ForwardRef = REACT_FORWARD_REF_TYPE;
|
|
7683
|
+
var Fragment = REACT_FRAGMENT_TYPE;
|
|
7684
|
+
var Lazy = REACT_LAZY_TYPE;
|
|
7685
|
+
var Memo = REACT_MEMO_TYPE;
|
|
7686
|
+
var Portal = REACT_PORTAL_TYPE;
|
|
7687
|
+
var Profiler = REACT_PROFILER_TYPE;
|
|
7688
|
+
var StrictMode = REACT_STRICT_MODE_TYPE;
|
|
7689
|
+
var Suspense = REACT_SUSPENSE_TYPE;
|
|
7690
|
+
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
|
|
7691
|
+
|
|
7692
|
+
function isAsyncMode(object) {
|
|
7693
|
+
{
|
|
7694
|
+
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
|
|
7695
|
+
hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
|
|
7696
|
+
|
|
7697
|
+
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.');
|
|
7698
|
+
}
|
|
7699
|
+
}
|
|
7700
|
+
|
|
7701
|
+
return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
|
|
7702
|
+
}
|
|
7703
|
+
function isConcurrentMode(object) {
|
|
7704
|
+
return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
|
|
7705
|
+
}
|
|
7706
|
+
function isContextConsumer(object) {
|
|
7707
|
+
return typeOf(object) === REACT_CONTEXT_TYPE;
|
|
7708
|
+
}
|
|
7709
|
+
function isContextProvider(object) {
|
|
7710
|
+
return typeOf(object) === REACT_PROVIDER_TYPE;
|
|
7711
|
+
}
|
|
7712
|
+
function isElement(object) {
|
|
7713
|
+
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
|
|
7714
|
+
}
|
|
7715
|
+
function isForwardRef(object) {
|
|
7716
|
+
return typeOf(object) === REACT_FORWARD_REF_TYPE;
|
|
7717
|
+
}
|
|
7718
|
+
function isFragment(object) {
|
|
7719
|
+
return typeOf(object) === REACT_FRAGMENT_TYPE;
|
|
7720
|
+
}
|
|
7721
|
+
function isLazy(object) {
|
|
7722
|
+
return typeOf(object) === REACT_LAZY_TYPE;
|
|
7723
|
+
}
|
|
7724
|
+
function isMemo(object) {
|
|
7725
|
+
return typeOf(object) === REACT_MEMO_TYPE;
|
|
7726
|
+
}
|
|
7727
|
+
function isPortal(object) {
|
|
7728
|
+
return typeOf(object) === REACT_PORTAL_TYPE;
|
|
7729
|
+
}
|
|
7730
|
+
function isProfiler(object) {
|
|
7731
|
+
return typeOf(object) === REACT_PROFILER_TYPE;
|
|
7732
|
+
}
|
|
7733
|
+
function isStrictMode(object) {
|
|
7734
|
+
return typeOf(object) === REACT_STRICT_MODE_TYPE;
|
|
7735
|
+
}
|
|
7736
|
+
function isSuspense(object) {
|
|
7737
|
+
return typeOf(object) === REACT_SUSPENSE_TYPE;
|
|
7738
|
+
}
|
|
7739
|
+
|
|
7740
|
+
exports.AsyncMode = AsyncMode;
|
|
7741
|
+
exports.ConcurrentMode = ConcurrentMode;
|
|
7742
|
+
exports.ContextConsumer = ContextConsumer;
|
|
7743
|
+
exports.ContextProvider = ContextProvider;
|
|
7744
|
+
exports.Element = Element;
|
|
7745
|
+
exports.ForwardRef = ForwardRef;
|
|
7746
|
+
exports.Fragment = Fragment;
|
|
7747
|
+
exports.Lazy = Lazy;
|
|
7748
|
+
exports.Memo = Memo;
|
|
7749
|
+
exports.Portal = Portal;
|
|
7750
|
+
exports.Profiler = Profiler;
|
|
7751
|
+
exports.StrictMode = StrictMode;
|
|
7752
|
+
exports.Suspense = Suspense;
|
|
7753
|
+
exports.isAsyncMode = isAsyncMode;
|
|
7754
|
+
exports.isConcurrentMode = isConcurrentMode;
|
|
7755
|
+
exports.isContextConsumer = isContextConsumer;
|
|
7756
|
+
exports.isContextProvider = isContextProvider;
|
|
7757
|
+
exports.isElement = isElement;
|
|
7758
|
+
exports.isForwardRef = isForwardRef;
|
|
7759
|
+
exports.isFragment = isFragment;
|
|
7760
|
+
exports.isLazy = isLazy;
|
|
7761
|
+
exports.isMemo = isMemo;
|
|
7762
|
+
exports.isPortal = isPortal;
|
|
7763
|
+
exports.isProfiler = isProfiler;
|
|
7764
|
+
exports.isStrictMode = isStrictMode;
|
|
7765
|
+
exports.isSuspense = isSuspense;
|
|
7766
|
+
exports.isValidElementType = isValidElementType;
|
|
7767
|
+
exports.typeOf = typeOf;
|
|
7768
|
+
})();
|
|
7769
|
+
}
|
|
7770
|
+
});
|
|
7771
|
+
reactIs_development.AsyncMode;
|
|
7772
|
+
reactIs_development.ConcurrentMode;
|
|
7773
|
+
reactIs_development.ContextConsumer;
|
|
7774
|
+
reactIs_development.ContextProvider;
|
|
7775
|
+
reactIs_development.Element;
|
|
7776
|
+
reactIs_development.ForwardRef;
|
|
7777
|
+
reactIs_development.Fragment;
|
|
7778
|
+
reactIs_development.Lazy;
|
|
7779
|
+
reactIs_development.Memo;
|
|
7780
|
+
reactIs_development.Portal;
|
|
7781
|
+
reactIs_development.Profiler;
|
|
7782
|
+
reactIs_development.StrictMode;
|
|
7783
|
+
reactIs_development.Suspense;
|
|
7784
|
+
reactIs_development.isAsyncMode;
|
|
7785
|
+
reactIs_development.isConcurrentMode;
|
|
7786
|
+
reactIs_development.isContextConsumer;
|
|
7787
|
+
reactIs_development.isContextProvider;
|
|
7788
|
+
reactIs_development.isElement;
|
|
7789
|
+
reactIs_development.isForwardRef;
|
|
7790
|
+
reactIs_development.isFragment;
|
|
7791
|
+
reactIs_development.isLazy;
|
|
7792
|
+
reactIs_development.isMemo;
|
|
7793
|
+
reactIs_development.isPortal;
|
|
7794
|
+
reactIs_development.isProfiler;
|
|
7795
|
+
reactIs_development.isStrictMode;
|
|
7796
|
+
reactIs_development.isSuspense;
|
|
7797
|
+
reactIs_development.isValidElementType;
|
|
7798
|
+
reactIs_development.typeOf;
|
|
7799
|
+
|
|
7800
|
+
var reactIs = createCommonjsModule(function (module) {
|
|
7801
|
+
|
|
7802
|
+
if (process.env.NODE_ENV === 'production') {
|
|
7803
|
+
module.exports = reactIs_production_min;
|
|
7804
|
+
} else {
|
|
7805
|
+
module.exports = reactIs_development;
|
|
7806
|
+
}
|
|
7807
|
+
});
|
|
7808
|
+
|
|
7809
|
+
/*
|
|
7810
|
+
object-assign
|
|
7811
|
+
(c) Sindre Sorhus
|
|
7812
|
+
@license MIT
|
|
7813
|
+
*/
|
|
7814
|
+
/* eslint-disable no-unused-vars */
|
|
7815
|
+
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
7816
|
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
7817
|
+
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
|
|
7818
|
+
|
|
7819
|
+
function toObject(val) {
|
|
7820
|
+
if (val === null || val === undefined) {
|
|
7821
|
+
throw new TypeError('Object.assign cannot be called with null or undefined');
|
|
7822
|
+
}
|
|
7823
|
+
|
|
7824
|
+
return Object(val);
|
|
7825
|
+
}
|
|
7826
|
+
|
|
7827
|
+
function shouldUseNative() {
|
|
7828
|
+
try {
|
|
7829
|
+
if (!Object.assign) {
|
|
7830
|
+
return false;
|
|
7831
|
+
}
|
|
7832
|
+
|
|
7833
|
+
// Detect buggy property enumeration order in older V8 versions.
|
|
7834
|
+
|
|
7835
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
|
|
7836
|
+
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
|
|
7837
|
+
test1[5] = 'de';
|
|
7838
|
+
if (Object.getOwnPropertyNames(test1)[0] === '5') {
|
|
7839
|
+
return false;
|
|
7840
|
+
}
|
|
7841
|
+
|
|
7842
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
|
|
7843
|
+
var test2 = {};
|
|
7844
|
+
for (var i = 0; i < 10; i++) {
|
|
7845
|
+
test2['_' + String.fromCharCode(i)] = i;
|
|
7846
|
+
}
|
|
7847
|
+
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
|
|
7848
|
+
return test2[n];
|
|
7849
|
+
});
|
|
7850
|
+
if (order2.join('') !== '0123456789') {
|
|
7851
|
+
return false;
|
|
7852
|
+
}
|
|
7853
|
+
|
|
7854
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
|
|
7855
|
+
var test3 = {};
|
|
7856
|
+
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
|
|
7857
|
+
test3[letter] = letter;
|
|
7858
|
+
});
|
|
7859
|
+
if (Object.keys(Object.assign({}, test3)).join('') !==
|
|
7860
|
+
'abcdefghijklmnopqrst') {
|
|
7861
|
+
return false;
|
|
7862
|
+
}
|
|
7863
|
+
|
|
7864
|
+
return true;
|
|
7865
|
+
} catch (err) {
|
|
7866
|
+
// We don't expect any of the above to throw, but better to be safe.
|
|
7867
|
+
return false;
|
|
7868
|
+
}
|
|
7869
|
+
}
|
|
7870
|
+
|
|
7871
|
+
var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
|
|
7872
|
+
var from;
|
|
7873
|
+
var to = toObject(target);
|
|
7874
|
+
var symbols;
|
|
7875
|
+
|
|
7876
|
+
for (var s = 1; s < arguments.length; s++) {
|
|
7877
|
+
from = Object(arguments[s]);
|
|
7878
|
+
|
|
7879
|
+
for (var key in from) {
|
|
7880
|
+
if (hasOwnProperty.call(from, key)) {
|
|
7881
|
+
to[key] = from[key];
|
|
7882
|
+
}
|
|
7883
|
+
}
|
|
7884
|
+
|
|
7885
|
+
if (getOwnPropertySymbols) {
|
|
7886
|
+
symbols = getOwnPropertySymbols(from);
|
|
7887
|
+
for (var i = 0; i < symbols.length; i++) {
|
|
7888
|
+
if (propIsEnumerable.call(from, symbols[i])) {
|
|
7889
|
+
to[symbols[i]] = from[symbols[i]];
|
|
7890
|
+
}
|
|
7891
|
+
}
|
|
7892
|
+
}
|
|
7893
|
+
}
|
|
7894
|
+
|
|
7895
|
+
return to;
|
|
7896
|
+
};
|
|
7897
|
+
|
|
7898
|
+
/**
|
|
7899
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
|
7900
|
+
*
|
|
7901
|
+
* This source code is licensed under the MIT license found in the
|
|
7902
|
+
* LICENSE file in the root directory of this source tree.
|
|
7903
|
+
*/
|
|
7904
|
+
|
|
7905
|
+
var ReactPropTypesSecret$2 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
|
|
7906
|
+
|
|
7907
|
+
var ReactPropTypesSecret_1 = ReactPropTypesSecret$2;
|
|
7908
|
+
|
|
7909
|
+
var has$2 = Function.call.bind(Object.prototype.hasOwnProperty);
|
|
7910
|
+
|
|
7911
|
+
var ReactPropTypesSecret$1 = ReactPropTypesSecret_1;
|
|
7912
|
+
|
|
7913
|
+
var has$1 = has$2;
|
|
7914
|
+
|
|
7915
|
+
var printWarning$1 = function() {};
|
|
7916
|
+
|
|
7917
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7918
|
+
var ReactPropTypesSecret = ReactPropTypesSecret$1;
|
|
7919
|
+
var loggedTypeFailures = {};
|
|
7920
|
+
var has = has$1;
|
|
7921
|
+
|
|
7922
|
+
printWarning$1 = function(text) {
|
|
7923
|
+
var message = 'Warning: ' + text;
|
|
7924
|
+
if (typeof console !== 'undefined') {
|
|
7925
|
+
console.error(message);
|
|
7926
|
+
}
|
|
7927
|
+
try {
|
|
7928
|
+
// --- Welcome to debugging React ---
|
|
7929
|
+
// This error was thrown as a convenience so that you can use this stack
|
|
7930
|
+
// to find the callsite that caused this warning to fire.
|
|
7931
|
+
throw new Error(message);
|
|
7932
|
+
} catch (x) { /**/ }
|
|
7933
|
+
};
|
|
7934
|
+
}
|
|
7935
|
+
|
|
7936
|
+
/**
|
|
7937
|
+
* Assert that the values match with the type specs.
|
|
7938
|
+
* Error messages are memorized and will only be shown once.
|
|
7939
|
+
*
|
|
7940
|
+
* @param {object} typeSpecs Map of name to a ReactPropType
|
|
7941
|
+
* @param {object} values Runtime values that need to be type-checked
|
|
7942
|
+
* @param {string} location e.g. "prop", "context", "child context"
|
|
7943
|
+
* @param {string} componentName Name of the component for error messages.
|
|
7944
|
+
* @param {?Function} getStack Returns the component stack.
|
|
7945
|
+
* @private
|
|
7946
|
+
*/
|
|
7947
|
+
function checkPropTypes$1(typeSpecs, values, location, componentName, getStack) {
|
|
7948
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7949
|
+
for (var typeSpecName in typeSpecs) {
|
|
7950
|
+
if (has(typeSpecs, typeSpecName)) {
|
|
7951
|
+
var error;
|
|
7952
|
+
// Prop type validation may throw. In case they do, we don't want to
|
|
7953
|
+
// fail the render phase where it didn't fail before. So we log it.
|
|
7954
|
+
// After these have been cleaned up, we'll let them throw.
|
|
7955
|
+
try {
|
|
7956
|
+
// This is intentionally an invariant that gets caught. It's the same
|
|
7957
|
+
// behavior as without this statement except with a better message.
|
|
7958
|
+
if (typeof typeSpecs[typeSpecName] !== 'function') {
|
|
7959
|
+
var err = Error(
|
|
7960
|
+
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
|
|
7961
|
+
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
|
|
7962
|
+
'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
|
|
7963
|
+
);
|
|
7964
|
+
err.name = 'Invariant Violation';
|
|
7965
|
+
throw err;
|
|
7966
|
+
}
|
|
7967
|
+
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
|
|
7968
|
+
} catch (ex) {
|
|
7969
|
+
error = ex;
|
|
7970
|
+
}
|
|
7971
|
+
if (error && !(error instanceof Error)) {
|
|
7972
|
+
printWarning$1(
|
|
7973
|
+
(componentName || 'React class') + ': type specification of ' +
|
|
7974
|
+
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
|
|
7975
|
+
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
|
|
7976
|
+
'You may have forgotten to pass an argument to the type checker ' +
|
|
7977
|
+
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
|
|
7978
|
+
'shape all require an argument).'
|
|
7979
|
+
);
|
|
7980
|
+
}
|
|
7981
|
+
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
|
|
7982
|
+
// Only monitor this failure once because there tends to be a lot of the
|
|
7983
|
+
// same error.
|
|
7984
|
+
loggedTypeFailures[error.message] = true;
|
|
7985
|
+
|
|
7986
|
+
var stack = getStack ? getStack() : '';
|
|
7987
|
+
|
|
7988
|
+
printWarning$1(
|
|
7989
|
+
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
|
|
7990
|
+
);
|
|
7991
|
+
}
|
|
7992
|
+
}
|
|
7993
|
+
}
|
|
7994
|
+
}
|
|
7995
|
+
}
|
|
7996
|
+
|
|
7997
|
+
/**
|
|
7998
|
+
* Resets warning cache when testing.
|
|
7999
|
+
*
|
|
8000
|
+
* @private
|
|
8001
|
+
*/
|
|
8002
|
+
checkPropTypes$1.resetWarningCache = function() {
|
|
8003
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
8004
|
+
loggedTypeFailures = {};
|
|
8005
|
+
}
|
|
8006
|
+
};
|
|
8007
|
+
|
|
8008
|
+
var checkPropTypes_1 = checkPropTypes$1;
|
|
8009
|
+
|
|
8010
|
+
var checkPropTypes = checkPropTypes_1;
|
|
8011
|
+
|
|
8012
|
+
var printWarning = function() {};
|
|
8013
|
+
|
|
8014
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
8015
|
+
printWarning = function(text) {
|
|
8016
|
+
var message = 'Warning: ' + text;
|
|
8017
|
+
if (typeof console !== 'undefined') {
|
|
8018
|
+
console.error(message);
|
|
8019
|
+
}
|
|
8020
|
+
try {
|
|
8021
|
+
// --- Welcome to debugging React ---
|
|
8022
|
+
// This error was thrown as a convenience so that you can use this stack
|
|
8023
|
+
// to find the callsite that caused this warning to fire.
|
|
8024
|
+
throw new Error(message);
|
|
8025
|
+
} catch (x) {}
|
|
8026
|
+
};
|
|
8027
|
+
}
|
|
8028
|
+
|
|
8029
|
+
function emptyFunctionThatReturnsNull() {
|
|
8030
|
+
return null;
|
|
8031
|
+
}
|
|
8032
|
+
|
|
8033
|
+
var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {
|
|
8034
|
+
/* global Symbol */
|
|
8035
|
+
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
|
|
8036
|
+
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
|
|
8037
|
+
|
|
8038
|
+
/**
|
|
8039
|
+
* Returns the iterator method function contained on the iterable object.
|
|
8040
|
+
*
|
|
8041
|
+
* Be sure to invoke the function with the iterable as context:
|
|
8042
|
+
*
|
|
8043
|
+
* var iteratorFn = getIteratorFn(myIterable);
|
|
8044
|
+
* if (iteratorFn) {
|
|
8045
|
+
* var iterator = iteratorFn.call(myIterable);
|
|
8046
|
+
* ...
|
|
8047
|
+
* }
|
|
8048
|
+
*
|
|
8049
|
+
* @param {?object} maybeIterable
|
|
8050
|
+
* @return {?function}
|
|
8051
|
+
*/
|
|
8052
|
+
function getIteratorFn(maybeIterable) {
|
|
8053
|
+
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
|
|
8054
|
+
if (typeof iteratorFn === 'function') {
|
|
8055
|
+
return iteratorFn;
|
|
8056
|
+
}
|
|
8057
|
+
}
|
|
8058
|
+
|
|
8059
|
+
/**
|
|
8060
|
+
* Collection of methods that allow declaration and validation of props that are
|
|
8061
|
+
* supplied to React components. Example usage:
|
|
8062
|
+
*
|
|
8063
|
+
* var Props = require('ReactPropTypes');
|
|
8064
|
+
* var MyArticle = React.createClass({
|
|
8065
|
+
* propTypes: {
|
|
8066
|
+
* // An optional string prop named "description".
|
|
8067
|
+
* description: Props.string,
|
|
8068
|
+
*
|
|
8069
|
+
* // A required enum prop named "category".
|
|
8070
|
+
* category: Props.oneOf(['News','Photos']).isRequired,
|
|
8071
|
+
*
|
|
8072
|
+
* // A prop named "dialog" that requires an instance of Dialog.
|
|
8073
|
+
* dialog: Props.instanceOf(Dialog).isRequired
|
|
8074
|
+
* },
|
|
8075
|
+
* render: function() { ... }
|
|
8076
|
+
* });
|
|
8077
|
+
*
|
|
8078
|
+
* A more formal specification of how these methods are used:
|
|
8079
|
+
*
|
|
8080
|
+
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
|
|
8081
|
+
* decl := ReactPropTypes.{type}(.isRequired)?
|
|
8082
|
+
*
|
|
8083
|
+
* Each and every declaration produces a function with the same signature. This
|
|
8084
|
+
* allows the creation of custom validation functions. For example:
|
|
8085
|
+
*
|
|
8086
|
+
* var MyLink = React.createClass({
|
|
8087
|
+
* propTypes: {
|
|
8088
|
+
* // An optional string or URI prop named "href".
|
|
8089
|
+
* href: function(props, propName, componentName) {
|
|
8090
|
+
* var propValue = props[propName];
|
|
8091
|
+
* if (propValue != null && typeof propValue !== 'string' &&
|
|
8092
|
+
* !(propValue instanceof URI)) {
|
|
8093
|
+
* return new Error(
|
|
8094
|
+
* 'Expected a string or an URI for ' + propName + ' in ' +
|
|
8095
|
+
* componentName
|
|
8096
|
+
* );
|
|
8097
|
+
* }
|
|
8098
|
+
* }
|
|
8099
|
+
* },
|
|
8100
|
+
* render: function() {...}
|
|
8101
|
+
* });
|
|
8102
|
+
*
|
|
8103
|
+
* @internal
|
|
8104
|
+
*/
|
|
8105
|
+
|
|
8106
|
+
var ANONYMOUS = '<<anonymous>>';
|
|
8107
|
+
|
|
8108
|
+
// Important!
|
|
8109
|
+
// Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
|
|
8110
|
+
var ReactPropTypes = {
|
|
8111
|
+
array: createPrimitiveTypeChecker('array'),
|
|
8112
|
+
bigint: createPrimitiveTypeChecker('bigint'),
|
|
8113
|
+
bool: createPrimitiveTypeChecker('boolean'),
|
|
8114
|
+
func: createPrimitiveTypeChecker('function'),
|
|
8115
|
+
number: createPrimitiveTypeChecker('number'),
|
|
8116
|
+
object: createPrimitiveTypeChecker('object'),
|
|
8117
|
+
string: createPrimitiveTypeChecker('string'),
|
|
8118
|
+
symbol: createPrimitiveTypeChecker('symbol'),
|
|
8119
|
+
|
|
8120
|
+
any: createAnyTypeChecker(),
|
|
8121
|
+
arrayOf: createArrayOfTypeChecker,
|
|
8122
|
+
element: createElementTypeChecker(),
|
|
8123
|
+
elementType: createElementTypeTypeChecker(),
|
|
8124
|
+
instanceOf: createInstanceTypeChecker,
|
|
8125
|
+
node: createNodeChecker(),
|
|
8126
|
+
objectOf: createObjectOfTypeChecker,
|
|
8127
|
+
oneOf: createEnumTypeChecker,
|
|
8128
|
+
oneOfType: createUnionTypeChecker,
|
|
8129
|
+
shape: createShapeTypeChecker,
|
|
8130
|
+
exact: createStrictShapeTypeChecker,
|
|
8131
|
+
};
|
|
8132
|
+
|
|
8133
|
+
/**
|
|
8134
|
+
* inlined Object.is polyfill to avoid requiring consumers ship their own
|
|
8135
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
|
|
8136
|
+
*/
|
|
8137
|
+
/*eslint-disable no-self-compare*/
|
|
8138
|
+
function is(x, y) {
|
|
8139
|
+
// SameValue algorithm
|
|
8140
|
+
if (x === y) {
|
|
8141
|
+
// Steps 1-5, 7-10
|
|
8142
|
+
// Steps 6.b-6.e: +0 != -0
|
|
8143
|
+
return x !== 0 || 1 / x === 1 / y;
|
|
8144
|
+
} else {
|
|
8145
|
+
// Step 6.a: NaN == NaN
|
|
8146
|
+
return x !== x && y !== y;
|
|
8147
|
+
}
|
|
8148
|
+
}
|
|
8149
|
+
/*eslint-enable no-self-compare*/
|
|
8150
|
+
|
|
8151
|
+
/**
|
|
8152
|
+
* We use an Error-like object for backward compatibility as people may call
|
|
8153
|
+
* PropTypes directly and inspect their output. However, we don't use real
|
|
8154
|
+
* Errors anymore. We don't inspect their stack anyway, and creating them
|
|
8155
|
+
* is prohibitively expensive if they are created too often, such as what
|
|
8156
|
+
* happens in oneOfType() for any type before the one that matched.
|
|
8157
|
+
*/
|
|
8158
|
+
function PropTypeError(message, data) {
|
|
8159
|
+
this.message = message;
|
|
8160
|
+
this.data = data && typeof data === 'object' ? data: {};
|
|
8161
|
+
this.stack = '';
|
|
8162
|
+
}
|
|
8163
|
+
// Make `instanceof Error` still work for returned errors.
|
|
8164
|
+
PropTypeError.prototype = Error.prototype;
|
|
8165
|
+
|
|
8166
|
+
function createChainableTypeChecker(validate) {
|
|
8167
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
8168
|
+
var manualPropTypeCallCache = {};
|
|
8169
|
+
var manualPropTypeWarningCount = 0;
|
|
8170
|
+
}
|
|
8171
|
+
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
|
|
8172
|
+
componentName = componentName || ANONYMOUS;
|
|
8173
|
+
propFullName = propFullName || propName;
|
|
8174
|
+
|
|
8175
|
+
if (secret !== ReactPropTypesSecret$1) {
|
|
8176
|
+
if (throwOnDirectAccess) {
|
|
8177
|
+
// New behavior only for users of `prop-types` package
|
|
8178
|
+
var err = new Error(
|
|
8179
|
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
|
|
8180
|
+
'Use `PropTypes.checkPropTypes()` to call them. ' +
|
|
8181
|
+
'Read more at http://fb.me/use-check-prop-types'
|
|
8182
|
+
);
|
|
8183
|
+
err.name = 'Invariant Violation';
|
|
8184
|
+
throw err;
|
|
8185
|
+
} else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
|
|
8186
|
+
// Old behavior for people using React.PropTypes
|
|
8187
|
+
var cacheKey = componentName + ':' + propName;
|
|
8188
|
+
if (
|
|
8189
|
+
!manualPropTypeCallCache[cacheKey] &&
|
|
8190
|
+
// Avoid spamming the console because they are often not actionable except for lib authors
|
|
8191
|
+
manualPropTypeWarningCount < 3
|
|
8192
|
+
) {
|
|
8193
|
+
printWarning(
|
|
8194
|
+
'You are manually calling a React.PropTypes validation ' +
|
|
8195
|
+
'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
|
|
8196
|
+
'and will throw in the standalone `prop-types` package. ' +
|
|
8197
|
+
'You may be seeing this warning due to a third-party PropTypes ' +
|
|
8198
|
+
'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
|
|
8199
|
+
);
|
|
8200
|
+
manualPropTypeCallCache[cacheKey] = true;
|
|
8201
|
+
manualPropTypeWarningCount++;
|
|
8202
|
+
}
|
|
8203
|
+
}
|
|
8204
|
+
}
|
|
8205
|
+
if (props[propName] == null) {
|
|
8206
|
+
if (isRequired) {
|
|
8207
|
+
if (props[propName] === null) {
|
|
8208
|
+
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
|
|
8209
|
+
}
|
|
8210
|
+
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
|
|
8211
|
+
}
|
|
8212
|
+
return null;
|
|
8213
|
+
} else {
|
|
8214
|
+
return validate(props, propName, componentName, location, propFullName);
|
|
8215
|
+
}
|
|
8216
|
+
}
|
|
8217
|
+
|
|
8218
|
+
var chainedCheckType = checkType.bind(null, false);
|
|
8219
|
+
chainedCheckType.isRequired = checkType.bind(null, true);
|
|
8220
|
+
|
|
8221
|
+
return chainedCheckType;
|
|
8222
|
+
}
|
|
8223
|
+
|
|
8224
|
+
function createPrimitiveTypeChecker(expectedType) {
|
|
8225
|
+
function validate(props, propName, componentName, location, propFullName, secret) {
|
|
8226
|
+
var propValue = props[propName];
|
|
8227
|
+
var propType = getPropType(propValue);
|
|
8228
|
+
if (propType !== expectedType) {
|
|
8229
|
+
// `propValue` being instance of, say, date/regexp, pass the 'object'
|
|
8230
|
+
// check, but we can offer a more precise error message here rather than
|
|
8231
|
+
// 'of type `object`'.
|
|
8232
|
+
var preciseType = getPreciseType(propValue);
|
|
8233
|
+
|
|
8234
|
+
return new PropTypeError(
|
|
8235
|
+
'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
|
|
8236
|
+
{expectedType: expectedType}
|
|
8237
|
+
);
|
|
8238
|
+
}
|
|
8239
|
+
return null;
|
|
8240
|
+
}
|
|
8241
|
+
return createChainableTypeChecker(validate);
|
|
8242
|
+
}
|
|
8243
|
+
|
|
8244
|
+
function createAnyTypeChecker() {
|
|
8245
|
+
return createChainableTypeChecker(emptyFunctionThatReturnsNull);
|
|
8246
|
+
}
|
|
8247
|
+
|
|
8248
|
+
function createArrayOfTypeChecker(typeChecker) {
|
|
8249
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8250
|
+
if (typeof typeChecker !== 'function') {
|
|
8251
|
+
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
|
|
8252
|
+
}
|
|
8253
|
+
var propValue = props[propName];
|
|
8254
|
+
if (!Array.isArray(propValue)) {
|
|
8255
|
+
var propType = getPropType(propValue);
|
|
8256
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
|
|
8257
|
+
}
|
|
8258
|
+
for (var i = 0; i < propValue.length; i++) {
|
|
8259
|
+
var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret$1);
|
|
8260
|
+
if (error instanceof Error) {
|
|
8261
|
+
return error;
|
|
8262
|
+
}
|
|
8263
|
+
}
|
|
8264
|
+
return null;
|
|
8265
|
+
}
|
|
8266
|
+
return createChainableTypeChecker(validate);
|
|
8267
|
+
}
|
|
8268
|
+
|
|
8269
|
+
function createElementTypeChecker() {
|
|
8270
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8271
|
+
var propValue = props[propName];
|
|
8272
|
+
if (!isValidElement(propValue)) {
|
|
8273
|
+
var propType = getPropType(propValue);
|
|
8274
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
|
|
8275
|
+
}
|
|
8276
|
+
return null;
|
|
8277
|
+
}
|
|
8278
|
+
return createChainableTypeChecker(validate);
|
|
8279
|
+
}
|
|
8280
|
+
|
|
8281
|
+
function createElementTypeTypeChecker() {
|
|
8282
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8283
|
+
var propValue = props[propName];
|
|
8284
|
+
if (!reactIs.isValidElementType(propValue)) {
|
|
8285
|
+
var propType = getPropType(propValue);
|
|
8286
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
|
|
8287
|
+
}
|
|
8288
|
+
return null;
|
|
8289
|
+
}
|
|
8290
|
+
return createChainableTypeChecker(validate);
|
|
8291
|
+
}
|
|
8292
|
+
|
|
8293
|
+
function createInstanceTypeChecker(expectedClass) {
|
|
8294
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8295
|
+
if (!(props[propName] instanceof expectedClass)) {
|
|
8296
|
+
var expectedClassName = expectedClass.name || ANONYMOUS;
|
|
8297
|
+
var actualClassName = getClassName(props[propName]);
|
|
8298
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
|
|
8299
|
+
}
|
|
8300
|
+
return null;
|
|
8301
|
+
}
|
|
8302
|
+
return createChainableTypeChecker(validate);
|
|
8303
|
+
}
|
|
8304
|
+
|
|
8305
|
+
function createEnumTypeChecker(expectedValues) {
|
|
8306
|
+
if (!Array.isArray(expectedValues)) {
|
|
8307
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
8308
|
+
if (arguments.length > 1) {
|
|
8309
|
+
printWarning(
|
|
8310
|
+
'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
|
|
8311
|
+
'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
|
|
8312
|
+
);
|
|
8313
|
+
} else {
|
|
8314
|
+
printWarning('Invalid argument supplied to oneOf, expected an array.');
|
|
8315
|
+
}
|
|
8316
|
+
}
|
|
8317
|
+
return emptyFunctionThatReturnsNull;
|
|
8318
|
+
}
|
|
8319
|
+
|
|
8320
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8321
|
+
var propValue = props[propName];
|
|
8322
|
+
for (var i = 0; i < expectedValues.length; i++) {
|
|
8323
|
+
if (is(propValue, expectedValues[i])) {
|
|
8324
|
+
return null;
|
|
8325
|
+
}
|
|
8326
|
+
}
|
|
8327
|
+
|
|
8328
|
+
var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
|
|
8329
|
+
var type = getPreciseType(value);
|
|
8330
|
+
if (type === 'symbol') {
|
|
8331
|
+
return String(value);
|
|
8332
|
+
}
|
|
8333
|
+
return value;
|
|
8334
|
+
});
|
|
8335
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
|
|
8336
|
+
}
|
|
8337
|
+
return createChainableTypeChecker(validate);
|
|
8338
|
+
}
|
|
8339
|
+
|
|
8340
|
+
function createObjectOfTypeChecker(typeChecker) {
|
|
8341
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8342
|
+
if (typeof typeChecker !== 'function') {
|
|
8343
|
+
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
|
|
8344
|
+
}
|
|
8345
|
+
var propValue = props[propName];
|
|
8346
|
+
var propType = getPropType(propValue);
|
|
8347
|
+
if (propType !== 'object') {
|
|
8348
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
|
|
8349
|
+
}
|
|
8350
|
+
for (var key in propValue) {
|
|
8351
|
+
if (has$1(propValue, key)) {
|
|
8352
|
+
var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
|
|
8353
|
+
if (error instanceof Error) {
|
|
8354
|
+
return error;
|
|
8355
|
+
}
|
|
8356
|
+
}
|
|
8357
|
+
}
|
|
8358
|
+
return null;
|
|
8359
|
+
}
|
|
8360
|
+
return createChainableTypeChecker(validate);
|
|
8361
|
+
}
|
|
8362
|
+
|
|
8363
|
+
function createUnionTypeChecker(arrayOfTypeCheckers) {
|
|
8364
|
+
if (!Array.isArray(arrayOfTypeCheckers)) {
|
|
8365
|
+
process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
|
|
8366
|
+
return emptyFunctionThatReturnsNull;
|
|
8367
|
+
}
|
|
8368
|
+
|
|
8369
|
+
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
|
|
8370
|
+
var checker = arrayOfTypeCheckers[i];
|
|
8371
|
+
if (typeof checker !== 'function') {
|
|
8372
|
+
printWarning(
|
|
8373
|
+
'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
|
|
8374
|
+
'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
|
|
8375
|
+
);
|
|
8376
|
+
return emptyFunctionThatReturnsNull;
|
|
8377
|
+
}
|
|
8378
|
+
}
|
|
8379
|
+
|
|
8380
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8381
|
+
var expectedTypes = [];
|
|
8382
|
+
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
|
|
8383
|
+
var checker = arrayOfTypeCheckers[i];
|
|
8384
|
+
var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret$1);
|
|
8385
|
+
if (checkerResult == null) {
|
|
8386
|
+
return null;
|
|
8387
|
+
}
|
|
8388
|
+
if (checkerResult.data && has$1(checkerResult.data, 'expectedType')) {
|
|
8389
|
+
expectedTypes.push(checkerResult.data.expectedType);
|
|
8390
|
+
}
|
|
8391
|
+
}
|
|
8392
|
+
var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
|
|
8393
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
|
|
8394
|
+
}
|
|
8395
|
+
return createChainableTypeChecker(validate);
|
|
8396
|
+
}
|
|
8397
|
+
|
|
8398
|
+
function createNodeChecker() {
|
|
8399
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8400
|
+
if (!isNode(props[propName])) {
|
|
8401
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
|
|
8402
|
+
}
|
|
8403
|
+
return null;
|
|
8404
|
+
}
|
|
8405
|
+
return createChainableTypeChecker(validate);
|
|
8406
|
+
}
|
|
8407
|
+
|
|
8408
|
+
function invalidValidatorError(componentName, location, propFullName, key, type) {
|
|
8409
|
+
return new PropTypeError(
|
|
8410
|
+
(componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
|
|
8411
|
+
'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
|
|
8412
|
+
);
|
|
8413
|
+
}
|
|
8414
|
+
|
|
8415
|
+
function createShapeTypeChecker(shapeTypes) {
|
|
8416
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8417
|
+
var propValue = props[propName];
|
|
8418
|
+
var propType = getPropType(propValue);
|
|
8419
|
+
if (propType !== 'object') {
|
|
8420
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
|
|
8421
|
+
}
|
|
8422
|
+
for (var key in shapeTypes) {
|
|
8423
|
+
var checker = shapeTypes[key];
|
|
8424
|
+
if (typeof checker !== 'function') {
|
|
8425
|
+
return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
|
|
8426
|
+
}
|
|
8427
|
+
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
|
|
8428
|
+
if (error) {
|
|
8429
|
+
return error;
|
|
8430
|
+
}
|
|
8431
|
+
}
|
|
8432
|
+
return null;
|
|
8433
|
+
}
|
|
8434
|
+
return createChainableTypeChecker(validate);
|
|
8435
|
+
}
|
|
8436
|
+
|
|
8437
|
+
function createStrictShapeTypeChecker(shapeTypes) {
|
|
8438
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
8439
|
+
var propValue = props[propName];
|
|
8440
|
+
var propType = getPropType(propValue);
|
|
8441
|
+
if (propType !== 'object') {
|
|
8442
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
|
|
8443
|
+
}
|
|
8444
|
+
// We need to check all keys in case some are required but missing from props.
|
|
8445
|
+
var allKeys = objectAssign({}, props[propName], shapeTypes);
|
|
8446
|
+
for (var key in allKeys) {
|
|
8447
|
+
var checker = shapeTypes[key];
|
|
8448
|
+
if (has$1(shapeTypes, key) && typeof checker !== 'function') {
|
|
8449
|
+
return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
|
|
8450
|
+
}
|
|
8451
|
+
if (!checker) {
|
|
8452
|
+
return new PropTypeError(
|
|
8453
|
+
'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
|
|
8454
|
+
'\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
|
|
8455
|
+
'\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
|
|
8456
|
+
);
|
|
8457
|
+
}
|
|
8458
|
+
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
|
|
8459
|
+
if (error) {
|
|
8460
|
+
return error;
|
|
8461
|
+
}
|
|
8462
|
+
}
|
|
8463
|
+
return null;
|
|
8464
|
+
}
|
|
8465
|
+
|
|
8466
|
+
return createChainableTypeChecker(validate);
|
|
8467
|
+
}
|
|
8468
|
+
|
|
8469
|
+
function isNode(propValue) {
|
|
8470
|
+
switch (typeof propValue) {
|
|
8471
|
+
case 'number':
|
|
8472
|
+
case 'string':
|
|
8473
|
+
case 'undefined':
|
|
8474
|
+
return true;
|
|
8475
|
+
case 'boolean':
|
|
8476
|
+
return !propValue;
|
|
8477
|
+
case 'object':
|
|
8478
|
+
if (Array.isArray(propValue)) {
|
|
8479
|
+
return propValue.every(isNode);
|
|
8480
|
+
}
|
|
8481
|
+
if (propValue === null || isValidElement(propValue)) {
|
|
8482
|
+
return true;
|
|
8483
|
+
}
|
|
8484
|
+
|
|
8485
|
+
var iteratorFn = getIteratorFn(propValue);
|
|
8486
|
+
if (iteratorFn) {
|
|
8487
|
+
var iterator = iteratorFn.call(propValue);
|
|
8488
|
+
var step;
|
|
8489
|
+
if (iteratorFn !== propValue.entries) {
|
|
8490
|
+
while (!(step = iterator.next()).done) {
|
|
8491
|
+
if (!isNode(step.value)) {
|
|
8492
|
+
return false;
|
|
8493
|
+
}
|
|
8494
|
+
}
|
|
8495
|
+
} else {
|
|
8496
|
+
// Iterator will provide entry [k,v] tuples rather than values.
|
|
8497
|
+
while (!(step = iterator.next()).done) {
|
|
8498
|
+
var entry = step.value;
|
|
8499
|
+
if (entry) {
|
|
8500
|
+
if (!isNode(entry[1])) {
|
|
8501
|
+
return false;
|
|
8502
|
+
}
|
|
8503
|
+
}
|
|
8504
|
+
}
|
|
8505
|
+
}
|
|
8506
|
+
} else {
|
|
8507
|
+
return false;
|
|
8508
|
+
}
|
|
8509
|
+
|
|
8510
|
+
return true;
|
|
8511
|
+
default:
|
|
8512
|
+
return false;
|
|
8513
|
+
}
|
|
8514
|
+
}
|
|
8515
|
+
|
|
8516
|
+
function isSymbol(propType, propValue) {
|
|
8517
|
+
// Native Symbol.
|
|
8518
|
+
if (propType === 'symbol') {
|
|
8519
|
+
return true;
|
|
8520
|
+
}
|
|
8521
|
+
|
|
8522
|
+
// falsy value can't be a Symbol
|
|
8523
|
+
if (!propValue) {
|
|
8524
|
+
return false;
|
|
8525
|
+
}
|
|
8526
|
+
|
|
8527
|
+
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
|
|
8528
|
+
if (propValue['@@toStringTag'] === 'Symbol') {
|
|
8529
|
+
return true;
|
|
8530
|
+
}
|
|
8531
|
+
|
|
8532
|
+
// Fallback for non-spec compliant Symbols which are polyfilled.
|
|
8533
|
+
if (typeof Symbol === 'function' && propValue instanceof Symbol) {
|
|
8534
|
+
return true;
|
|
8535
|
+
}
|
|
8536
|
+
|
|
8537
|
+
return false;
|
|
8538
|
+
}
|
|
8539
|
+
|
|
8540
|
+
// Equivalent of `typeof` but with special handling for array and regexp.
|
|
8541
|
+
function getPropType(propValue) {
|
|
8542
|
+
var propType = typeof propValue;
|
|
8543
|
+
if (Array.isArray(propValue)) {
|
|
8544
|
+
return 'array';
|
|
8545
|
+
}
|
|
8546
|
+
if (propValue instanceof RegExp) {
|
|
8547
|
+
// Old webkits (at least until Android 4.0) return 'function' rather than
|
|
8548
|
+
// 'object' for typeof a RegExp. We'll normalize this here so that /bla/
|
|
8549
|
+
// passes PropTypes.object.
|
|
8550
|
+
return 'object';
|
|
8551
|
+
}
|
|
8552
|
+
if (isSymbol(propType, propValue)) {
|
|
8553
|
+
return 'symbol';
|
|
8554
|
+
}
|
|
8555
|
+
return propType;
|
|
8556
|
+
}
|
|
8557
|
+
|
|
8558
|
+
// This handles more types than `getPropType`. Only used for error messages.
|
|
8559
|
+
// See `createPrimitiveTypeChecker`.
|
|
8560
|
+
function getPreciseType(propValue) {
|
|
8561
|
+
if (typeof propValue === 'undefined' || propValue === null) {
|
|
8562
|
+
return '' + propValue;
|
|
8563
|
+
}
|
|
8564
|
+
var propType = getPropType(propValue);
|
|
8565
|
+
if (propType === 'object') {
|
|
8566
|
+
if (propValue instanceof Date) {
|
|
8567
|
+
return 'date';
|
|
8568
|
+
} else if (propValue instanceof RegExp) {
|
|
8569
|
+
return 'regexp';
|
|
8570
|
+
}
|
|
8571
|
+
}
|
|
8572
|
+
return propType;
|
|
8573
|
+
}
|
|
8574
|
+
|
|
8575
|
+
// Returns a string that is postfixed to a warning about an invalid type.
|
|
8576
|
+
// For example, "undefined" or "of type array"
|
|
8577
|
+
function getPostfixForTypeWarning(value) {
|
|
8578
|
+
var type = getPreciseType(value);
|
|
8579
|
+
switch (type) {
|
|
8580
|
+
case 'array':
|
|
8581
|
+
case 'object':
|
|
8582
|
+
return 'an ' + type;
|
|
8583
|
+
case 'boolean':
|
|
8584
|
+
case 'date':
|
|
8585
|
+
case 'regexp':
|
|
8586
|
+
return 'a ' + type;
|
|
8587
|
+
default:
|
|
8588
|
+
return type;
|
|
8589
|
+
}
|
|
8590
|
+
}
|
|
8591
|
+
|
|
8592
|
+
// Returns class name of the object, if any.
|
|
8593
|
+
function getClassName(propValue) {
|
|
8594
|
+
if (!propValue.constructor || !propValue.constructor.name) {
|
|
8595
|
+
return ANONYMOUS;
|
|
8596
|
+
}
|
|
8597
|
+
return propValue.constructor.name;
|
|
8598
|
+
}
|
|
8599
|
+
|
|
8600
|
+
ReactPropTypes.checkPropTypes = checkPropTypes;
|
|
8601
|
+
ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
|
|
8602
|
+
ReactPropTypes.PropTypes = ReactPropTypes;
|
|
8603
|
+
|
|
8604
|
+
return ReactPropTypes;
|
|
8605
|
+
};
|
|
8606
|
+
|
|
8607
|
+
function emptyFunction() {}
|
|
8608
|
+
function emptyFunctionWithReset() {}
|
|
8609
|
+
emptyFunctionWithReset.resetWarningCache = emptyFunction;
|
|
8610
|
+
|
|
8611
|
+
var factoryWithThrowingShims = function() {
|
|
8612
|
+
function shim(props, propName, componentName, location, propFullName, secret) {
|
|
8613
|
+
if (secret === ReactPropTypesSecret$1) {
|
|
8614
|
+
// It is still safe when called from React.
|
|
8615
|
+
return;
|
|
8616
|
+
}
|
|
8617
|
+
var err = new Error(
|
|
8618
|
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
|
|
8619
|
+
'Use PropTypes.checkPropTypes() to call them. ' +
|
|
8620
|
+
'Read more at http://fb.me/use-check-prop-types'
|
|
8621
|
+
);
|
|
8622
|
+
err.name = 'Invariant Violation';
|
|
8623
|
+
throw err;
|
|
8624
|
+
} shim.isRequired = shim;
|
|
8625
|
+
function getShim() {
|
|
8626
|
+
return shim;
|
|
8627
|
+
} // Important!
|
|
8628
|
+
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
|
|
8629
|
+
var ReactPropTypes = {
|
|
8630
|
+
array: shim,
|
|
8631
|
+
bigint: shim,
|
|
8632
|
+
bool: shim,
|
|
8633
|
+
func: shim,
|
|
8634
|
+
number: shim,
|
|
8635
|
+
object: shim,
|
|
8636
|
+
string: shim,
|
|
8637
|
+
symbol: shim,
|
|
8638
|
+
|
|
8639
|
+
any: shim,
|
|
8640
|
+
arrayOf: getShim,
|
|
8641
|
+
element: shim,
|
|
8642
|
+
elementType: shim,
|
|
8643
|
+
instanceOf: getShim,
|
|
8644
|
+
node: shim,
|
|
8645
|
+
objectOf: getShim,
|
|
8646
|
+
oneOf: getShim,
|
|
8647
|
+
oneOfType: getShim,
|
|
8648
|
+
shape: getShim,
|
|
8649
|
+
exact: getShim,
|
|
8650
|
+
|
|
8651
|
+
checkPropTypes: emptyFunctionWithReset,
|
|
8652
|
+
resetWarningCache: emptyFunction
|
|
8653
|
+
};
|
|
8654
|
+
|
|
8655
|
+
ReactPropTypes.PropTypes = ReactPropTypes;
|
|
8656
|
+
|
|
8657
|
+
return ReactPropTypes;
|
|
8658
|
+
};
|
|
8659
|
+
|
|
8660
|
+
var require$$1 = factoryWithTypeCheckers;
|
|
8661
|
+
|
|
8662
|
+
var require$$2 = factoryWithThrowingShims;
|
|
8663
|
+
|
|
8664
|
+
var propTypes = createCommonjsModule(function (module) {
|
|
8665
|
+
/**
|
|
8666
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
|
8667
|
+
*
|
|
8668
|
+
* This source code is licensed under the MIT license found in the
|
|
8669
|
+
* LICENSE file in the root directory of this source tree.
|
|
8670
|
+
*/
|
|
8671
|
+
|
|
8672
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
8673
|
+
var ReactIs = reactIs;
|
|
8674
|
+
|
|
8675
|
+
// By explicitly using `prop-types` you are opting into new development behavior.
|
|
8676
|
+
// http://fb.me/prop-types-in-prod
|
|
8677
|
+
var throwOnDirectAccess = true;
|
|
8678
|
+
module.exports = require$$1(ReactIs.isElement, throwOnDirectAccess);
|
|
8679
|
+
} else {
|
|
8680
|
+
// By explicitly using `prop-types` you are opting into new production behavior.
|
|
8681
|
+
// http://fb.me/prop-types-in-prod
|
|
8682
|
+
module.exports = require$$2();
|
|
8683
|
+
}
|
|
8684
|
+
});
|
|
8685
|
+
|
|
8686
|
+
var PropTypes = propTypes;
|
|
8687
|
+
|
|
8688
|
+
/**
|
|
8689
|
+
* @param {{text: string}} props
|
|
8690
|
+
*/
|
|
8691
|
+
var HTMLComment = function HTMLComment(props) {
|
|
8692
|
+
var text = props.text;
|
|
8693
|
+
var ref = /*#__PURE__*/React.createRef();
|
|
8694
|
+
useLayoutEffect(function () {
|
|
8695
|
+
var el = null;
|
|
8696
|
+
var parent = null;
|
|
8697
|
+
var comm = null;
|
|
8698
|
+
if (ref.current) {
|
|
8699
|
+
el = ref.current;
|
|
8700
|
+
parent = el.parentNode;
|
|
8701
|
+
comm = (window || global).document.createComment(" ".concat(text.trim(), " "));
|
|
8702
|
+
try {
|
|
8703
|
+
if (parent && parent.contains(el)) {
|
|
8704
|
+
parent.replaceChild(comm, el);
|
|
8705
|
+
}
|
|
8706
|
+
} catch (err) {
|
|
8707
|
+
console.error(err);
|
|
8708
|
+
}
|
|
8709
|
+
}
|
|
8710
|
+
return function () {
|
|
8711
|
+
if (parent && el && comm) {
|
|
8712
|
+
parent.replaceChild(el, comm);
|
|
8713
|
+
}
|
|
8714
|
+
};
|
|
8715
|
+
}, []);
|
|
8716
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
8717
|
+
ref: ref,
|
|
8718
|
+
style: {
|
|
8719
|
+
display: 'none'
|
|
8720
|
+
}
|
|
8721
|
+
});
|
|
8722
|
+
};
|
|
8723
|
+
HTMLComment.propTypes = {
|
|
8724
|
+
text: PropTypes.string
|
|
8725
|
+
};
|
|
8726
|
+
|
|
8727
|
+
var Icon$1 = function (_a) {
|
|
8728
|
+
var name = _a.name, className = _a.className, title = _a.title, width = _a.width, height = _a.height;
|
|
8729
|
+
var icons = useContext(SettingsContext$1).icons;
|
|
8730
|
+
if (icons) {
|
|
8731
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8732
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8733
|
+
.join(" "), width: width, height: height },
|
|
8734
|
+
title && React.createElement("title", null, title),
|
|
8735
|
+
React.createElement("use", { href: "".concat(icons, "#").concat(name) })));
|
|
8736
|
+
}
|
|
8737
|
+
switch (name) {
|
|
8738
|
+
case "ui-close":
|
|
8739
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8740
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8741
|
+
.join(" "), width: width, height: height, viewBox: "0 0 384 512" },
|
|
8742
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8743
|
+
title && React.createElement("title", null, title),
|
|
8744
|
+
React.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" })));
|
|
8745
|
+
case "ui-plus":
|
|
8746
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8747
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8748
|
+
.join(" "), width: width, height: height, viewBox: "0 0 448 512" },
|
|
8749
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8750
|
+
title && React.createElement("title", null, title),
|
|
8751
|
+
React.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" })));
|
|
8752
|
+
case "ui-min":
|
|
8753
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8754
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8755
|
+
.join(" "), width: width, height: height, viewBox: "0 0 448 512" },
|
|
8756
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8757
|
+
title && React.createElement("title", null, title),
|
|
8758
|
+
React.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" })));
|
|
8759
|
+
case "ui-chevron":
|
|
8760
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8761
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8762
|
+
.join(" "), width: width, height: height, viewBox: "0 0 320 512" },
|
|
8763
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8764
|
+
title && React.createElement("title", null, title),
|
|
8765
|
+
React.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" })));
|
|
8766
|
+
case "ui-calendar":
|
|
8767
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8768
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8769
|
+
.join(" "), width: width, height: height, viewBox: "0 0 448 512" },
|
|
8770
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8771
|
+
title && React.createElement("title", null, title),
|
|
8772
|
+
React.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" })));
|
|
8773
|
+
case "ui-bed":
|
|
8774
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8775
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8776
|
+
.join(" "), width: width, height: height, viewBox: "0 0 640 512" },
|
|
8777
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8778
|
+
title && React.createElement("title", null, title),
|
|
8779
|
+
React.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" })));
|
|
8780
|
+
case "ui-flight":
|
|
8781
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8782
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8783
|
+
.join(" "), width: width, height: height, viewBox: "0 0 576 512" },
|
|
8784
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8785
|
+
title && React.createElement("title", null, title),
|
|
8786
|
+
React.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" })));
|
|
8787
|
+
case "ui-transfer":
|
|
8788
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8789
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8790
|
+
.join(" "), width: width, height: height, viewBox: "0 0 512 512" },
|
|
8791
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8792
|
+
title && React.createElement("title", null, title),
|
|
8793
|
+
React.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" })));
|
|
8794
|
+
case "ui-star":
|
|
8795
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8796
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8797
|
+
.join(" "), width: width, height: height, viewBox: "0 0 576 512" },
|
|
8798
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8799
|
+
title && React.createElement("title", null, title),
|
|
8800
|
+
React.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" })));
|
|
8801
|
+
case "ui-halfstar":
|
|
8802
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8803
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8804
|
+
.join(" "), width: width, height: height, viewBox: "0 0 576 512" },
|
|
8805
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8806
|
+
title && React.createElement("title", null, title),
|
|
8807
|
+
React.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" })));
|
|
8808
|
+
case "ui-user":
|
|
8809
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8810
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8811
|
+
.join(" "), width: width, height: height, viewBox: "0 0 448 512" },
|
|
8812
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8813
|
+
title && React.createElement("title", null, title),
|
|
8814
|
+
React.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" })));
|
|
8815
|
+
case "ui-pencil":
|
|
8816
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8817
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8818
|
+
.join(" "), width: width, height: height, viewBox: "0 0 512 512" },
|
|
8819
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8820
|
+
title && React.createElement("title", null, title),
|
|
8821
|
+
React.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" })));
|
|
8822
|
+
case "ui-check":
|
|
8823
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
8824
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
8825
|
+
.join(" "), width: width, height: height, viewBox: "0 0 448 512" },
|
|
8826
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
8827
|
+
title && React.createElement("title", null, title),
|
|
8828
|
+
React.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" })));
|
|
8829
|
+
default:
|
|
8830
|
+
return null;
|
|
8831
|
+
}
|
|
8832
|
+
};
|
|
8833
|
+
|
|
8834
|
+
var Calendar = function (_a) {
|
|
8835
|
+
var _b = _a.year, year = _b === void 0 ? getYear(new Date()) : _b, _c = _a.month, month = _c === void 0 ? 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;
|
|
8836
|
+
var language = useContext(SettingsContext$1).language;
|
|
8837
|
+
var locale = getLocale(language);
|
|
8838
|
+
var handleDayClick = function (day) {
|
|
8839
|
+
if (onDayClick) {
|
|
8840
|
+
onDayClick(day);
|
|
8841
|
+
}
|
|
8842
|
+
};
|
|
8843
|
+
var handleDayMouseOver = function (day) {
|
|
8844
|
+
if (onDayMouseOver) {
|
|
8845
|
+
onDayMouseOver(day);
|
|
8846
|
+
}
|
|
8847
|
+
};
|
|
8848
|
+
var handleNextClick = function () {
|
|
8849
|
+
var nextMonth = (month + 1) % 12;
|
|
8850
|
+
var nextMonthsYear = nextMonth < month ? year + 1 : year;
|
|
8851
|
+
if (onNextClick) {
|
|
8852
|
+
onNextClick(nextMonthsYear, nextMonth);
|
|
8853
|
+
}
|
|
8854
|
+
};
|
|
8855
|
+
var handlePreviousClick = function () {
|
|
8856
|
+
var previousMonth = (month - 1) % 12;
|
|
8857
|
+
var previousMonthsYear = previousMonth > month ? year - 1 : year;
|
|
8858
|
+
if (onPreviousClick) {
|
|
8859
|
+
onPreviousClick(previousMonthsYear, previousMonth);
|
|
8860
|
+
}
|
|
8861
|
+
};
|
|
8862
|
+
var focusDate = new Date(year, month);
|
|
8863
|
+
var firstDay = startOfWeek(startOfMonth(focusDate), { weekStartsOn: weekStartsOn });
|
|
8864
|
+
var lastDay = hasFixedHeight
|
|
8865
|
+
? endOfWeek(addWeeks(firstDay, 5), { weekStartsOn: weekStartsOn })
|
|
8866
|
+
: endOfWeek(endOfMonth(focusDate), { weekStartsOn: weekStartsOn });
|
|
8867
|
+
var calendarDays = eachDayOfInterval({ start: firstDay, end: lastDay });
|
|
8868
|
+
var mapDay = function (day) {
|
|
8869
|
+
var isoDay = getISODay(day);
|
|
8870
|
+
var isDisabled = isFunction(disabledDaysFunction) && disabledDaysFunction(day);
|
|
8871
|
+
var isSelected = isFunction(selectedDaysFunction) && selectedDaysFunction(day);
|
|
8872
|
+
var isOutsideMonth = !isSameMonth(day, focusDate);
|
|
8873
|
+
var extraClassNames = isFunction(extraClassNamesFunction)
|
|
8874
|
+
? extraClassNamesFunction(day)
|
|
8875
|
+
: undefined;
|
|
8876
|
+
return (React.createElement(CalendarDay, { key: "day_".concat(isoDay), day: day, isSelected: isSelected, isDisabled: isDisabled, isOutsideMonth: isOutsideMonth, extraClassNames: extraClassNames, onClick: handleDayClick, onMouseOver: handleDayMouseOver }, isFunction(dayContentFunction) ? dayContentFunction(day) : undefined));
|
|
8877
|
+
};
|
|
8878
|
+
var mapWeek = function (weekDays) {
|
|
8879
|
+
if (weekDays.length === 0) {
|
|
8880
|
+
return null;
|
|
8881
|
+
}
|
|
8882
|
+
var isoWeek = getISOWeek(weekDays[0]);
|
|
8883
|
+
return (React.createElement("div", { className: "calendar__week", key: "week_".concat(isoWeek) }, weekDays.map(mapDay)));
|
|
8884
|
+
};
|
|
8885
|
+
return (React.createElement("div", { className: "calendar" },
|
|
8886
|
+
React.createElement("div", { className: "calendar__header" },
|
|
8887
|
+
React.createElement("div", { className: "calendar__pager" },
|
|
8888
|
+
React.createElement("div", { className: buildClassName([
|
|
8889
|
+
"calendar__previous",
|
|
8890
|
+
!hasPreviousButton && "calendar__previous--disabled",
|
|
8891
|
+
]), onClick: handlePreviousClick },
|
|
8892
|
+
React.createElement(Icon$1, { name: "ui-chevron" })),
|
|
8893
|
+
React.createElement("div", { className: "calendar__current-month" }, format$1(focusDate, "MMMM yyyy", { locale: locale })),
|
|
8894
|
+
React.createElement("div", { className: buildClassName([
|
|
8895
|
+
"calendar__next",
|
|
8896
|
+
!hasNextButton && "calendar__next--disabled",
|
|
8897
|
+
]), onClick: handleNextClick },
|
|
8898
|
+
React.createElement(Icon$1, { name: "ui-chevron" }))),
|
|
8899
|
+
React.createElement("div", { className: "calendar__day-labels" }, range(0, 7).map(function (i) { return (React.createElement("div", { className: "calendar__day-label", key: "day_".concat(i) }, format$1(calendarDays[i], "EEEEEE", { locale: locale }))); }))),
|
|
8900
|
+
React.createElement("div", { className: "calendar__body" }, chunk(calendarDays, 7).map(mapWeek))));
|
|
8901
|
+
};
|
|
8902
|
+
|
|
8903
|
+
var DateRangePicker = function (props) {
|
|
8904
|
+
var _a, _b, _c, _d;
|
|
8905
|
+
var _e = useState(props.fromDate), fromDate = _e[0], setFromDate = _e[1];
|
|
8906
|
+
var _f = useState(props.toDate), toDate = _f[0], setToDate = _f[1];
|
|
8907
|
+
var _g = useState((_a = props.focusMonth) !== null && _a !== void 0 ? _a : { year: getYear(new Date()), month: getMonth(new Date()) }), focusMonth = _g[0], setFocusMonth = _g[1];
|
|
8908
|
+
var _h = useState(false), isWaitingForToDate = _h[0], setWaitingForToDate = _h[1];
|
|
8909
|
+
var handleDayClick = function (day) {
|
|
8910
|
+
var onSelectionChange = props.onSelectionChange;
|
|
8911
|
+
if (isWaitingForToDate && !isNil(fromDate) && isAfter(day, fromDate)) {
|
|
8912
|
+
setToDate(day);
|
|
8913
|
+
setWaitingForToDate(false);
|
|
8914
|
+
if (props.onToDateChange) {
|
|
8915
|
+
props.onToDateChange(undefined);
|
|
8916
|
+
}
|
|
8917
|
+
if (onSelectionChange) {
|
|
8918
|
+
onSelectionChange(fromDate, day);
|
|
8919
|
+
}
|
|
8920
|
+
}
|
|
8921
|
+
else {
|
|
8922
|
+
setFromDate(day);
|
|
8923
|
+
if (props.duration) {
|
|
8924
|
+
var to = new Date(Date.UTC(day.getFullYear(), day.getMonth(), day.getDate() + props.duration));
|
|
8925
|
+
setToDate(to);
|
|
8926
|
+
if (onSelectionChange) {
|
|
8927
|
+
onSelectionChange(day, to);
|
|
8928
|
+
}
|
|
8929
|
+
}
|
|
8930
|
+
else {
|
|
8931
|
+
setToDate(undefined);
|
|
8932
|
+
setWaitingForToDate(true);
|
|
8933
|
+
}
|
|
8934
|
+
if (props.onFromDateChange) {
|
|
8935
|
+
props.onFromDateChange(day);
|
|
8936
|
+
}
|
|
8937
|
+
}
|
|
8938
|
+
};
|
|
8939
|
+
var handleDayMouseOver = function (day) {
|
|
8940
|
+
if (isWaitingForToDate &&
|
|
8941
|
+
(isNil(fromDate) || isEqual(day, fromDate) || isAfter(day, fromDate))) {
|
|
8942
|
+
setToDate(day);
|
|
8943
|
+
}
|
|
8944
|
+
};
|
|
8945
|
+
var handlePreviousClick = function () {
|
|
8946
|
+
var month = focusMonth.month, year = focusMonth.year;
|
|
8947
|
+
var previousMonth = (month - 1) % 12;
|
|
8948
|
+
var previousMonthsYear = previousMonth > month ? year - 1 : year;
|
|
8949
|
+
var newFocusMonth = { year: previousMonthsYear, month: previousMonth };
|
|
8950
|
+
setFocusMonth(newFocusMonth);
|
|
8951
|
+
if (props.onFocusMonthChange) {
|
|
8952
|
+
props.onFocusMonthChange(newFocusMonth);
|
|
8953
|
+
}
|
|
8954
|
+
};
|
|
8955
|
+
var handleNextClick = function () {
|
|
8956
|
+
var month = focusMonth.month, year = focusMonth.year;
|
|
8957
|
+
var nextMonth = (month + 1) % 12;
|
|
8958
|
+
var nextMonthsYear = nextMonth < month ? year + 1 : year;
|
|
8959
|
+
var newFocusMonth = { year: nextMonthsYear, month: nextMonth };
|
|
8960
|
+
setFocusMonth(newFocusMonth);
|
|
8961
|
+
if (props.onFocusMonthChange) {
|
|
8962
|
+
props.onFocusMonthChange(newFocusMonth);
|
|
8963
|
+
}
|
|
8964
|
+
};
|
|
8965
|
+
var today = startOfDay(new Date());
|
|
8966
|
+
var firstCalendarYear = focusMonth.year;
|
|
8967
|
+
var firstCalendarMonth = focusMonth.month;
|
|
8968
|
+
var secondCalendarMonth = (firstCalendarMonth + 1) % 12;
|
|
8969
|
+
var secondCalendarYear = secondCalendarMonth < firstCalendarMonth ? firstCalendarYear + 1 : firstCalendarYear;
|
|
8970
|
+
var checkIfDateIsSelected = function (date) {
|
|
8971
|
+
return isNil(toDate)
|
|
8972
|
+
? !isNil(fromDate) && isEqual(date, fromDate)
|
|
8973
|
+
: !isNil(fromDate) &&
|
|
8974
|
+
isWithinInterval(date, { start: startOfDay(fromDate), end: endOfDay(toDate) });
|
|
8975
|
+
};
|
|
8976
|
+
useEffect(function () {
|
|
8977
|
+
setFromDate(props.fromDate);
|
|
8978
|
+
setToDate(props.toDate);
|
|
8979
|
+
}, [(_b = props.fromDate) === null || _b === void 0 ? void 0 : _b.valueOf(), (_c = props.toDate) === null || _c === void 0 ? void 0 : _c.valueOf()]);
|
|
8980
|
+
useEffect(function () {
|
|
8981
|
+
if (props.fromDate) {
|
|
8982
|
+
setFocusMonth({ month: props.fromDate.getMonth(), year: props.fromDate.getFullYear() });
|
|
8983
|
+
}
|
|
8984
|
+
}, [(_d = props.fromDate) === null || _d === void 0 ? void 0 : _d.valueOf()]);
|
|
8985
|
+
return (React.createElement("div", { className: "date-range-picker" },
|
|
8986
|
+
React.createElement("div", { className: "date-range-picker__from" },
|
|
8987
|
+
React.createElement(Calendar, { year: firstCalendarYear, month: firstCalendarMonth, onDayClick: handleDayClick, onDayMouseOver: handleDayMouseOver, onPreviousClick: handlePreviousClick, hasPreviousButton: isAfter(new Date(firstCalendarYear, firstCalendarMonth), endOfMonth(today)), hasNextButton: false, selectedDaysFunction: checkIfDateIsSelected, disabledDaysFunction: props.disabledDaysFunction, extraClassNamesFunction: props.extraClassNamesFunction, dayContentFunction: props.dayContentFunction, hasFixedHeight: true })),
|
|
8988
|
+
React.createElement("div", { className: "date-range-picker__to" },
|
|
8989
|
+
React.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 }))));
|
|
8990
|
+
};
|
|
8991
|
+
|
|
8992
|
+
var Dates = function (_a) {
|
|
8993
|
+
var value = _a.value, duration = _a.duration, onChange = _a.onChange;
|
|
8994
|
+
var language = useContext(SettingsContext$1).language;
|
|
8995
|
+
var translations = getTranslations(language);
|
|
8996
|
+
var mql = typeof window !== "undefined" ? window.matchMedia("(min-width: 1200px)") : undefined;
|
|
8997
|
+
var _b = useState(null), referenceElement = _b[0], setReferenceElement = _b[1];
|
|
8998
|
+
var _c = useState(null), popperElement = _c[0], setPopperElement = _c[1];
|
|
8999
|
+
var _d = useState(false), panelActive = _d[0], setPanelActive = _d[1];
|
|
9000
|
+
var _e = usePopper(referenceElement, popperElement, {
|
|
9001
|
+
placement: "top",
|
|
9002
|
+
modifiers: [
|
|
9003
|
+
{
|
|
9004
|
+
name: "offset",
|
|
9005
|
+
options: {
|
|
9006
|
+
offset: [0, -40],
|
|
9007
|
+
},
|
|
9008
|
+
},
|
|
9009
|
+
{
|
|
9010
|
+
name: "preventOverflow",
|
|
9011
|
+
options: {
|
|
9012
|
+
padding: 40,
|
|
7792
9013
|
},
|
|
7793
9014
|
}
|
|
7794
9015
|
],
|
|
@@ -7817,7 +9038,7 @@ var Dates = function (_a) {
|
|
|
7817
9038
|
};
|
|
7818
9039
|
return (React.createElement("div", { className: "booking-product__dates", ref: setReferenceElement },
|
|
7819
9040
|
React.createElement("div", { className: "booking-product__dates-title" },
|
|
7820
|
-
React.createElement(Icon, { name: "ui-calendar" }),
|
|
9041
|
+
React.createElement(Icon$1, { name: "ui-calendar", width: 25, height: 25 }),
|
|
7821
9042
|
translations.PRODUCT.TRAVEL_PERIOD),
|
|
7822
9043
|
React.createElement("div", { className: "form__group form__group--datepicker form__group--icon" },
|
|
7823
9044
|
React.createElement("div", { className: "form__group-input" },
|
|
@@ -7829,8 +9050,11 @@ var Dates = function (_a) {
|
|
|
7829
9050
|
React.createElement("div", __assign({ ref: setPopperElement, className: buildClassName([
|
|
7830
9051
|
"qsm__panel qsm__panel--bordered qsm__panel--dates-pricing",
|
|
7831
9052
|
panelActive && "qsm__panel--active",
|
|
9053
|
+
!(mql === null || mql === void 0 ? void 0 : mql.matches) && "qsm__panel--mobile"
|
|
7832
9054
|
]), style: (mql === null || mql === void 0 ? void 0 : mql.matches) ? styles.popper : undefined }, attributes.popper),
|
|
7833
|
-
React.createElement(DateRangePicker, { fromDate: value === null || value === void 0 ? void 0 : value.fromDate, toDate: value === null || value === void 0 ? void 0 : value.toDate, duration: duration, disabledDaysFunction: function (date) { return isBefore(date, startOfDay(new Date())); }, onSelectionChange: handleSelectionChange })
|
|
9055
|
+
React.createElement(DateRangePicker, { fromDate: value === null || value === void 0 ? void 0 : value.fromDate, toDate: value === null || value === void 0 ? void 0 : value.toDate, duration: duration, disabledDaysFunction: function (date) { return isBefore(date, startOfDay(new Date())); }, onSelectionChange: handleSelectionChange }),
|
|
9056
|
+
!(mql === null || mql === void 0 ? void 0 : mql.matches) && (React.createElement("div", { className: "qsm__close", onClick: function () { return setPanelActive(false); } },
|
|
9057
|
+
React.createElement(Icon$1, { name: "ui-close", height: 25, width: 25 })))))));
|
|
7834
9058
|
};
|
|
7835
9059
|
|
|
7836
9060
|
var Loader = function (_a) {
|
|
@@ -7841,7 +9065,7 @@ var Loader = function (_a) {
|
|
|
7841
9065
|
};
|
|
7842
9066
|
|
|
7843
9067
|
var Footer = function (_a) {
|
|
7844
|
-
var priceText = _a.priceText, isLoading = _a.isLoading, handleBookClick = _a.handleBookClick;
|
|
9068
|
+
var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, handleBookClick = _a.handleBookClick;
|
|
7845
9069
|
var _b = useContext(SettingsContext$1), language = _b.language, alternativeActionText = _b.alternativeActionText, alternativeAction = _b.alternativeAction;
|
|
7846
9070
|
var translations = getTranslations(language);
|
|
7847
9071
|
return (React.createElement("div", { className: "booking-product__footer" }, isLoading
|
|
@@ -7849,8 +9073,8 @@ var Footer = function (_a) {
|
|
|
7849
9073
|
: (React.createElement(React.Fragment, null,
|
|
7850
9074
|
priceText && (React.createElement("div", { className: "booking-product__footer-total" },
|
|
7851
9075
|
React.createElement("div", { className: "booking-product__footer-label" }, translations.SHARED.TOTAL_PRICE),
|
|
7852
|
-
React.createElement("div", { className: "booking-
|
|
7853
|
-
React.createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React.createElement("button", { type: "button", className: "cta", onClick: handleBookClick }, translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
|
|
9076
|
+
React.createElement("div", { className: "booking-product__footer-price" }, priceText))),
|
|
9077
|
+
React.createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React.createElement("button", { type: "button", className: "cta", onClick: handleBookClick }, isOffer ? translations.PRODUCT.TO_YOUR_OFFER : translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
|
|
7854
9078
|
? (React.createElement("a", { href: "#offer-form", className: "cta", onClick: alternativeAction }, alternativeActionText))
|
|
7855
9079
|
: (React.createElement(React.Fragment, null, translations.PRODUCT.NOT_AVAILABLE))))))));
|
|
7856
9080
|
};
|
|
@@ -7859,8 +9083,8 @@ var Rating = function (_a) {
|
|
|
7859
9083
|
var rating = _a.rating;
|
|
7860
9084
|
var clampedRating = clamp(rating, 0, 5);
|
|
7861
9085
|
return (React.createElement("div", { className: "rating" },
|
|
7862
|
-
range(0, Math.floor(clampedRating)).map(function (i) { return (React.createElement(Icon$1, { name: "
|
|
7863
|
-
|
|
9086
|
+
range(0, Math.floor(clampedRating)).map(function (i) { return (React.createElement(Icon$1, { name: "ui-star", key: "rating-star-".concat(i), width: 25, height: 25 })); }),
|
|
9087
|
+
rating % 1 > 0 && React.createElement(Icon$1, { name: "ui-halfstar", width: 25, height: 25 })));
|
|
7864
9088
|
};
|
|
7865
9089
|
|
|
7866
9090
|
var Header = function (_a) {
|
|
@@ -7877,11 +9101,11 @@ var Header = function (_a) {
|
|
|
7877
9101
|
React.createElement("div", { className: "pricing__header pricing__price" }, priceText),
|
|
7878
9102
|
React.createElement("div", { className: "package-icons" },
|
|
7879
9103
|
priceText && (React.createElement("div", { className: "package-icons__icon" },
|
|
7880
|
-
React.createElement(Icon, { name: "ui-bed", title: translations.PRODUCT.STAY_INCLUDED }))),
|
|
9104
|
+
React.createElement(Icon$1, { name: "ui-bed", title: translations.PRODUCT.STAY_INCLUDED, width: 25, height: 25 }))),
|
|
7881
9105
|
hasFlight && (React.createElement("div", { className: "package-icons__icon" },
|
|
7882
|
-
React.createElement(Icon, { name: "ui-flight", title: translations.PRODUCT.FLIGHT_INCLUDED }))),
|
|
9106
|
+
React.createElement(Icon$1, { name: "ui-flight", title: translations.PRODUCT.FLIGHT_INCLUDED, width: 25, height: 25 }))),
|
|
7883
9107
|
hasTransfer && (React.createElement("div", { className: "package-icons__icon" },
|
|
7884
|
-
React.createElement(Icon, { name: "ui-transfer", title: translations.PRODUCT.TRANSFER_INCLUDED })))))))));
|
|
9108
|
+
React.createElement(Icon$1, { name: "ui-transfer", title: translations.PRODUCT.TRANSFER_INCLUDED, width: 25, height: 25 })))))))));
|
|
7885
9109
|
};
|
|
7886
9110
|
|
|
7887
9111
|
var AgeSelect = function (_a) {
|
|
@@ -7914,18 +9138,14 @@ var AmountInput = function (_a) {
|
|
|
7914
9138
|
onChange(Math.max(value - 1, min !== null && min !== void 0 ? min : 0));
|
|
7915
9139
|
}
|
|
7916
9140
|
};
|
|
7917
|
-
|
|
7918
|
-
if (onChange) {
|
|
7919
|
-
var value_1 = event.target.valueAsNumber < (min !== null && min !== void 0 ? min : 0) ? min !== null && min !== void 0 ? min : 0 : event.target.valueAsNumber;
|
|
7920
|
-
onChange(value_1);
|
|
7921
|
-
}
|
|
7922
|
-
};
|
|
7923
|
-
return (React.createElement("div", { className: "decrement-increment" },
|
|
9141
|
+
return (React.createElement("div", { className: buildClassName(["decrement-increment", disabled && "decrement-increment--disabled"]) },
|
|
7924
9142
|
React.createElement("label", { className: "decrement-increment__label" }, label),
|
|
7925
9143
|
React.createElement("div", { className: "decrement-increment__ui" },
|
|
7926
|
-
React.createElement("button", { type: "button", className: "button button--decrement", title: translations.INPUT.DECREASE, disabled: disabled, onClick: handleDecreaseClick }
|
|
7927
|
-
|
|
7928
|
-
React.createElement("
|
|
9144
|
+
!disabled && (React.createElement("button", { type: "button", className: "button button--decrement", title: translations.INPUT.DECREASE, disabled: disabled, onClick: handleDecreaseClick },
|
|
9145
|
+
React.createElement(Icon$1, { name: "ui-min" }))),
|
|
9146
|
+
React.createElement("span", null, value),
|
|
9147
|
+
!disabled && (React.createElement("button", { type: "button", className: "button button--increment", title: translations.INPUT.INCREASE, disabled: disabled, onClick: handleIncreaseClick },
|
|
9148
|
+
React.createElement(Icon$1, { name: "ui-plus" }))))));
|
|
7929
9149
|
};
|
|
7930
9150
|
|
|
7931
9151
|
var Rooms = function (_a) {
|
|
@@ -7942,62 +9162,63 @@ var Rooms = function (_a) {
|
|
|
7942
9162
|
};
|
|
7943
9163
|
return (React.createElement("div", { className: "booking-product__rooms" },
|
|
7944
9164
|
React.createElement("div", { className: "booking-product__rooms-title" },
|
|
7945
|
-
React.createElement(Icon, { name: "ui-user" }),
|
|
9165
|
+
React.createElement(Icon$1, { name: "ui-user", width: 25, height: 25 }),
|
|
7946
9166
|
translations.PRODUCT.WHO_YOU_TRAVELING_WITH),
|
|
7947
|
-
React.createElement("div", { className: "booking-
|
|
7948
|
-
React.createElement("div", { className: "booking-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
React.createElement("
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
|
|
7974
|
-
|
|
7975
|
-
|
|
7976
|
-
|
|
7977
|
-
|
|
7978
|
-
|
|
7979
|
-
|
|
7980
|
-
|
|
7981
|
-
|
|
7982
|
-
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
|
|
7986
|
-
|
|
7987
|
-
|
|
7988
|
-
|
|
7989
|
-
React.createElement(
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
React.createElement("
|
|
7993
|
-
React.createElement(
|
|
7994
|
-
|
|
9167
|
+
React.createElement("div", { className: "booking-product__rooms__container" },
|
|
9168
|
+
React.createElement("div", { className: "booking-product__rooms__wrapper" },
|
|
9169
|
+
React.createElement("div", { className: "booking-product__rooms__header" },
|
|
9170
|
+
React.createElement("div", { className: "booking-product__rooms__heading" }, translations.SHARED.ROOMS),
|
|
9171
|
+
React.createElement("div", { className: "booking-product__rooms__actions" },
|
|
9172
|
+
React.createElement(AmountInput, { label: translations.PRODUCT.NUMBER_OF_ROOMS, value: currentRooms.length, disabled: isDisabled, min: 1, onChange: function (value) {
|
|
9173
|
+
setRoomState(range(0, value).map(function (roomIndex) { var _a; return (_a = currentRooms[roomIndex]) !== null && _a !== void 0 ? _a : { adults: 2, children: 0, childAges: [] }; }));
|
|
9174
|
+
setIsTouched(true);
|
|
9175
|
+
} }))),
|
|
9176
|
+
React.createElement("div", { className: "booking-product__rooms-body" }, currentRooms.map(function (room, roomIndex) { return (React.createElement("div", { className: "booking-product__room", key: roomIndex },
|
|
9177
|
+
React.createElement("div", { className: "booking-product__room__header" },
|
|
9178
|
+
React.createElement("h3", { className: "booking-product__room__heading" }, translations.SHARED.ROOM + " " + (roomIndex + 1)),
|
|
9179
|
+
React.createElement("div", { className: "booking-product__room__actions" },
|
|
9180
|
+
React.createElement(AmountInput, { label: translations.SHARED.ADULTS, value: room.adults, disabled: isDisabled, min: 1, onChange: function (value) {
|
|
9181
|
+
setRoomState(currentRooms.map(function (room, i) {
|
|
9182
|
+
return i === roomIndex ? __assign(__assign({}, room), { adults: value }) : room;
|
|
9183
|
+
}));
|
|
9184
|
+
setIsTouched(true);
|
|
9185
|
+
} }),
|
|
9186
|
+
React.createElement(AmountInput, { label: translations.SHARED.CHILDREN, value: room.children, disabled: isDisabled, onChange: function (value) {
|
|
9187
|
+
setRoomState(currentRooms.map(function (room, i) {
|
|
9188
|
+
return i === roomIndex
|
|
9189
|
+
? __assign(__assign({}, room), { children: value, childAges: range(0, value).map(function (childIndex) { var _a; return (_a = room.childAges[childIndex]) !== null && _a !== void 0 ? _a : 0; }) }) : room;
|
|
9190
|
+
}));
|
|
9191
|
+
setIsTouched(true);
|
|
9192
|
+
} }))),
|
|
9193
|
+
room.children > 0 && (React.createElement("div", { className: "booking-product__room-children" },
|
|
9194
|
+
React.createElement("label", { className: "booking-product__room-children-label" }, translations.PRODUCT.AGE_BY_DEPARTURE_DATE),
|
|
9195
|
+
React.createElement("div", { className: "booking-product__room-children-ages" }, range(0, room.children).map(function (childIndex) { return (React.createElement(AgeSelect, { key: childIndex, value: room.childAges[childIndex], disabled: isDisabled, onChange: function (value) {
|
|
9196
|
+
setRoomState(currentRooms.map(function (room, selectorRoomIndex) {
|
|
9197
|
+
return roomIndex === selectorRoomIndex
|
|
9198
|
+
? __assign(__assign({}, room), { childAges: room.childAges
|
|
9199
|
+
.map(function (age, i) { return (childIndex === i ? value : age); })
|
|
9200
|
+
.sort(function (a, b) { return b - a; }) }) : room;
|
|
9201
|
+
}));
|
|
9202
|
+
setIsTouched(true);
|
|
9203
|
+
} })); })))))); }))),
|
|
9204
|
+
React.createElement("div", { className: "booking-product__rooms-footer" }, isDisabled
|
|
9205
|
+
? (React.createElement("button", { type: "button", className: buildClassName(["cta--secondary", "cta--add"]), title: translations.PRODUCT.EDIT, onClick: function () {
|
|
9206
|
+
setIsDisabled(false);
|
|
9207
|
+
setIsTouched(false);
|
|
9208
|
+
} },
|
|
9209
|
+
React.createElement("span", null,
|
|
9210
|
+
React.createElement(Icon$1, { name: "ui-pencil", width: 25, height: 25 }),
|
|
9211
|
+
translations.PRODUCT.EDIT)))
|
|
9212
|
+
: (React.createElement("button", { type: "button", className: buildClassName(["cta", (isTouched ? "cta--secondary" : "cta--secondary"), "cta--add"]), title: translations.PRODUCT.APPLY, onClick: handleCloseClick },
|
|
9213
|
+
React.createElement("span", null,
|
|
9214
|
+
React.createElement(Icon$1, { name: "ui-check" }),
|
|
9215
|
+
translations.PRODUCT.APPLY)))))));
|
|
7995
9216
|
};
|
|
7996
9217
|
|
|
7997
9218
|
var Product = function (_a) {
|
|
7998
9219
|
var _b, _c;
|
|
7999
9220
|
var productCode = _a.productCode, productName = _a.productName, duration = _a.duration, rating = _a.rating;
|
|
8000
|
-
var _d = 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;
|
|
9221
|
+
var _d = 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;
|
|
8001
9222
|
var translations = getTranslations(language);
|
|
8002
9223
|
var _e = useState(false), loaded = _e[0], setLoaded = _e[1];
|
|
8003
9224
|
var _f = useState(false), isLoading = _f[0], setIsLoading = _f[1];
|
|
@@ -8006,11 +9227,11 @@ var Product = function (_a) {
|
|
|
8006
9227
|
var _j = useState(false), hasTransfer = _j[0], setHasTransfer = _j[1];
|
|
8007
9228
|
var _k = useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _k[0], setRooms = _k[1];
|
|
8008
9229
|
var _l = useState(), dateRange = _l[0], setDateRange = _l[1];
|
|
9230
|
+
var _m = useState(productName), packageProductName = _m[0], setPackageProductName = _m[1];
|
|
8009
9231
|
var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
8010
9232
|
var apiSettingsState, startDate, endDate, requestRooms, request, response, selectedOption, hasFlight_1, hasTranfer;
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
switch (_b.label) {
|
|
9233
|
+
return __generator$1(this, function (_a) {
|
|
9234
|
+
switch (_a.label) {
|
|
8014
9235
|
case 0:
|
|
8015
9236
|
if (!(loaded &&
|
|
8016
9237
|
productCode &&
|
|
@@ -8056,15 +9277,18 @@ var Product = function (_a) {
|
|
|
8056
9277
|
setIsLoading(true);
|
|
8057
9278
|
return [4 /*yield*/, packageApi$1.fetchDetails(request, signal, language, apiSettingsState)];
|
|
8058
9279
|
case 1:
|
|
8059
|
-
response =
|
|
8060
|
-
if (!response.errorCode) {
|
|
8061
|
-
selectedOption =
|
|
9280
|
+
response = _a.sent();
|
|
9281
|
+
if (!response.errorCode && response.payload) {
|
|
9282
|
+
selectedOption = response.payload.options.find(function (x) { return x.isSelected; });
|
|
8062
9283
|
if (selectedOption) {
|
|
8063
9284
|
hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
|
|
8064
9285
|
hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
|
|
8065
9286
|
setPrice(selectedOption.price);
|
|
8066
9287
|
setHasFlight(hasFlight_1);
|
|
8067
9288
|
setHasTransfer(hasTranfer);
|
|
9289
|
+
if (!productName) {
|
|
9290
|
+
setPackageProductName(selectedOption.name);
|
|
9291
|
+
}
|
|
8068
9292
|
}
|
|
8069
9293
|
}
|
|
8070
9294
|
else {
|
|
@@ -8073,7 +9297,7 @@ var Product = function (_a) {
|
|
|
8073
9297
|
setHasTransfer(false);
|
|
8074
9298
|
}
|
|
8075
9299
|
setIsLoading(false);
|
|
8076
|
-
|
|
9300
|
+
_a.label = 2;
|
|
8077
9301
|
case 2: return [2 /*return*/];
|
|
8078
9302
|
}
|
|
8079
9303
|
});
|
|
@@ -8093,11 +9317,17 @@ var Product = function (_a) {
|
|
|
8093
9317
|
params["endDate"] = format$1(dateRange.toDate, "yyyy-MM-dd");
|
|
8094
9318
|
}
|
|
8095
9319
|
params["catalog"] = catalogueId.toString();
|
|
9320
|
+
if (addProductToQuery) {
|
|
9321
|
+
params["productCode"] = productCode;
|
|
9322
|
+
params["productName"] = JsonURL.stringify(packageProductName, { AQF: true });
|
|
9323
|
+
}
|
|
8096
9324
|
var path = window.location.pathname;
|
|
8097
9325
|
var paramString = Object.keys(params)
|
|
8098
9326
|
.map(function (key) { return "".concat(key, "=").concat(params[key]); })
|
|
8099
9327
|
.join("&");
|
|
8100
|
-
window.location.href =
|
|
9328
|
+
window.location.href = basePath.startsWith('/')
|
|
9329
|
+
? "".concat(window.location.protocol, "//").concat(window.location.host).concat(basePath, "?").concat(paramString)
|
|
9330
|
+
: "".concat(path).concat(path.endsWith("/") ? "" : "/").concat(basePath, "?").concat(paramString);
|
|
8101
9331
|
};
|
|
8102
9332
|
var handleRoomChange = function (rooms) {
|
|
8103
9333
|
setRooms(rooms);
|
|
@@ -8155,11 +9385,11 @@ var Product = function (_a) {
|
|
|
8155
9385
|
var durationCount = 0;
|
|
8156
9386
|
var priceText = formatPriceByMode(price, priceMode, personCount, durationCount, translations.PRODUCT.PER_PERSON, translations.PRODUCT.PER_NIGHT, translations.PRODUCT.PER_PERSON_PER_NIGHT);
|
|
8157
9387
|
return (React.createElement("div", { className: "booking-product" },
|
|
8158
|
-
React.createElement(Header, { name:
|
|
9388
|
+
React.createElement(Header, { name: packageProductName, rating: rating, priceText: priceText, isLoading: isLoading, hasFlight: hasFlight, hasTransfer: hasTransfer }),
|
|
8159
9389
|
React.createElement("div", { className: "booking-product__body" },
|
|
8160
9390
|
React.createElement(Rooms, { rooms: rooms, onChange: handleRoomChange }),
|
|
8161
9391
|
React.createElement(Dates, { value: dateRange, duration: duration, onChange: handleDateChange })),
|
|
8162
|
-
React.createElement(Footer, { priceText: priceText,
|
|
9392
|
+
React.createElement(Footer, { priceText: priceText, isLoading: isLoading, isOffer: isOffer, handleBookClick: handleBookClick })));
|
|
8163
9393
|
};
|
|
8164
9394
|
|
|
8165
9395
|
var BookingProduct = function (_a) {
|
|
@@ -8168,33 +9398,13 @@ var BookingProduct = function (_a) {
|
|
|
8168
9398
|
React.createElement(Product, { productCode: productCode, productName: productName, rating: rating })));
|
|
8169
9399
|
};
|
|
8170
9400
|
|
|
8171
|
-
var _a$2;
|
|
8172
|
-
var initialState$3 = {
|
|
8173
|
-
apiUrl: "",
|
|
8174
|
-
apiKey: "",
|
|
8175
|
-
};
|
|
8176
|
-
var apiSettingsSlice = createSlice({
|
|
8177
|
-
name: "settings",
|
|
8178
|
-
initialState: initialState$3,
|
|
8179
|
-
reducers: {
|
|
8180
|
-
setApiUrl: function (state, action) {
|
|
8181
|
-
state.apiUrl = action.payload;
|
|
8182
|
-
},
|
|
8183
|
-
setApiKey: function (state, action) {
|
|
8184
|
-
state.apiKey = action.payload;
|
|
8185
|
-
},
|
|
8186
|
-
},
|
|
8187
|
-
});
|
|
8188
|
-
(_a$2 = apiSettingsSlice.actions, _a$2.setApiUrl); _a$2.setApiKey;
|
|
8189
|
-
var apiSettingsReducer = apiSettingsSlice.reducer;
|
|
8190
|
-
|
|
8191
9401
|
var CHILD_MAX_AGE = 17;
|
|
8192
|
-
var initialState$
|
|
9402
|
+
var initialState$3 = {
|
|
8193
9403
|
formValues: undefined,
|
|
8194
9404
|
};
|
|
8195
9405
|
var travelersFormSlice = createSlice({
|
|
8196
9406
|
name: "travelersForm",
|
|
8197
|
-
initialState: initialState$
|
|
9407
|
+
initialState: initialState$3,
|
|
8198
9408
|
reducers: {
|
|
8199
9409
|
setFormValues: function (state, action) {
|
|
8200
9410
|
state.formValues = action.payload;
|
|
@@ -8359,7 +9569,7 @@ var updateBookingGroups = function (groups, changedLines) {
|
|
|
8359
9569
|
}) })); });
|
|
8360
9570
|
};
|
|
8361
9571
|
|
|
8362
|
-
var _a$
|
|
9572
|
+
var _a$2;
|
|
8363
9573
|
var fetchPriceDetails = createAsyncThunk("priceDetails/fetchPriceDetails", function (_, _a) {
|
|
8364
9574
|
var dispatch = _a.dispatch, getState = _a.getState, signal = _a.signal;
|
|
8365
9575
|
return __awaiter$1(void 0, void 0, void 0, function () {
|
|
@@ -8457,7 +9667,7 @@ var selectNotifications = function (state) {
|
|
|
8457
9667
|
return state.priceDetails.notifications;
|
|
8458
9668
|
};
|
|
8459
9669
|
var setFetchingPriceDetails = priceDetailsSlice.actions.setFetchingPriceDetails;
|
|
8460
|
-
var resetPriceDetails = (_a$
|
|
9670
|
+
var resetPriceDetails = (_a$2 = priceDetailsSlice.actions, _a$2.resetPriceDetails), setNotifications = _a$2.setNotifications;
|
|
8461
9671
|
var priceDetailsReducer = priceDetailsSlice.reducer;
|
|
8462
9672
|
|
|
8463
9673
|
var selectGeneratePaymentUrl = function (state) {
|
|
@@ -8720,8 +9930,8 @@ var parseGender = function (gender) {
|
|
|
8720
9930
|
}
|
|
8721
9931
|
};
|
|
8722
9932
|
|
|
8723
|
-
var _a;
|
|
8724
|
-
var initialState$
|
|
9933
|
+
var _a$1;
|
|
9934
|
+
var initialState$2 = {
|
|
8725
9935
|
officeId: 1,
|
|
8726
9936
|
languageCode: "nl-BE",
|
|
8727
9937
|
bookingOptions: {
|
|
@@ -8973,7 +10183,7 @@ var changePackageOption = function (state) {
|
|
|
8973
10183
|
};
|
|
8974
10184
|
var bookingSlice = createSlice({
|
|
8975
10185
|
name: "booking",
|
|
8976
|
-
initialState: initialState$
|
|
10186
|
+
initialState: initialState$2,
|
|
8977
10187
|
reducers: {
|
|
8978
10188
|
setOfficeId: function (state, action) {
|
|
8979
10189
|
state.officeId = action.payload;
|
|
@@ -9187,37 +10397,62 @@ var bookingSlice = createSlice({
|
|
|
9187
10397
|
});
|
|
9188
10398
|
},
|
|
9189
10399
|
});
|
|
9190
|
-
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;
|
|
10400
|
+
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;
|
|
9191
10401
|
var bookingReducer = bookingSlice.reducer;
|
|
9192
10402
|
|
|
9193
|
-
var
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
|
|
9202
|
-
|
|
10403
|
+
var SettingsContext = React.createContext({
|
|
10404
|
+
language: "nl-BE",
|
|
10405
|
+
generatePaymentUrl: false,
|
|
10406
|
+
currency: "EUR",
|
|
10407
|
+
officeId: 1,
|
|
10408
|
+
tagIds: [],
|
|
10409
|
+
hideAgentSelection: false,
|
|
10410
|
+
agentAdressId: undefined,
|
|
10411
|
+
affiliateSlug: undefined,
|
|
10412
|
+
productPath: "/",
|
|
10413
|
+
basePath: "/boeken",
|
|
10414
|
+
roomOptions: {
|
|
10415
|
+
pathSuffix: "/",
|
|
9203
10416
|
},
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
var selectUserValidated = function (state) {
|
|
9207
|
-
return state.summary.userValidated;
|
|
9208
|
-
};
|
|
9209
|
-
var summaryReducer = summarySlice.reducer;
|
|
9210
|
-
|
|
9211
|
-
var store = configureStore({
|
|
9212
|
-
reducer: {
|
|
9213
|
-
booking: bookingReducer,
|
|
9214
|
-
travelersForm: travelersFormReducer,
|
|
9215
|
-
priceDetails: priceDetailsReducer,
|
|
9216
|
-
summary: summaryReducer,
|
|
9217
|
-
apiSettings: apiSettingsReducer,
|
|
10417
|
+
flightOptions: {
|
|
10418
|
+
pathSuffix: "/vluchten",
|
|
9218
10419
|
},
|
|
9219
|
-
|
|
9220
|
-
|
|
10420
|
+
options: {
|
|
10421
|
+
pathSuffix: "/opties",
|
|
10422
|
+
},
|
|
10423
|
+
travellers: {
|
|
10424
|
+
pathSuffix: "/reizigers",
|
|
10425
|
+
},
|
|
10426
|
+
summary: {
|
|
10427
|
+
pathSuffix: "/samenvatting",
|
|
10428
|
+
checkboxes: null,
|
|
10429
|
+
},
|
|
10430
|
+
confirmation: {
|
|
10431
|
+
pathSuffix: "/bevestiging",
|
|
10432
|
+
},
|
|
10433
|
+
error: {
|
|
10434
|
+
pathSuffix: "/mislukt",
|
|
10435
|
+
},
|
|
10436
|
+
companyContactEmail: "info@tidesoftware.be",
|
|
10437
|
+
companyContactPhone: "093362299",
|
|
10438
|
+
showProductCardRating: false,
|
|
10439
|
+
showSidebarDeposit: false,
|
|
10440
|
+
sidebarHeaderComponent: null,
|
|
10441
|
+
sidebarFooterComponent: null,
|
|
10442
|
+
loaderComponent: null,
|
|
10443
|
+
icons: null,
|
|
10444
|
+
bookingOptions: {
|
|
10445
|
+
b2b: {
|
|
10446
|
+
entryStatus: 0,
|
|
10447
|
+
},
|
|
10448
|
+
b2b2c: {
|
|
10449
|
+
entryStatus: 0,
|
|
10450
|
+
},
|
|
10451
|
+
b2c: {
|
|
10452
|
+
entryStatus: 0,
|
|
10453
|
+
},
|
|
10454
|
+
},
|
|
10455
|
+
});
|
|
9221
10456
|
|
|
9222
10457
|
var StepIndicators = function (_a) {
|
|
9223
10458
|
var currentStep = _a.currentStep;
|
|
@@ -9257,6 +10492,91 @@ var StepRoute = function (_a) {
|
|
|
9257
10492
|
React.createElement("div", { className: "booking__panel-body" }, component))));
|
|
9258
10493
|
};
|
|
9259
10494
|
|
|
10495
|
+
var _a;
|
|
10496
|
+
var initialState$1 = {
|
|
10497
|
+
apiUrl: "",
|
|
10498
|
+
apiKey: "",
|
|
10499
|
+
};
|
|
10500
|
+
var apiSettingsSlice = createSlice({
|
|
10501
|
+
name: "settings",
|
|
10502
|
+
initialState: initialState$1,
|
|
10503
|
+
reducers: {
|
|
10504
|
+
setApiUrl: function (state, action) {
|
|
10505
|
+
state.apiUrl = action.payload;
|
|
10506
|
+
},
|
|
10507
|
+
setApiKey: function (state, action) {
|
|
10508
|
+
state.apiKey = action.payload;
|
|
10509
|
+
},
|
|
10510
|
+
},
|
|
10511
|
+
});
|
|
10512
|
+
(_a = apiSettingsSlice.actions, _a.setApiUrl); _a.setApiKey;
|
|
10513
|
+
var apiSettingsReducer = apiSettingsSlice.reducer;
|
|
10514
|
+
|
|
10515
|
+
var initialState = {
|
|
10516
|
+
userValidated: false,
|
|
10517
|
+
};
|
|
10518
|
+
var summarySlice = createSlice({
|
|
10519
|
+
name: "summary",
|
|
10520
|
+
initialState: initialState,
|
|
10521
|
+
reducers: {
|
|
10522
|
+
setUserValidated: function (state, action) {
|
|
10523
|
+
state.userValidated = action.payload;
|
|
10524
|
+
},
|
|
10525
|
+
},
|
|
10526
|
+
});
|
|
10527
|
+
var setUserValidated = summarySlice.actions.setUserValidated;
|
|
10528
|
+
var selectUserValidated = function (state) {
|
|
10529
|
+
return state.summary.userValidated;
|
|
10530
|
+
};
|
|
10531
|
+
var summaryReducer = summarySlice.reducer;
|
|
10532
|
+
|
|
10533
|
+
var store = configureStore({
|
|
10534
|
+
reducer: {
|
|
10535
|
+
booking: bookingReducer,
|
|
10536
|
+
travelersForm: travelersFormReducer,
|
|
10537
|
+
priceDetails: priceDetailsReducer,
|
|
10538
|
+
summary: summaryReducer,
|
|
10539
|
+
apiSettings: apiSettingsReducer,
|
|
10540
|
+
},
|
|
10541
|
+
});
|
|
10542
|
+
var useAppDispatch = function () { return useDispatch(); };
|
|
10543
|
+
|
|
10544
|
+
var Icon = function (_a) {
|
|
10545
|
+
var name = _a.name, className = _a.className, title = _a.title, width = _a.width, height = _a.height;
|
|
10546
|
+
var icons = useContext(SettingsContext).icons;
|
|
10547
|
+
if (icons) {
|
|
10548
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10549
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10550
|
+
.join(" "), width: width, height: height },
|
|
10551
|
+
title && React.createElement("title", null, title),
|
|
10552
|
+
React.createElement("use", { href: "".concat(icons, "#").concat(name) })));
|
|
10553
|
+
}
|
|
10554
|
+
switch (name) {
|
|
10555
|
+
case "ui-chevron":
|
|
10556
|
+
case "ui-error":
|
|
10557
|
+
case "ui-tel":
|
|
10558
|
+
case "ui-mail":
|
|
10559
|
+
case "ui-home":
|
|
10560
|
+
case "ui-filter":
|
|
10561
|
+
case "ui-close":
|
|
10562
|
+
case "ui-ticket":
|
|
10563
|
+
case "ui-payback":
|
|
10564
|
+
case "ui-backpack":
|
|
10565
|
+
case "ui-suitcase":
|
|
10566
|
+
case "ui-business-lounge":
|
|
10567
|
+
case "ui-shopping-bag":
|
|
10568
|
+
case "ui-priority":
|
|
10569
|
+
case "ui-tooltip":
|
|
10570
|
+
case "ui-tooltip":
|
|
10571
|
+
case "ui-qsm-location":
|
|
10572
|
+
case "ui-plane-depart":
|
|
10573
|
+
case "ui-plane-arrive":
|
|
10574
|
+
case "ui-clock":
|
|
10575
|
+
default:
|
|
10576
|
+
return null;
|
|
10577
|
+
}
|
|
10578
|
+
};
|
|
10579
|
+
|
|
9260
10580
|
var Message = function (_a) {
|
|
9261
10581
|
var type = _a.type, title = _a.title, actionComponent = _a.actionComponent, children = _a.children;
|
|
9262
10582
|
return (React.createElement("div", { className: buildClassName([
|
|
@@ -9264,7 +10584,7 @@ var Message = function (_a) {
|
|
|
9264
10584
|
type === "error" && "booking-message--error",
|
|
9265
10585
|
type === "success" && "booking-message--success",
|
|
9266
10586
|
]) },
|
|
9267
|
-
type === "error" && React.createElement(Icon
|
|
10587
|
+
type === "error" && React.createElement(Icon, { name: "ui-error" }),
|
|
9268
10588
|
React.createElement("h4", { className: "booking-message__heading" }, title),
|
|
9269
10589
|
React.createElement("div", { className: "booking-message__text" }, children),
|
|
9270
10590
|
actionComponent && (React.createElement("div", { className: "booking-message__actions" }, actionComponent))));
|
|
@@ -9285,21 +10605,24 @@ var Confirmation = function () {
|
|
|
9285
10605
|
}
|
|
9286
10606
|
var translations = useSelector(selectTranslations);
|
|
9287
10607
|
var encodedMailSubject = encodeURI(translations.CONFIRMATION.MAIL_SUBJECT);
|
|
10608
|
+
var titleText = settings.isOffer
|
|
10609
|
+
? format(translations.CONFIRMATION.TITLE_TEXT_OFFER, [bookingNumber])
|
|
10610
|
+
: format(translations.CONFIRMATION.TITLE_TEXT_BOOKING, [bookingNumber]);
|
|
9288
10611
|
return (React.createElement("div", { className: "form", id: "booking--confirmation" },
|
|
9289
10612
|
React.createElement("div", { className: "form__region" },
|
|
9290
10613
|
React.createElement("div", { className: "form__row" },
|
|
9291
10614
|
React.createElement("div", { className: "form__group" },
|
|
9292
|
-
React.createElement(Message, { type: "success", title:
|
|
10615
|
+
React.createElement(Message, { type: "success", title: titleText, actionComponent: React.createElement("div", { className: "sm" },
|
|
9293
10616
|
React.createElement("a", { href: "tel://".concat(settings.companyContactPhone), className: "sm__icon" },
|
|
9294
|
-
React.createElement(Icon
|
|
10617
|
+
React.createElement(Icon, { name: "tel" })),
|
|
9295
10618
|
React.createElement("a", { href: "mailto://".concat(settings.companyContactEmail), className: "sm__icon" },
|
|
9296
|
-
React.createElement(Icon
|
|
10619
|
+
React.createElement(Icon, { name: "mail" })),
|
|
9297
10620
|
React.createElement("a", { href: "/", className: "sm__icon" },
|
|
9298
|
-
React.createElement(Icon
|
|
10621
|
+
React.createElement(Icon, { name: "home" }))) },
|
|
9299
10622
|
React.createElement("p", null,
|
|
9300
10623
|
translations.CONFIRMATION.MESSAGE_TEXT1,
|
|
9301
10624
|
React.createElement("br", null),
|
|
9302
|
-
translations.CONFIRMATION.
|
|
10625
|
+
settings.isOffer ? translations.CONFIRMATION.MESSAGE_TEXT2_OFFER : translations.CONFIRMATION.MESSAGE_TEXT2_BOOKING),
|
|
9303
10626
|
React.createElement("p", null,
|
|
9304
10627
|
translations.CONFIRMATION.QUESTIONS_TEXT1,
|
|
9305
10628
|
" ",
|
|
@@ -9805,8 +11128,7 @@ var FlightFilter = function (_a) {
|
|
|
9805
11128
|
};
|
|
9806
11129
|
return (React.createElement(React.Fragment, null,
|
|
9807
11130
|
React.createElement("button", { type: "button", className: "cta cta--filter", onClick: function () { return setFiltersVisible(!filtersVisible); } },
|
|
9808
|
-
React.createElement("
|
|
9809
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#filter" })),
|
|
11131
|
+
React.createElement(Icon, { name: "filter", width: 11, height: 10 }),
|
|
9810
11132
|
React.createElement("span", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
|
|
9811
11133
|
filtersVisible),
|
|
9812
11134
|
React.createElement("div", { className: buildClassName(["flight__filter", filtersVisible && "flight__filter--active"]) },
|
|
@@ -10009,7 +11331,7 @@ var FlightOptionFlight = function (_a) {
|
|
|
10009
11331
|
React.createElement("div", { className: "flight__flight__container" },
|
|
10010
11332
|
React.createElement("div", { className: "flight__flight__wrapper" },
|
|
10011
11333
|
React.createElement("div", { className: "flight__logo__wrapper" },
|
|
10012
|
-
React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/".concat(details.airlineCode, ".png?height=
|
|
11334
|
+
React.createElement("img", { src: "https://media.tidesoftware.be/media/shared/Airlines/".concat(details.airlineCode, ".png?height=256"), alt: "", className: "flight__logo" }),
|
|
10013
11335
|
React.createElement("span", null, details.airline)),
|
|
10014
11336
|
React.createElement("div", { className: "flight__info" },
|
|
10015
11337
|
React.createElement("div", { className: "flight__info__times" },
|
|
@@ -10035,8 +11357,7 @@ var FlightOptionFlight = function (_a) {
|
|
|
10035
11357
|
details.isNextDay && (React.createElement("span", { className: "flight__info__times__days" }, translations.FLIGHTS_FORM.PLUS_ONE_DAY))))),
|
|
10036
11358
|
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
10037
11359
|
React.createElement("div", { className: buildClassName(["flight__detail__btn", isDetailVisible && "flight__detail__btn--active"]), onClick: function () { return setIsDetailVisible(!isDetailVisible); } },
|
|
10038
|
-
React.createElement("
|
|
10039
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#chevron" }))))),
|
|
11360
|
+
React.createElement(Icon, { name: "chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
10040
11361
|
React.createElement("div", { className: buildClassName(["flight__detail", isDetailVisible && "flight__detail--active"]) }, details.flightLines.map(function (flightLine, flightLineIndex) { return (React.createElement(React.Fragment, { key: flightLineIndex },
|
|
10041
11362
|
React.createElement("div", { className: "flight__info" },
|
|
10042
11363
|
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
@@ -10047,8 +11368,7 @@ var FlightOptionFlight = function (_a) {
|
|
|
10047
11368
|
flightLine.departureAirport),
|
|
10048
11369
|
React.createElement("p", null, getDateText(flightLine.departureDate))),
|
|
10049
11370
|
React.createElement("div", null,
|
|
10050
|
-
React.createElement("
|
|
10051
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#plane-depart" })))),
|
|
11371
|
+
React.createElement(Icon, { name: "plane-depart", width: 30, height: 20 }))),
|
|
10052
11372
|
React.createElement("div", { className: "flight__info__duration" },
|
|
10053
11373
|
React.createElement("p", null, flightLine.travelDuration),
|
|
10054
11374
|
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
@@ -10056,8 +11376,7 @@ var FlightOptionFlight = function (_a) {
|
|
|
10056
11376
|
React.createElement("strong", null, flightLine.number)),
|
|
10057
11377
|
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
10058
11378
|
React.createElement("div", null,
|
|
10059
|
-
React.createElement("
|
|
10060
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#plane-arive" }))),
|
|
11379
|
+
React.createElement(Icon, { name: "plane-arive", width: 35, height: 25 })),
|
|
10061
11380
|
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
10062
11381
|
React.createElement("strong", null,
|
|
10063
11382
|
flightLine.arrivalTime,
|
|
@@ -10068,8 +11387,7 @@ var FlightOptionFlight = function (_a) {
|
|
|
10068
11387
|
React.createElement("div", { className: "flight__info__times" }),
|
|
10069
11388
|
React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
|
|
10070
11389
|
React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
|
|
10071
|
-
React.createElement("
|
|
10072
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#clock" }))),
|
|
11390
|
+
React.createElement(Icon, { name: "clock", width: 20, height: 20 })),
|
|
10073
11391
|
React.createElement("div", { className: "flight__info__duration__stoptime" },
|
|
10074
11392
|
React.createElement("span", null, translations.FLIGHTS_FORM.STOP_TIME),
|
|
10075
11393
|
React.createElement("strong", null, flightLine.waitDuration))),
|
|
@@ -10113,8 +11431,7 @@ var FlightOptionModal = function (_a) {
|
|
|
10113
11431
|
React.createElement("div", { className: "flight__rate__modal__header" },
|
|
10114
11432
|
React.createElement("h3", { className: "flight__rate__modal__header__title" }, "Selecteer een tarief"),
|
|
10115
11433
|
React.createElement("button", { className: "flight__rate__modal__header__close" },
|
|
10116
|
-
React.createElement("
|
|
10117
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#close" })))),
|
|
11434
|
+
React.createElement(Icon, { name: "close", width: 18, height: 18 }))),
|
|
10118
11435
|
React.createElement("div", { className: "flight__rate__modal__tabs" },
|
|
10119
11436
|
React.createElement("button", { className: "flight__rate__modal__tab flight__rate__modal__tab--active" }, "Economy / Economy premium"),
|
|
10120
11437
|
React.createElement("button", { className: "flight__rate__modal__tab" }, "Business / Business premium")),
|
|
@@ -10126,33 +11443,28 @@ var FlightOptionModal = function (_a) {
|
|
|
10126
11443
|
React.createElement("p", { className: "flight__rate__modal__card__header__class" }, "Klasse: Economy")),
|
|
10127
11444
|
React.createElement("div", { className: "flight__rate__modal__card__items flight__rate__modal__card__items--top" },
|
|
10128
11445
|
React.createElement("div", { className: "flight__rate__modal__card__item flight__rate__modal__card__item--disabled" },
|
|
10129
|
-
React.createElement("
|
|
10130
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#ticket" })),
|
|
11446
|
+
React.createElement(Icon, { name: "ticket", width: 20, height: 20 }),
|
|
10131
11447
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10132
11448
|
React.createElement("strong", null, "Wijzigingen in het ticket"),
|
|
10133
11449
|
React.createElement("p", null, "Wijzigingen toestaan"))),
|
|
10134
11450
|
React.createElement("div", { className: "flight__rate__modal__card__item flight__rate__modal__card__item--disabled" },
|
|
10135
|
-
React.createElement("
|
|
10136
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#payback" })),
|
|
11451
|
+
React.createElement(Icon, { name: "payback", width: 20, height: 20 }),
|
|
10137
11452
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10138
11453
|
React.createElement("strong", null, "Terugbetaling van ticket"),
|
|
10139
11454
|
React.createElement("p", null, "Ticket retourneerbaar")))),
|
|
10140
11455
|
React.createElement("div", { className: "flight__rate__modal__card__items" },
|
|
10141
11456
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10142
|
-
React.createElement("
|
|
10143
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#shopping-bag" })),
|
|
11457
|
+
React.createElement(Icon, { name: "shopping-bag", width: 20, height: 20 }),
|
|
10144
11458
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10145
11459
|
React.createElement("strong", null, "persoonlijke items"),
|
|
10146
11460
|
React.createElement("p", null, "Gratis"))),
|
|
10147
11461
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10148
|
-
React.createElement("
|
|
10149
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#backpack" })),
|
|
11462
|
+
React.createElement(Icon, { name: "backpack", width: 20, height: 20 }),
|
|
10150
11463
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10151
11464
|
React.createElement("strong", null, "Handbagage"),
|
|
10152
11465
|
React.createElement("p", null, "Gratis: 2 x 8kg"))),
|
|
10153
11466
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10154
|
-
React.createElement("
|
|
10155
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#suitcase" })),
|
|
11467
|
+
React.createElement(Icon, { name: "suitcase", width: 20, height: 20 }),
|
|
10156
11468
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10157
11469
|
React.createElement("strong", null, "Ingecheckte bagage"),
|
|
10158
11470
|
React.createElement("p", null, "Gratis: 2 x 32kg"))))),
|
|
@@ -10166,33 +11478,28 @@ var FlightOptionModal = function (_a) {
|
|
|
10166
11478
|
React.createElement("p", { className: "flight__rate__modal__card__header__class" }, "Klasse: Economy")),
|
|
10167
11479
|
React.createElement("div", { className: "flight__rate__modal__card__items flight__rate__modal__card__items--top" },
|
|
10168
11480
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10169
|
-
React.createElement("
|
|
10170
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#ticket" })),
|
|
11481
|
+
React.createElement(Icon, { name: "ticket", width: 20, height: 20 }),
|
|
10171
11482
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10172
11483
|
React.createElement("strong", null, "Wijzigingen in het ticket"),
|
|
10173
11484
|
React.createElement("p", null, "Wijzigingen toestaan"))),
|
|
10174
11485
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10175
|
-
React.createElement("
|
|
10176
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#payback" })),
|
|
11486
|
+
React.createElement(Icon, { name: "payback", width: 20, height: 20 }),
|
|
10177
11487
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10178
11488
|
React.createElement("strong", null, "Terugbetaling van ticket"),
|
|
10179
11489
|
React.createElement("p", null, "Ticket retourneerbaar")))),
|
|
10180
11490
|
React.createElement("div", { className: "flight__rate__modal__card__items" },
|
|
10181
11491
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10182
|
-
React.createElement("
|
|
10183
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#shopping-bag" })),
|
|
11492
|
+
React.createElement(Icon, { name: "shopping-bag", width: 20, height: 20 }),
|
|
10184
11493
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10185
11494
|
React.createElement("strong", null, "persoonlijke items"),
|
|
10186
11495
|
React.createElement("p", null, "Gratis"))),
|
|
10187
11496
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10188
|
-
React.createElement("
|
|
10189
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#backpack" })),
|
|
11497
|
+
React.createElement(Icon, { name: "backpack", width: 20, height: 20 }),
|
|
10190
11498
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10191
11499
|
React.createElement("strong", null, "Handbagage"),
|
|
10192
11500
|
React.createElement("p", null, "Gratis: 2 x 8kg"))),
|
|
10193
11501
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10194
|
-
React.createElement("
|
|
10195
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#suitcase" })),
|
|
11502
|
+
React.createElement(Icon, { name: "suitcase", width: 20, height: 20 }),
|
|
10196
11503
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10197
11504
|
React.createElement("strong", null, "Ingecheckte bagage"),
|
|
10198
11505
|
React.createElement("p", null, "Gratis: 2 x 32kg"))))),
|
|
@@ -10206,57 +11513,48 @@ var FlightOptionModal = function (_a) {
|
|
|
10206
11513
|
React.createElement("p", { className: "flight__rate__modal__card__header__class" }, "Klasse: Economy")),
|
|
10207
11514
|
React.createElement("div", { className: "flight__rate__modal__card__items flight__rate__modal__card__items--top" },
|
|
10208
11515
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10209
|
-
React.createElement("
|
|
10210
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#ticket" })),
|
|
11516
|
+
React.createElement(Icon, { name: "ticket", width: 20, height: 20 }),
|
|
10211
11517
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10212
11518
|
React.createElement("strong", null, "Wijzigingen in het ticket"),
|
|
10213
11519
|
React.createElement("p", null, "Wijzigingen toestaan"))),
|
|
10214
11520
|
React.createElement("div", { className: "flight__rate__modal__card__item flight__rate__modal__card__item--disabled" },
|
|
10215
|
-
React.createElement("
|
|
10216
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#payback" })),
|
|
11521
|
+
React.createElement(Icon, { name: "payback", width: 20, height: 20 }),
|
|
10217
11522
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10218
11523
|
React.createElement("strong", null, "Terugbetaling van ticket"),
|
|
10219
11524
|
React.createElement("p", null, "Ticket retourneerbaar")))),
|
|
10220
11525
|
React.createElement("div", { className: "flight__rate__modal__card__items" },
|
|
10221
11526
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10222
|
-
React.createElement("
|
|
10223
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#shopping-bag" })),
|
|
11527
|
+
React.createElement(Icon, { name: "shopping-bag", width: 20, height: 20 }),
|
|
10224
11528
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10225
11529
|
React.createElement("strong", null, "persoonlijke items"),
|
|
10226
11530
|
React.createElement("p", null, "Gratis"))),
|
|
10227
11531
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10228
|
-
React.createElement("
|
|
10229
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#backpack" })),
|
|
11532
|
+
React.createElement(Icon, { name: "backpack", width: 20, height: 20 }),
|
|
10230
11533
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10231
11534
|
React.createElement("strong", null, "Handbagage"),
|
|
10232
11535
|
React.createElement("p", null, "Gratis: 2 x 8kg"))),
|
|
10233
11536
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10234
|
-
React.createElement("
|
|
10235
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#suitcase" })),
|
|
11537
|
+
React.createElement(Icon, { name: "suitcase", width: 20, height: 20 }),
|
|
10236
11538
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10237
11539
|
React.createElement("strong", null, "Ingecheckte bagage"),
|
|
10238
11540
|
React.createElement("p", null, "Gratis: 2 x 32kg"))),
|
|
10239
11541
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10240
|
-
React.createElement("
|
|
10241
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#seat-selection" })),
|
|
11542
|
+
React.createElement(Icon, { name: "seat-selection", width: 20, height: 20 }),
|
|
10242
11543
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10243
11544
|
React.createElement("strong", null, "Stoelselectie"),
|
|
10244
11545
|
React.createElement("p", null, "kies uw stoel in het vliegtijg"))),
|
|
10245
11546
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10246
|
-
React.createElement("
|
|
10247
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#check-in" })),
|
|
11547
|
+
React.createElement(Icon, { name: "check-in", width: 20, height: 20 }),
|
|
10248
11548
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10249
11549
|
React.createElement("strong", null, "Sneller inchecken"),
|
|
10250
11550
|
React.createElement("p", null, "Sla de wachtrijen voor de veiligheidscontrole over"))),
|
|
10251
11551
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10252
|
-
React.createElement("
|
|
10253
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#business-lounge" })),
|
|
11552
|
+
React.createElement(Icon, { name: "business-lounge", width: 20, height: 20 }),
|
|
10254
11553
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10255
11554
|
React.createElement("strong", null, "Zakenlunge"),
|
|
10256
11555
|
React.createElement("p", null, "Ontspan voor uw vlucht"))),
|
|
10257
11556
|
React.createElement("div", { className: "flight__rate__modal__card__item" },
|
|
10258
|
-
React.createElement("
|
|
10259
|
-
React.createElement("use", { href: "/icons/svg-sprite.svg#priority" })),
|
|
11557
|
+
React.createElement(Icon, { name: "priority", width: 20, height: 20 }),
|
|
10260
11558
|
React.createElement("div", { className: "flight__rate__modal__card__item__wrapper" },
|
|
10261
11559
|
React.createElement("strong", null, "Prioriteit"),
|
|
10262
11560
|
React.createElement("p", null, "Stap voor anderen aan boord"))))),
|
|
@@ -11442,12 +12740,7 @@ var RoomOptionsForm = function () {
|
|
|
11442
12740
|
};
|
|
11443
12741
|
var handleSubmit = function (e) {
|
|
11444
12742
|
if (settings.skipRouter) {
|
|
11445
|
-
|
|
11446
|
-
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
11447
|
-
}
|
|
11448
|
-
else {
|
|
11449
|
-
dispatch(setCurrentStep(FLIGHT_OPTIONS_FORM_STEP));
|
|
11450
|
-
}
|
|
12743
|
+
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
11451
12744
|
}
|
|
11452
12745
|
else {
|
|
11453
12746
|
navigate("".concat(settings.basePath).concat(settings.options.pathSuffix, "?").concat(bookingQueryString));
|
|
@@ -12111,7 +13404,7 @@ var Summary = function () {
|
|
|
12111
13404
|
React.createElement("div", { className: "form__row" },
|
|
12112
13405
|
React.createElement("div", { className: "form__group" },
|
|
12113
13406
|
React.createElement("div", { className: "info-message" },
|
|
12114
|
-
React.createElement(Icon
|
|
13407
|
+
React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
|
|
12115
13408
|
React.createElement("div", { className: "info-message__copy" },
|
|
12116
13409
|
React.createElement("h5", null, translations.SUMMARY.NOTIFICATIONS_TITLE),
|
|
12117
13410
|
React.createElement(React.Fragment, null,
|
|
@@ -12138,10 +13431,10 @@ var Summary = function () {
|
|
|
12138
13431
|
React.createElement("div", { className: "form__row" },
|
|
12139
13432
|
React.createElement("div", { className: "form__group" },
|
|
12140
13433
|
React.createElement("div", { className: "info-message" },
|
|
12141
|
-
React.createElement(Icon
|
|
13434
|
+
React.createElement(Icon, { name: "ui-tooltip", className: "icon--secondary-color" }),
|
|
12142
13435
|
React.createElement("div", { className: "info-message__copy" },
|
|
12143
13436
|
React.createElement("h5", null, translations.SUMMARY.VALIDATE_TITLE),
|
|
12144
|
-
React.createElement("p", null, translations.SUMMARY.
|
|
13437
|
+
React.createElement("p", null, settings.isOffer ? translations.SUMMARY.VALIDATE_TEXT_OFFER : translations.SUMMARY.VALIDATE_TEXT_BOOKING),
|
|
12145
13438
|
checkboxes &&
|
|
12146
13439
|
checkboxes.map(function (checkbox) { return (React.createElement("div", { className: "checkbox", key: checkbox.id },
|
|
12147
13440
|
React.createElement("label", { className: "checkbox__label" },
|
|
@@ -12153,10 +13446,10 @@ var Summary = function () {
|
|
|
12153
13446
|
} })))); })))))),
|
|
12154
13447
|
React.createElement("div", { className: "booking__navigator" },
|
|
12155
13448
|
settings.skipRouter ? (React.createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) : (React.createElement(Link, { to: "".concat(settings.basePath).concat(settings.travellers.pathSuffix, "?").concat(bookingQueryString), title: translations.STEPS.PREVIOUS, className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)),
|
|
12156
|
-
React.createElement("button", { title: translations.STEPS.
|
|
13449
|
+
React.createElement("button", { title: settings.isOffer ? translations.STEPS.SUBMIT_OFFER : translations.STEPS.SUBMIT_BOOKING, className: buildClassName([
|
|
12157
13450
|
"cta",
|
|
12158
13451
|
!userValidated && "cta--disabled",
|
|
12159
|
-
]), disabled: !userValidated }, translations.STEPS.
|
|
13452
|
+
]), disabled: !userValidated }, settings.isOffer ? translations.STEPS.SUBMIT_OFFER : translations.STEPS.SUBMIT_BOOKING))))));
|
|
12160
13453
|
};
|
|
12161
13454
|
|
|
12162
13455
|
var LabeledInput = function (_a) {
|
|
@@ -12198,7 +13491,7 @@ var TypeAheadInput = function (_a) {
|
|
|
12198
13491
|
};
|
|
12199
13492
|
return (React.createElement("div", { className: "typeahead" },
|
|
12200
13493
|
React.createElement("div", { className: "typeahead__trigger typeahead__trigger--icon" },
|
|
12201
|
-
React.createElement(Icon
|
|
13494
|
+
React.createElement(Icon, { name: "qsm-location" }),
|
|
12202
13495
|
React.createElement("input", { type: "text", className: "form__input", name: name, value: value, onChange: handleChange, placeholder: placeholder, required: true, autoComplete: "off", onKeyDown: function (e) {
|
|
12203
13496
|
if (e.key === "Tab" && options && onSelect) {
|
|
12204
13497
|
onSelect(options[0].key);
|
|
@@ -12226,7 +13519,7 @@ var TypeAheadInput = function (_a) {
|
|
|
12226
13519
|
};
|
|
12227
13520
|
|
|
12228
13521
|
function isValidEmail(email) {
|
|
12229
|
-
return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,
|
|
13522
|
+
return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,24}$/i.test(email);
|
|
12230
13523
|
}
|
|
12231
13524
|
function getAge(birthDateText, startDateText) {
|
|
12232
13525
|
var birthDate = new Date(birthDateText);
|
|
@@ -12596,13 +13889,13 @@ var TravelersForm = function () {
|
|
|
12596
13889
|
React.createElement("div", { className: "form__twocolumn" },
|
|
12597
13890
|
React.createElement("div", { className: "form__twocolumn-column" },
|
|
12598
13891
|
React.createElement("div", { className: "form__row" },
|
|
12599
|
-
React.createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik.handleChange, onBlur: formik.handleBlur,
|
|
13892
|
+
React.createElement(LabeledInput, { hasError: hasVisibleError("street"), extraClassName: "form__group--50 form__group--sm-60", label: translations.TRAVELERS_FORM.STREET, required: true, name: "street", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.street }),
|
|
12600
13893
|
React.createElement(LabeledInput, { hasError: hasVisibleError("houseNumber"), extraClassName: "form__group--30 form__group--sm-20", label: translations.TRAVELERS_FORM.HOUSE_NUMBER, required: true, name: "houseNumber", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.houseNumber }),
|
|
12601
13894
|
React.createElement(LabeledInput, { hasError: hasVisibleError("box"), extraClassName: "form__group--20", label: translations.TRAVELERS_FORM.POST_BOX, name: "box", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.box }))),
|
|
12602
13895
|
React.createElement("div", { className: "form__twocolumn-column" },
|
|
12603
13896
|
React.createElement("div", { className: "form__row" },
|
|
12604
13897
|
React.createElement(LabeledInput, { hasError: hasVisibleError("zipCode"), extraClassName: "form__group--40 form__group--sm-20", label: translations.TRAVELERS_FORM.ZIPCODE, required: true, name: "zipCode", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.zipCode }),
|
|
12605
|
-
React.createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place",
|
|
13898
|
+
React.createElement(LabeledInput, { hasError: hasVisibleError("place"), extraClassName: "form__group--60 form__group--sm-40", label: translations.TRAVELERS_FORM.CITY, required: true, name: "place", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.place }),
|
|
12606
13899
|
React.createElement(LabeledSelect, { hasError: hasVisibleError("country"), extraClassName: "form__group--sm-40", label: translations.TRAVELERS_FORM.COUNTRY, required: true, name: "country", onChange: formik.handleChange, onBlur: formik.handleBlur, value: formik.values.country, options: [
|
|
12607
13900
|
{
|
|
12608
13901
|
key: "empty",
|
|
@@ -12659,7 +13952,7 @@ var TravelersForm = function () {
|
|
|
12659
13952
|
|
|
12660
13953
|
var Booking = function (_a) {
|
|
12661
13954
|
var productCode = _a.productCode, productName = _a.productName, thumbnailUrl = _a.thumbnailUrl;
|
|
12662
|
-
var _b = useContext(SettingsContext), officeId = _b.officeId, bookingOptions = _b.bookingOptions, basePath = _b.basePath, roomOptions = _b.roomOptions, flightOptions = _b.flightOptions, options = _b.options, travellers = _b.travellers, summary = _b.summary, confirmation = _b.confirmation, error = _b.error, showSidebarDeposit = _b.showSidebarDeposit, includeFlights = _b.includeFlights, loaderComponent = _b.loaderComponent, skipPaymentWithAgent = _b.skipPaymentWithAgent, generatePaymentUrl = _b.generatePaymentUrl, tagIds = _b.tagIds, agentAdressId = _b.agentAdressId, language = _b.language, translationFiles = _b.translationFiles, accommodationViewId = _b.accommodationViewId;
|
|
13955
|
+
var _b = useContext(SettingsContext), officeId = _b.officeId, bookingOptions = _b.bookingOptions, basePath = _b.basePath, roomOptions = _b.roomOptions, flightOptions = _b.flightOptions, options = _b.options, travellers = _b.travellers, summary = _b.summary, confirmation = _b.confirmation, error = _b.error, showSidebarDeposit = _b.showSidebarDeposit, includeFlights = _b.includeFlights, loaderComponent = _b.loaderComponent, skipPaymentWithAgent = _b.skipPaymentWithAgent, generatePaymentUrl = _b.generatePaymentUrl, tagIds = _b.tagIds, agentAdressId = _b.agentAdressId, language = _b.language, translationFiles = _b.translationFiles, accommodationViewId = _b.accommodationViewId, isOffer = _b.isOffer;
|
|
12663
13956
|
var dispatch = useAppDispatch();
|
|
12664
13957
|
var location = useLocation();
|
|
12665
13958
|
var productAttributes = useSelector(selectProductAttributes);
|
|
@@ -12834,7 +14127,7 @@ var Booking = function (_a) {
|
|
|
12834
14127
|
!packageDetails && !bookingNumber && !isUnvailable && (React.createElement("div", { className: "booking" },
|
|
12835
14128
|
React.createElement("div", { className: "booking__loader" },
|
|
12836
14129
|
loaderComponent,
|
|
12837
|
-
React.createElement("p", { className: "booking__loader-text" }, translations.MAIN.PREPARING_BOOKING)))),
|
|
14130
|
+
React.createElement("p", { className: "booking__loader-text" }, isOffer ? translations.MAIN.PREPARING_OFFER : translations.MAIN.PREPARING_BOOKING)))),
|
|
12838
14131
|
isUnvailable && (React.createElement("div", { className: "booking" },
|
|
12839
14132
|
React.createElement("div", { className: "booking__loader" },
|
|
12840
14133
|
React.createElement("p", { className: "booking__loader-text" }, translations.MAIN.PRODUCT_UNAVAILABLE))))));
|