@qite/tide-booking-component 1.4.110 → 1.4.112
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/index.js +2301 -1565
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form.d.ts +1 -2
- package/build/build-cjs/src/search-results/components/book-packaging-entry/index.d.ts +1 -0
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +3 -1
- package/build/build-cjs/src/search-results/types.d.ts +3 -0
- package/build/build-cjs/src/shared/booking/shared-confirmation.d.ts +25 -0
- package/build/build-cjs/src/shared/booking/summary.d.ts +43 -0
- package/build/build-cjs/src/shared/booking/travelers-form.d.ts +93 -0
- package/build/build-cjs/src/shared/utils/booking-summary.d.ts +1 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +6 -0
- package/build/build-esm/index.js +2198 -1463
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form.d.ts +1 -2
- package/build/build-esm/src/search-results/components/book-packaging-entry/index.d.ts +1 -0
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +3 -1
- package/build/build-esm/src/search-results/types.d.ts +3 -0
- package/build/build-esm/src/shared/booking/shared-confirmation.d.ts +25 -0
- package/build/build-esm/src/shared/booking/summary.d.ts +43 -0
- package/build/build-esm/src/shared/booking/travelers-form.d.ts +93 -0
- package/build/build-esm/src/shared/utils/booking-summary.d.ts +1 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +6 -0
- package/package.json +2 -2
- package/src/booking-wizard/components/step-indicator.tsx +1 -1
- package/src/booking-wizard/components/step-route.tsx +1 -1
- package/src/booking-wizard/features/confirmation/confirmation.tsx +11 -55
- package/src/booking-wizard/features/sidebar/index.tsx +1 -1
- package/src/booking-wizard/features/summary/summary.tsx +1 -1
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +84 -1010
- package/src/search-results/components/book-packaging-entry/index.tsx +201 -21
- package/src/search-results/components/book-packaging-entry/wl-sidebar.tsx +1 -4
- package/src/search-results/components/group-tour/group-tour-card.tsx +1 -1
- package/src/search-results/components/group-tour/group-tour-results.tsx +1 -1
- package/src/search-results/components/search-results-container/search-results-container.tsx +40 -14
- package/src/search-results/store/search-results-slice.ts +8 -2
- package/src/search-results/types.ts +4 -0
- package/src/shared/booking/{BookingPanel.tsx → booking-panel.tsx} +1 -1
- package/src/shared/booking/shared-confirmation.tsx +105 -0
- package/src/shared/booking/summary.tsx +380 -0
- package/src/shared/booking/travelers-form.tsx +868 -0
- package/src/shared/components/flyin/flyin.tsx +8 -9
- package/src/shared/components/flyin/packaging-flights-flyin.tsx +4 -4
- package/src/shared/utils/booking-summary.tsx +46 -0
- package/src/shared/utils/tide-api-utils.ts +2 -2
- package/styles/components/_booking.scss +33 -15
- package/styles/components/_cta.scss +2 -2
- package/styles/components/_dropdown.scss +5 -0
- package/styles/components/_flight-option.scss +1 -1
- package/styles/components/_flyin.scss +43 -0
- package/styles/components/_search.scss +5 -0
- package/styles/components/_step-indicators.scss +41 -15
- package/styles/components/_tree.scss +2 -2
- /package/build/build-cjs/src/shared/booking/{BookingPanel.d.ts → booking-panel.d.ts} +0 -0
- /package/build/build-cjs/src/shared/booking/{Sidebar.d.ts → shared-sidebar.d.ts} +0 -0
- /package/build/build-cjs/src/shared/booking/{StepIndicators.d.ts → step-indicators.d.ts} +0 -0
- /package/build/build-esm/src/shared/booking/{BookingPanel.d.ts → booking-panel.d.ts} +0 -0
- /package/build/build-esm/src/shared/booking/{Sidebar.d.ts → shared-sidebar.d.ts} +0 -0
- /package/build/build-esm/src/shared/booking/{StepIndicators.d.ts → step-indicators.d.ts} +0 -0
- /package/src/shared/booking/{Sidebar.tsx → shared-sidebar.tsx} +0 -0
- /package/src/shared/booking/{StepIndicators.tsx → step-indicators.tsx} +0 -0
package/build/build-cjs/index.js
CHANGED
|
@@ -13,9 +13,9 @@ var reactRedux = require('react-redux');
|
|
|
13
13
|
var toolkit = require('@reduxjs/toolkit');
|
|
14
14
|
var reactRouter = require('react-router');
|
|
15
15
|
require('react-dom');
|
|
16
|
-
var flat = require('flat');
|
|
17
|
-
var formik = require('formik');
|
|
18
16
|
var produce = require('immer');
|
|
17
|
+
var formik = require('formik');
|
|
18
|
+
var flat = require('flat');
|
|
19
19
|
var uuid = require('uuid');
|
|
20
20
|
|
|
21
21
|
function _interopDefaultLegacy(e) {
|
|
@@ -77,8 +77,8 @@ function _mergeNamespaces(n, m) {
|
|
|
77
77
|
var React__default = /*#__PURE__*/ _interopDefaultLegacy(React);
|
|
78
78
|
var React__namespace = /*#__PURE__*/ _interopNamespace(React);
|
|
79
79
|
var JsonURL__default = /*#__PURE__*/ _interopDefaultLegacy(JsonURL);
|
|
80
|
-
var flat__default = /*#__PURE__*/ _interopDefaultLegacy(flat);
|
|
81
80
|
var produce__default = /*#__PURE__*/ _interopDefaultLegacy(produce);
|
|
81
|
+
var flat__default = /*#__PURE__*/ _interopDefaultLegacy(flat);
|
|
82
82
|
|
|
83
83
|
/******************************************************************************
|
|
84
84
|
Copyright (c) Microsoft Corporation.
|
|
@@ -7086,7 +7086,7 @@ function getLocale(code) {
|
|
|
7086
7086
|
var getPriceDifferenceText = function (price, currencyCode) {
|
|
7087
7087
|
return price > 0 ? '+ '.concat(formatPrice$3(Math.abs(price), currencyCode)) : '- '.concat(formatPrice$3(Math.abs(price), currencyCode));
|
|
7088
7088
|
};
|
|
7089
|
-
function format(text, args) {
|
|
7089
|
+
function format$1(text, args) {
|
|
7090
7090
|
return text.replace(/{([0-9]+)}/g, function (match, index) {
|
|
7091
7091
|
return typeof args[index] == 'undefined' ? match : args[index];
|
|
7092
7092
|
});
|
|
@@ -13055,7 +13055,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13055
13055
|
};
|
|
13056
13056
|
var ENDPOINT_BOOKABLE_DATES = ENDPOINT$8 + '/bookable-dates';
|
|
13057
13057
|
var ENDPOINT_PRICE_DETAILS$1 = ENDPOINT$8 + '/price-details';
|
|
13058
|
-
var ENDPOINT_BOOK = ENDPOINT$8 + '/book';
|
|
13058
|
+
var ENDPOINT_BOOK$1 = ENDPOINT$8 + '/book';
|
|
13059
13059
|
var ENDPOINT_UPDATE = ENDPOINT$8 + '/update';
|
|
13060
13060
|
var ENDPOINT_AGENTS = ENDPOINT$8 + '/agents';
|
|
13061
13061
|
var ENDPOINT_AVAILABLE_ALLOTMENTS = function (eventId, productCode) {
|
|
@@ -13160,7 +13160,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13160
13160
|
return post(url, apiKey, body, config.token, signal, true, languageCode);
|
|
13161
13161
|
};
|
|
13162
13162
|
var book = function (config, request, signal, languageCode) {
|
|
13163
|
-
var url = '' + config.host + ENDPOINT_BOOK;
|
|
13163
|
+
var url = '' + config.host + ENDPOINT_BOOK$1;
|
|
13164
13164
|
var apiKey = config.apiKey;
|
|
13165
13165
|
var body = JSON.stringify(request);
|
|
13166
13166
|
return post(url, apiKey, body, config.token, signal, true, languageCode);
|
|
@@ -13683,6 +13683,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13683
13683
|
var ENDPOINT_EXCURSIONS = ENDPOINT + '/excursions';
|
|
13684
13684
|
var ENDPOINT_FLIGHTS = ENDPOINT + '/flights';
|
|
13685
13685
|
var ENDPOINT_PRICE_DETAILS = ENDPOINT + '/price-details';
|
|
13686
|
+
var ENDPOINT_BOOK = ENDPOINT + '/book';
|
|
13686
13687
|
var ENDPOINT_ITINERARY = ENDPOINT + '/itinerary';
|
|
13687
13688
|
var ENDPOINT_ENTRY = function (magicLinkCode) {
|
|
13688
13689
|
return ENDPOINT + '/entry/' + magicLinkCode;
|
|
@@ -13727,6 +13728,12 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13727
13728
|
var body = JSON.stringify(request);
|
|
13728
13729
|
return post(url, apiKey, body, config.token, signal, true);
|
|
13729
13730
|
};
|
|
13731
|
+
var bookPackagingEntry = function (config, request, signal) {
|
|
13732
|
+
var url = '' + config.host + ENDPOINT_BOOK;
|
|
13733
|
+
var apiKey = config.apiKey;
|
|
13734
|
+
var body = JSON.stringify(request);
|
|
13735
|
+
return post(url, apiKey, body, config.token, signal, true);
|
|
13736
|
+
};
|
|
13730
13737
|
|
|
13731
13738
|
exports.AllotmentType = AllotmentType;
|
|
13732
13739
|
exports.ContactForm = ContactForm;
|
|
@@ -13750,6 +13757,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13750
13757
|
exports.availableCountries = availableCountries;
|
|
13751
13758
|
exports.availableFlights = availableFlights;
|
|
13752
13759
|
exports.book = book;
|
|
13760
|
+
exports.bookPackagingEntry = bookPackagingEntry;
|
|
13753
13761
|
exports.bookableDates = bookableDates;
|
|
13754
13762
|
exports.changeEntryAgentSurcharge = changeEntryAgentSurcharge;
|
|
13755
13763
|
exports.confirm = confirm;
|
|
@@ -13814,9 +13822,16 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13814
13822
|
exports.validateVoucher = validateVoucher;
|
|
13815
13823
|
})(build);
|
|
13816
13824
|
|
|
13825
|
+
var tideConnection = {
|
|
13826
|
+
// host: 'https://localhost:44341',
|
|
13827
|
+
host: 'https://preview-tide.tidesoftware.be',
|
|
13828
|
+
apiKey: 'e9b95d79-de4c-41d6-ab7e-3dd429873058',
|
|
13829
|
+
catalogueIds: [1],
|
|
13830
|
+
officeId: 1
|
|
13831
|
+
};
|
|
13817
13832
|
function buildTideClientConfig(settings) {
|
|
13818
|
-
var HOST = (settings === null || settings === void 0 ? void 0 : settings.apiUrl) ||
|
|
13819
|
-
var API_KEY = (settings === null || settings === void 0 ? void 0 : settings.apiKey) ||
|
|
13833
|
+
var HOST = (settings === null || settings === void 0 ? void 0 : settings.apiUrl) || tideConnection.host;
|
|
13834
|
+
var API_KEY = (settings === null || settings === void 0 ? void 0 : settings.apiKey) || tideConnection.apiKey;
|
|
13820
13835
|
var token = selectAgentToken();
|
|
13821
13836
|
if (lodash.isNil(HOST)) {
|
|
13822
13837
|
throw Error('Environment variable "HOST" was not set.');
|
|
@@ -20687,7 +20702,7 @@ var setOfficeId = ((_a$3 = bookingSlice.actions), _a$3.setOfficeId),
|
|
|
20687
20702
|
setBookingAttributes = _a$3.setBookingAttributes,
|
|
20688
20703
|
setCalculateDeposit = _a$3.setCalculateDeposit,
|
|
20689
20704
|
setShowCommission = _a$3.setShowCommission,
|
|
20690
|
-
setBookingNumber = _a$3.setBookingNumber,
|
|
20705
|
+
setBookingNumber$1 = _a$3.setBookingNumber,
|
|
20691
20706
|
setIsRetry = _a$3.setIsRetry,
|
|
20692
20707
|
setFetchingPackage = _a$3.setFetchingPackage,
|
|
20693
20708
|
setIsFetching = _a$3.setIsFetching,
|
|
@@ -20703,7 +20718,7 @@ var setOfficeId = ((_a$3 = bookingSlice.actions), _a$3.setOfficeId),
|
|
|
20703
20718
|
setAgentAdressId = _a$3.setAgentAdressId,
|
|
20704
20719
|
setBookingRemarks = _a$3.setBookingRemarks,
|
|
20705
20720
|
setVoucherCodes = _a$3.setVoucherCodes,
|
|
20706
|
-
setCurrentStep = _a$3.setCurrentStep,
|
|
20721
|
+
setCurrentStep$1 = _a$3.setCurrentStep,
|
|
20707
20722
|
setPackageAirlineGroups = _a$3.setPackageAirlineGroups,
|
|
20708
20723
|
setPackageAirportGroups = _a$3.setPackageAirportGroups,
|
|
20709
20724
|
setFlights = _a$3.setFlights,
|
|
@@ -20833,7 +20848,7 @@ var BookingPanel = function (_a) {
|
|
|
20833
20848
|
StepIndicatorsComponent = _a.StepIndicatorsComponent;
|
|
20834
20849
|
return React__default['default'].createElement(
|
|
20835
20850
|
'div',
|
|
20836
|
-
{ className: '
|
|
20851
|
+
{ className: 'booking__panel__wrapper' },
|
|
20837
20852
|
React__default['default'].createElement(StepIndicatorsComponent, { currentStep: currentStep, stepLabels: stepLabels }),
|
|
20838
20853
|
React__default['default'].createElement(
|
|
20839
20854
|
'div',
|
|
@@ -20954,37 +20969,27 @@ var Message = function (_a) {
|
|
|
20954
20969
|
);
|
|
20955
20970
|
};
|
|
20956
20971
|
|
|
20957
|
-
|
|
20958
|
-
|
|
20959
|
-
|
|
20960
|
-
|
|
20961
|
-
|
|
20962
|
-
|
|
20963
|
-
|
|
20964
|
-
|
|
20965
|
-
|
|
20966
|
-
|
|
20967
|
-
|
|
20968
|
-
|
|
20969
|
-
|
|
20970
|
-
|
|
20971
|
-
|
|
20972
|
-
|
|
20973
|
-
.concat(settings.error.pathSuffix, '?')
|
|
20974
|
-
.concat(bookingQueryString)
|
|
20975
|
-
);
|
|
20976
|
-
}
|
|
20977
|
-
}
|
|
20978
|
-
},
|
|
20979
|
-
[bookingNumber]
|
|
20980
|
-
);
|
|
20981
|
-
var translations = reactRedux.useSelector(selectTranslations);
|
|
20982
|
-
var encodedMailSubject = encodeURI(translations.CONFIRMATION.MAIL_SUBJECT);
|
|
20972
|
+
function format(str, args) {
|
|
20973
|
+
// Simple format function: replaces {0}, {1}, ... with args
|
|
20974
|
+
return str.replace(/\{(\d+)\}/g, function (match, number) {
|
|
20975
|
+
return typeof args[number] !== 'undefined' ? String(args[number]) : match;
|
|
20976
|
+
});
|
|
20977
|
+
}
|
|
20978
|
+
var SharedConfirmation = function (_a) {
|
|
20979
|
+
var bookingNumber = _a.bookingNumber,
|
|
20980
|
+
isOption = _a.isOption,
|
|
20981
|
+
isOffer = _a.isOffer,
|
|
20982
|
+
translations = _a.translations,
|
|
20983
|
+
companyContactPhone = _a.companyContactPhone,
|
|
20984
|
+
companyContactEmail = _a.companyContactEmail,
|
|
20985
|
+
_b = _a.homeUrl,
|
|
20986
|
+
homeUrl = _b === void 0 ? '/' : _b;
|
|
20987
|
+
var encodedMailSubject = encodeURI(translations.MAIL_SUBJECT);
|
|
20983
20988
|
var titleText = isOption
|
|
20984
|
-
? format(translations.
|
|
20985
|
-
:
|
|
20986
|
-
? format(translations.
|
|
20987
|
-
: format(translations.
|
|
20989
|
+
? format(translations.TITLE_TEXT_OPTION, [bookingNumber])
|
|
20990
|
+
: isOffer
|
|
20991
|
+
? format(translations.TITLE_TEXT_OFFER, [bookingNumber])
|
|
20992
|
+
: format(translations.TITLE_TEXT_BOOKING, [bookingNumber]);
|
|
20988
20993
|
return React__default['default'].createElement(
|
|
20989
20994
|
'div',
|
|
20990
20995
|
{ className: 'form form__booking--message', id: 'booking--confirmation' },
|
|
@@ -21002,25 +21007,31 @@ var Confirmation = function () {
|
|
|
21002
21007
|
{
|
|
21003
21008
|
type: 'success',
|
|
21004
21009
|
title: titleText,
|
|
21005
|
-
actionComponent:
|
|
21006
|
-
|
|
21007
|
-
|
|
21008
|
-
|
|
21009
|
-
|
|
21010
|
-
|
|
21011
|
-
|
|
21012
|
-
|
|
21013
|
-
|
|
21014
|
-
|
|
21015
|
-
|
|
21016
|
-
|
|
21017
|
-
|
|
21018
|
-
|
|
21019
|
-
|
|
21020
|
-
|
|
21021
|
-
|
|
21022
|
-
|
|
21023
|
-
|
|
21010
|
+
actionComponent:
|
|
21011
|
+
companyContactPhone || companyContactEmail
|
|
21012
|
+
? React__default['default'].createElement(
|
|
21013
|
+
'div',
|
|
21014
|
+
{ className: 'sm' },
|
|
21015
|
+
companyContactPhone &&
|
|
21016
|
+
React__default['default'].createElement(
|
|
21017
|
+
'a',
|
|
21018
|
+
{ href: 'tel://'.concat(companyContactPhone), className: 'sm__icon' },
|
|
21019
|
+
React__default['default'].createElement(Icon, { name: 'tel' })
|
|
21020
|
+
),
|
|
21021
|
+
companyContactEmail &&
|
|
21022
|
+
React__default['default'].createElement(
|
|
21023
|
+
'a',
|
|
21024
|
+
{ href: 'mailto://'.concat(companyContactEmail), className: 'sm__icon' },
|
|
21025
|
+
React__default['default'].createElement(Icon, { name: 'mail' })
|
|
21026
|
+
),
|
|
21027
|
+
homeUrl &&
|
|
21028
|
+
React__default['default'].createElement(
|
|
21029
|
+
'a',
|
|
21030
|
+
{ href: homeUrl, className: 'sm__icon' },
|
|
21031
|
+
React__default['default'].createElement(Icon, { name: 'home' })
|
|
21032
|
+
)
|
|
21033
|
+
)
|
|
21034
|
+
: undefined
|
|
21024
21035
|
},
|
|
21025
21036
|
!isOption
|
|
21026
21037
|
? React__default['default'].createElement(
|
|
@@ -21029,25 +21040,23 @@ var Confirmation = function () {
|
|
|
21029
21040
|
React__default['default'].createElement(
|
|
21030
21041
|
'p',
|
|
21031
21042
|
null,
|
|
21032
|
-
translations.
|
|
21043
|
+
translations.MESSAGE_TEXT1,
|
|
21033
21044
|
React__default['default'].createElement('br', null),
|
|
21034
|
-
|
|
21045
|
+
isOffer ? translations.MESSAGE_TEXT2_OFFER : translations.MESSAGE_TEXT2_BOOKING
|
|
21035
21046
|
),
|
|
21036
|
-
|
|
21037
|
-
'p',
|
|
21038
|
-
null,
|
|
21039
|
-
translations.CONFIRMATION.QUESTIONS_TEXT1,
|
|
21040
|
-
' ',
|
|
21047
|
+
companyContactEmail &&
|
|
21041
21048
|
React__default['default'].createElement(
|
|
21042
|
-
'
|
|
21043
|
-
|
|
21044
|
-
|
|
21045
|
-
|
|
21046
|
-
|
|
21047
|
-
|
|
21048
|
-
|
|
21049
|
-
|
|
21050
|
-
|
|
21049
|
+
'p',
|
|
21050
|
+
null,
|
|
21051
|
+
translations.QUESTIONS_TEXT1,
|
|
21052
|
+
' ',
|
|
21053
|
+
React__default['default'].createElement(
|
|
21054
|
+
'a',
|
|
21055
|
+
{ href: 'mailto:'.concat(companyContactEmail, '?subject=').concat(encodedMailSubject), title: translations.QUESTIONS_ALT },
|
|
21056
|
+
translations.QUESTIONS_TEXT2
|
|
21057
|
+
),
|
|
21058
|
+
translations.QUESTIONS_TEXT3
|
|
21059
|
+
)
|
|
21051
21060
|
)
|
|
21052
21061
|
: undefined
|
|
21053
21062
|
)
|
|
@@ -21057,6 +21066,42 @@ var Confirmation = function () {
|
|
|
21057
21066
|
);
|
|
21058
21067
|
};
|
|
21059
21068
|
|
|
21069
|
+
var Confirmation = function () {
|
|
21070
|
+
var dispatch = useAppDispatch();
|
|
21071
|
+
var settings = React.useContext(SettingsContext);
|
|
21072
|
+
var navigate = settings.skipRouter ? function () {} : reactRouter.useNavigate();
|
|
21073
|
+
var bookingNumber = reactRedux.useSelector(selectBookingNumber);
|
|
21074
|
+
var bookingQueryString = reactRedux.useSelector(selectBookingQueryString);
|
|
21075
|
+
var isOption = reactRedux.useSelector(selectIsOption);
|
|
21076
|
+
var translations = reactRedux.useSelector(selectTranslations);
|
|
21077
|
+
React.useEffect(
|
|
21078
|
+
function () {
|
|
21079
|
+
if (!bookingNumber) {
|
|
21080
|
+
if (settings.skipRouter) {
|
|
21081
|
+
dispatch(setCurrentStep$1(OPTIONS_FORM_STEP));
|
|
21082
|
+
} else {
|
|
21083
|
+
navigate(
|
|
21084
|
+
''
|
|
21085
|
+
.concat(!settings.skipBasePathInRouting ? settings.basePath : '')
|
|
21086
|
+
.concat(settings.error.pathSuffix, '?')
|
|
21087
|
+
.concat(bookingQueryString)
|
|
21088
|
+
);
|
|
21089
|
+
}
|
|
21090
|
+
}
|
|
21091
|
+
},
|
|
21092
|
+
[bookingNumber]
|
|
21093
|
+
);
|
|
21094
|
+
return React__default['default'].createElement(SharedConfirmation, {
|
|
21095
|
+
bookingNumber: bookingNumber,
|
|
21096
|
+
isOption: isOption,
|
|
21097
|
+
isOffer: settings.isOffer,
|
|
21098
|
+
translations: translations.CONFIRMATION,
|
|
21099
|
+
companyContactPhone: settings.companyContactPhone,
|
|
21100
|
+
companyContactEmail: settings.companyContactEmail,
|
|
21101
|
+
homeUrl: settings.basePath || '/'
|
|
21102
|
+
});
|
|
21103
|
+
};
|
|
21104
|
+
|
|
21060
21105
|
var Error$1 = function () {
|
|
21061
21106
|
var dispatch = useAppDispatch();
|
|
21062
21107
|
var settings = React.useContext(SettingsContext);
|
|
@@ -22717,9 +22762,9 @@ var FlightOptionsForm = function () {
|
|
|
22717
22762
|
var handleSubmit = function (e) {
|
|
22718
22763
|
if (settings.skipRouter) {
|
|
22719
22764
|
if (settings.roomOptions.isHidden) {
|
|
22720
|
-
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
22765
|
+
dispatch(setCurrentStep$1(OPTIONS_FORM_STEP));
|
|
22721
22766
|
} else {
|
|
22722
|
-
dispatch(setCurrentStep(ROOM_OPTIONS_FORM_STEP));
|
|
22767
|
+
dispatch(setCurrentStep$1(ROOM_OPTIONS_FORM_STEP));
|
|
22723
22768
|
}
|
|
22724
22769
|
} else {
|
|
22725
22770
|
if (settings.roomOptions.isHidden) {
|
|
@@ -22800,7 +22845,7 @@ var FlightOptionsForm = function () {
|
|
|
22800
22845
|
var filteredGroups = filterGroupedFlights(flightGroups, filterOptions);
|
|
22801
22846
|
var resultCount = filteredGroups.length;
|
|
22802
22847
|
var goPrevious = function () {
|
|
22803
|
-
dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
|
|
22848
|
+
dispatch(setCurrentStep$1(TRAVELERS_FORM_STEP));
|
|
22804
22849
|
};
|
|
22805
22850
|
return React__default['default'].createElement(
|
|
22806
22851
|
React__default['default'].Fragment,
|
|
@@ -24851,9 +24896,9 @@ var OptionsForm = function () {
|
|
|
24851
24896
|
var handleSubmit = function (e) {
|
|
24852
24897
|
if (settings.skipRouter) {
|
|
24853
24898
|
if (travelersFirstStep) {
|
|
24854
|
-
dispatch(setCurrentStep(SUMMARY_STEP));
|
|
24899
|
+
dispatch(setCurrentStep$1(SUMMARY_STEP));
|
|
24855
24900
|
} else {
|
|
24856
|
-
dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
|
|
24901
|
+
dispatch(setCurrentStep$1(TRAVELERS_FORM_STEP));
|
|
24857
24902
|
}
|
|
24858
24903
|
} else {
|
|
24859
24904
|
if (travelersFirstStep) {
|
|
@@ -24962,9 +25007,9 @@ var OptionsForm = function () {
|
|
|
24962
25007
|
}, []);
|
|
24963
25008
|
var goPrevious = function () {
|
|
24964
25009
|
if (settings.roomOptions.isHidden) {
|
|
24965
|
-
dispatch(setCurrentStep(FLIGHT_OPTIONS_FORM_STEP));
|
|
25010
|
+
dispatch(setCurrentStep$1(FLIGHT_OPTIONS_FORM_STEP));
|
|
24966
25011
|
} else {
|
|
24967
|
-
dispatch(setCurrentStep(ROOM_OPTIONS_FORM_STEP));
|
|
25012
|
+
dispatch(setCurrentStep$1(ROOM_OPTIONS_FORM_STEP));
|
|
24968
25013
|
}
|
|
24969
25014
|
};
|
|
24970
25015
|
var previousUrl = settings.roomOptions.isHidden
|
|
@@ -25416,11 +25461,11 @@ var RoomOptionsForm = function () {
|
|
|
25416
25461
|
var isLoading = reactRedux.useSelector(selectIsFetchingProductOptions);
|
|
25417
25462
|
var rooms = buildSelectableRooms(packageRooms, settings.accommodations, settings.regimes, accommodationViews);
|
|
25418
25463
|
var goPrevious = function () {
|
|
25419
|
-
dispatch(setCurrentStep(FLIGHT_OPTIONS_FORM_STEP));
|
|
25464
|
+
dispatch(setCurrentStep$1(FLIGHT_OPTIONS_FORM_STEP));
|
|
25420
25465
|
};
|
|
25421
25466
|
var handleSubmit = function (e) {
|
|
25422
25467
|
if (settings.skipRouter) {
|
|
25423
|
-
dispatch(setCurrentStep(OPTIONS_FORM_STEP));
|
|
25468
|
+
dispatch(setCurrentStep$1(OPTIONS_FORM_STEP));
|
|
25424
25469
|
} else {
|
|
25425
25470
|
navigate(
|
|
25426
25471
|
''
|
|
@@ -26658,7 +26703,7 @@ var Summary = function () {
|
|
|
26658
26703
|
: _e[0];
|
|
26659
26704
|
if (!travelerFormValues) {
|
|
26660
26705
|
if (settings.skipRouter) {
|
|
26661
|
-
dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
|
|
26706
|
+
dispatch(setCurrentStep$1(TRAVELERS_FORM_STEP));
|
|
26662
26707
|
} else {
|
|
26663
26708
|
navigate(''.concat(!settings.skipBasePathInRouting ? settings.basePath : '', '?').concat(bookingQueryString));
|
|
26664
26709
|
}
|
|
@@ -26728,12 +26773,12 @@ var Summary = function () {
|
|
|
26728
26773
|
case 2:
|
|
26729
26774
|
bookingResponse = _b.sent();
|
|
26730
26775
|
// Booking successfull
|
|
26731
|
-
dispatch(setBookingNumber(bookingResponse.number));
|
|
26776
|
+
dispatch(setBookingNumber$1(bookingResponse.number));
|
|
26732
26777
|
if (bookingResponse.paymentUrl) {
|
|
26733
26778
|
window.location.href = bookingResponse.paymentUrl;
|
|
26734
26779
|
} else {
|
|
26735
26780
|
if (settings.skipRouter) {
|
|
26736
|
-
dispatch(setCurrentStep(CONFIRMATION_STEP));
|
|
26781
|
+
dispatch(setCurrentStep$1(CONFIRMATION_STEP));
|
|
26737
26782
|
} else {
|
|
26738
26783
|
navigate(
|
|
26739
26784
|
''
|
|
@@ -26747,7 +26792,7 @@ var Summary = function () {
|
|
|
26747
26792
|
case 3:
|
|
26748
26793
|
_b.sent();
|
|
26749
26794
|
if (settings.skipRouter) {
|
|
26750
|
-
dispatch(setCurrentStep(ERROR_STEP));
|
|
26795
|
+
dispatch(setCurrentStep$1(ERROR_STEP));
|
|
26751
26796
|
} else {
|
|
26752
26797
|
navigate(
|
|
26753
26798
|
''
|
|
@@ -26855,7 +26900,7 @@ var Summary = function () {
|
|
|
26855
26900
|
dispatch(fetchPriceDetails());
|
|
26856
26901
|
};
|
|
26857
26902
|
var goPrevious = function () {
|
|
26858
|
-
dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
|
|
26903
|
+
dispatch(setCurrentStep$1(TRAVELERS_FORM_STEP));
|
|
26859
26904
|
};
|
|
26860
26905
|
var translations = reactRedux.useSelector(selectTranslations);
|
|
26861
26906
|
return React__default['default'].createElement(
|
|
@@ -27455,6 +27500,185 @@ var Summary = function () {
|
|
|
27455
27500
|
);
|
|
27456
27501
|
};
|
|
27457
27502
|
|
|
27503
|
+
function isValidEmail(email) {
|
|
27504
|
+
return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,24}$/i.test(email);
|
|
27505
|
+
}
|
|
27506
|
+
function getAge(birthDateText, startDateText) {
|
|
27507
|
+
var birthDate = new Date(birthDateText);
|
|
27508
|
+
var startDate = new Date(startDateText);
|
|
27509
|
+
var age = startDate.getFullYear() - birthDate.getFullYear();
|
|
27510
|
+
var m = startDate.getMonth() - birthDate.getMonth();
|
|
27511
|
+
if (m < 0 || (m === 0 && startDate.getDate() < birthDate.getDate())) {
|
|
27512
|
+
age--;
|
|
27513
|
+
}
|
|
27514
|
+
return age;
|
|
27515
|
+
}
|
|
27516
|
+
var validateForm = function (values, agentRequired, bookingType, translations, formFields, mainBookerFormFields) {
|
|
27517
|
+
var errors = {};
|
|
27518
|
+
var isFormFieldPresent = function (type) {
|
|
27519
|
+
var _a;
|
|
27520
|
+
return (_a =
|
|
27521
|
+
formFields === null || formFields === void 0
|
|
27522
|
+
? void 0
|
|
27523
|
+
: formFields.some(function (f) {
|
|
27524
|
+
return f.type === type;
|
|
27525
|
+
})) !== null && _a !== void 0
|
|
27526
|
+
? _a
|
|
27527
|
+
: true;
|
|
27528
|
+
};
|
|
27529
|
+
var isMainBookerFormFieldPresent = function (type) {
|
|
27530
|
+
var _a;
|
|
27531
|
+
return (_a =
|
|
27532
|
+
mainBookerFormFields === null || mainBookerFormFields === void 0
|
|
27533
|
+
? void 0
|
|
27534
|
+
: mainBookerFormFields.some(function (f) {
|
|
27535
|
+
return f.type === type;
|
|
27536
|
+
})) !== null && _a !== void 0
|
|
27537
|
+
? _a
|
|
27538
|
+
: true;
|
|
27539
|
+
};
|
|
27540
|
+
var formatTravelerField = function (room, pax, field) {
|
|
27541
|
+
return values.rooms.length > 1
|
|
27542
|
+
? format$1(translations.TRAVELERS_FORM.VALIDATION.TRAVELER_X_FIELD, [room, pax, field])
|
|
27543
|
+
: format$1(translations.TRAVELERS_FORM.VALIDATION.SINGLE_ROOM_TRAVELER_X_FIELD, [pax, field]);
|
|
27544
|
+
};
|
|
27545
|
+
var formatTravelerIsNoAdult = function (room, pax) {
|
|
27546
|
+
return values.rooms.length > 1
|
|
27547
|
+
? format$1(translations.TRAVELERS_FORM.VALIDATION.TRAVELER_X_IS_NO_ADULT, [room, pax])
|
|
27548
|
+
: format$1(translations.TRAVELERS_FORM.VALIDATION.SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT, [pax]);
|
|
27549
|
+
};
|
|
27550
|
+
var formatTravelerIsNoChild = function (room, pax) {
|
|
27551
|
+
return values.rooms.length > 1
|
|
27552
|
+
? format$1(translations.TRAVELERS_FORM.VALIDATION.TRAVELER_X_IS_NO_CHILD, [room, pax])
|
|
27553
|
+
: format$1(translations.TRAVELERS_FORM.VALIDATION.SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD, [pax]);
|
|
27554
|
+
};
|
|
27555
|
+
values.rooms.forEach(function (r, rIndex) {
|
|
27556
|
+
return r.adults.forEach(function (adult, index) {
|
|
27557
|
+
if (lodash.isEmpty(adult.gender) && isFormFieldPresent('gender')) {
|
|
27558
|
+
lodash.set(
|
|
27559
|
+
errors,
|
|
27560
|
+
'rooms['.concat(rIndex, '].adults[').concat(index, '].gender'),
|
|
27561
|
+
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.GENDER)
|
|
27562
|
+
);
|
|
27563
|
+
}
|
|
27564
|
+
if (lodash.isEmpty(adult.firstName) && isFormFieldPresent('firstName')) {
|
|
27565
|
+
lodash.set(
|
|
27566
|
+
errors,
|
|
27567
|
+
'rooms['.concat(rIndex, '].adults[').concat(index, '].firstName'),
|
|
27568
|
+
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.FIRST_NAME)
|
|
27569
|
+
);
|
|
27570
|
+
}
|
|
27571
|
+
if (lodash.isEmpty(adult.lastName) && isFormFieldPresent('lastName')) {
|
|
27572
|
+
lodash.set(
|
|
27573
|
+
errors,
|
|
27574
|
+
'rooms['.concat(rIndex, '].adults[').concat(index, '].lastName'),
|
|
27575
|
+
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.LAST_NAME)
|
|
27576
|
+
);
|
|
27577
|
+
}
|
|
27578
|
+
if (isFormFieldPresent('birthDate')) {
|
|
27579
|
+
if (lodash.isEmpty(adult.birthDate)) {
|
|
27580
|
+
lodash.set(
|
|
27581
|
+
errors,
|
|
27582
|
+
'rooms['.concat(rIndex, '].adults[').concat(index, '].birthDate'),
|
|
27583
|
+
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.BIRTHDATE)
|
|
27584
|
+
);
|
|
27585
|
+
} else if (values.startDate) {
|
|
27586
|
+
var age = getAge(adult.birthDate, values.startDate);
|
|
27587
|
+
if (age <= CHILD_MAX_AGE) {
|
|
27588
|
+
lodash.set(errors, 'rooms['.concat(rIndex, '].adults[').concat(index, '].birthDate'), formatTravelerIsNoAdult(rIndex + 1, index + 1));
|
|
27589
|
+
}
|
|
27590
|
+
}
|
|
27591
|
+
}
|
|
27592
|
+
});
|
|
27593
|
+
});
|
|
27594
|
+
values.rooms.forEach(function (r, rIndex) {
|
|
27595
|
+
return r.children.forEach(function (child, index) {
|
|
27596
|
+
if (lodash.isEmpty(child.gender) && isFormFieldPresent('gender')) {
|
|
27597
|
+
lodash.set(
|
|
27598
|
+
errors,
|
|
27599
|
+
'rooms['.concat(rIndex, '].children[').concat(index, '].gender'),
|
|
27600
|
+
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.GENDER)
|
|
27601
|
+
);
|
|
27602
|
+
}
|
|
27603
|
+
if (lodash.isEmpty(child.firstName) && isFormFieldPresent('firstName')) {
|
|
27604
|
+
lodash.set(
|
|
27605
|
+
errors,
|
|
27606
|
+
'children['.concat(index, '].firstName'),
|
|
27607
|
+
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.FIRST_NAME)
|
|
27608
|
+
);
|
|
27609
|
+
}
|
|
27610
|
+
if (lodash.isEmpty(child.lastName) && isFormFieldPresent('lastName')) {
|
|
27611
|
+
lodash.set(
|
|
27612
|
+
errors,
|
|
27613
|
+
'rooms['.concat(rIndex, '].children[').concat(index, '].lastName'),
|
|
27614
|
+
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.LAST_NAME)
|
|
27615
|
+
);
|
|
27616
|
+
}
|
|
27617
|
+
if (isFormFieldPresent('birthDate')) {
|
|
27618
|
+
if (lodash.isEmpty(child.birthDate)) {
|
|
27619
|
+
lodash.set(
|
|
27620
|
+
errors,
|
|
27621
|
+
'rooms['.concat(rIndex, '].children[').concat(index, '].birthDate'),
|
|
27622
|
+
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.BIRTHDATE)
|
|
27623
|
+
);
|
|
27624
|
+
} else if (values.startDate) {
|
|
27625
|
+
var age = getAge(child.birthDate, values.startDate);
|
|
27626
|
+
if (age > CHILD_MAX_AGE) {
|
|
27627
|
+
lodash.set(
|
|
27628
|
+
errors,
|
|
27629
|
+
'rooms['.concat(rIndex, '].children[').concat(index, '].birthDate'),
|
|
27630
|
+
formatTravelerIsNoChild(rIndex + 1, r.adults.length + index + 1)
|
|
27631
|
+
);
|
|
27632
|
+
}
|
|
27633
|
+
}
|
|
27634
|
+
}
|
|
27635
|
+
});
|
|
27636
|
+
});
|
|
27637
|
+
if (values.mainBookerId < 0) {
|
|
27638
|
+
errors.mainBookerId = translations.TRAVELERS_FORM.VALIDATION.NO_MAIN_BOOKER_SELECTED;
|
|
27639
|
+
}
|
|
27640
|
+
if (bookingType != 'b2b' || (mainBookerFormFields === null || mainBookerFormFields === void 0 ? void 0 : mainBookerFormFields.length)) {
|
|
27641
|
+
if (lodash.isEmpty(values.street) && isMainBookerFormFieldPresent('street')) {
|
|
27642
|
+
errors.street = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.STREET]);
|
|
27643
|
+
}
|
|
27644
|
+
if (lodash.isEmpty(values.houseNumber) && isMainBookerFormFieldPresent('houseNumber')) {
|
|
27645
|
+
errors.houseNumber = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.HOUSE_NUMBER]);
|
|
27646
|
+
}
|
|
27647
|
+
if (lodash.isEmpty(values.zipCode) && isMainBookerFormFieldPresent('zipCode')) {
|
|
27648
|
+
errors.zipCode = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.ZIPCODE]);
|
|
27649
|
+
}
|
|
27650
|
+
if (lodash.isEmpty(values.place) && isMainBookerFormFieldPresent('place')) {
|
|
27651
|
+
errors.place = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.CITY]);
|
|
27652
|
+
}
|
|
27653
|
+
if (isMainBookerFormFieldPresent('email')) {
|
|
27654
|
+
if (lodash.isEmpty(values.email)) {
|
|
27655
|
+
errors.email = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.EMAIL]);
|
|
27656
|
+
} else if (isValidEmail(values.email)) {
|
|
27657
|
+
errors.email = translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_EMAIL_IS_INVALID;
|
|
27658
|
+
}
|
|
27659
|
+
if (lodash.isEmpty(values.emailConfirmation)) {
|
|
27660
|
+
errors.emailConfirmation = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.REPEAT_EMAIL]);
|
|
27661
|
+
} else if (values.emailConfirmation !== values.email) {
|
|
27662
|
+
errors.emailConfirmation = translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_EMAIL_DOES_NOT_MATCH;
|
|
27663
|
+
}
|
|
27664
|
+
}
|
|
27665
|
+
if (lodash.isEmpty(values.country) && isMainBookerFormFieldPresent('country')) {
|
|
27666
|
+
errors.country = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.COUNTRY]);
|
|
27667
|
+
}
|
|
27668
|
+
if (lodash.isEmpty(values.phone) && isMainBookerFormFieldPresent('phone')) {
|
|
27669
|
+
errors.phone = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.PHONE]);
|
|
27670
|
+
}
|
|
27671
|
+
} else {
|
|
27672
|
+
if (lodash.isEmpty(values.phone)) {
|
|
27673
|
+
errors.phone = format$1(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.PHONE]);
|
|
27674
|
+
}
|
|
27675
|
+
}
|
|
27676
|
+
if (agentRequired && !values.travelAgentId) {
|
|
27677
|
+
errors.travelAgentId = translations.TRAVELERS_FORM.VALIDATION.AGENT_IS_REQUIRED;
|
|
27678
|
+
}
|
|
27679
|
+
return errors;
|
|
27680
|
+
};
|
|
27681
|
+
|
|
27458
27682
|
var LabeledInput = function (_a) {
|
|
27459
27683
|
var name = _a.name,
|
|
27460
27684
|
type = _a.type,
|
|
@@ -27522,6 +27746,144 @@ var LabeledSelect = function (_a) {
|
|
|
27522
27746
|
);
|
|
27523
27747
|
};
|
|
27524
27748
|
|
|
27749
|
+
var normalize = function (v) {
|
|
27750
|
+
return v == null ? '' : String(v);
|
|
27751
|
+
};
|
|
27752
|
+
var parseCombined = function (raw, countries) {
|
|
27753
|
+
var value = normalize(raw).trim();
|
|
27754
|
+
if (!value) return { prefix: '', number: '' };
|
|
27755
|
+
// Try to match a known prefix at the start. Prefer longest match.
|
|
27756
|
+
var sorted = __spreadArray([], countries, true).sort(function (a, b) {
|
|
27757
|
+
return b.phonePrefix.length - a.phonePrefix.length;
|
|
27758
|
+
});
|
|
27759
|
+
var hit = sorted.find(function (c) {
|
|
27760
|
+
return value.startsWith(c.phonePrefix);
|
|
27761
|
+
});
|
|
27762
|
+
if (hit) {
|
|
27763
|
+
var rest = value
|
|
27764
|
+
.slice(hit.phonePrefix.length)
|
|
27765
|
+
.trim()
|
|
27766
|
+
.replace(/^[-\s]+/, '');
|
|
27767
|
+
return { prefix: hit.phonePrefix, number: rest };
|
|
27768
|
+
}
|
|
27769
|
+
// Fallback: split on first space if it looks like a +prefix number
|
|
27770
|
+
var m = value.match(/^(\+\d{1,4})[\s-]*(.*)$/);
|
|
27771
|
+
if (m) return { prefix: m[1], number: m[2] };
|
|
27772
|
+
return { prefix: '', number: value };
|
|
27773
|
+
};
|
|
27774
|
+
var PhoneInput = function (_a) {
|
|
27775
|
+
var name = _a.name,
|
|
27776
|
+
required = _a.required,
|
|
27777
|
+
value = _a.value,
|
|
27778
|
+
label = _a.label,
|
|
27779
|
+
placeholder = _a.placeholder,
|
|
27780
|
+
extraClassName = _a.extraClassName,
|
|
27781
|
+
hasError = _a.hasError,
|
|
27782
|
+
countries = _a.countries,
|
|
27783
|
+
countryIso2 = _a.countryIso2,
|
|
27784
|
+
onChange = _a.onChange,
|
|
27785
|
+
onBlur = _a.onBlur;
|
|
27786
|
+
// Derive initial state from `value`
|
|
27787
|
+
var initialCountry = countries.find(function (c) {
|
|
27788
|
+
return c.iso2 === countryIso2;
|
|
27789
|
+
});
|
|
27790
|
+
var initial = React.useMemo(
|
|
27791
|
+
function () {
|
|
27792
|
+
return parseCombined(normalize(value), countries);
|
|
27793
|
+
},
|
|
27794
|
+
[value, countries]
|
|
27795
|
+
);
|
|
27796
|
+
var _b = React.useState(initial.prefix),
|
|
27797
|
+
prefix = _b[0],
|
|
27798
|
+
setPrefix = _b[1];
|
|
27799
|
+
var _c = React.useState(initial.number),
|
|
27800
|
+
number = _c[0],
|
|
27801
|
+
setNumber = _c[1];
|
|
27802
|
+
// Keep state in sync if the parent changes `value`
|
|
27803
|
+
React.useEffect(
|
|
27804
|
+
function () {
|
|
27805
|
+
var parsed = !prefix && !number && initialCountry ? { prefix: initialCountry.phonePrefix, number: '' } : parseCombined(normalize(value), countries);
|
|
27806
|
+
if (parsed.prefix) setPrefix(parsed.prefix);
|
|
27807
|
+
if (parsed.number) setNumber(parsed.number);
|
|
27808
|
+
},
|
|
27809
|
+
[value, countries, countryIso2]
|
|
27810
|
+
);
|
|
27811
|
+
var emitCombinedChange = function (e, nextPrefix, nextNumber) {
|
|
27812
|
+
// Combine with a space, unless the number already starts with a dash or space
|
|
27813
|
+
var combined = nextPrefix && nextNumber ? lodash.compact([nextPrefix, nextNumber]).join(' ') : null;
|
|
27814
|
+
onChange === null || onChange === void 0
|
|
27815
|
+
? void 0
|
|
27816
|
+
: onChange(__assign(__assign({}, e), { type: 'change', target: { name: name, value: combined }, currentTarget: { name: name, value: combined } }));
|
|
27817
|
+
};
|
|
27818
|
+
var handleCountryBlur = function (e) {
|
|
27819
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
|
|
27820
|
+
};
|
|
27821
|
+
var onCountryChange = function (e) {
|
|
27822
|
+
var next = e.target.value;
|
|
27823
|
+
setPrefix(next);
|
|
27824
|
+
emitCombinedChange(e, next, number);
|
|
27825
|
+
};
|
|
27826
|
+
var onPhoneChange = function (e) {
|
|
27827
|
+
var cleaned = e.target.value.replace(/[^\d\s-]/g, '');
|
|
27828
|
+
setNumber(cleaned);
|
|
27829
|
+
emitCombinedChange(e, prefix, cleaned);
|
|
27830
|
+
};
|
|
27831
|
+
var handleNumberBlur = function (e) {
|
|
27832
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
|
|
27833
|
+
};
|
|
27834
|
+
// Ensure the select shows a reasonable default when prefix is empty
|
|
27835
|
+
var selectValue = prefix || '';
|
|
27836
|
+
return React__default['default'].createElement(
|
|
27837
|
+
'label',
|
|
27838
|
+
{ className: buildClassName(['form__group', extraClassName, hasError && 'form__group--error']) },
|
|
27839
|
+
label && React__default['default'].createElement('span', { className: 'form__label' }, lodash.compact([label, required && '*']).join(' ')),
|
|
27840
|
+
React__default['default'].createElement(
|
|
27841
|
+
'div',
|
|
27842
|
+
{ className: 'phone-input' },
|
|
27843
|
+
React__default['default'].createElement(
|
|
27844
|
+
'div',
|
|
27845
|
+
{ className: 'dropdown' },
|
|
27846
|
+
React__default['default'].createElement(
|
|
27847
|
+
'select',
|
|
27848
|
+
{
|
|
27849
|
+
'aria-label': label ? ''.concat(label, ' \u2013 country code') : 'Country calling code',
|
|
27850
|
+
name: ''.concat(name, '__country'),
|
|
27851
|
+
value: selectValue,
|
|
27852
|
+
onBlur: handleCountryBlur,
|
|
27853
|
+
onChange: onCountryChange
|
|
27854
|
+
},
|
|
27855
|
+
React__default['default'].createElement('option', { value: '', disabled: true }),
|
|
27856
|
+
countries === null || countries === void 0
|
|
27857
|
+
? void 0
|
|
27858
|
+
: countries.map(function (option) {
|
|
27859
|
+
return React__default['default'].createElement(
|
|
27860
|
+
'option',
|
|
27861
|
+
{ key: option.iso2, value: option.phonePrefix },
|
|
27862
|
+
option.name,
|
|
27863
|
+
' (',
|
|
27864
|
+
option.phonePrefix,
|
|
27865
|
+
')'
|
|
27866
|
+
);
|
|
27867
|
+
})
|
|
27868
|
+
)
|
|
27869
|
+
),
|
|
27870
|
+
React__default['default'].createElement('input', {
|
|
27871
|
+
'aria-label': label ? ''.concat(label, ' \u2013 number') : 'Phone number',
|
|
27872
|
+
name: ''.concat(name, '__number'),
|
|
27873
|
+
type: 'tel',
|
|
27874
|
+
inputMode: 'tel',
|
|
27875
|
+
required: required,
|
|
27876
|
+
className: 'form__input',
|
|
27877
|
+
placeholder: placeholder,
|
|
27878
|
+
onChange: onPhoneChange,
|
|
27879
|
+
onBlur: handleNumberBlur,
|
|
27880
|
+
value: number
|
|
27881
|
+
}),
|
|
27882
|
+
React__default['default'].createElement('input', { type: 'hidden', name: name, value: lodash.compact([prefix, number]).join(' ') })
|
|
27883
|
+
)
|
|
27884
|
+
);
|
|
27885
|
+
};
|
|
27886
|
+
|
|
27525
27887
|
var hasVisibleError = function (formik, key) {
|
|
27526
27888
|
return lodash.get(formik.errors, key) && lodash.get(formik.touched, key);
|
|
27527
27889
|
};
|
|
@@ -27667,323 +28029,6 @@ var TypeAheadInput = function (_a) {
|
|
|
27667
28029
|
);
|
|
27668
28030
|
};
|
|
27669
28031
|
|
|
27670
|
-
function isValidEmail(email) {
|
|
27671
|
-
return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,24}$/i.test(email);
|
|
27672
|
-
}
|
|
27673
|
-
function getAge(birthDateText, startDateText) {
|
|
27674
|
-
var birthDate = new Date(birthDateText);
|
|
27675
|
-
var startDate = new Date(startDateText);
|
|
27676
|
-
var age = startDate.getFullYear() - birthDate.getFullYear();
|
|
27677
|
-
var m = startDate.getMonth() - birthDate.getMonth();
|
|
27678
|
-
if (m < 0 || (m === 0 && startDate.getDate() < birthDate.getDate())) {
|
|
27679
|
-
age--;
|
|
27680
|
-
}
|
|
27681
|
-
return age;
|
|
27682
|
-
}
|
|
27683
|
-
var validateForm = function (values, agentRequired, bookingType, translations, formFields, mainBookerFormFields) {
|
|
27684
|
-
var errors = {};
|
|
27685
|
-
var isFormFieldPresent = function (type) {
|
|
27686
|
-
var _a;
|
|
27687
|
-
return (_a =
|
|
27688
|
-
formFields === null || formFields === void 0
|
|
27689
|
-
? void 0
|
|
27690
|
-
: formFields.some(function (f) {
|
|
27691
|
-
return f.type === type;
|
|
27692
|
-
})) !== null && _a !== void 0
|
|
27693
|
-
? _a
|
|
27694
|
-
: true;
|
|
27695
|
-
};
|
|
27696
|
-
var isMainBookerFormFieldPresent = function (type) {
|
|
27697
|
-
var _a;
|
|
27698
|
-
return (_a =
|
|
27699
|
-
mainBookerFormFields === null || mainBookerFormFields === void 0
|
|
27700
|
-
? void 0
|
|
27701
|
-
: mainBookerFormFields.some(function (f) {
|
|
27702
|
-
return f.type === type;
|
|
27703
|
-
})) !== null && _a !== void 0
|
|
27704
|
-
? _a
|
|
27705
|
-
: true;
|
|
27706
|
-
};
|
|
27707
|
-
var formatTravelerField = function (room, pax, field) {
|
|
27708
|
-
return values.rooms.length > 1
|
|
27709
|
-
? format(translations.TRAVELERS_FORM.VALIDATION.TRAVELER_X_FIELD, [room, pax, field])
|
|
27710
|
-
: format(translations.TRAVELERS_FORM.VALIDATION.SINGLE_ROOM_TRAVELER_X_FIELD, [pax, field]);
|
|
27711
|
-
};
|
|
27712
|
-
var formatTravelerIsNoAdult = function (room, pax) {
|
|
27713
|
-
return values.rooms.length > 1
|
|
27714
|
-
? format(translations.TRAVELERS_FORM.VALIDATION.TRAVELER_X_IS_NO_ADULT, [room, pax])
|
|
27715
|
-
: format(translations.TRAVELERS_FORM.VALIDATION.SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT, [pax]);
|
|
27716
|
-
};
|
|
27717
|
-
var formatTravelerIsNoChild = function (room, pax) {
|
|
27718
|
-
return values.rooms.length > 1
|
|
27719
|
-
? format(translations.TRAVELERS_FORM.VALIDATION.TRAVELER_X_IS_NO_CHILD, [room, pax])
|
|
27720
|
-
: format(translations.TRAVELERS_FORM.VALIDATION.SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD, [pax]);
|
|
27721
|
-
};
|
|
27722
|
-
values.rooms.forEach(function (r, rIndex) {
|
|
27723
|
-
return r.adults.forEach(function (adult, index) {
|
|
27724
|
-
if (lodash.isEmpty(adult.gender) && isFormFieldPresent('gender')) {
|
|
27725
|
-
lodash.set(
|
|
27726
|
-
errors,
|
|
27727
|
-
'rooms['.concat(rIndex, '].adults[').concat(index, '].gender'),
|
|
27728
|
-
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.GENDER)
|
|
27729
|
-
);
|
|
27730
|
-
}
|
|
27731
|
-
if (lodash.isEmpty(adult.firstName) && isFormFieldPresent('firstName')) {
|
|
27732
|
-
lodash.set(
|
|
27733
|
-
errors,
|
|
27734
|
-
'rooms['.concat(rIndex, '].adults[').concat(index, '].firstName'),
|
|
27735
|
-
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.FIRST_NAME)
|
|
27736
|
-
);
|
|
27737
|
-
}
|
|
27738
|
-
if (lodash.isEmpty(adult.lastName) && isFormFieldPresent('lastName')) {
|
|
27739
|
-
lodash.set(
|
|
27740
|
-
errors,
|
|
27741
|
-
'rooms['.concat(rIndex, '].adults[').concat(index, '].lastName'),
|
|
27742
|
-
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.LAST_NAME)
|
|
27743
|
-
);
|
|
27744
|
-
}
|
|
27745
|
-
if (isFormFieldPresent('birthDate')) {
|
|
27746
|
-
if (lodash.isEmpty(adult.birthDate)) {
|
|
27747
|
-
lodash.set(
|
|
27748
|
-
errors,
|
|
27749
|
-
'rooms['.concat(rIndex, '].adults[').concat(index, '].birthDate'),
|
|
27750
|
-
formatTravelerField(rIndex + 1, index + 1, translations.TRAVELERS_FORM.BIRTHDATE)
|
|
27751
|
-
);
|
|
27752
|
-
} else if (values.startDate) {
|
|
27753
|
-
var age = getAge(adult.birthDate, values.startDate);
|
|
27754
|
-
if (age <= CHILD_MAX_AGE) {
|
|
27755
|
-
lodash.set(errors, 'rooms['.concat(rIndex, '].adults[').concat(index, '].birthDate'), formatTravelerIsNoAdult(rIndex + 1, index + 1));
|
|
27756
|
-
}
|
|
27757
|
-
}
|
|
27758
|
-
}
|
|
27759
|
-
});
|
|
27760
|
-
});
|
|
27761
|
-
values.rooms.forEach(function (r, rIndex) {
|
|
27762
|
-
return r.children.forEach(function (child, index) {
|
|
27763
|
-
if (lodash.isEmpty(child.gender) && isFormFieldPresent('gender')) {
|
|
27764
|
-
lodash.set(
|
|
27765
|
-
errors,
|
|
27766
|
-
'rooms['.concat(rIndex, '].children[').concat(index, '].gender'),
|
|
27767
|
-
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.GENDER)
|
|
27768
|
-
);
|
|
27769
|
-
}
|
|
27770
|
-
if (lodash.isEmpty(child.firstName) && isFormFieldPresent('firstName')) {
|
|
27771
|
-
lodash.set(
|
|
27772
|
-
errors,
|
|
27773
|
-
'children['.concat(index, '].firstName'),
|
|
27774
|
-
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.FIRST_NAME)
|
|
27775
|
-
);
|
|
27776
|
-
}
|
|
27777
|
-
if (lodash.isEmpty(child.lastName) && isFormFieldPresent('lastName')) {
|
|
27778
|
-
lodash.set(
|
|
27779
|
-
errors,
|
|
27780
|
-
'rooms['.concat(rIndex, '].children[').concat(index, '].lastName'),
|
|
27781
|
-
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.LAST_NAME)
|
|
27782
|
-
);
|
|
27783
|
-
}
|
|
27784
|
-
if (isFormFieldPresent('birthDate')) {
|
|
27785
|
-
if (lodash.isEmpty(child.birthDate)) {
|
|
27786
|
-
lodash.set(
|
|
27787
|
-
errors,
|
|
27788
|
-
'rooms['.concat(rIndex, '].children[').concat(index, '].birthDate'),
|
|
27789
|
-
formatTravelerField(rIndex + 1, r.adults.length + index + 1, translations.TRAVELERS_FORM.BIRTHDATE)
|
|
27790
|
-
);
|
|
27791
|
-
} else if (values.startDate) {
|
|
27792
|
-
var age = getAge(child.birthDate, values.startDate);
|
|
27793
|
-
if (age > CHILD_MAX_AGE) {
|
|
27794
|
-
lodash.set(
|
|
27795
|
-
errors,
|
|
27796
|
-
'rooms['.concat(rIndex, '].children[').concat(index, '].birthDate'),
|
|
27797
|
-
formatTravelerIsNoChild(rIndex + 1, r.adults.length + index + 1)
|
|
27798
|
-
);
|
|
27799
|
-
}
|
|
27800
|
-
}
|
|
27801
|
-
}
|
|
27802
|
-
});
|
|
27803
|
-
});
|
|
27804
|
-
if (values.mainBookerId < 0) {
|
|
27805
|
-
errors.mainBookerId = translations.TRAVELERS_FORM.VALIDATION.NO_MAIN_BOOKER_SELECTED;
|
|
27806
|
-
}
|
|
27807
|
-
if (bookingType != 'b2b' || (mainBookerFormFields === null || mainBookerFormFields === void 0 ? void 0 : mainBookerFormFields.length)) {
|
|
27808
|
-
if (lodash.isEmpty(values.street) && isMainBookerFormFieldPresent('street')) {
|
|
27809
|
-
errors.street = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.STREET]);
|
|
27810
|
-
}
|
|
27811
|
-
if (lodash.isEmpty(values.houseNumber) && isMainBookerFormFieldPresent('houseNumber')) {
|
|
27812
|
-
errors.houseNumber = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.HOUSE_NUMBER]);
|
|
27813
|
-
}
|
|
27814
|
-
if (lodash.isEmpty(values.zipCode) && isMainBookerFormFieldPresent('zipCode')) {
|
|
27815
|
-
errors.zipCode = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.ZIPCODE]);
|
|
27816
|
-
}
|
|
27817
|
-
if (lodash.isEmpty(values.place) && isMainBookerFormFieldPresent('place')) {
|
|
27818
|
-
errors.place = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.CITY]);
|
|
27819
|
-
}
|
|
27820
|
-
if (isMainBookerFormFieldPresent('email')) {
|
|
27821
|
-
if (lodash.isEmpty(values.email)) {
|
|
27822
|
-
errors.email = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.EMAIL]);
|
|
27823
|
-
} else if (isValidEmail(values.email)) {
|
|
27824
|
-
errors.email = translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_EMAIL_IS_INVALID;
|
|
27825
|
-
}
|
|
27826
|
-
if (lodash.isEmpty(values.emailConfirmation)) {
|
|
27827
|
-
errors.emailConfirmation = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.REPEAT_EMAIL]);
|
|
27828
|
-
} else if (values.emailConfirmation !== values.email) {
|
|
27829
|
-
errors.emailConfirmation = translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_EMAIL_DOES_NOT_MATCH;
|
|
27830
|
-
}
|
|
27831
|
-
}
|
|
27832
|
-
if (lodash.isEmpty(values.country) && isMainBookerFormFieldPresent('country')) {
|
|
27833
|
-
errors.country = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.COUNTRY]);
|
|
27834
|
-
}
|
|
27835
|
-
if (lodash.isEmpty(values.phone) && isMainBookerFormFieldPresent('phone')) {
|
|
27836
|
-
errors.phone = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.PHONE]);
|
|
27837
|
-
}
|
|
27838
|
-
} else {
|
|
27839
|
-
if (lodash.isEmpty(values.phone)) {
|
|
27840
|
-
errors.phone = format(translations.TRAVELERS_FORM.VALIDATION.MAIN_BOOKER_FIELD, [translations.TRAVELERS_FORM.PHONE]);
|
|
27841
|
-
}
|
|
27842
|
-
}
|
|
27843
|
-
if (agentRequired && !values.travelAgentId) {
|
|
27844
|
-
errors.travelAgentId = translations.TRAVELERS_FORM.VALIDATION.AGENT_IS_REQUIRED;
|
|
27845
|
-
}
|
|
27846
|
-
return errors;
|
|
27847
|
-
};
|
|
27848
|
-
|
|
27849
|
-
var normalize = function (v) {
|
|
27850
|
-
return v == null ? '' : String(v);
|
|
27851
|
-
};
|
|
27852
|
-
var parseCombined = function (raw, countries) {
|
|
27853
|
-
var value = normalize(raw).trim();
|
|
27854
|
-
if (!value) return { prefix: '', number: '' };
|
|
27855
|
-
// Try to match a known prefix at the start. Prefer longest match.
|
|
27856
|
-
var sorted = __spreadArray([], countries, true).sort(function (a, b) {
|
|
27857
|
-
return b.phonePrefix.length - a.phonePrefix.length;
|
|
27858
|
-
});
|
|
27859
|
-
var hit = sorted.find(function (c) {
|
|
27860
|
-
return value.startsWith(c.phonePrefix);
|
|
27861
|
-
});
|
|
27862
|
-
if (hit) {
|
|
27863
|
-
var rest = value
|
|
27864
|
-
.slice(hit.phonePrefix.length)
|
|
27865
|
-
.trim()
|
|
27866
|
-
.replace(/^[-\s]+/, '');
|
|
27867
|
-
return { prefix: hit.phonePrefix, number: rest };
|
|
27868
|
-
}
|
|
27869
|
-
// Fallback: split on first space if it looks like a +prefix number
|
|
27870
|
-
var m = value.match(/^(\+\d{1,4})[\s-]*(.*)$/);
|
|
27871
|
-
if (m) return { prefix: m[1], number: m[2] };
|
|
27872
|
-
return { prefix: '', number: value };
|
|
27873
|
-
};
|
|
27874
|
-
var PhoneInput = function (_a) {
|
|
27875
|
-
var name = _a.name,
|
|
27876
|
-
required = _a.required,
|
|
27877
|
-
value = _a.value,
|
|
27878
|
-
label = _a.label,
|
|
27879
|
-
placeholder = _a.placeholder,
|
|
27880
|
-
extraClassName = _a.extraClassName,
|
|
27881
|
-
hasError = _a.hasError,
|
|
27882
|
-
countries = _a.countries,
|
|
27883
|
-
countryIso2 = _a.countryIso2,
|
|
27884
|
-
onChange = _a.onChange,
|
|
27885
|
-
onBlur = _a.onBlur;
|
|
27886
|
-
// Derive initial state from `value`
|
|
27887
|
-
var initialCountry = countries.find(function (c) {
|
|
27888
|
-
return c.iso2 === countryIso2;
|
|
27889
|
-
});
|
|
27890
|
-
var initial = React.useMemo(
|
|
27891
|
-
function () {
|
|
27892
|
-
return parseCombined(normalize(value), countries);
|
|
27893
|
-
},
|
|
27894
|
-
[value, countries]
|
|
27895
|
-
);
|
|
27896
|
-
var _b = React.useState(initial.prefix),
|
|
27897
|
-
prefix = _b[0],
|
|
27898
|
-
setPrefix = _b[1];
|
|
27899
|
-
var _c = React.useState(initial.number),
|
|
27900
|
-
number = _c[0],
|
|
27901
|
-
setNumber = _c[1];
|
|
27902
|
-
// Keep state in sync if the parent changes `value`
|
|
27903
|
-
React.useEffect(
|
|
27904
|
-
function () {
|
|
27905
|
-
var parsed = !prefix && !number && initialCountry ? { prefix: initialCountry.phonePrefix, number: '' } : parseCombined(normalize(value), countries);
|
|
27906
|
-
if (parsed.prefix) setPrefix(parsed.prefix);
|
|
27907
|
-
if (parsed.number) setNumber(parsed.number);
|
|
27908
|
-
},
|
|
27909
|
-
[value, countries, countryIso2]
|
|
27910
|
-
);
|
|
27911
|
-
var emitCombinedChange = function (e, nextPrefix, nextNumber) {
|
|
27912
|
-
// Combine with a space, unless the number already starts with a dash or space
|
|
27913
|
-
var combined = nextPrefix && nextNumber ? lodash.compact([nextPrefix, nextNumber]).join(' ') : null;
|
|
27914
|
-
onChange === null || onChange === void 0
|
|
27915
|
-
? void 0
|
|
27916
|
-
: onChange(__assign(__assign({}, e), { type: 'change', target: { name: name, value: combined }, currentTarget: { name: name, value: combined } }));
|
|
27917
|
-
};
|
|
27918
|
-
var handleCountryBlur = function (e) {
|
|
27919
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
|
|
27920
|
-
};
|
|
27921
|
-
var onCountryChange = function (e) {
|
|
27922
|
-
var next = e.target.value;
|
|
27923
|
-
setPrefix(next);
|
|
27924
|
-
emitCombinedChange(e, next, number);
|
|
27925
|
-
};
|
|
27926
|
-
var onPhoneChange = function (e) {
|
|
27927
|
-
var cleaned = e.target.value.replace(/[^\d\s-]/g, '');
|
|
27928
|
-
setNumber(cleaned);
|
|
27929
|
-
emitCombinedChange(e, prefix, cleaned);
|
|
27930
|
-
};
|
|
27931
|
-
var handleNumberBlur = function (e) {
|
|
27932
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
|
|
27933
|
-
};
|
|
27934
|
-
// Ensure the select shows a reasonable default when prefix is empty
|
|
27935
|
-
var selectValue = prefix || '';
|
|
27936
|
-
return React__default['default'].createElement(
|
|
27937
|
-
'label',
|
|
27938
|
-
{ className: buildClassName(['form__group', extraClassName, hasError && 'form__group--error']) },
|
|
27939
|
-
label && React__default['default'].createElement('span', { className: 'form__label' }, lodash.compact([label, required && '*']).join(' ')),
|
|
27940
|
-
React__default['default'].createElement(
|
|
27941
|
-
'div',
|
|
27942
|
-
{ className: 'phone-input' },
|
|
27943
|
-
React__default['default'].createElement(
|
|
27944
|
-
'div',
|
|
27945
|
-
{ className: 'dropdown' },
|
|
27946
|
-
React__default['default'].createElement(
|
|
27947
|
-
'select',
|
|
27948
|
-
{
|
|
27949
|
-
'aria-label': label ? ''.concat(label, ' \u2013 country code') : 'Country calling code',
|
|
27950
|
-
name: ''.concat(name, '__country'),
|
|
27951
|
-
value: selectValue,
|
|
27952
|
-
onBlur: handleCountryBlur,
|
|
27953
|
-
onChange: onCountryChange
|
|
27954
|
-
},
|
|
27955
|
-
React__default['default'].createElement('option', { value: '', disabled: true }),
|
|
27956
|
-
countries === null || countries === void 0
|
|
27957
|
-
? void 0
|
|
27958
|
-
: countries.map(function (option) {
|
|
27959
|
-
return React__default['default'].createElement(
|
|
27960
|
-
'option',
|
|
27961
|
-
{ key: option.iso2, value: option.phonePrefix },
|
|
27962
|
-
option.name,
|
|
27963
|
-
' (',
|
|
27964
|
-
option.phonePrefix,
|
|
27965
|
-
')'
|
|
27966
|
-
);
|
|
27967
|
-
})
|
|
27968
|
-
)
|
|
27969
|
-
),
|
|
27970
|
-
React__default['default'].createElement('input', {
|
|
27971
|
-
'aria-label': label ? ''.concat(label, ' \u2013 number') : 'Phone number',
|
|
27972
|
-
name: ''.concat(name, '__number'),
|
|
27973
|
-
type: 'tel',
|
|
27974
|
-
inputMode: 'tel',
|
|
27975
|
-
required: required,
|
|
27976
|
-
className: 'form__input',
|
|
27977
|
-
placeholder: placeholder,
|
|
27978
|
-
onChange: onPhoneChange,
|
|
27979
|
-
onBlur: handleNumberBlur,
|
|
27980
|
-
value: number
|
|
27981
|
-
}),
|
|
27982
|
-
React__default['default'].createElement('input', { type: 'hidden', name: name, value: lodash.compact([prefix, number]).join(' ') })
|
|
27983
|
-
)
|
|
27984
|
-
);
|
|
27985
|
-
};
|
|
27986
|
-
|
|
27987
28032
|
function createTraveler(traveler, followNumber, personTranslation, isCompact) {
|
|
27988
28033
|
if (isCompact) {
|
|
27989
28034
|
return {
|
|
@@ -27994,27 +28039,27 @@ function createTraveler(traveler, followNumber, personTranslation, isCompact) {
|
|
|
27994
28039
|
gender: '',
|
|
27995
28040
|
age: traveler.age || 30
|
|
27996
28041
|
};
|
|
27997
|
-
} else {
|
|
27998
|
-
return {
|
|
27999
|
-
id: traveler.id,
|
|
28000
|
-
firstName: '',
|
|
28001
|
-
lastName: '',
|
|
28002
|
-
birthDate: '',
|
|
28003
|
-
gender: ''
|
|
28004
|
-
};
|
|
28005
28042
|
}
|
|
28043
|
+
return {
|
|
28044
|
+
id: traveler.id,
|
|
28045
|
+
firstName: '',
|
|
28046
|
+
lastName: '',
|
|
28047
|
+
birthDate: '',
|
|
28048
|
+
gender: ''
|
|
28049
|
+
};
|
|
28006
28050
|
}
|
|
28007
|
-
function
|
|
28051
|
+
function createInitialValuesFromRooms(formRooms, startDate, agentAdressId, personTranslation, isCompact) {
|
|
28052
|
+
var _a, _b, _c;
|
|
28008
28053
|
var followNumber = { number: 1 };
|
|
28009
28054
|
var initialValues = {
|
|
28010
28055
|
startDate: startDate,
|
|
28011
|
-
rooms: formRooms.map(function (
|
|
28056
|
+
rooms: formRooms.map(function (room) {
|
|
28012
28057
|
return {
|
|
28013
|
-
adults:
|
|
28014
|
-
return createTraveler(
|
|
28058
|
+
adults: room.adults.map(function (traveler) {
|
|
28059
|
+
return createTraveler(traveler, followNumber, personTranslation, isCompact);
|
|
28015
28060
|
}),
|
|
28016
|
-
children:
|
|
28017
|
-
return createTraveler(
|
|
28061
|
+
children: room.children.map(function (traveler) {
|
|
28062
|
+
return createTraveler(traveler, followNumber, personTranslation, isCompact);
|
|
28018
28063
|
})
|
|
28019
28064
|
};
|
|
28020
28065
|
}),
|
|
@@ -28031,344 +28076,334 @@ function createInitialValues(formRooms, startDate, agentAdressId, personTranslat
|
|
|
28031
28076
|
travelAgentId: agentAdressId !== null && agentAdressId !== void 0 ? agentAdressId : 0,
|
|
28032
28077
|
travelAgentName: ''
|
|
28033
28078
|
};
|
|
28034
|
-
if (
|
|
28079
|
+
if (
|
|
28080
|
+
(_c = (_b = (_a = initialValues.rooms) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.adults) === null || _c === void 0
|
|
28081
|
+
? void 0
|
|
28082
|
+
: _c[0]
|
|
28083
|
+
) {
|
|
28035
28084
|
initialValues.mainBookerId = initialValues.rooms[0].adults[0].id;
|
|
28036
28085
|
}
|
|
28037
28086
|
return initialValues;
|
|
28038
28087
|
}
|
|
28039
|
-
|
|
28040
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
28041
|
-
|
|
28042
|
-
var
|
|
28043
|
-
|
|
28044
|
-
var
|
|
28045
|
-
|
|
28046
|
-
|
|
28047
|
-
|
|
28048
|
-
|
|
28049
|
-
|
|
28050
|
-
|
|
28051
|
-
|
|
28052
|
-
|
|
28053
|
-
|
|
28054
|
-
|
|
28055
|
-
|
|
28056
|
-
|
|
28057
|
-
|
|
28058
|
-
|
|
28059
|
-
|
|
28060
|
-
|
|
28061
|
-
|
|
28062
|
-
|
|
28063
|
-
|
|
28064
|
-
|
|
28065
|
-
|
|
28066
|
-
|
|
28067
|
-
|
|
28068
|
-
setShowAgentSelection = _l[1];
|
|
28069
|
-
var typeaheadAgents =
|
|
28070
|
-
(_c = lodash.sortBy(
|
|
28071
|
-
agents === null || agents === void 0
|
|
28088
|
+
function createInitialValuesFromEditablePackagingEntry(editablePackagingEntry, agentAdressId) {
|
|
28089
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
28090
|
+
console.log('editablePackagingEntry?.pax:', editablePackagingEntry === null || editablePackagingEntry === void 0 ? void 0 : editablePackagingEntry.pax);
|
|
28091
|
+
var pax =
|
|
28092
|
+
(_a = editablePackagingEntry === null || editablePackagingEntry === void 0 ? void 0 : editablePackagingEntry.pax) !== null && _a !== void 0 ? _a : [];
|
|
28093
|
+
var rooms = editablePackagingEntry.rooms.map(function (room) {
|
|
28094
|
+
var roomPax = pax.filter(function (x) {
|
|
28095
|
+
return room.paxIds.includes(x.id);
|
|
28096
|
+
});
|
|
28097
|
+
return {
|
|
28098
|
+
adults: roomPax.map(function (roomTraveler) {
|
|
28099
|
+
var _a, _b;
|
|
28100
|
+
return {
|
|
28101
|
+
id: roomTraveler.id,
|
|
28102
|
+
firstName: (_a = roomTraveler.firstName) !== null && _a !== void 0 ? _a : '',
|
|
28103
|
+
lastName: (_b = roomTraveler.lastName) !== null && _b !== void 0 ? _b : '',
|
|
28104
|
+
birthDate: roomTraveler.dateOfBirth ? dateFns.format(new Date(roomTraveler.dateOfBirth), 'yyyy-MM-dd') : '',
|
|
28105
|
+
gender: ''
|
|
28106
|
+
};
|
|
28107
|
+
}),
|
|
28108
|
+
children: []
|
|
28109
|
+
};
|
|
28110
|
+
});
|
|
28111
|
+
var values = createInitialValuesFromRooms(
|
|
28112
|
+
rooms.map(function (room) {
|
|
28113
|
+
return { adults: room.adults, children: room.children };
|
|
28114
|
+
}),
|
|
28115
|
+
(_c =
|
|
28116
|
+
(_b = editablePackagingEntry === null || editablePackagingEntry === void 0 ? void 0 : editablePackagingEntry.lines) === null || _b === void 0
|
|
28072
28117
|
? void 0
|
|
28073
|
-
:
|
|
28074
|
-
|
|
28075
|
-
|
|
28076
|
-
|
|
28077
|
-
|
|
28078
|
-
|
|
28079
|
-
|
|
28080
|
-
|
|
28081
|
-
|
|
28082
|
-
|
|
28083
|
-
|
|
28084
|
-
|
|
28085
|
-
|
|
28086
|
-
|
|
28087
|
-
|
|
28088
|
-
|
|
28089
|
-
|
|
28090
|
-
|
|
28091
|
-
|
|
28092
|
-
|
|
28093
|
-
|
|
28094
|
-
|
|
28095
|
-
|
|
28096
|
-
|
|
28097
|
-
|
|
28098
|
-
|
|
28099
|
-
|
|
28100
|
-
|
|
28101
|
-
|
|
28102
|
-
|
|
28103
|
-
|
|
28104
|
-
|
|
28105
|
-
|
|
28106
|
-
|
|
28107
|
-
|
|
28108
|
-
|
|
28109
|
-
|
|
28110
|
-
|
|
28111
|
-
|
|
28112
|
-
|
|
28113
|
-
|
|
28114
|
-
|
|
28115
|
-
|
|
28116
|
-
|
|
28117
|
-
|
|
28118
|
-
|
|
28119
|
-
|
|
28120
|
-
|
|
28121
|
-
|
|
28122
|
-
if (travelersFirstStep) {
|
|
28123
|
-
dispatch(setCurrentStep(FLIGHT_OPTIONS_FORM_STEP));
|
|
28124
|
-
} else {
|
|
28125
|
-
dispatch(setCurrentStep(SUMMARY_STEP));
|
|
28126
|
-
}
|
|
28127
|
-
} else {
|
|
28128
|
-
if (travelersFirstStep) {
|
|
28129
|
-
navigate(
|
|
28130
|
-
''
|
|
28131
|
-
.concat(!settings.skipBasePathInRouting ? settings.basePath : '')
|
|
28132
|
-
.concat(settings.flightOptions.pathSuffix, '?')
|
|
28133
|
-
.concat(bookingQueryString)
|
|
28134
|
-
);
|
|
28135
|
-
} else {
|
|
28136
|
-
navigate(
|
|
28137
|
-
''
|
|
28138
|
-
.concat(!settings.skipBasePathInRouting ? settings.basePath : '')
|
|
28139
|
-
.concat(settings.summary.pathSuffix, '?')
|
|
28140
|
-
.concat(bookingQueryString)
|
|
28141
|
-
);
|
|
28142
|
-
}
|
|
28143
|
-
}
|
|
28144
|
-
}
|
|
28118
|
+
: _b[0]) === null || _c === void 0
|
|
28119
|
+
? void 0
|
|
28120
|
+
: _c.from,
|
|
28121
|
+
agentAdressId
|
|
28122
|
+
);
|
|
28123
|
+
values.rooms = rooms;
|
|
28124
|
+
values.mainBookerId =
|
|
28125
|
+
(_j =
|
|
28126
|
+
(_e =
|
|
28127
|
+
(_d = pax.find(function (x) {
|
|
28128
|
+
return x.isMainBooker;
|
|
28129
|
+
})) === null || _d === void 0
|
|
28130
|
+
? void 0
|
|
28131
|
+
: _d.id) !== null && _e !== void 0
|
|
28132
|
+
? _e
|
|
28133
|
+
: (_h = (_g = (_f = rooms[0]) === null || _f === void 0 ? void 0 : _f.adults) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0
|
|
28134
|
+
? void 0
|
|
28135
|
+
: _h.id) !== null && _j !== void 0
|
|
28136
|
+
? _j
|
|
28137
|
+
: -1;
|
|
28138
|
+
var address = editablePackagingEntry === null || editablePackagingEntry === void 0 ? void 0 : editablePackagingEntry.address;
|
|
28139
|
+
values.street = (_k = address === null || address === void 0 ? void 0 : address.street) !== null && _k !== void 0 ? _k : '';
|
|
28140
|
+
values.houseNumber = (_l = address === null || address === void 0 ? void 0 : address.houseNumber) !== null && _l !== void 0 ? _l : '';
|
|
28141
|
+
values.box = (_m = address === null || address === void 0 ? void 0 : address.box) !== null && _m !== void 0 ? _m : '';
|
|
28142
|
+
values.zipCode = (_o = address === null || address === void 0 ? void 0 : address.zipCode) !== null && _o !== void 0 ? _o : '';
|
|
28143
|
+
values.place = (_p = address === null || address === void 0 ? void 0 : address.place) !== null && _p !== void 0 ? _p : '';
|
|
28144
|
+
values.country = (_q = address === null || address === void 0 ? void 0 : address.country) !== null && _q !== void 0 ? _q : '';
|
|
28145
|
+
values.phone = (_r = address === null || address === void 0 ? void 0 : address.phone) !== null && _r !== void 0 ? _r : '';
|
|
28146
|
+
values.email = (_s = address === null || address === void 0 ? void 0 : address.email) !== null && _s !== void 0 ? _s : '';
|
|
28147
|
+
values.emailConfirmation = (_t = address === null || address === void 0 ? void 0 : address.email) !== null && _t !== void 0 ? _t : '';
|
|
28148
|
+
values.travelAgentId =
|
|
28149
|
+
(_v = (_u = address === null || address === void 0 ? void 0 : address.travelAgentId) !== null && _u !== void 0 ? _u : agentAdressId) !== null &&
|
|
28150
|
+
_v !== void 0
|
|
28151
|
+
? _v
|
|
28152
|
+
: 0;
|
|
28153
|
+
return values;
|
|
28154
|
+
}
|
|
28155
|
+
function applyTravelersFormValuesToEditablePackagingEntry(editablePackagingEntry, values) {
|
|
28156
|
+
var _a;
|
|
28157
|
+
var travelers = values.rooms.flatMap(function (room) {
|
|
28158
|
+
return __spreadArray(__spreadArray([], room.adults, true), room.children, true);
|
|
28159
|
+
});
|
|
28160
|
+
console.log('Applying form values:', values);
|
|
28161
|
+
console.log('editablePackagingEntry:', editablePackagingEntry);
|
|
28162
|
+
return __assign(__assign({}, editablePackagingEntry), {
|
|
28163
|
+
pax: ((_a = editablePackagingEntry.pax) !== null && _a !== void 0 ? _a : []).map(function (pax) {
|
|
28164
|
+
var _a, _b;
|
|
28165
|
+
var traveler = travelers.find(function (x) {
|
|
28166
|
+
return x.id === pax.id;
|
|
28145
28167
|
});
|
|
28146
|
-
|
|
28147
|
-
|
|
28148
|
-
|
|
28149
|
-
|
|
28168
|
+
if (!traveler) return pax;
|
|
28169
|
+
return __assign(__assign({}, pax), {
|
|
28170
|
+
firstName: (_a = traveler.firstName) !== null && _a !== void 0 ? _a : '',
|
|
28171
|
+
lastName: (_b = traveler.lastName) !== null && _b !== void 0 ? _b : '',
|
|
28172
|
+
dateOfBirth: traveler.birthDate || null,
|
|
28173
|
+
isMainBooker: traveler.id === values.mainBookerId
|
|
28174
|
+
});
|
|
28175
|
+
}),
|
|
28176
|
+
address: __assign(__assign({}, editablePackagingEntry.address), {
|
|
28177
|
+
street: values.street,
|
|
28178
|
+
houseNumber: values.houseNumber,
|
|
28179
|
+
box: values.box,
|
|
28180
|
+
zipCode: values.zipCode,
|
|
28181
|
+
place: values.place,
|
|
28182
|
+
country: values.country,
|
|
28183
|
+
travelAgentId: values.travelAgentId,
|
|
28184
|
+
phone: values.phone,
|
|
28185
|
+
email: values.email
|
|
28186
|
+
})
|
|
28187
|
+
});
|
|
28188
|
+
}
|
|
28189
|
+
var SharedTravelersForm = function (_a) {
|
|
28190
|
+
var _b, _c, _d, _e, _f, _g;
|
|
28191
|
+
var formik = _a.formik,
|
|
28192
|
+
translations = _a.translations,
|
|
28193
|
+
travellersSettings = _a.travellersSettings,
|
|
28194
|
+
countries = _a.countries,
|
|
28195
|
+
agents = _a.agents,
|
|
28196
|
+
bookingType = _a.bookingType,
|
|
28197
|
+
agentAdressId = _a.agentAdressId,
|
|
28198
|
+
_h = _a.travelersFirstStep,
|
|
28199
|
+
travelersFirstStep = _h === void 0 ? false : _h,
|
|
28200
|
+
_j = _a.isUnavailable,
|
|
28201
|
+
isUnavailable = _j === void 0 ? false : _j,
|
|
28202
|
+
_k = _a.useCompactForm,
|
|
28203
|
+
useCompactForm = _k === void 0 ? false : _k,
|
|
28204
|
+
_l = _a.showAllCountries,
|
|
28205
|
+
showAllCountries = _l === void 0 ? false : _l,
|
|
28206
|
+
_m = _a.showAgentSelection,
|
|
28207
|
+
showAgentSelection = _m === void 0 ? false : _m,
|
|
28208
|
+
_o = _a.initialShowAgents,
|
|
28209
|
+
initialShowAgents = _o === void 0 ? false : _o,
|
|
28210
|
+
renderPreviousButton = _a.renderPreviousButton,
|
|
28211
|
+
onBookingTypeChange = _a.onBookingTypeChange;
|
|
28212
|
+
var _p = React.useState(initialShowAgents),
|
|
28213
|
+
showAgents = _p[0],
|
|
28214
|
+
setShowAgents = _p[1];
|
|
28215
|
+
var typeaheadAgents = React.useMemo(
|
|
28150
28216
|
function () {
|
|
28151
28217
|
var _a;
|
|
28152
|
-
|
|
28153
|
-
|
|
28218
|
+
return (_a = lodash.sortBy(
|
|
28219
|
+
agents === null || agents === void 0
|
|
28154
28220
|
? void 0
|
|
28155
|
-
:
|
|
28156
|
-
|
|
28157
|
-
|
|
28158
|
-
|
|
28159
|
-
|
|
28160
|
-
|
|
28161
|
-
|
|
28162
|
-
|
|
28163
|
-
|
|
28164
|
-
|
|
28165
|
-
|
|
28166
|
-
|
|
28167
|
-
|
|
28168
|
-
|
|
28169
|
-
|
|
28170
|
-
case 1:
|
|
28171
|
-
_a.trys.push([1, , 4, 5]);
|
|
28172
|
-
return [4 /*yield*/, dispatch(fetchPackage())];
|
|
28173
|
-
case 2:
|
|
28174
|
-
_a.sent();
|
|
28175
|
-
return [4 /*yield*/, dispatch(fetchPriceDetails())];
|
|
28176
|
-
case 3:
|
|
28177
|
-
_a.sent();
|
|
28178
|
-
return [3 /*break*/, 5];
|
|
28179
|
-
case 4:
|
|
28180
|
-
dispatch(setIsFetching(false));
|
|
28181
|
-
return [7 /*endfinally*/];
|
|
28182
|
-
case 5:
|
|
28183
|
-
return [2 /*return*/];
|
|
28184
|
-
}
|
|
28185
|
-
});
|
|
28186
|
-
});
|
|
28187
|
-
};
|
|
28188
|
-
fetchAll();
|
|
28189
|
-
},
|
|
28190
|
-
[bookingAttributes === null || bookingAttributes === void 0 ? void 0 : bookingAttributes.rooms]
|
|
28191
|
-
);
|
|
28192
|
-
// Update URL querystring when form data changes
|
|
28193
|
-
React.useEffect(
|
|
28194
|
-
function () {
|
|
28195
|
-
if (settings.skipRouter || !travelersFirstStep) return;
|
|
28196
|
-
var params = new URLSearchParams(bookingQueryString);
|
|
28197
|
-
params.delete('rooms');
|
|
28198
|
-
var roomsString = formik$1.values.rooms
|
|
28199
|
-
.map(function (room) {
|
|
28200
|
-
var adults = room.adults ? room.adults.length : 0;
|
|
28201
|
-
var childAges =
|
|
28202
|
-
room.children && room.children.length
|
|
28203
|
-
? room.children
|
|
28204
|
-
.map(function (c) {
|
|
28205
|
-
return c.age;
|
|
28206
|
-
})
|
|
28207
|
-
.join(',')
|
|
28208
|
-
: '';
|
|
28209
|
-
return 'adults:'.concat(adults, ',childAges:(').concat(childAges, ')');
|
|
28210
|
-
})
|
|
28211
|
-
.map(function (s) {
|
|
28212
|
-
return '('.concat(s, ')');
|
|
28213
|
-
})
|
|
28214
|
-
.join(',');
|
|
28215
|
-
var query = params.toString();
|
|
28216
|
-
if (query) {
|
|
28217
|
-
query += '&rooms=('.concat(roomsString, ')');
|
|
28218
|
-
} else {
|
|
28219
|
-
query = 'rooms=('.concat(roomsString, ')');
|
|
28220
|
-
}
|
|
28221
|
-
var newUrl = ''.concat(window.location.pathname, '?').concat(query);
|
|
28222
|
-
navigate(newUrl, { replace: true });
|
|
28223
|
-
},
|
|
28224
|
-
[formik$1.values]
|
|
28225
|
-
);
|
|
28226
|
-
React.useEffect(
|
|
28227
|
-
function () {
|
|
28228
|
-
if (agents && settings.affiliateSlug) {
|
|
28229
|
-
var agent_1 = agents.find(function (x) {
|
|
28230
|
-
return x.affiliateSlug && x.affiliateSlug === settings.affiliateSlug;
|
|
28231
|
-
});
|
|
28232
|
-
if (!agent_1) return;
|
|
28233
|
-
var formValues = produce__default['default'](formik$1.values, function (values) {
|
|
28234
|
-
(values.travelAgentId = Number(agent_1.id)), (values.travelAgentName = agent_1.name);
|
|
28235
|
-
});
|
|
28236
|
-
formik$1.setValues(formValues, false);
|
|
28237
|
-
dispatch(setFormValues(formValues));
|
|
28238
|
-
setShowAgentSelection(false);
|
|
28239
|
-
}
|
|
28221
|
+
: agents.map(function (agent) {
|
|
28222
|
+
return {
|
|
28223
|
+
key: ''.concat(agent.id),
|
|
28224
|
+
value: ''
|
|
28225
|
+
.concat(agent.name)
|
|
28226
|
+
.concat(agent.postalCode || agent.location ? ' ('.concat(lodash.compact([agent.postalCode, agent.location]).join(' '), ')') : ''),
|
|
28227
|
+
text: ''
|
|
28228
|
+
.concat(agent.name)
|
|
28229
|
+
.concat(agent.postalCode || agent.location ? ' ('.concat(lodash.compact([agent.postalCode, agent.location]).join(' '), ')') : '')
|
|
28230
|
+
};
|
|
28231
|
+
}),
|
|
28232
|
+
'value'
|
|
28233
|
+
)) !== null && _a !== void 0
|
|
28234
|
+
? _a
|
|
28235
|
+
: [];
|
|
28240
28236
|
},
|
|
28241
|
-
[agents
|
|
28237
|
+
[agents]
|
|
28242
28238
|
);
|
|
28243
|
-
var
|
|
28244
|
-
|
|
28245
|
-
|
|
28239
|
+
var _q = React.useState(typeaheadAgents),
|
|
28240
|
+
filteredAgents = _q[0],
|
|
28241
|
+
setFilteredAgents = _q[1];
|
|
28242
|
+
var flatErrors = flat__default['default'](formik.errors);
|
|
28243
|
+
var errorKeys = Object.keys(flatErrors).filter(function (key) {
|
|
28244
|
+
return lodash.get(formik.touched, key);
|
|
28245
|
+
});
|
|
28246
|
+
var hasVisibleError = function (key) {
|
|
28247
|
+
return lodash.get(formik.errors, key) && lodash.get(formik.touched, key);
|
|
28246
28248
|
};
|
|
28247
28249
|
var mainBooker =
|
|
28248
|
-
(
|
|
28249
|
-
return
|
|
28250
|
-
return traveler.id === formik
|
|
28250
|
+
(_b = formik.values.rooms.find(function (room) {
|
|
28251
|
+
return room.adults.find(function (traveler) {
|
|
28252
|
+
return traveler.id === formik.values.mainBookerId;
|
|
28251
28253
|
});
|
|
28252
|
-
})) === null ||
|
|
28254
|
+
})) === null || _b === void 0
|
|
28253
28255
|
? void 0
|
|
28254
|
-
:
|
|
28255
|
-
return traveler.id === formik
|
|
28256
|
+
: _b.adults.find(function (traveler) {
|
|
28257
|
+
return traveler.id === formik.values.mainBookerId;
|
|
28256
28258
|
});
|
|
28259
|
+
var countryOptions = __spreadArray(
|
|
28260
|
+
[{ key: 'empty', value: undefined, label: translations.TRAVELERS_FORM.SELECT_COUNTRY }],
|
|
28261
|
+
showAllCountries
|
|
28262
|
+
? (_c =
|
|
28263
|
+
countries === null || countries === void 0
|
|
28264
|
+
? void 0
|
|
28265
|
+
: countries.map(function (country) {
|
|
28266
|
+
return { key: country.iso2, value: country.iso2, label: country.name };
|
|
28267
|
+
})) !== null && _c !== void 0
|
|
28268
|
+
? _c
|
|
28269
|
+
: []
|
|
28270
|
+
: (_e =
|
|
28271
|
+
(_d = travellersSettings === null || travellersSettings === void 0 ? void 0 : travellersSettings.countries) === null || _d === void 0
|
|
28272
|
+
? void 0
|
|
28273
|
+
: _d.map(function (country) {
|
|
28274
|
+
return { key: country.iso2, value: country.iso2, label: country.name };
|
|
28275
|
+
})) !== null && _e !== void 0
|
|
28276
|
+
? _e
|
|
28277
|
+
: [
|
|
28278
|
+
{ key: 'be', value: 'be', label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM },
|
|
28279
|
+
{ key: 'nl', value: 'nl', label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS },
|
|
28280
|
+
{ key: 'fr', value: 'fr', label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE }
|
|
28281
|
+
],
|
|
28282
|
+
true
|
|
28283
|
+
);
|
|
28284
|
+
var handleMainBookerChange = function (event) {
|
|
28285
|
+
formik.setFieldValue('mainBookerId', parseInt(event.currentTarget.value, 10));
|
|
28286
|
+
};
|
|
28257
28287
|
var handleAgentChange = function (value) {
|
|
28258
|
-
|
|
28259
|
-
|
|
28260
|
-
|
|
28261
|
-
|
|
28262
|
-
|
|
28288
|
+
setFilteredAgents(
|
|
28289
|
+
typeaheadAgents.filter(function (x) {
|
|
28290
|
+
return x.value.toLocaleLowerCase().indexOf(value.toLocaleLowerCase()) > -1;
|
|
28291
|
+
})
|
|
28292
|
+
);
|
|
28293
|
+
formik.setFieldValue('travelAgentName', value);
|
|
28263
28294
|
};
|
|
28264
28295
|
var handleAgentSelect = function (key) {
|
|
28265
28296
|
var _a;
|
|
28266
28297
|
var agent = typeaheadAgents.find(function (x) {
|
|
28267
28298
|
return x.key === key;
|
|
28268
28299
|
});
|
|
28269
|
-
formik
|
|
28270
|
-
__assign(__assign({}, formik
|
|
28300
|
+
formik.setValues(
|
|
28301
|
+
__assign(__assign({}, formik.values), {
|
|
28271
28302
|
travelAgentId: Number(agent === null || agent === void 0 ? void 0 : agent.key),
|
|
28272
28303
|
travelAgentName: (_a = agent === null || agent === void 0 ? void 0 : agent.value) !== null && _a !== void 0 ? _a : ''
|
|
28273
28304
|
})
|
|
28274
28305
|
);
|
|
28275
|
-
|
|
28276
|
-
if (agentAdressId && agentAdressId != 0) {
|
|
28277
|
-
bookingType = 'b2b';
|
|
28278
|
-
}
|
|
28279
|
-
dispatch(setBookingType(bookingType));
|
|
28306
|
+
onBookingTypeChange === null || onBookingTypeChange === void 0 ? void 0 : onBookingTypeChange(agentAdressId && agentAdressId !== 0 ? 'b2b' : 'b2b2c');
|
|
28280
28307
|
};
|
|
28281
28308
|
var handleAgentClear = function () {
|
|
28282
|
-
formik
|
|
28283
|
-
|
|
28309
|
+
formik.setValues(__assign(__assign({}, formik.values), { travelAgentId: 0, travelAgentName: '' }));
|
|
28310
|
+
onBookingTypeChange === null || onBookingTypeChange === void 0 ? void 0 : onBookingTypeChange('b2c');
|
|
28311
|
+
};
|
|
28312
|
+
var toggleAgent = function (value) {
|
|
28313
|
+
setShowAgents(value);
|
|
28314
|
+
if (!value) {
|
|
28315
|
+
handleAgentClear();
|
|
28316
|
+
setFilteredAgents([]);
|
|
28317
|
+
}
|
|
28284
28318
|
};
|
|
28285
28319
|
var handleAddTraveler = function (roomIndex) {
|
|
28286
|
-
var rooms = __spreadArray([], formik
|
|
28287
|
-
var newAdult = {
|
|
28288
|
-
id: Date.now(),
|
|
28289
|
-
firstName: '',
|
|
28290
|
-
lastName: '',
|
|
28291
|
-
birthDate: '',
|
|
28292
|
-
gender: ''
|
|
28293
|
-
};
|
|
28320
|
+
var rooms = __spreadArray([], formik.values.rooms, true);
|
|
28321
|
+
var newAdult = { id: Date.now(), firstName: '', lastName: '', birthDate: '', gender: '' };
|
|
28294
28322
|
rooms[roomIndex] = __assign(__assign({}, rooms[roomIndex]), { adults: __spreadArray(__spreadArray([], rooms[roomIndex].adults, true), [newAdult], false) });
|
|
28295
|
-
formik
|
|
28323
|
+
formik.setFieldValue('rooms', rooms);
|
|
28296
28324
|
};
|
|
28297
28325
|
var handleRemoveTraveler = function (roomIndex, travelerIndex) {
|
|
28298
|
-
var rooms = __spreadArray([], formik
|
|
28326
|
+
var rooms = __spreadArray([], formik.values.rooms, true);
|
|
28299
28327
|
var adults = __spreadArray([], rooms[roomIndex].adults, true);
|
|
28300
|
-
if (adults.length <= 1)
|
|
28301
|
-
return;
|
|
28302
|
-
}
|
|
28328
|
+
if (adults.length <= 1) return;
|
|
28303
28329
|
adults.splice(travelerIndex, 1);
|
|
28304
28330
|
rooms[roomIndex] = __assign(__assign({}, rooms[roomIndex]), { adults: adults });
|
|
28305
|
-
formik
|
|
28331
|
+
formik.setFieldValue('rooms', rooms);
|
|
28306
28332
|
};
|
|
28307
28333
|
var handleAddRoom = function () {
|
|
28308
|
-
var rooms = __spreadArray([], formik
|
|
28309
|
-
|
|
28310
|
-
|
|
28311
|
-
firstName: '',
|
|
28312
|
-
lastName: '',
|
|
28313
|
-
birthDate: '',
|
|
28314
|
-
gender: ''
|
|
28315
|
-
};
|
|
28316
|
-
rooms.push({ adults: [newAdult], children: [] });
|
|
28317
|
-
formik$1.setFieldValue('rooms', rooms);
|
|
28334
|
+
var rooms = __spreadArray([], formik.values.rooms, true);
|
|
28335
|
+
rooms.push({ adults: [{ id: Date.now(), firstName: '', lastName: '', birthDate: '', gender: '' }], children: [] });
|
|
28336
|
+
formik.setFieldValue('rooms', rooms);
|
|
28318
28337
|
};
|
|
28319
28338
|
var handleRemoveRoom = function (roomIndex) {
|
|
28320
|
-
var rooms = __spreadArray([], formik
|
|
28339
|
+
var rooms = __spreadArray([], formik.values.rooms, true);
|
|
28321
28340
|
rooms.splice(roomIndex, 1);
|
|
28322
|
-
formik
|
|
28341
|
+
formik.setFieldValue('rooms', rooms);
|
|
28323
28342
|
};
|
|
28324
|
-
var
|
|
28325
|
-
|
|
28326
|
-
|
|
28327
|
-
|
|
28328
|
-
|
|
28329
|
-
|
|
28330
|
-
|
|
28331
|
-
|
|
28332
|
-
|
|
28333
|
-
|
|
28334
|
-
|
|
28335
|
-
|
|
28336
|
-
|
|
28337
|
-
|
|
28338
|
-
|
|
28339
|
-
|
|
28343
|
+
var renderGenderControl = function (name, value) {
|
|
28344
|
+
return React__default['default'].createElement(
|
|
28345
|
+
'div',
|
|
28346
|
+
{ className: buildClassName(['form__group', hasVisibleError(name) && 'form__group--error']) },
|
|
28347
|
+
React__default['default'].createElement('label', { className: 'form__label' }, translations.TRAVELERS_FORM.GENDER_ID, ' *'),
|
|
28348
|
+
React__default['default'].createElement(
|
|
28349
|
+
'div',
|
|
28350
|
+
{ className: 'radiobutton-group' },
|
|
28351
|
+
[
|
|
28352
|
+
['m', translations.TRAVELERS_FORM.MALE_GENDER],
|
|
28353
|
+
['f', translations.TRAVELERS_FORM.FEMALE_GENDER]
|
|
28354
|
+
].map(function (_a) {
|
|
28355
|
+
var gender = _a[0],
|
|
28356
|
+
label = _a[1];
|
|
28357
|
+
return React__default['default'].createElement(
|
|
28358
|
+
'div',
|
|
28359
|
+
{ className: 'radiobutton', key: gender },
|
|
28360
|
+
React__default['default'].createElement(
|
|
28361
|
+
'label',
|
|
28362
|
+
{ className: 'radiobutton__label' },
|
|
28363
|
+
React__default['default'].createElement('input', {
|
|
28364
|
+
type: 'radio',
|
|
28365
|
+
className: 'radiobutton__input',
|
|
28366
|
+
name: name,
|
|
28367
|
+
onChange: formik.handleChange,
|
|
28368
|
+
onBlur: formik.handleBlur,
|
|
28369
|
+
value: gender,
|
|
28370
|
+
checked: value.gender === gender
|
|
28371
|
+
}),
|
|
28372
|
+
label
|
|
28373
|
+
)
|
|
28374
|
+
);
|
|
28375
|
+
})
|
|
28376
|
+
)
|
|
28377
|
+
);
|
|
28340
28378
|
};
|
|
28341
28379
|
var getControl = function (type, value, name) {
|
|
28342
|
-
var _a
|
|
28380
|
+
var _a;
|
|
28343
28381
|
switch (type) {
|
|
28344
|
-
case 'gender':
|
|
28345
|
-
return React__default['default'].createElement(GenderControl, { translations: translations, value: value, formik: formik
|
|
28346
|
-
|
|
28347
|
-
case 'firstName': {
|
|
28382
|
+
case 'gender':
|
|
28383
|
+
return React__default['default'].createElement(GenderControl, { translations: translations, value: value, formik: formik, name: name });
|
|
28384
|
+
case 'firstName':
|
|
28348
28385
|
return React__default['default'].createElement(LabeledInput, {
|
|
28349
28386
|
hasError: hasVisibleError(name),
|
|
28350
28387
|
extraClassName: 'form__group--md-33',
|
|
28351
28388
|
label: translations.TRAVELERS_FORM.FIRST_NAME,
|
|
28352
28389
|
required: true,
|
|
28353
28390
|
name: name,
|
|
28354
|
-
onChange: formik
|
|
28355
|
-
onBlur: formik
|
|
28391
|
+
onChange: formik.handleChange,
|
|
28392
|
+
onBlur: formik.handleBlur,
|
|
28356
28393
|
value: value.firstName
|
|
28357
28394
|
});
|
|
28358
|
-
|
|
28359
|
-
case 'lastName': {
|
|
28395
|
+
case 'lastName':
|
|
28360
28396
|
return React__default['default'].createElement(LabeledInput, {
|
|
28361
28397
|
hasError: hasVisibleError(name),
|
|
28362
28398
|
extraClassName: 'form__group--md-33',
|
|
28363
28399
|
label: translations.TRAVELERS_FORM.LAST_NAME,
|
|
28364
28400
|
required: true,
|
|
28365
28401
|
name: name,
|
|
28366
|
-
onChange: formik
|
|
28367
|
-
onBlur: formik
|
|
28402
|
+
onChange: formik.handleChange,
|
|
28403
|
+
onBlur: formik.handleBlur,
|
|
28368
28404
|
value: value.lastName
|
|
28369
28405
|
});
|
|
28370
|
-
|
|
28371
|
-
case 'birthDate': {
|
|
28406
|
+
case 'birthDate':
|
|
28372
28407
|
return React__default['default'].createElement(LabeledInput, {
|
|
28373
28408
|
type: 'date',
|
|
28374
28409
|
hasError: hasVisibleError(name),
|
|
@@ -28376,71 +28411,35 @@ var TravelersForm = function () {
|
|
|
28376
28411
|
label: translations.TRAVELERS_FORM.BIRTHDATE,
|
|
28377
28412
|
required: true,
|
|
28378
28413
|
name: name,
|
|
28379
|
-
onChange: formik
|
|
28380
|
-
onBlur: formik
|
|
28414
|
+
onChange: formik.handleChange,
|
|
28415
|
+
onBlur: formik.handleBlur,
|
|
28381
28416
|
value: value.birthDate
|
|
28382
28417
|
});
|
|
28383
|
-
|
|
28384
|
-
case 'country': {
|
|
28418
|
+
case 'country':
|
|
28385
28419
|
return React__default['default'].createElement(LabeledSelect, {
|
|
28386
28420
|
hasError: hasVisibleError('country'),
|
|
28387
28421
|
label: translations.TRAVELERS_FORM.COUNTRY,
|
|
28388
28422
|
required: true,
|
|
28389
28423
|
name: 'country',
|
|
28390
|
-
onChange: formik
|
|
28391
|
-
onBlur: formik
|
|
28392
|
-
value: formik
|
|
28393
|
-
options:
|
|
28394
|
-
[
|
|
28395
|
-
{
|
|
28396
|
-
key: 'empty',
|
|
28397
|
-
value: undefined,
|
|
28398
|
-
label: translations.TRAVELERS_FORM.SELECT_COUNTRY
|
|
28399
|
-
}
|
|
28400
|
-
],
|
|
28401
|
-
showAllCountries
|
|
28402
|
-
? (_a =
|
|
28403
|
-
countries === null || countries === void 0
|
|
28404
|
-
? void 0
|
|
28405
|
-
: countries.map(function (country) {
|
|
28406
|
-
return {
|
|
28407
|
-
key: country.iso2,
|
|
28408
|
-
value: country.iso2,
|
|
28409
|
-
label: country.name
|
|
28410
|
-
};
|
|
28411
|
-
})) !== null && _a !== void 0
|
|
28412
|
-
? _a
|
|
28413
|
-
: []
|
|
28414
|
-
: (_d =
|
|
28415
|
-
(_c = (_b = settings.travellers) === null || _b === void 0 ? void 0 : _b.countries) === null || _c === void 0
|
|
28416
|
-
? void 0
|
|
28417
|
-
: _c.map(function (country) {
|
|
28418
|
-
return {
|
|
28419
|
-
key: country.iso2,
|
|
28420
|
-
value: country.iso2,
|
|
28421
|
-
label: country.name
|
|
28422
|
-
};
|
|
28423
|
-
})) !== null && _d !== void 0
|
|
28424
|
-
? _d
|
|
28425
|
-
: [],
|
|
28426
|
-
true
|
|
28427
|
-
)
|
|
28424
|
+
onChange: formik.handleChange,
|
|
28425
|
+
onBlur: formik.handleBlur,
|
|
28426
|
+
value: formik.values.country,
|
|
28427
|
+
options: countryOptions
|
|
28428
28428
|
});
|
|
28429
|
-
|
|
28430
|
-
case 'phone': {
|
|
28429
|
+
case 'phone':
|
|
28431
28430
|
return React__default['default'].createElement(PhoneInput, {
|
|
28432
|
-
countries:
|
|
28433
|
-
|
|
28431
|
+
countries:
|
|
28432
|
+
(_a = travellersSettings === null || travellersSettings === void 0 ? void 0 : travellersSettings.countries) !== null && _a !== void 0 ? _a : [],
|
|
28433
|
+
countryIso2: formik.values.country,
|
|
28434
28434
|
hasError: hasVisibleError('phone'),
|
|
28435
28435
|
label: translations.TRAVELERS_FORM.PHONE,
|
|
28436
28436
|
required: true,
|
|
28437
28437
|
name: 'phone',
|
|
28438
|
-
onChange: formik
|
|
28439
|
-
onBlur: formik
|
|
28440
|
-
value: formik
|
|
28438
|
+
onChange: formik.handleChange,
|
|
28439
|
+
onBlur: formik.handleBlur,
|
|
28440
|
+
value: formik.values.phone
|
|
28441
28441
|
});
|
|
28442
|
-
|
|
28443
|
-
case 'email': {
|
|
28442
|
+
case 'email':
|
|
28444
28443
|
return React__default['default'].createElement(
|
|
28445
28444
|
React__default['default'].Fragment,
|
|
28446
28445
|
null,
|
|
@@ -28451,9 +28450,9 @@ var TravelersForm = function () {
|
|
|
28451
28450
|
label: translations.TRAVELERS_FORM.EMAIL,
|
|
28452
28451
|
required: true,
|
|
28453
28452
|
name: 'email',
|
|
28454
|
-
onChange: formik
|
|
28455
|
-
onBlur: formik
|
|
28456
|
-
value: formik
|
|
28453
|
+
onChange: formik.handleChange,
|
|
28454
|
+
onBlur: formik.handleBlur,
|
|
28455
|
+
value: formik.values.email
|
|
28457
28456
|
}),
|
|
28458
28457
|
React__default['default'].createElement(LabeledInput, {
|
|
28459
28458
|
type: 'email',
|
|
@@ -28462,14 +28461,173 @@ var TravelersForm = function () {
|
|
|
28462
28461
|
label: translations.TRAVELERS_FORM.REPEAT_EMAIL,
|
|
28463
28462
|
required: true,
|
|
28464
28463
|
name: 'emailConfirmation',
|
|
28465
|
-
onChange: formik
|
|
28466
|
-
onBlur: formik
|
|
28467
|
-
value: formik
|
|
28464
|
+
onChange: formik.handleChange,
|
|
28465
|
+
onBlur: formik.handleBlur,
|
|
28466
|
+
value: formik.values.emailConfirmation
|
|
28468
28467
|
})
|
|
28469
28468
|
);
|
|
28470
|
-
|
|
28469
|
+
case 'street':
|
|
28470
|
+
return React__default['default'].createElement(LabeledInput, {
|
|
28471
|
+
hasError: hasVisibleError('street'),
|
|
28472
|
+
extraClassName: 'form__group--50 form__group--sm-60',
|
|
28473
|
+
label: translations.TRAVELERS_FORM.STREET,
|
|
28474
|
+
required: true,
|
|
28475
|
+
name: 'street',
|
|
28476
|
+
onChange: formik.handleChange,
|
|
28477
|
+
onBlur: formik.handleBlur,
|
|
28478
|
+
value: formik.values.street
|
|
28479
|
+
});
|
|
28480
|
+
case 'houseNumber':
|
|
28481
|
+
return React__default['default'].createElement(LabeledInput, {
|
|
28482
|
+
hasError: hasVisibleError('houseNumber'),
|
|
28483
|
+
extraClassName: 'form__group--30 form__group--sm-20',
|
|
28484
|
+
label: translations.TRAVELERS_FORM.HOUSE_NUMBER,
|
|
28485
|
+
required: true,
|
|
28486
|
+
name: 'houseNumber',
|
|
28487
|
+
onChange: formik.handleChange,
|
|
28488
|
+
onBlur: formik.handleBlur,
|
|
28489
|
+
value: formik.values.houseNumber
|
|
28490
|
+
});
|
|
28491
|
+
case 'box':
|
|
28492
|
+
return React__default['default'].createElement(LabeledInput, {
|
|
28493
|
+
hasError: hasVisibleError('box'),
|
|
28494
|
+
extraClassName: 'form__group--20',
|
|
28495
|
+
label: translations.TRAVELERS_FORM.POST_BOX,
|
|
28496
|
+
name: 'box',
|
|
28497
|
+
onChange: formik.handleChange,
|
|
28498
|
+
onBlur: formik.handleBlur,
|
|
28499
|
+
value: formik.values.box
|
|
28500
|
+
});
|
|
28501
|
+
case 'zipCode':
|
|
28502
|
+
return React__default['default'].createElement(LabeledInput, {
|
|
28503
|
+
hasError: hasVisibleError('zipCode'),
|
|
28504
|
+
extraClassName: 'form__group--40 form__group--sm-20',
|
|
28505
|
+
label: translations.TRAVELERS_FORM.ZIPCODE,
|
|
28506
|
+
required: true,
|
|
28507
|
+
name: 'zipCode',
|
|
28508
|
+
onChange: formik.handleChange,
|
|
28509
|
+
onBlur: formik.handleBlur,
|
|
28510
|
+
value: formik.values.zipCode
|
|
28511
|
+
});
|
|
28512
|
+
case 'place':
|
|
28513
|
+
return React__default['default'].createElement(LabeledInput, {
|
|
28514
|
+
hasError: hasVisibleError('place'),
|
|
28515
|
+
extraClassName: 'form__group--60 form__group--sm-40',
|
|
28516
|
+
label: translations.TRAVELERS_FORM.CITY,
|
|
28517
|
+
required: true,
|
|
28518
|
+
name: 'place',
|
|
28519
|
+
onChange: formik.handleChange,
|
|
28520
|
+
onBlur: formik.handleBlur,
|
|
28521
|
+
value: formik.values.place
|
|
28522
|
+
});
|
|
28523
|
+
default:
|
|
28524
|
+
return null;
|
|
28471
28525
|
}
|
|
28472
28526
|
};
|
|
28527
|
+
var renderRoomLabel = function (room) {
|
|
28528
|
+
var _a, _b;
|
|
28529
|
+
return lodash
|
|
28530
|
+
.compact([
|
|
28531
|
+
room.adults.length,
|
|
28532
|
+
room.adults.length === 1 && ' '.concat(translations.TRAVELERS_FORM.ADULT),
|
|
28533
|
+
room.adults.length > 1 && ' '.concat(translations.TRAVELERS_FORM.ADULTS),
|
|
28534
|
+
((_a = room.adults) === null || _a === void 0 ? void 0 : _a.length) && ((_b = room.children) === null || _b === void 0 ? void 0 : _b.length) && ', ',
|
|
28535
|
+
room.children.length,
|
|
28536
|
+
room.children.length === 1 && ' '.concat(translations.TRAVELERS_FORM.CHILD),
|
|
28537
|
+
room.children.length > 1 && ' '.concat(translations.TRAVELERS_FORM.CHILDREN)
|
|
28538
|
+
])
|
|
28539
|
+
.join('');
|
|
28540
|
+
};
|
|
28541
|
+
var renderTravelerFields = function (travelerValues, namePrefix, isAdult, roomIndex, travelerIndex) {
|
|
28542
|
+
var _a;
|
|
28543
|
+
if (useCompactForm) {
|
|
28544
|
+
return React__default['default'].createElement(
|
|
28545
|
+
'div',
|
|
28546
|
+
{ className: 'form__row' },
|
|
28547
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28548
|
+
hasError: hasVisibleError(''.concat(namePrefix, '.age')),
|
|
28549
|
+
extraClassName: 'form__group--md-33',
|
|
28550
|
+
label: translations.TRAVELERS_FORM.AGE,
|
|
28551
|
+
required: true,
|
|
28552
|
+
name: ''.concat(namePrefix, '.age'),
|
|
28553
|
+
onChange: formik.handleChange,
|
|
28554
|
+
onBlur: formik.handleBlur,
|
|
28555
|
+
value: travelerValues.age
|
|
28556
|
+
})
|
|
28557
|
+
);
|
|
28558
|
+
}
|
|
28559
|
+
if (
|
|
28560
|
+
(_a = travellersSettings === null || travellersSettings === void 0 ? void 0 : travellersSettings.formFields) === null || _a === void 0
|
|
28561
|
+
? void 0
|
|
28562
|
+
: _a.length
|
|
28563
|
+
) {
|
|
28564
|
+
return React__default['default'].createElement(
|
|
28565
|
+
'div',
|
|
28566
|
+
{ className: 'travelers-form__grid' },
|
|
28567
|
+
travellersSettings.formFields.map(function (field, index) {
|
|
28568
|
+
return React__default['default'].createElement(
|
|
28569
|
+
'div',
|
|
28570
|
+
{ key: index, className: 'control control--'.concat(field.type) },
|
|
28571
|
+
getControl(field.type, travelerValues, ''.concat(namePrefix, '.').concat(field.type))
|
|
28572
|
+
);
|
|
28573
|
+
})
|
|
28574
|
+
);
|
|
28575
|
+
}
|
|
28576
|
+
return React__default['default'].createElement(
|
|
28577
|
+
React__default['default'].Fragment,
|
|
28578
|
+
null,
|
|
28579
|
+
React__default['default'].createElement('div', { className: 'form__row' }, renderGenderControl(''.concat(namePrefix, '.gender'), travelerValues)),
|
|
28580
|
+
React__default['default'].createElement(
|
|
28581
|
+
'div',
|
|
28582
|
+
{ className: 'form__row' },
|
|
28583
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28584
|
+
hasError: hasVisibleError(''.concat(namePrefix, '.firstName')),
|
|
28585
|
+
extraClassName: 'form__group--md-33',
|
|
28586
|
+
label: translations.TRAVELERS_FORM.FIRST_NAME,
|
|
28587
|
+
required: true,
|
|
28588
|
+
name: ''.concat(namePrefix, '.firstName'),
|
|
28589
|
+
onChange: formik.handleChange,
|
|
28590
|
+
onBlur: formik.handleBlur,
|
|
28591
|
+
value: travelerValues.firstName
|
|
28592
|
+
}),
|
|
28593
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28594
|
+
hasError: hasVisibleError(''.concat(namePrefix, '.lastName')),
|
|
28595
|
+
extraClassName: 'form__group--md-33',
|
|
28596
|
+
label: translations.TRAVELERS_FORM.LAST_NAME,
|
|
28597
|
+
required: true,
|
|
28598
|
+
name: ''.concat(namePrefix, '.lastName'),
|
|
28599
|
+
onChange: formik.handleChange,
|
|
28600
|
+
onBlur: formik.handleBlur,
|
|
28601
|
+
value: travelerValues.lastName
|
|
28602
|
+
}),
|
|
28603
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28604
|
+
type: 'date',
|
|
28605
|
+
hasError: hasVisibleError(''.concat(namePrefix, '.birthDate')),
|
|
28606
|
+
extraClassName: 'form__group--md-33',
|
|
28607
|
+
label: translations.TRAVELERS_FORM.BIRTHDATE,
|
|
28608
|
+
required: true,
|
|
28609
|
+
name: ''.concat(namePrefix, '.birthDate'),
|
|
28610
|
+
onChange: formik.handleChange,
|
|
28611
|
+
onBlur: formik.handleBlur,
|
|
28612
|
+
value: travelerValues.birthDate
|
|
28613
|
+
})
|
|
28614
|
+
),
|
|
28615
|
+
travelersFirstStep &&
|
|
28616
|
+
isAdult &&
|
|
28617
|
+
formik.values.rooms[roomIndex].adults.length > 1 &&
|
|
28618
|
+
React__default['default'].createElement(
|
|
28619
|
+
'button',
|
|
28620
|
+
{
|
|
28621
|
+
type: 'button',
|
|
28622
|
+
className: 'cta cta--secondary',
|
|
28623
|
+
onClick: function () {
|
|
28624
|
+
return handleRemoveTraveler(roomIndex, travelerIndex);
|
|
28625
|
+
}
|
|
28626
|
+
},
|
|
28627
|
+
translations.TRAVELERS_FORM.REMOVE_TRAVELER
|
|
28628
|
+
)
|
|
28629
|
+
);
|
|
28630
|
+
};
|
|
28473
28631
|
return React__default['default'].createElement(
|
|
28474
28632
|
'form',
|
|
28475
28633
|
{
|
|
@@ -28477,687 +28635,238 @@ var TravelersForm = function () {
|
|
|
28477
28635
|
name: 'booking--travellers',
|
|
28478
28636
|
id: 'booking--travellers',
|
|
28479
28637
|
noValidate: true,
|
|
28480
|
-
onSubmit: formik
|
|
28481
|
-
onReset: formik
|
|
28638
|
+
onSubmit: formik.handleSubmit,
|
|
28639
|
+
onReset: formik.handleReset
|
|
28482
28640
|
},
|
|
28483
|
-
|
|
28484
|
-
|
|
28641
|
+
React__default['default'].createElement(
|
|
28642
|
+
'div',
|
|
28643
|
+
{ className: 'form__travelers__wrapper' },
|
|
28644
|
+
formik.values.rooms.map(function (room, roomIndex) {
|
|
28645
|
+
return React__default['default'].createElement(
|
|
28485
28646
|
'div',
|
|
28486
|
-
{
|
|
28487
|
-
formik
|
|
28647
|
+
{ key: roomIndex },
|
|
28648
|
+
formik.values.rooms.length > 1 &&
|
|
28649
|
+
React__default['default'].createElement(
|
|
28650
|
+
'div',
|
|
28651
|
+
{ className: 'form__region' },
|
|
28652
|
+
React__default['default'].createElement(
|
|
28653
|
+
'div',
|
|
28654
|
+
{ className: 'form__region-header' },
|
|
28655
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.SHARED.ROOM, ' ', roomIndex + 1),
|
|
28656
|
+
React__default['default'].createElement('p', { className: 'form__region-label' }, renderRoomLabel(room))
|
|
28657
|
+
),
|
|
28658
|
+
!useCompactForm &&
|
|
28659
|
+
travelersFirstStep &&
|
|
28660
|
+
formik.values.rooms.length > 1 &&
|
|
28661
|
+
React__default['default'].createElement(
|
|
28662
|
+
'button',
|
|
28663
|
+
{
|
|
28664
|
+
type: 'button',
|
|
28665
|
+
className: 'cta cta--secondary',
|
|
28666
|
+
onClick: function () {
|
|
28667
|
+
return handleRemoveRoom(roomIndex);
|
|
28668
|
+
}
|
|
28669
|
+
},
|
|
28670
|
+
'Verwijder reisgezelschap'
|
|
28671
|
+
)
|
|
28672
|
+
),
|
|
28673
|
+
room.adults.map(function (travelerValues, index) {
|
|
28488
28674
|
return React__default['default'].createElement(
|
|
28489
28675
|
'div',
|
|
28490
|
-
{ key:
|
|
28491
|
-
|
|
28676
|
+
{ className: 'form__region', key: travelerValues.id },
|
|
28677
|
+
React__default['default'].createElement(
|
|
28678
|
+
'div',
|
|
28679
|
+
{ className: 'form__region-header' },
|
|
28680
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.TRAVELERS_FORM.TRAVELER, ' ', index + 1),
|
|
28681
|
+
React__default['default'].createElement('p', { className: 'form__region-label' }, translations.TRAVELERS_FORM.ADULT),
|
|
28492
28682
|
React__default['default'].createElement(
|
|
28493
28683
|
'div',
|
|
28494
|
-
{ className: '
|
|
28684
|
+
{ className: 'radiobutton' },
|
|
28495
28685
|
React__default['default'].createElement(
|
|
28496
|
-
'
|
|
28497
|
-
{ className: '
|
|
28498
|
-
React__default['default'].createElement('
|
|
28499
|
-
|
|
28500
|
-
'
|
|
28501
|
-
|
|
28502
|
-
|
|
28503
|
-
|
|
28504
|
-
|
|
28505
|
-
|
|
28506
|
-
|
|
28507
|
-
|
|
28508
|
-
room.children.length,
|
|
28509
|
-
room.children.length === 1 && ' '.concat(translations.TRAVELERS_FORM.CHILD),
|
|
28510
|
-
room.children.length > 1 && ' '.concat(translations.TRAVELERS_FORM.CHILDREN)
|
|
28511
|
-
])
|
|
28512
|
-
.join('')
|
|
28513
|
-
)
|
|
28686
|
+
'label',
|
|
28687
|
+
{ className: 'radiobutton__label' },
|
|
28688
|
+
React__default['default'].createElement('input', {
|
|
28689
|
+
type: 'radio',
|
|
28690
|
+
name: 'mainBookerId',
|
|
28691
|
+
onChange: handleMainBookerChange,
|
|
28692
|
+
onBlur: formik.handleBlur,
|
|
28693
|
+
value: travelerValues.id,
|
|
28694
|
+
checked: formik.values.mainBookerId === travelerValues.id,
|
|
28695
|
+
className: 'radiobutton__input'
|
|
28696
|
+
}),
|
|
28697
|
+
translations.TRAVELERS_FORM.MAIN_BOOKER
|
|
28514
28698
|
)
|
|
28699
|
+
)
|
|
28700
|
+
),
|
|
28701
|
+
renderTravelerFields(travelerValues, 'rooms['.concat(roomIndex, '].adults[').concat(index, ']'), true, roomIndex, index)
|
|
28702
|
+
);
|
|
28703
|
+
}),
|
|
28704
|
+
room.children.map(function (travelerValues, index) {
|
|
28705
|
+
return React__default['default'].createElement(
|
|
28706
|
+
'div',
|
|
28707
|
+
{ className: 'form__region', key: travelerValues.id },
|
|
28708
|
+
React__default['default'].createElement(
|
|
28709
|
+
'div',
|
|
28710
|
+
{ className: 'form__region-header' },
|
|
28711
|
+
React__default['default'].createElement(
|
|
28712
|
+
'h5',
|
|
28713
|
+
{ className: 'form__region-heading' },
|
|
28714
|
+
translations.TRAVELERS_FORM.TRAVELER,
|
|
28715
|
+
' ',
|
|
28716
|
+
room.adults.length + index + 1
|
|
28515
28717
|
),
|
|
28516
|
-
|
|
28517
|
-
|
|
28518
|
-
|
|
28519
|
-
{ className: 'form__region', key: travelerValues.id },
|
|
28520
|
-
React__default['default'].createElement(
|
|
28521
|
-
'div',
|
|
28522
|
-
{ className: 'form__region-header' },
|
|
28523
|
-
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.TRAVELERS_FORM.TRAVELER, ' ', index + 1),
|
|
28524
|
-
React__default['default'].createElement('p', { className: 'form__region-label' }, translations.TRAVELERS_FORM.ADULT),
|
|
28525
|
-
React__default['default'].createElement(
|
|
28526
|
-
'div',
|
|
28527
|
-
{ className: 'radiobutton' },
|
|
28528
|
-
React__default['default'].createElement(
|
|
28529
|
-
'label',
|
|
28530
|
-
{ className: 'radiobutton__label' },
|
|
28531
|
-
React__default['default'].createElement('input', {
|
|
28532
|
-
type: 'radio',
|
|
28533
|
-
name: 'mainBookerId',
|
|
28534
|
-
onChange: handleMainBookerChange,
|
|
28535
|
-
onBlur: formik$1.handleBlur,
|
|
28536
|
-
value: travelerValues.id,
|
|
28537
|
-
checked: formik$1.values.mainBookerId === travelerValues.id,
|
|
28538
|
-
className: 'radiobutton__input'
|
|
28539
|
-
}),
|
|
28540
|
-
translations.TRAVELERS_FORM.MAIN_BOOKER
|
|
28541
|
-
)
|
|
28542
|
-
)
|
|
28543
|
-
),
|
|
28544
|
-
React__default['default'].createElement(
|
|
28545
|
-
'div',
|
|
28546
|
-
{ className: 'form__row' },
|
|
28547
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28548
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].adults[').concat(index, '].age')),
|
|
28549
|
-
extraClassName: 'form__group--md-33',
|
|
28550
|
-
label: translations.TRAVELERS_FORM.AGE,
|
|
28551
|
-
required: true,
|
|
28552
|
-
name: 'rooms['.concat(rIndex, '].adults[').concat(index, '].age'),
|
|
28553
|
-
onChange: formik$1.handleChange,
|
|
28554
|
-
onBlur: formik$1.handleBlur,
|
|
28555
|
-
value: travelerValues.age
|
|
28556
|
-
})
|
|
28557
|
-
)
|
|
28558
|
-
);
|
|
28559
|
-
}),
|
|
28560
|
-
room.children.map(function (travelerValues, index) {
|
|
28561
|
-
return React__default['default'].createElement(
|
|
28562
|
-
'div',
|
|
28563
|
-
{ className: 'form__region', key: travelerValues.id },
|
|
28564
|
-
React__default['default'].createElement(
|
|
28565
|
-
'div',
|
|
28566
|
-
{ className: 'form__region-header' },
|
|
28567
|
-
React__default['default'].createElement(
|
|
28568
|
-
'h5',
|
|
28569
|
-
{ className: 'form__region-heading' },
|
|
28570
|
-
translations.TRAVELERS_FORM.TRAVELER,
|
|
28571
|
-
' ',
|
|
28572
|
-
room.adults.length + index + 1
|
|
28573
|
-
),
|
|
28574
|
-
React__default['default'].createElement('p', { className: 'form__region-label' }, translations.TRAVELERS_FORM.CHILD)
|
|
28575
|
-
),
|
|
28576
|
-
React__default['default'].createElement(
|
|
28577
|
-
'div',
|
|
28578
|
-
{ className: 'form__row' },
|
|
28579
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28580
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].children[').concat(index, '].age')),
|
|
28581
|
-
extraClassName: 'form__group--md-33',
|
|
28582
|
-
label: translations.TRAVELERS_FORM.AGE,
|
|
28583
|
-
required: true,
|
|
28584
|
-
name: 'rooms['.concat(rIndex, '].children[').concat(index, '].age'),
|
|
28585
|
-
onChange: formik$1.handleChange,
|
|
28586
|
-
onBlur: formik$1.handleBlur,
|
|
28587
|
-
value: travelerValues.age
|
|
28588
|
-
})
|
|
28589
|
-
)
|
|
28590
|
-
);
|
|
28591
|
-
})
|
|
28718
|
+
React__default['default'].createElement('p', { className: 'form__region-label' }, translations.TRAVELERS_FORM.CHILD)
|
|
28719
|
+
),
|
|
28720
|
+
renderTravelerFields(travelerValues, 'rooms['.concat(roomIndex, '].children[').concat(index, ']'), false, roomIndex, index)
|
|
28592
28721
|
);
|
|
28593
|
-
})
|
|
28594
|
-
|
|
28595
|
-
|
|
28596
|
-
|
|
28597
|
-
|
|
28598
|
-
|
|
28722
|
+
}),
|
|
28723
|
+
!useCompactForm &&
|
|
28724
|
+
travelersFirstStep &&
|
|
28725
|
+
React__default['default'].createElement(
|
|
28726
|
+
'div',
|
|
28727
|
+
{ className: 'form__region' },
|
|
28728
|
+
React__default['default'].createElement(
|
|
28729
|
+
'button',
|
|
28730
|
+
{
|
|
28731
|
+
type: 'button',
|
|
28732
|
+
className: 'cta cta--select',
|
|
28733
|
+
onClick: function () {
|
|
28734
|
+
return handleAddTraveler(roomIndex);
|
|
28735
|
+
}
|
|
28736
|
+
},
|
|
28737
|
+
translations.TRAVELERS_FORM.ADD_TRAVELER
|
|
28738
|
+
)
|
|
28739
|
+
)
|
|
28740
|
+
);
|
|
28741
|
+
}),
|
|
28742
|
+
!useCompactForm &&
|
|
28743
|
+
(bookingType !== 'b2b' ||
|
|
28744
|
+
((_f = travellersSettings === null || travellersSettings === void 0 ? void 0 : travellersSettings.mainBookerFormFields) === null || _f === void 0
|
|
28745
|
+
? void 0
|
|
28746
|
+
: _f.length))
|
|
28747
|
+
? React__default['default'].createElement(
|
|
28599
28748
|
'div',
|
|
28600
|
-
{ className: '
|
|
28601
|
-
|
|
28602
|
-
|
|
28603
|
-
|
|
28604
|
-
|
|
28605
|
-
|
|
28749
|
+
{ className: 'form__region' },
|
|
28750
|
+
React__default['default'].createElement(
|
|
28751
|
+
'div',
|
|
28752
|
+
{ className: 'form__region-header' },
|
|
28753
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.TRAVELERS_FORM.MAIN_BOOKER),
|
|
28754
|
+
React__default['default'].createElement(
|
|
28755
|
+
'p',
|
|
28756
|
+
{ className: 'form__region-label' },
|
|
28757
|
+
lodash
|
|
28758
|
+
.compact([
|
|
28759
|
+
lodash
|
|
28760
|
+
.compact([
|
|
28761
|
+
mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName,
|
|
28762
|
+
mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName
|
|
28763
|
+
])
|
|
28764
|
+
.join(' '),
|
|
28765
|
+
(mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
|
|
28766
|
+
dateFns.format(dateFns.parse(mainBooker.birthDate, 'yyyy-MM-dd', new Date()), 'dd-MM-yyyy')
|
|
28767
|
+
])
|
|
28768
|
+
.join(', ')
|
|
28769
|
+
)
|
|
28770
|
+
),
|
|
28771
|
+
(
|
|
28772
|
+
(_g = travellersSettings === null || travellersSettings === void 0 ? void 0 : travellersSettings.mainBookerFormFields) === null || _g === void 0
|
|
28773
|
+
? void 0
|
|
28774
|
+
: _g.length
|
|
28775
|
+
)
|
|
28776
|
+
? React__default['default'].createElement(
|
|
28777
|
+
'div',
|
|
28778
|
+
{ className: 'main-booker-form__grid' },
|
|
28779
|
+
travellersSettings.mainBookerFormFields.map(function (field, index) {
|
|
28780
|
+
return React__default['default'].createElement(
|
|
28781
|
+
'div',
|
|
28782
|
+
{ key: index, className: 'control control--'.concat(field.type) },
|
|
28783
|
+
getControl(field.type, {}, field.type)
|
|
28784
|
+
);
|
|
28785
|
+
})
|
|
28786
|
+
)
|
|
28787
|
+
: React__default['default'].createElement(
|
|
28788
|
+
React__default['default'].Fragment,
|
|
28789
|
+
null,
|
|
28606
28790
|
React__default['default'].createElement(
|
|
28607
28791
|
'div',
|
|
28608
|
-
{ className: '
|
|
28792
|
+
{ className: 'form__twocolumn' },
|
|
28609
28793
|
React__default['default'].createElement(
|
|
28610
28794
|
'div',
|
|
28611
|
-
{ className: '
|
|
28612
|
-
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.SHARED.ROOM, ' ', rIndex + 1),
|
|
28795
|
+
{ className: 'form__twocolumn-column' },
|
|
28613
28796
|
React__default['default'].createElement(
|
|
28614
|
-
'
|
|
28615
|
-
{ className: '
|
|
28616
|
-
|
|
28617
|
-
|
|
28618
|
-
|
|
28619
|
-
|
|
28620
|
-
|
|
28621
|
-
|
|
28622
|
-
|
|
28623
|
-
|
|
28624
|
-
|
|
28625
|
-
|
|
28626
|
-
|
|
28797
|
+
'div',
|
|
28798
|
+
{ className: 'form__row' },
|
|
28799
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28800
|
+
hasError: hasVisibleError('street'),
|
|
28801
|
+
extraClassName: 'form__group--50 form__group--sm-60',
|
|
28802
|
+
label: translations.TRAVELERS_FORM.STREET,
|
|
28803
|
+
required: true,
|
|
28804
|
+
name: 'street',
|
|
28805
|
+
onChange: formik.handleChange,
|
|
28806
|
+
onBlur: formik.handleBlur,
|
|
28807
|
+
value: formik.values.street
|
|
28808
|
+
}),
|
|
28809
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28810
|
+
hasError: hasVisibleError('houseNumber'),
|
|
28811
|
+
extraClassName: 'form__group--30 form__group--sm-20',
|
|
28812
|
+
label: translations.TRAVELERS_FORM.HOUSE_NUMBER,
|
|
28813
|
+
required: true,
|
|
28814
|
+
name: 'houseNumber',
|
|
28815
|
+
onChange: formik.handleChange,
|
|
28816
|
+
onBlur: formik.handleBlur,
|
|
28817
|
+
value: formik.values.houseNumber
|
|
28818
|
+
}),
|
|
28819
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28820
|
+
hasError: hasVisibleError('box'),
|
|
28821
|
+
extraClassName: 'form__group--20',
|
|
28822
|
+
label: translations.TRAVELERS_FORM.POST_BOX,
|
|
28823
|
+
name: 'box',
|
|
28824
|
+
onChange: formik.handleChange,
|
|
28825
|
+
onBlur: formik.handleBlur,
|
|
28826
|
+
value: formik.values.box
|
|
28827
|
+
})
|
|
28627
28828
|
)
|
|
28628
28829
|
),
|
|
28629
|
-
travelersFirstStep &&
|
|
28630
|
-
formik$1.values.rooms.length > 1 &&
|
|
28631
|
-
React__default['default'].createElement(
|
|
28632
|
-
'button',
|
|
28633
|
-
{
|
|
28634
|
-
type: 'button',
|
|
28635
|
-
className: 'cta cta--secondary',
|
|
28636
|
-
onClick: function () {
|
|
28637
|
-
return handleRemoveRoom(rIndex);
|
|
28638
|
-
}
|
|
28639
|
-
},
|
|
28640
|
-
'Verwijder reisgezelschap'
|
|
28641
|
-
)
|
|
28642
|
-
),
|
|
28643
|
-
room.adults.map(function (travelerValues, index) {
|
|
28644
|
-
var _a;
|
|
28645
|
-
return React__default['default'].createElement(
|
|
28646
|
-
'div',
|
|
28647
|
-
{ className: 'form__region', key: travelerValues.id },
|
|
28648
28830
|
React__default['default'].createElement(
|
|
28649
28831
|
'div',
|
|
28650
|
-
{ className: '
|
|
28651
|
-
React__default['default'].createElement(
|
|
28652
|
-
'h5',
|
|
28653
|
-
{ className: 'form__region-heading' },
|
|
28654
|
-
translations.TRAVELERS_FORM.TRAVELER,
|
|
28655
|
-
' ',
|
|
28656
|
-
index + 1
|
|
28657
|
-
),
|
|
28658
|
-
React__default['default'].createElement('p', { className: 'form__region-label' }, translations.TRAVELERS_FORM.ADULT),
|
|
28832
|
+
{ className: 'form__twocolumn-column' },
|
|
28659
28833
|
React__default['default'].createElement(
|
|
28660
28834
|
'div',
|
|
28661
|
-
{ className: '
|
|
28662
|
-
React__default['default'].createElement(
|
|
28663
|
-
'
|
|
28664
|
-
|
|
28665
|
-
|
|
28666
|
-
|
|
28667
|
-
|
|
28668
|
-
|
|
28669
|
-
|
|
28670
|
-
|
|
28671
|
-
|
|
28672
|
-
|
|
28673
|
-
|
|
28674
|
-
|
|
28675
|
-
|
|
28835
|
+
{ className: 'form__row' },
|
|
28836
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28837
|
+
hasError: hasVisibleError('zipCode'),
|
|
28838
|
+
extraClassName: 'form__group--40 form__group--sm-20',
|
|
28839
|
+
label: translations.TRAVELERS_FORM.ZIPCODE,
|
|
28840
|
+
required: true,
|
|
28841
|
+
name: 'zipCode',
|
|
28842
|
+
onChange: formik.handleChange,
|
|
28843
|
+
onBlur: formik.handleBlur,
|
|
28844
|
+
value: formik.values.zipCode
|
|
28845
|
+
}),
|
|
28846
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28847
|
+
hasError: hasVisibleError('place'),
|
|
28848
|
+
extraClassName: 'form__group--60 form__group--sm-40',
|
|
28849
|
+
label: translations.TRAVELERS_FORM.CITY,
|
|
28850
|
+
required: true,
|
|
28851
|
+
name: 'place',
|
|
28852
|
+
onChange: formik.handleChange,
|
|
28853
|
+
onBlur: formik.handleBlur,
|
|
28854
|
+
value: formik.values.place
|
|
28855
|
+
}),
|
|
28856
|
+
React__default['default'].createElement(LabeledSelect, {
|
|
28857
|
+
hasError: hasVisibleError('country'),
|
|
28858
|
+
extraClassName: 'form__group--sm-40',
|
|
28859
|
+
label: translations.TRAVELERS_FORM.COUNTRY,
|
|
28860
|
+
required: true,
|
|
28861
|
+
name: 'country',
|
|
28862
|
+
onChange: formik.handleChange,
|
|
28863
|
+
onBlur: formik.handleBlur,
|
|
28864
|
+
value: formik.values.country,
|
|
28865
|
+
options: countryOptions
|
|
28866
|
+
})
|
|
28676
28867
|
)
|
|
28677
|
-
),
|
|
28678
|
-
((_a = settings.travellers.formFields) === null || _a === void 0 ? void 0 : _a.length)
|
|
28679
|
-
? React__default['default'].createElement(
|
|
28680
|
-
React__default['default'].Fragment,
|
|
28681
|
-
null,
|
|
28682
|
-
React__default['default'].createElement(
|
|
28683
|
-
'div',
|
|
28684
|
-
{ className: 'travelers-form__grid' },
|
|
28685
|
-
settings.travellers.formFields.map(function (field, fIndex) {
|
|
28686
|
-
return React__default['default'].createElement(
|
|
28687
|
-
'div',
|
|
28688
|
-
{ key: fIndex, className: 'control control--'.concat(field.type) },
|
|
28689
|
-
getControl(field.type, travelerValues, 'rooms['.concat(rIndex, '].adults[').concat(index, '].').concat(field.type))
|
|
28690
|
-
);
|
|
28691
|
-
})
|
|
28692
|
-
)
|
|
28693
|
-
)
|
|
28694
|
-
: React__default['default'].createElement(
|
|
28695
|
-
React__default['default'].Fragment,
|
|
28696
|
-
null,
|
|
28697
|
-
React__default['default'].createElement(
|
|
28698
|
-
'div',
|
|
28699
|
-
{ className: 'form__row' },
|
|
28700
|
-
React__default['default'].createElement(
|
|
28701
|
-
'div',
|
|
28702
|
-
{
|
|
28703
|
-
className: buildClassName([
|
|
28704
|
-
'form__group',
|
|
28705
|
-
hasVisibleError('rooms['.concat(rIndex, '].adults[').concat(index, '].gender')) && 'form__group--error'
|
|
28706
|
-
])
|
|
28707
|
-
},
|
|
28708
|
-
React__default['default'].createElement('label', { className: 'form__label' }, translations.TRAVELERS_FORM.GENDER_ID, ' *'),
|
|
28709
|
-
React__default['default'].createElement(
|
|
28710
|
-
'div',
|
|
28711
|
-
{ className: 'radiobutton-group' },
|
|
28712
|
-
React__default['default'].createElement(
|
|
28713
|
-
'div',
|
|
28714
|
-
{ className: 'radiobutton' },
|
|
28715
|
-
React__default['default'].createElement(
|
|
28716
|
-
'label',
|
|
28717
|
-
{ className: 'radiobutton__label' },
|
|
28718
|
-
React__default['default'].createElement('input', {
|
|
28719
|
-
type: 'radio',
|
|
28720
|
-
className: 'radiobutton__input',
|
|
28721
|
-
name: 'rooms['.concat(rIndex, '].adults[').concat(index, '].gender'),
|
|
28722
|
-
onChange: formik$1.handleChange,
|
|
28723
|
-
onBlur: formik$1.handleBlur,
|
|
28724
|
-
value: 'm',
|
|
28725
|
-
checked: travelerValues.gender === 'm'
|
|
28726
|
-
}),
|
|
28727
|
-
translations.TRAVELERS_FORM.MALE_GENDER
|
|
28728
|
-
)
|
|
28729
|
-
),
|
|
28730
|
-
React__default['default'].createElement(
|
|
28731
|
-
'div',
|
|
28732
|
-
{ className: 'radiobutton' },
|
|
28733
|
-
React__default['default'].createElement(
|
|
28734
|
-
'label',
|
|
28735
|
-
{ className: 'radiobutton__label' },
|
|
28736
|
-
React__default['default'].createElement('input', {
|
|
28737
|
-
type: 'radio',
|
|
28738
|
-
className: 'radiobutton__input',
|
|
28739
|
-
name: 'rooms['.concat(rIndex, '].adults[').concat(index, '].gender'),
|
|
28740
|
-
onChange: formik$1.handleChange,
|
|
28741
|
-
onBlur: formik$1.handleBlur,
|
|
28742
|
-
value: 'f',
|
|
28743
|
-
checked: travelerValues.gender === 'f'
|
|
28744
|
-
}),
|
|
28745
|
-
translations.TRAVELERS_FORM.FEMALE_GENDER
|
|
28746
|
-
)
|
|
28747
|
-
)
|
|
28748
|
-
)
|
|
28749
|
-
)
|
|
28750
|
-
),
|
|
28751
|
-
React__default['default'].createElement(
|
|
28752
|
-
'div',
|
|
28753
|
-
{ className: 'form__row' },
|
|
28754
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28755
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].adults[').concat(index, '].firstName')),
|
|
28756
|
-
extraClassName: 'form__group--md-33',
|
|
28757
|
-
label: translations.TRAVELERS_FORM.FIRST_NAME,
|
|
28758
|
-
required: true,
|
|
28759
|
-
name: 'rooms['.concat(rIndex, '].adults[').concat(index, '].firstName'),
|
|
28760
|
-
onChange: formik$1.handleChange,
|
|
28761
|
-
onBlur: formik$1.handleBlur,
|
|
28762
|
-
value: travelerValues.firstName
|
|
28763
|
-
}),
|
|
28764
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28765
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].adults[').concat(index, '].lastName')),
|
|
28766
|
-
extraClassName: 'form__group--md-33',
|
|
28767
|
-
label: translations.TRAVELERS_FORM.LAST_NAME,
|
|
28768
|
-
required: true,
|
|
28769
|
-
name: 'rooms['.concat(rIndex, '].adults[').concat(index, '].lastName'),
|
|
28770
|
-
onChange: formik$1.handleChange,
|
|
28771
|
-
onBlur: formik$1.handleBlur,
|
|
28772
|
-
value: travelerValues.lastName
|
|
28773
|
-
}),
|
|
28774
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28775
|
-
type: 'date',
|
|
28776
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].adults[').concat(index, '].birthDate')),
|
|
28777
|
-
extraClassName: 'form__group--md-33',
|
|
28778
|
-
label: translations.TRAVELERS_FORM.BIRTHDATE,
|
|
28779
|
-
required: true,
|
|
28780
|
-
name: 'rooms['.concat(rIndex, '].adults[').concat(index, '].birthDate'),
|
|
28781
|
-
onChange: formik$1.handleChange,
|
|
28782
|
-
onBlur: formik$1.handleBlur,
|
|
28783
|
-
value: travelerValues.birthDate
|
|
28784
|
-
})
|
|
28785
|
-
),
|
|
28786
|
-
travelersFirstStep &&
|
|
28787
|
-
room.adults.length > 1 &&
|
|
28788
|
-
React__default['default'].createElement(
|
|
28789
|
-
'button',
|
|
28790
|
-
{
|
|
28791
|
-
type: 'button',
|
|
28792
|
-
className: 'cta cta--secondary',
|
|
28793
|
-
onClick: function () {
|
|
28794
|
-
return handleRemoveTraveler(rIndex, index);
|
|
28795
|
-
}
|
|
28796
|
-
},
|
|
28797
|
-
translations.TRAVELERS_FORM.REMOVE_TRAVELER
|
|
28798
|
-
)
|
|
28799
|
-
)
|
|
28800
|
-
);
|
|
28801
|
-
}),
|
|
28802
|
-
room.children.map(function (travelerValues, index) {
|
|
28803
|
-
var _a;
|
|
28804
|
-
return React__default['default'].createElement(
|
|
28805
|
-
'div',
|
|
28806
|
-
{ className: 'form__region', key: travelerValues.id },
|
|
28807
|
-
React__default['default'].createElement(
|
|
28808
|
-
'div',
|
|
28809
|
-
{ className: 'form__region-header' },
|
|
28810
|
-
React__default['default'].createElement(
|
|
28811
|
-
'h5',
|
|
28812
|
-
{ className: 'form__region-heading' },
|
|
28813
|
-
translations.TRAVELERS_FORM.TRAVELER,
|
|
28814
|
-
' ',
|
|
28815
|
-
room.adults.length + index + 1
|
|
28816
|
-
),
|
|
28817
|
-
React__default['default'].createElement('p', { className: 'form__region-label' }, translations.TRAVELERS_FORM.CHILD)
|
|
28818
|
-
),
|
|
28819
|
-
((_a = settings.travellers.formFields) === null || _a === void 0 ? void 0 : _a.length)
|
|
28820
|
-
? React__default['default'].createElement(
|
|
28821
|
-
React__default['default'].Fragment,
|
|
28822
|
-
null,
|
|
28823
|
-
React__default['default'].createElement(
|
|
28824
|
-
'div',
|
|
28825
|
-
{ className: 'travelers-form__grid' },
|
|
28826
|
-
settings.travellers.formFields.map(function (field, fIndex) {
|
|
28827
|
-
return React__default['default'].createElement(
|
|
28828
|
-
'div',
|
|
28829
|
-
{ key: fIndex, className: 'control control--'.concat(field.type) },
|
|
28830
|
-
getControl(field.type, travelerValues, 'rooms['.concat(rIndex, '].children[').concat(index, '].').concat(field.type))
|
|
28831
|
-
);
|
|
28832
|
-
})
|
|
28833
|
-
)
|
|
28834
|
-
)
|
|
28835
|
-
: React__default['default'].createElement(
|
|
28836
|
-
React__default['default'].Fragment,
|
|
28837
|
-
null,
|
|
28838
|
-
React__default['default'].createElement(
|
|
28839
|
-
'div',
|
|
28840
|
-
{ className: 'form__row' },
|
|
28841
|
-
React__default['default'].createElement(
|
|
28842
|
-
'div',
|
|
28843
|
-
{
|
|
28844
|
-
className: buildClassName([
|
|
28845
|
-
'form__group',
|
|
28846
|
-
hasVisibleError('rooms['.concat(rIndex, '].children[').concat(index, '].gender')) && 'form__group--error'
|
|
28847
|
-
])
|
|
28848
|
-
},
|
|
28849
|
-
React__default['default'].createElement('label', { className: 'form__label' }, translations.TRAVELERS_FORM.GENDER_ID, ' *'),
|
|
28850
|
-
React__default['default'].createElement(
|
|
28851
|
-
'div',
|
|
28852
|
-
{ className: 'radiobutton-group' },
|
|
28853
|
-
React__default['default'].createElement(
|
|
28854
|
-
'div',
|
|
28855
|
-
{ className: 'radiobutton' },
|
|
28856
|
-
React__default['default'].createElement(
|
|
28857
|
-
'label',
|
|
28858
|
-
{ className: 'radiobutton__label' },
|
|
28859
|
-
React__default['default'].createElement('input', {
|
|
28860
|
-
type: 'radio',
|
|
28861
|
-
className: 'radiobutton__input',
|
|
28862
|
-
name: 'rooms['.concat(rIndex, '].children[').concat(index, '].gender'),
|
|
28863
|
-
onChange: formik$1.handleChange,
|
|
28864
|
-
onBlur: formik$1.handleBlur,
|
|
28865
|
-
value: 'm',
|
|
28866
|
-
checked: travelerValues.gender === 'm'
|
|
28867
|
-
}),
|
|
28868
|
-
translations.TRAVELERS_FORM.MALE_GENDER
|
|
28869
|
-
)
|
|
28870
|
-
),
|
|
28871
|
-
React__default['default'].createElement(
|
|
28872
|
-
'div',
|
|
28873
|
-
{ className: 'radiobutton' },
|
|
28874
|
-
React__default['default'].createElement(
|
|
28875
|
-
'label',
|
|
28876
|
-
{ className: 'radiobutton__label' },
|
|
28877
|
-
React__default['default'].createElement('input', {
|
|
28878
|
-
type: 'radio',
|
|
28879
|
-
className: 'radiobutton__input',
|
|
28880
|
-
name: 'rooms['.concat(rIndex, '].children[').concat(index, '].gender'),
|
|
28881
|
-
onChange: formik$1.handleChange,
|
|
28882
|
-
onBlur: formik$1.handleBlur,
|
|
28883
|
-
value: 'f',
|
|
28884
|
-
checked: travelerValues.gender === 'f'
|
|
28885
|
-
}),
|
|
28886
|
-
translations.TRAVELERS_FORM.FEMALE_GENDER
|
|
28887
|
-
)
|
|
28888
|
-
)
|
|
28889
|
-
)
|
|
28890
|
-
)
|
|
28891
|
-
),
|
|
28892
|
-
React__default['default'].createElement(
|
|
28893
|
-
'div',
|
|
28894
|
-
{ className: 'form__row' },
|
|
28895
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28896
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].children[').concat(index, '].firstName')),
|
|
28897
|
-
extraClassName: 'form__group--md-33',
|
|
28898
|
-
label: translations.TRAVELERS_FORM.FIRST_NAME,
|
|
28899
|
-
required: true,
|
|
28900
|
-
name: 'rooms['.concat(rIndex, '].children[').concat(index, '].firstName'),
|
|
28901
|
-
onChange: formik$1.handleChange,
|
|
28902
|
-
onBlur: formik$1.handleBlur,
|
|
28903
|
-
value: travelerValues.firstName
|
|
28904
|
-
}),
|
|
28905
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28906
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].children[').concat(index, '].lastName')),
|
|
28907
|
-
extraClassName: 'form__group--md-33',
|
|
28908
|
-
label: translations.TRAVELERS_FORM.LAST_NAME,
|
|
28909
|
-
required: true,
|
|
28910
|
-
name: 'rooms['.concat(rIndex, '].children[').concat(index, '].lastName'),
|
|
28911
|
-
onChange: formik$1.handleChange,
|
|
28912
|
-
onBlur: formik$1.handleBlur,
|
|
28913
|
-
value: travelerValues.lastName
|
|
28914
|
-
}),
|
|
28915
|
-
React__default['default'].createElement(LabeledInput, {
|
|
28916
|
-
type: 'date',
|
|
28917
|
-
hasError: hasVisibleError('rooms['.concat(rIndex, '].children[').concat(index, '].birthDate')),
|
|
28918
|
-
extraClassName: 'form__group--md-33',
|
|
28919
|
-
label: translations.TRAVELERS_FORM.BIRTHDATE,
|
|
28920
|
-
required: true,
|
|
28921
|
-
name: 'rooms['.concat(rIndex, '].children[').concat(index, '].birthDate'),
|
|
28922
|
-
onChange: formik$1.handleChange,
|
|
28923
|
-
onBlur: formik$1.handleBlur,
|
|
28924
|
-
value: travelerValues.birthDate
|
|
28925
|
-
})
|
|
28926
|
-
)
|
|
28927
|
-
)
|
|
28928
|
-
);
|
|
28929
|
-
}),
|
|
28930
|
-
travelersFirstStep &&
|
|
28931
|
-
React__default['default'].createElement(
|
|
28932
|
-
'div',
|
|
28933
|
-
{ className: 'form__region' },
|
|
28934
|
-
React__default['default'].createElement(
|
|
28935
|
-
'button',
|
|
28936
|
-
{
|
|
28937
|
-
type: 'button',
|
|
28938
|
-
className: 'cta cta--select',
|
|
28939
|
-
onClick: function () {
|
|
28940
|
-
return handleAddTraveler(rIndex);
|
|
28941
|
-
}
|
|
28942
|
-
},
|
|
28943
|
-
translations.TRAVELERS_FORM.ADD_TRAVELER
|
|
28944
|
-
)
|
|
28945
|
-
)
|
|
28946
|
-
);
|
|
28947
|
-
}),
|
|
28948
|
-
bookingType != 'b2b' ||
|
|
28949
|
-
((_f = (_e = settings.travellers) === null || _e === void 0 ? void 0 : _e.mainBookerFormFields) === null || _f === void 0 ? void 0 : _f.length)
|
|
28950
|
-
? React__default['default'].createElement(
|
|
28951
|
-
'div',
|
|
28952
|
-
{ className: 'form__region' },
|
|
28953
|
-
React__default['default'].createElement(
|
|
28954
|
-
'div',
|
|
28955
|
-
{ className: 'form__region-header' },
|
|
28956
|
-
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.TRAVELERS_FORM.MAIN_BOOKER),
|
|
28957
|
-
React__default['default'].createElement(
|
|
28958
|
-
'p',
|
|
28959
|
-
{ className: 'form__region-label' },
|
|
28960
|
-
lodash
|
|
28961
|
-
.compact([
|
|
28962
|
-
lodash
|
|
28963
|
-
.compact([
|
|
28964
|
-
mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.firstName,
|
|
28965
|
-
mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.lastName
|
|
28966
|
-
])
|
|
28967
|
-
.join(' '),
|
|
28968
|
-
(mainBooker === null || mainBooker === void 0 ? void 0 : mainBooker.birthDate) &&
|
|
28969
|
-
dateFns.format(dateFns.parse(mainBooker.birthDate, 'yyyy-MM-dd', new Date()), 'dd-MM-yyyy')
|
|
28970
|
-
])
|
|
28971
|
-
.join(', ')
|
|
28972
28868
|
)
|
|
28973
28869
|
),
|
|
28974
|
-
React__default['default'].createElement(
|
|
28975
|
-
React__default['default'].Fragment,
|
|
28976
|
-
null,
|
|
28977
|
-
(
|
|
28978
|
-
(_h = (_g = settings.travellers) === null || _g === void 0 ? void 0 : _g.mainBookerFormFields) === null || _h === void 0
|
|
28979
|
-
? void 0
|
|
28980
|
-
: _h.length
|
|
28981
|
-
)
|
|
28982
|
-
? React__default['default'].createElement(
|
|
28983
|
-
React__default['default'].Fragment,
|
|
28984
|
-
null,
|
|
28985
|
-
React__default['default'].createElement(
|
|
28986
|
-
'div',
|
|
28987
|
-
{ className: 'main-booker-form__grid' },
|
|
28988
|
-
settings.travellers.mainBookerFormFields.map(function (field, fIndex) {
|
|
28989
|
-
return React__default['default'].createElement(
|
|
28990
|
-
'div',
|
|
28991
|
-
{ key: fIndex, className: 'control control--'.concat(field.type) },
|
|
28992
|
-
getControl(field.type, {}, field.type)
|
|
28993
|
-
);
|
|
28994
|
-
})
|
|
28995
|
-
)
|
|
28996
|
-
)
|
|
28997
|
-
: React__default['default'].createElement(
|
|
28998
|
-
React__default['default'].Fragment,
|
|
28999
|
-
null,
|
|
29000
|
-
React__default['default'].createElement(
|
|
29001
|
-
'div',
|
|
29002
|
-
{ className: 'form__twocolumn' },
|
|
29003
|
-
React__default['default'].createElement(
|
|
29004
|
-
'div',
|
|
29005
|
-
{ className: 'form__twocolumn-column' },
|
|
29006
|
-
React__default['default'].createElement(
|
|
29007
|
-
'div',
|
|
29008
|
-
{ className: 'form__row' },
|
|
29009
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29010
|
-
hasError: hasVisibleError('street'),
|
|
29011
|
-
extraClassName: 'form__group--50 form__group--sm-60',
|
|
29012
|
-
label: translations.TRAVELERS_FORM.STREET,
|
|
29013
|
-
required: true,
|
|
29014
|
-
name: 'street',
|
|
29015
|
-
onChange: formik$1.handleChange,
|
|
29016
|
-
onBlur: formik$1.handleBlur,
|
|
29017
|
-
value: formik$1.values.street
|
|
29018
|
-
}),
|
|
29019
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29020
|
-
hasError: hasVisibleError('houseNumber'),
|
|
29021
|
-
extraClassName: 'form__group--30 form__group--sm-20',
|
|
29022
|
-
label: translations.TRAVELERS_FORM.HOUSE_NUMBER,
|
|
29023
|
-
required: true,
|
|
29024
|
-
name: 'houseNumber',
|
|
29025
|
-
onChange: formik$1.handleChange,
|
|
29026
|
-
onBlur: formik$1.handleBlur,
|
|
29027
|
-
value: formik$1.values.houseNumber
|
|
29028
|
-
}),
|
|
29029
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29030
|
-
hasError: hasVisibleError('box'),
|
|
29031
|
-
extraClassName: 'form__group--20',
|
|
29032
|
-
label: translations.TRAVELERS_FORM.POST_BOX,
|
|
29033
|
-
name: 'box',
|
|
29034
|
-
onChange: formik$1.handleChange,
|
|
29035
|
-
onBlur: formik$1.handleBlur,
|
|
29036
|
-
value: formik$1.values.box
|
|
29037
|
-
})
|
|
29038
|
-
)
|
|
29039
|
-
),
|
|
29040
|
-
React__default['default'].createElement(
|
|
29041
|
-
'div',
|
|
29042
|
-
{ className: 'form__twocolumn-column' },
|
|
29043
|
-
React__default['default'].createElement(
|
|
29044
|
-
'div',
|
|
29045
|
-
{ className: 'form__row' },
|
|
29046
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29047
|
-
hasError: hasVisibleError('zipCode'),
|
|
29048
|
-
extraClassName: 'form__group--40 form__group--sm-20',
|
|
29049
|
-
label: translations.TRAVELERS_FORM.ZIPCODE,
|
|
29050
|
-
required: true,
|
|
29051
|
-
name: 'zipCode',
|
|
29052
|
-
onChange: formik$1.handleChange,
|
|
29053
|
-
onBlur: formik$1.handleBlur,
|
|
29054
|
-
value: formik$1.values.zipCode
|
|
29055
|
-
}),
|
|
29056
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29057
|
-
hasError: hasVisibleError('place'),
|
|
29058
|
-
extraClassName: 'form__group--60 form__group--sm-40',
|
|
29059
|
-
label: translations.TRAVELERS_FORM.CITY,
|
|
29060
|
-
required: true,
|
|
29061
|
-
name: 'place',
|
|
29062
|
-
onChange: formik$1.handleChange,
|
|
29063
|
-
onBlur: formik$1.handleBlur,
|
|
29064
|
-
value: formik$1.values.place
|
|
29065
|
-
}),
|
|
29066
|
-
React__default['default'].createElement(LabeledSelect, {
|
|
29067
|
-
hasError: hasVisibleError('country'),
|
|
29068
|
-
extraClassName: 'form__group--sm-40',
|
|
29069
|
-
label: translations.TRAVELERS_FORM.COUNTRY,
|
|
29070
|
-
required: true,
|
|
29071
|
-
name: 'country',
|
|
29072
|
-
onChange: formik$1.handleChange,
|
|
29073
|
-
onBlur: formik$1.handleBlur,
|
|
29074
|
-
value: formik$1.values.country,
|
|
29075
|
-
options: __spreadArray(
|
|
29076
|
-
[
|
|
29077
|
-
{
|
|
29078
|
-
key: 'empty',
|
|
29079
|
-
value: undefined,
|
|
29080
|
-
label: translations.TRAVELERS_FORM.SELECT_COUNTRY
|
|
29081
|
-
}
|
|
29082
|
-
],
|
|
29083
|
-
showAllCountries
|
|
29084
|
-
? (_j =
|
|
29085
|
-
countries === null || countries === void 0
|
|
29086
|
-
? void 0
|
|
29087
|
-
: countries.map(function (country) {
|
|
29088
|
-
return {
|
|
29089
|
-
key: country.iso2,
|
|
29090
|
-
value: country.iso2,
|
|
29091
|
-
label: country.name
|
|
29092
|
-
};
|
|
29093
|
-
})) !== null && _j !== void 0
|
|
29094
|
-
? _j
|
|
29095
|
-
: []
|
|
29096
|
-
: [
|
|
29097
|
-
{
|
|
29098
|
-
key: 'be',
|
|
29099
|
-
value: 'be',
|
|
29100
|
-
label: translations.TRAVELERS_FORM.COUNTRIES.BELGIUM
|
|
29101
|
-
},
|
|
29102
|
-
{
|
|
29103
|
-
key: 'nl',
|
|
29104
|
-
value: 'nl',
|
|
29105
|
-
label: translations.TRAVELERS_FORM.COUNTRIES.NETHERLANDS
|
|
29106
|
-
},
|
|
29107
|
-
{
|
|
29108
|
-
key: 'fr',
|
|
29109
|
-
value: 'fr',
|
|
29110
|
-
label: translations.TRAVELERS_FORM.COUNTRIES.FRANCE
|
|
29111
|
-
}
|
|
29112
|
-
],
|
|
29113
|
-
true
|
|
29114
|
-
)
|
|
29115
|
-
})
|
|
29116
|
-
)
|
|
29117
|
-
)
|
|
29118
|
-
),
|
|
29119
|
-
React__default['default'].createElement(
|
|
29120
|
-
'div',
|
|
29121
|
-
{ className: 'form__row' },
|
|
29122
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29123
|
-
hasError: hasVisibleError('phone'),
|
|
29124
|
-
extraClassName: 'form__group--md-33',
|
|
29125
|
-
label: translations.TRAVELERS_FORM.PHONE,
|
|
29126
|
-
required: true,
|
|
29127
|
-
name: 'phone',
|
|
29128
|
-
onChange: formik$1.handleChange,
|
|
29129
|
-
onBlur: formik$1.handleBlur,
|
|
29130
|
-
value: formik$1.values.phone
|
|
29131
|
-
}),
|
|
29132
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29133
|
-
type: 'email',
|
|
29134
|
-
hasError: hasVisibleError('email'),
|
|
29135
|
-
extraClassName: 'form__group--md-33',
|
|
29136
|
-
label: translations.TRAVELERS_FORM.EMAIL,
|
|
29137
|
-
required: true,
|
|
29138
|
-
name: 'email',
|
|
29139
|
-
onChange: formik$1.handleChange,
|
|
29140
|
-
onBlur: formik$1.handleBlur,
|
|
29141
|
-
value: formik$1.values.email
|
|
29142
|
-
}),
|
|
29143
|
-
React__default['default'].createElement(LabeledInput, {
|
|
29144
|
-
type: 'email',
|
|
29145
|
-
hasError: hasVisibleError('emailConfirmation'),
|
|
29146
|
-
extraClassName: 'form__group--md-33',
|
|
29147
|
-
label: translations.TRAVELERS_FORM.REPEAT_EMAIL,
|
|
29148
|
-
required: true,
|
|
29149
|
-
name: 'emailConfirmation',
|
|
29150
|
-
onChange: formik$1.handleChange,
|
|
29151
|
-
onBlur: formik$1.handleBlur,
|
|
29152
|
-
value: formik$1.values.emailConfirmation
|
|
29153
|
-
})
|
|
29154
|
-
)
|
|
29155
|
-
)
|
|
29156
|
-
)
|
|
29157
|
-
)
|
|
29158
|
-
: React__default['default'].createElement(
|
|
29159
|
-
'div',
|
|
29160
|
-
{ className: 'form__region' },
|
|
29161
28870
|
React__default['default'].createElement(
|
|
29162
28871
|
'div',
|
|
29163
28872
|
{ className: 'form__row' },
|
|
@@ -29167,81 +28876,125 @@ var TravelersForm = function () {
|
|
|
29167
28876
|
label: translations.TRAVELERS_FORM.PHONE,
|
|
29168
28877
|
required: true,
|
|
29169
28878
|
name: 'phone',
|
|
29170
|
-
onChange: formik
|
|
29171
|
-
onBlur: formik
|
|
29172
|
-
value: formik
|
|
28879
|
+
onChange: formik.handleChange,
|
|
28880
|
+
onBlur: formik.handleBlur,
|
|
28881
|
+
value: formik.values.phone
|
|
28882
|
+
}),
|
|
28883
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28884
|
+
type: 'email',
|
|
28885
|
+
hasError: hasVisibleError('email'),
|
|
28886
|
+
extraClassName: 'form__group--md-33',
|
|
28887
|
+
label: translations.TRAVELERS_FORM.EMAIL,
|
|
28888
|
+
required: true,
|
|
28889
|
+
name: 'email',
|
|
28890
|
+
onChange: formik.handleChange,
|
|
28891
|
+
onBlur: formik.handleBlur,
|
|
28892
|
+
value: formik.values.email
|
|
28893
|
+
}),
|
|
28894
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28895
|
+
type: 'email',
|
|
28896
|
+
hasError: hasVisibleError('emailConfirmation'),
|
|
28897
|
+
extraClassName: 'form__group--md-33',
|
|
28898
|
+
label: translations.TRAVELERS_FORM.REPEAT_EMAIL,
|
|
28899
|
+
required: true,
|
|
28900
|
+
name: 'emailConfirmation',
|
|
28901
|
+
onChange: formik.handleChange,
|
|
28902
|
+
onBlur: formik.handleBlur,
|
|
28903
|
+
value: formik.values.emailConfirmation
|
|
29173
28904
|
})
|
|
29174
28905
|
)
|
|
29175
|
-
)
|
|
29176
|
-
|
|
28906
|
+
)
|
|
28907
|
+
)
|
|
28908
|
+
: !useCompactForm
|
|
28909
|
+
? React__default['default'].createElement(
|
|
28910
|
+
'div',
|
|
28911
|
+
{ className: 'form__region' },
|
|
28912
|
+
React__default['default'].createElement(
|
|
28913
|
+
'div',
|
|
28914
|
+
{ className: 'form__row' },
|
|
28915
|
+
React__default['default'].createElement(LabeledInput, {
|
|
28916
|
+
hasError: hasVisibleError('phone'),
|
|
28917
|
+
extraClassName: 'form__group--md-33',
|
|
28918
|
+
label: translations.TRAVELERS_FORM.PHONE,
|
|
28919
|
+
required: true,
|
|
28920
|
+
name: 'phone',
|
|
28921
|
+
onChange: formik.handleChange,
|
|
28922
|
+
onBlur: formik.handleBlur,
|
|
28923
|
+
value: formik.values.phone
|
|
28924
|
+
})
|
|
28925
|
+
)
|
|
28926
|
+
)
|
|
28927
|
+
: null,
|
|
28928
|
+
!useCompactForm &&
|
|
28929
|
+
showAgentSelection &&
|
|
28930
|
+
React__default['default'].createElement(
|
|
28931
|
+
'div',
|
|
28932
|
+
{ className: 'form__region' },
|
|
28933
|
+
React__default['default'].createElement(
|
|
28934
|
+
'div',
|
|
28935
|
+
{ className: 'form__region-header' },
|
|
28936
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.TRAVELERS_FORM.BOOK_WITH_AGENT),
|
|
28937
|
+
React__default['default'].createElement(
|
|
28938
|
+
'div',
|
|
28939
|
+
{ className: 'checkbox', id: 'cbxChooseOffice' },
|
|
29177
28940
|
React__default['default'].createElement(
|
|
29178
|
-
'
|
|
29179
|
-
{ className: '
|
|
29180
|
-
React__default['default'].createElement(
|
|
29181
|
-
'
|
|
29182
|
-
|
|
29183
|
-
|
|
29184
|
-
|
|
29185
|
-
|
|
29186
|
-
|
|
29187
|
-
|
|
29188
|
-
|
|
29189
|
-
|
|
29190
|
-
React__default['default'].createElement('input', {
|
|
29191
|
-
type: 'checkbox',
|
|
29192
|
-
name: 'booking--mainbooker',
|
|
29193
|
-
defaultChecked: showAgents,
|
|
29194
|
-
onClick: function () {
|
|
29195
|
-
return toggleAgent(!showAgents);
|
|
29196
|
-
},
|
|
29197
|
-
className: 'checkbox__input'
|
|
29198
|
-
}),
|
|
29199
|
-
translations.TRAVELERS_FORM.CHOOSE_OFFICE
|
|
29200
|
-
)
|
|
29201
|
-
)
|
|
29202
|
-
),
|
|
29203
|
-
showAgents &&
|
|
29204
|
-
React__default['default'].createElement(
|
|
29205
|
-
'div',
|
|
29206
|
-
{ className: 'form__row form__row--choose-office' },
|
|
29207
|
-
React__default['default'].createElement(
|
|
29208
|
-
'div',
|
|
29209
|
-
{ className: buildClassName(['form__group', 'form__group--icon', hasVisibleError('travelAgentId') && 'form__group--error']) },
|
|
29210
|
-
React__default['default'].createElement(TypeAheadInput, {
|
|
29211
|
-
value: formik$1.values.travelAgentName,
|
|
29212
|
-
options: filteredAgents,
|
|
29213
|
-
onChange: handleAgentChange,
|
|
29214
|
-
onSelect: handleAgentSelect,
|
|
29215
|
-
onClear: handleAgentClear,
|
|
29216
|
-
name: 'travelAgentName',
|
|
29217
|
-
placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER
|
|
29218
|
-
})
|
|
29219
|
-
)
|
|
29220
|
-
)
|
|
28941
|
+
'label',
|
|
28942
|
+
{ className: 'checkbox__label' },
|
|
28943
|
+
React__default['default'].createElement('input', {
|
|
28944
|
+
type: 'checkbox',
|
|
28945
|
+
name: 'booking--mainbooker',
|
|
28946
|
+
checked: showAgents,
|
|
28947
|
+
onChange: function () {
|
|
28948
|
+
return toggleAgent(!showAgents);
|
|
28949
|
+
},
|
|
28950
|
+
className: 'checkbox__input'
|
|
28951
|
+
}),
|
|
28952
|
+
translations.TRAVELERS_FORM.CHOOSE_OFFICE
|
|
29221
28953
|
)
|
|
28954
|
+
)
|
|
29222
28955
|
),
|
|
29223
|
-
|
|
28956
|
+
showAgents &&
|
|
29224
28957
|
React__default['default'].createElement(
|
|
29225
28958
|
'div',
|
|
29226
|
-
{ className: '
|
|
28959
|
+
{ className: 'form__row form__row--choose-office' },
|
|
29227
28960
|
React__default['default'].createElement(
|
|
29228
28961
|
'div',
|
|
29229
|
-
{ className: '
|
|
29230
|
-
React__default['default'].createElement(
|
|
29231
|
-
|
|
29232
|
-
|
|
29233
|
-
|
|
29234
|
-
|
|
29235
|
-
|
|
29236
|
-
|
|
29237
|
-
|
|
29238
|
-
|
|
29239
|
-
})
|
|
29240
|
-
)
|
|
29241
|
-
)
|
|
28962
|
+
{ className: buildClassName(['form__group', 'form__group--icon', hasVisibleError('travelAgentId') && 'form__group--error']) },
|
|
28963
|
+
React__default['default'].createElement(TypeAheadInput, {
|
|
28964
|
+
value: formik.values.travelAgentName,
|
|
28965
|
+
options: filteredAgents,
|
|
28966
|
+
onChange: handleAgentChange,
|
|
28967
|
+
onSelect: handleAgentSelect,
|
|
28968
|
+
onClear: handleAgentClear,
|
|
28969
|
+
name: 'travelAgentName',
|
|
28970
|
+
placeholder: translations.TRAVELERS_FORM.CHOOSE_AGENT_PLACEHOLDER
|
|
28971
|
+
})
|
|
29242
28972
|
)
|
|
29243
28973
|
)
|
|
29244
|
-
)
|
|
28974
|
+
)
|
|
28975
|
+
),
|
|
28976
|
+
!useCompactForm &&
|
|
28977
|
+
errorKeys.length > 0 &&
|
|
28978
|
+
React__default['default'].createElement(
|
|
28979
|
+
'div',
|
|
28980
|
+
{ className: 'form__region form__region--errors' },
|
|
28981
|
+
React__default['default'].createElement(
|
|
28982
|
+
'div',
|
|
28983
|
+
{ className: 'form__row' },
|
|
28984
|
+
React__default['default'].createElement(
|
|
28985
|
+
'div',
|
|
28986
|
+
{ className: 'form__group' },
|
|
28987
|
+
React__default['default'].createElement('p', { className: 'form__error-heading' }, translations.TRAVELERS_FORM.VALIDATION_MESSAGE, ':'),
|
|
28988
|
+
React__default['default'].createElement(
|
|
28989
|
+
'ul',
|
|
28990
|
+
{ className: 'list' },
|
|
28991
|
+
errorKeys.map(function (key) {
|
|
28992
|
+
return React__default['default'].createElement('li', { key: key }, lodash.get(flatErrors, key));
|
|
28993
|
+
})
|
|
28994
|
+
)
|
|
28995
|
+
)
|
|
28996
|
+
)
|
|
28997
|
+
),
|
|
29245
28998
|
travelersFirstStep &&
|
|
29246
28999
|
React__default['default'].createElement(
|
|
29247
29000
|
'div',
|
|
@@ -29255,14 +29008,204 @@ var TravelersForm = function () {
|
|
|
29255
29008
|
React__default['default'].createElement(
|
|
29256
29009
|
'div',
|
|
29257
29010
|
{ className: 'booking__navigator' },
|
|
29258
|
-
|
|
29011
|
+
renderPreviousButton === null || renderPreviousButton === void 0 ? void 0 : renderPreviousButton(),
|
|
29012
|
+
React__default['default'].createElement(
|
|
29013
|
+
'button',
|
|
29014
|
+
{ type: 'submit', title: translations.STEPS.NEXT, className: 'cta' + (isUnavailable ? ' cta--disabled' : '') },
|
|
29015
|
+
translations.STEPS.NEXT
|
|
29016
|
+
)
|
|
29017
|
+
)
|
|
29018
|
+
);
|
|
29019
|
+
};
|
|
29020
|
+
|
|
29021
|
+
var TravelersForm = function () {
|
|
29022
|
+
var _a, _b;
|
|
29023
|
+
var dispatch = useAppDispatch();
|
|
29024
|
+
var settings = React.useContext(SettingsContext);
|
|
29025
|
+
var navigate = settings.skipRouter ? function () {} : reactRouter.useNavigate();
|
|
29026
|
+
var bookingQueryString = reactRedux.useSelector(selectBookingQueryString);
|
|
29027
|
+
var startDate = reactRedux.useSelector(selectStartDate);
|
|
29028
|
+
var formRooms = reactRedux.useSelector(selectFormRooms);
|
|
29029
|
+
var bookingType = reactRedux.useSelector(selectBookingType);
|
|
29030
|
+
var agents = reactRedux.useSelector(selectAgents);
|
|
29031
|
+
var agentAdressId = reactRedux.useSelector(selectAgentAdressId);
|
|
29032
|
+
var translations = reactRedux.useSelector(selectTranslations);
|
|
29033
|
+
var travelersFirstStep = reactRedux.useSelector(selectTravelersFirstStep);
|
|
29034
|
+
var isUnavailable = reactRedux.useSelector(selectIsUnavailable);
|
|
29035
|
+
var bookingAttributes = reactRedux.useSelector(selectBookingAttributes);
|
|
29036
|
+
var isFetching = reactRedux.useSelector(selectIsFetching);
|
|
29037
|
+
var hasMounted = reactRedux.useSelector(selectHasMounted);
|
|
29038
|
+
var countries = reactRedux.useSelector(selectCountries);
|
|
29039
|
+
var useCompactForm = !!settings.travellers.compactForm && !!settings.agentAdressId;
|
|
29040
|
+
var showAllCountries = !!settings.travellers.showAllCountries;
|
|
29041
|
+
var initialValues =
|
|
29042
|
+
(_a = reactRedux.useSelector(selectTravelersFormValues)) !== null && _a !== void 0
|
|
29043
|
+
? _a
|
|
29044
|
+
: createInitialValuesFromRooms(formRooms, startDate, agentAdressId, translations.TRAVELERS_FORM.PERSON, useCompactForm);
|
|
29045
|
+
var _c = React.useState(!settings.agentAdressId && !settings.hideAgentSelection),
|
|
29046
|
+
showAgentSelection = _c[0],
|
|
29047
|
+
setShowAgentSelection = _c[1];
|
|
29048
|
+
var formik$1 = formik.useFormik({
|
|
29049
|
+
initialValues: initialValues,
|
|
29050
|
+
validate: useCompactForm
|
|
29051
|
+
? function () {}
|
|
29052
|
+
: function (values) {
|
|
29053
|
+
return validateForm(
|
|
29054
|
+
values,
|
|
29055
|
+
settings.agentRequired,
|
|
29056
|
+
bookingType,
|
|
29057
|
+
translations,
|
|
29058
|
+
settings.travellers.formFields,
|
|
29059
|
+
settings.travellers.mainBookerFormFields
|
|
29060
|
+
);
|
|
29061
|
+
},
|
|
29062
|
+
onSubmit: function (values) {
|
|
29063
|
+
dispatch(setFormValues(values));
|
|
29064
|
+
if (useCompactForm) {
|
|
29065
|
+
dispatch(fetchPriceDetails());
|
|
29066
|
+
if (settings.skipRouter) dispatch(setCurrentStep$1(SUMMARY_STEP));
|
|
29067
|
+
else
|
|
29068
|
+
navigate(
|
|
29069
|
+
''
|
|
29070
|
+
.concat(!settings.skipBasePathInRouting ? settings.basePath : '')
|
|
29071
|
+
.concat(settings.summary.pathSuffix, '?')
|
|
29072
|
+
.concat(bookingQueryString)
|
|
29073
|
+
);
|
|
29074
|
+
return;
|
|
29075
|
+
}
|
|
29076
|
+
dispatch(fetchPackage());
|
|
29077
|
+
if (settings.skipRouter) dispatch(setCurrentStep$1(travelersFirstStep ? FLIGHT_OPTIONS_FORM_STEP : SUMMARY_STEP));
|
|
29078
|
+
else
|
|
29079
|
+
navigate(
|
|
29080
|
+
''
|
|
29081
|
+
.concat(!settings.skipBasePathInRouting ? settings.basePath : '')
|
|
29082
|
+
.concat(travelersFirstStep ? settings.flightOptions.pathSuffix : settings.summary.pathSuffix, '?')
|
|
29083
|
+
.concat(bookingQueryString)
|
|
29084
|
+
);
|
|
29085
|
+
}
|
|
29086
|
+
});
|
|
29087
|
+
React.useEffect(
|
|
29088
|
+
function () {
|
|
29089
|
+
dispatch(fetchPriceDetails());
|
|
29090
|
+
},
|
|
29091
|
+
[dispatch]
|
|
29092
|
+
);
|
|
29093
|
+
React.useEffect(
|
|
29094
|
+
function () {
|
|
29095
|
+
var _a;
|
|
29096
|
+
if (
|
|
29097
|
+
!((_a = bookingAttributes === null || bookingAttributes === void 0 ? void 0 : bookingAttributes.rooms) === null || _a === void 0
|
|
29098
|
+
? void 0
|
|
29099
|
+
: _a.length) ||
|
|
29100
|
+
isFetching
|
|
29101
|
+
)
|
|
29102
|
+
return;
|
|
29103
|
+
if (!hasMounted) {
|
|
29104
|
+
dispatch(setHasMounted(true));
|
|
29105
|
+
return;
|
|
29106
|
+
}
|
|
29107
|
+
var fetchAll = function () {
|
|
29108
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
29109
|
+
return __generator(this, function (_a) {
|
|
29110
|
+
switch (_a.label) {
|
|
29111
|
+
case 0:
|
|
29112
|
+
dispatch(setIsFetching(true));
|
|
29113
|
+
_a.label = 1;
|
|
29114
|
+
case 1:
|
|
29115
|
+
_a.trys.push([1, , 4, 5]);
|
|
29116
|
+
return [4 /*yield*/, dispatch(fetchPackage())];
|
|
29117
|
+
case 2:
|
|
29118
|
+
_a.sent();
|
|
29119
|
+
return [4 /*yield*/, dispatch(fetchPriceDetails())];
|
|
29120
|
+
case 3:
|
|
29121
|
+
_a.sent();
|
|
29122
|
+
return [3 /*break*/, 5];
|
|
29123
|
+
case 4:
|
|
29124
|
+
dispatch(setIsFetching(false));
|
|
29125
|
+
return [7 /*endfinally*/];
|
|
29126
|
+
case 5:
|
|
29127
|
+
return [2 /*return*/];
|
|
29128
|
+
}
|
|
29129
|
+
});
|
|
29130
|
+
});
|
|
29131
|
+
};
|
|
29132
|
+
fetchAll();
|
|
29133
|
+
},
|
|
29134
|
+
[bookingAttributes === null || bookingAttributes === void 0 ? void 0 : bookingAttributes.rooms, dispatch, hasMounted, isFetching]
|
|
29135
|
+
);
|
|
29136
|
+
React.useEffect(
|
|
29137
|
+
function () {
|
|
29138
|
+
if (settings.skipRouter || !travelersFirstStep) return;
|
|
29139
|
+
var params = new URLSearchParams(bookingQueryString);
|
|
29140
|
+
params.delete('rooms');
|
|
29141
|
+
var roomsString = formik$1.values.rooms
|
|
29142
|
+
.map(function (room) {
|
|
29143
|
+
var _a;
|
|
29144
|
+
var adults = room.adults ? room.adults.length : 0;
|
|
29145
|
+
var childAges = ((_a = room.children) === null || _a === void 0 ? void 0 : _a.length)
|
|
29146
|
+
? room.children
|
|
29147
|
+
.map(function (child) {
|
|
29148
|
+
return child.age;
|
|
29149
|
+
})
|
|
29150
|
+
.join(',')
|
|
29151
|
+
: '';
|
|
29152
|
+
return 'adults:'.concat(adults, ',childAges:(').concat(childAges, ')');
|
|
29153
|
+
})
|
|
29154
|
+
.map(function (room) {
|
|
29155
|
+
return '('.concat(room, ')');
|
|
29156
|
+
})
|
|
29157
|
+
.join(',');
|
|
29158
|
+
var nextQuery = ''
|
|
29159
|
+
.concat(params.toString())
|
|
29160
|
+
.concat(params.toString() ? '&' : '', 'rooms=(')
|
|
29161
|
+
.concat(roomsString, ')');
|
|
29162
|
+
navigate(''.concat(window.location.pathname, '?').concat(nextQuery), { replace: true });
|
|
29163
|
+
},
|
|
29164
|
+
[formik$1.values.rooms, bookingQueryString, navigate, settings.skipRouter, travelersFirstStep]
|
|
29165
|
+
);
|
|
29166
|
+
React.useEffect(
|
|
29167
|
+
function () {
|
|
29168
|
+
if (!agents || !settings.affiliateSlug) return;
|
|
29169
|
+
var agent = agents.find(function (x) {
|
|
29170
|
+
return x.affiliateSlug && x.affiliateSlug === settings.affiliateSlug;
|
|
29171
|
+
});
|
|
29172
|
+
if (!agent) return;
|
|
29173
|
+
var formValues = produce__default['default'](formik$1.values, function (values) {
|
|
29174
|
+
values.travelAgentId = Number(agent.id);
|
|
29175
|
+
values.travelAgentName = agent.name;
|
|
29176
|
+
});
|
|
29177
|
+
formik$1.setValues(formValues, false);
|
|
29178
|
+
dispatch(setFormValues(formValues));
|
|
29179
|
+
setShowAgentSelection(false);
|
|
29180
|
+
},
|
|
29181
|
+
[agents, settings.affiliateSlug]
|
|
29182
|
+
);
|
|
29183
|
+
return React__default['default'].createElement(SharedTravelersForm, {
|
|
29184
|
+
formik: formik$1,
|
|
29185
|
+
translations: translations,
|
|
29186
|
+
travellersSettings: settings.travellers,
|
|
29187
|
+
countries: countries,
|
|
29188
|
+
agents: agents,
|
|
29189
|
+
bookingType: bookingType,
|
|
29190
|
+
agentAdressId: agentAdressId,
|
|
29191
|
+
travelersFirstStep: travelersFirstStep,
|
|
29192
|
+
isUnavailable: isUnavailable,
|
|
29193
|
+
useCompactForm: useCompactForm,
|
|
29194
|
+
showAllCountries: showAllCountries,
|
|
29195
|
+
showAgentSelection: showAgentSelection,
|
|
29196
|
+
initialShowAgents: (_b = settings.agentRequired) !== null && _b !== void 0 ? _b : false,
|
|
29197
|
+
onBookingTypeChange: function (nextBookingType) {
|
|
29198
|
+
return dispatch(setBookingType(nextBookingType));
|
|
29199
|
+
},
|
|
29200
|
+
renderPreviousButton: function () {
|
|
29201
|
+
return !travelersFirstStep && settings.skipRouter
|
|
29259
29202
|
? React__default['default'].createElement(
|
|
29260
29203
|
'button',
|
|
29261
29204
|
{
|
|
29262
29205
|
type: 'button',
|
|
29263
29206
|
title: translations.STEPS.PREVIOUS,
|
|
29264
29207
|
onClick: function () {
|
|
29265
|
-
return
|
|
29208
|
+
return dispatch(setCurrentStep$1(OPTIONS_FORM_STEP));
|
|
29266
29209
|
},
|
|
29267
29210
|
className: 'cta cta--secondary'
|
|
29268
29211
|
},
|
|
@@ -29281,14 +29224,9 @@ var TravelersForm = function () {
|
|
|
29281
29224
|
},
|
|
29282
29225
|
translations.STEPS.PREVIOUS
|
|
29283
29226
|
)
|
|
29284
|
-
: null
|
|
29285
|
-
|
|
29286
|
-
|
|
29287
|
-
{ type: 'submit', title: translations.STEPS.NEXT, className: 'cta' + (isUnavailable ? ' cta--disabled' : '') },
|
|
29288
|
-
translations.STEPS.NEXT
|
|
29289
|
-
)
|
|
29290
|
-
)
|
|
29291
|
-
);
|
|
29227
|
+
: null;
|
|
29228
|
+
}
|
|
29229
|
+
});
|
|
29292
29230
|
};
|
|
29293
29231
|
|
|
29294
29232
|
var Booking = function (_a) {
|
|
@@ -29374,7 +29312,7 @@ var Booking = function (_a) {
|
|
|
29374
29312
|
window.scrollTo(0, 0);
|
|
29375
29313
|
}
|
|
29376
29314
|
if (!lodash.isNil(bookingNumber)) {
|
|
29377
|
-
dispatch(setBookingNumber(bookingNumber));
|
|
29315
|
+
dispatch(setBookingNumber$1(bookingNumber));
|
|
29378
29316
|
navigate(
|
|
29379
29317
|
''
|
|
29380
29318
|
.concat(!skipBasePathInRouting ? basePath : '')
|
|
@@ -29405,7 +29343,7 @@ var Booking = function (_a) {
|
|
|
29405
29343
|
console.error('Failure when setting booking attributes', startDate, endDate, catalogueId, rooms);
|
|
29406
29344
|
}
|
|
29407
29345
|
},
|
|
29408
|
-
[location.search, setBookingAttributes, setBookingNumber, includeFlights]
|
|
29346
|
+
[location.search, setBookingAttributes, setBookingNumber$1, includeFlights]
|
|
29409
29347
|
);
|
|
29410
29348
|
React.useEffect(
|
|
29411
29349
|
function () {
|
|
@@ -33667,7 +33605,8 @@ var initialState$1 = {
|
|
|
33667
33605
|
selectedExcursionSearchResult: null,
|
|
33668
33606
|
confirmedExcursionsByDay: {},
|
|
33669
33607
|
bookPackagingEntry: false,
|
|
33670
|
-
currentStep: 0
|
|
33608
|
+
currentStep: 0,
|
|
33609
|
+
bookingNumber: undefined
|
|
33671
33610
|
};
|
|
33672
33611
|
var searchResultsSlice = toolkit.createSlice({
|
|
33673
33612
|
name: 'searchResults',
|
|
@@ -33854,6 +33793,9 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33854
33793
|
},
|
|
33855
33794
|
setCurrentStep: function (state, action) {
|
|
33856
33795
|
state.currentStep = action.payload;
|
|
33796
|
+
},
|
|
33797
|
+
setBookingNumber: function (state, action) {
|
|
33798
|
+
state.bookingNumber = action.payload;
|
|
33857
33799
|
}
|
|
33858
33800
|
}
|
|
33859
33801
|
});
|
|
@@ -33898,8 +33840,9 @@ var setExcursionSearchParams = _a.setExcursionSearchParams,
|
|
|
33898
33840
|
confirmExcursionForDay = _a.confirmExcursionForDay,
|
|
33899
33841
|
removeConfirmedExcursionForDay = _a.removeConfirmedExcursionForDay;
|
|
33900
33842
|
_a.clearConfirmedExcursionsForDay;
|
|
33901
|
-
var setBookPackagingEntry = _a.setBookPackagingEntry
|
|
33902
|
-
_a.setCurrentStep
|
|
33843
|
+
var setBookPackagingEntry = _a.setBookPackagingEntry,
|
|
33844
|
+
setCurrentStep = _a.setCurrentStep,
|
|
33845
|
+
setBookingNumber = _a.setBookingNumber;
|
|
33903
33846
|
var searchResultsReducer = searchResultsSlice.reducer;
|
|
33904
33847
|
|
|
33905
33848
|
var ItemPicker = function (_a) {
|
|
@@ -42453,15 +42396,6 @@ var PackageingFlightsFlyIn = function (_a) {
|
|
|
42453
42396
|
React__default['default'].createElement(
|
|
42454
42397
|
'div',
|
|
42455
42398
|
{ className: 'search__result-row' },
|
|
42456
|
-
React__default['default'].createElement(
|
|
42457
|
-
'span',
|
|
42458
|
-
{ className: 'search__result-row-text' },
|
|
42459
|
-
(uniqueOutwardFlights === null || uniqueOutwardFlights === void 0 ? void 0 : uniqueOutwardFlights.length) && uniqueOutwardFlights.length,
|
|
42460
|
-
'\u00A0',
|
|
42461
|
-
translations.FLIGHTS_FORM.FLIGHTS_FOUND_2,
|
|
42462
|
-
'\u00A0',
|
|
42463
|
-
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3
|
|
42464
|
-
),
|
|
42465
42399
|
React__default['default'].createElement(
|
|
42466
42400
|
'div',
|
|
42467
42401
|
{
|
|
@@ -42473,6 +42407,15 @@ var PackageingFlightsFlyIn = function (_a) {
|
|
|
42473
42407
|
React__default['default'].createElement(Icon, { name: 'ui-filter', className: 'mobile-filters-button__icon', height: 16 }),
|
|
42474
42408
|
translations.SRP.FILTERS
|
|
42475
42409
|
),
|
|
42410
|
+
React__default['default'].createElement(
|
|
42411
|
+
'span',
|
|
42412
|
+
{ className: 'search__result-row-text' },
|
|
42413
|
+
(uniqueOutwardFlights === null || uniqueOutwardFlights === void 0 ? void 0 : uniqueOutwardFlights.length) && uniqueOutwardFlights.length,
|
|
42414
|
+
'\u00A0',
|
|
42415
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_2,
|
|
42416
|
+
'\u00A0',
|
|
42417
|
+
translations.FLIGHTS_FORM.FLIGHTS_FOUND_3
|
|
42418
|
+
),
|
|
42476
42419
|
sortByTypes &&
|
|
42477
42420
|
sortByTypes.length > 0 &&
|
|
42478
42421
|
React__default['default'].createElement(
|
|
@@ -43215,13 +43158,9 @@ var FlyIn = function (_a) {
|
|
|
43215
43158
|
className: 'flyin '
|
|
43216
43159
|
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
43217
43160
|
.concat(className, ' ')
|
|
43218
|
-
.concat(
|
|
43219
|
-
|
|
43220
|
-
|
|
43221
|
-
: '',
|
|
43222
|
-
' '
|
|
43223
|
-
)
|
|
43224
|
-
.concat(flyInType === 'excursion-results' || flyInType === 'excursion-details' ? 'flyin--medium' : '')
|
|
43161
|
+
.concat(isPackageEditFlow || flyInType === 'acco-results' ? 'flyin--large' : '', ' ')
|
|
43162
|
+
.concat(flyInType === 'excursion-results' || flyInType === 'excursion-details' ? 'flyin--medium' : '', '\n ')
|
|
43163
|
+
.concat(flyInType === 'flight-outward-results' || flyInType === 'flight-return-results' ? 'flyin--flight' : '')
|
|
43225
43164
|
},
|
|
43226
43165
|
React__default['default'].createElement(
|
|
43227
43166
|
'div',
|
|
@@ -43300,6 +43239,17 @@ var FlyIn = function (_a) {
|
|
|
43300
43239
|
React__default['default'].createElement(
|
|
43301
43240
|
'div',
|
|
43302
43241
|
{ className: 'search__result-row' },
|
|
43242
|
+
React__default['default'].createElement(
|
|
43243
|
+
'div',
|
|
43244
|
+
{
|
|
43245
|
+
className: 'cta cta--filter',
|
|
43246
|
+
onClick: function () {
|
|
43247
|
+
return toggleFilters && toggleFilters();
|
|
43248
|
+
}
|
|
43249
|
+
},
|
|
43250
|
+
React__default['default'].createElement(Icon, { name: 'ui-filter', className: 'mobile-filters-button__icon', height: 16 }),
|
|
43251
|
+
translations.SRP.FILTERS
|
|
43252
|
+
),
|
|
43303
43253
|
React__default['default'].createElement(
|
|
43304
43254
|
'span',
|
|
43305
43255
|
{ className: 'search__result-row-text' },
|
|
@@ -43313,17 +43263,6 @@ var FlyIn = function (_a) {
|
|
|
43313
43263
|
translations.SRP.TOTAL_RESULTS_LABEL
|
|
43314
43264
|
)
|
|
43315
43265
|
),
|
|
43316
|
-
React__default['default'].createElement(
|
|
43317
|
-
'div',
|
|
43318
|
-
{
|
|
43319
|
-
className: 'cta cta--filter',
|
|
43320
|
-
onClick: function () {
|
|
43321
|
-
return toggleFilters && toggleFilters();
|
|
43322
|
-
}
|
|
43323
|
-
},
|
|
43324
|
-
React__default['default'].createElement(Icon, { name: 'ui-filter', className: 'mobile-filters-button__icon', height: 16 }),
|
|
43325
|
-
translations.SRP.FILTERS
|
|
43326
|
-
),
|
|
43327
43266
|
sortByTypes &&
|
|
43328
43267
|
sortByTypes.length > 0 &&
|
|
43329
43268
|
React__default['default'].createElement(
|
|
@@ -45431,7 +45370,7 @@ var GroupTourCard = function (_a) {
|
|
|
45431
45370
|
return state.searchResults;
|
|
45432
45371
|
}).selectedSearchResult;
|
|
45433
45372
|
if (!context) {
|
|
45434
|
-
return;
|
|
45373
|
+
return null;
|
|
45435
45374
|
}
|
|
45436
45375
|
var dispatch = reactRedux.useDispatch();
|
|
45437
45376
|
var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
|
|
@@ -45593,7 +45532,7 @@ var GroupTourResults = function (_a) {
|
|
|
45593
45532
|
var isLoading = _a.isLoading;
|
|
45594
45533
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
45595
45534
|
if (!context) {
|
|
45596
|
-
return;
|
|
45535
|
+
return null;
|
|
45597
45536
|
}
|
|
45598
45537
|
if (isLoading) {
|
|
45599
45538
|
return React__default['default'].createElement(
|
|
@@ -46828,8 +46767,6 @@ var WLSidebar = function (_a) {
|
|
|
46828
46767
|
if (!editablePackagingEntry) {
|
|
46829
46768
|
return null;
|
|
46830
46769
|
}
|
|
46831
|
-
console.log('editablePackagingEntry in WLSidebar:', editablePackagingEntry);
|
|
46832
|
-
console.log('priceDetails in WLSidebar:', priceDetails);
|
|
46833
46770
|
var sortedLines = React.useMemo(
|
|
46834
46771
|
function () {
|
|
46835
46772
|
var _a;
|
|
@@ -46974,19 +46911,740 @@ var WLSidebar = function (_a) {
|
|
|
46974
46911
|
});
|
|
46975
46912
|
};
|
|
46976
46913
|
|
|
46977
|
-
var
|
|
46914
|
+
var formatBirthDate = function (birthDate) {
|
|
46915
|
+
if (!birthDate) return '';
|
|
46916
|
+
return birthDate.split('T')[0].split('-').reverse().join('/');
|
|
46917
|
+
};
|
|
46918
|
+
var SharedSummary = function (_a) {
|
|
46978
46919
|
var _b;
|
|
46979
|
-
var
|
|
46920
|
+
var translations = _a.translations,
|
|
46921
|
+
travelerFormValues = _a.travelerFormValues,
|
|
46922
|
+
checkboxes = _a.checkboxes,
|
|
46923
|
+
notifications = _a.notifications,
|
|
46924
|
+
_c = _a.remarks,
|
|
46925
|
+
remarks = _c === void 0 ? '' : _c,
|
|
46926
|
+
_d = _a.voucher,
|
|
46927
|
+
voucher = _d === void 0 ? {} : _d,
|
|
46928
|
+
_e = _a.voucherCodes,
|
|
46929
|
+
voucherCodes = _e === void 0 ? [] : _e,
|
|
46930
|
+
_f = _a.enableVoucher,
|
|
46931
|
+
enableVoucher = _f === void 0 ? false : _f,
|
|
46932
|
+
_g = _a.allowOption,
|
|
46933
|
+
allowOption = _g === void 0 ? false : _g,
|
|
46934
|
+
_h = _a.isOffer,
|
|
46935
|
+
isOffer = _h === void 0 ? false : _h,
|
|
46936
|
+
customValidateText = _a.customValidateText,
|
|
46937
|
+
_j = _a.isSubmitting,
|
|
46938
|
+
isSubmitting = _j === void 0 ? false : _j,
|
|
46939
|
+
_k = _a.userValidated,
|
|
46940
|
+
userValidated = _k === void 0 ? true : _k,
|
|
46941
|
+
renderOptions = _a.renderOptions,
|
|
46942
|
+
renderPreviousButton = _a.renderPreviousButton,
|
|
46943
|
+
renderLoader = _a.renderLoader,
|
|
46944
|
+
onSubmit = _a.onSubmit,
|
|
46945
|
+
onRemarksChange = _a.onRemarksChange,
|
|
46946
|
+
onCheckboxesChange = _a.onCheckboxesChange,
|
|
46947
|
+
onNotificationsChange = _a.onNotificationsChange,
|
|
46948
|
+
onVoucherChange = _a.onVoucherChange,
|
|
46949
|
+
onValidateVoucher = _a.onValidateVoucher,
|
|
46950
|
+
onAddVoucher = _a.onAddVoucher,
|
|
46951
|
+
onRemoveVoucher = _a.onRemoveVoucher,
|
|
46952
|
+
onUserValidatedChange = _a.onUserValidatedChange;
|
|
46953
|
+
var _l = React.useState(checkboxes),
|
|
46954
|
+
localCheckboxes = _l[0],
|
|
46955
|
+
setLocalCheckboxes = _l[1];
|
|
46956
|
+
React.useEffect(
|
|
46957
|
+
function () {
|
|
46958
|
+
setLocalCheckboxes(checkboxes);
|
|
46959
|
+
},
|
|
46960
|
+
[checkboxes]
|
|
46961
|
+
);
|
|
46962
|
+
React.useEffect(
|
|
46963
|
+
function () {
|
|
46964
|
+
var checkboxesValidated = !lodash.isNil(localCheckboxes)
|
|
46965
|
+
? localCheckboxes.every(function (checkbox) {
|
|
46966
|
+
return checkbox.isSelected;
|
|
46967
|
+
})
|
|
46968
|
+
: true;
|
|
46969
|
+
var notificationsValidated = !lodash.isNil(notifications)
|
|
46970
|
+
? notifications
|
|
46971
|
+
.filter(function (notification) {
|
|
46972
|
+
return notification.hasToBeConfirmed;
|
|
46973
|
+
})
|
|
46974
|
+
.every(function (notification) {
|
|
46975
|
+
return notification.isConfirmed;
|
|
46976
|
+
})
|
|
46977
|
+
: true;
|
|
46978
|
+
onUserValidatedChange === null || onUserValidatedChange === void 0 ? void 0 : onUserValidatedChange(checkboxesValidated && notificationsValidated);
|
|
46979
|
+
},
|
|
46980
|
+
[localCheckboxes, notifications, onUserValidatedChange]
|
|
46981
|
+
);
|
|
46982
|
+
var handleNotificationChange = function (id, checked) {
|
|
46983
|
+
var updatedNotifications = (notifications !== null && notifications !== void 0 ? notifications : []).map(function (notification) {
|
|
46984
|
+
return notification.id === id ? __assign(__assign({}, notification), { isConfirmed: checked }) : notification;
|
|
46985
|
+
});
|
|
46986
|
+
onNotificationsChange === null || onNotificationsChange === void 0 ? void 0 : onNotificationsChange(updatedNotifications);
|
|
46987
|
+
};
|
|
46988
|
+
var handleCheckboxChange = function (id) {
|
|
46989
|
+
if (lodash.isNil(localCheckboxes)) return;
|
|
46990
|
+
var newCheckboxes = __spreadArray([], localCheckboxes, true);
|
|
46991
|
+
var index = lodash.findIndex(localCheckboxes, function (checkbox) {
|
|
46992
|
+
return checkbox.id === id;
|
|
46993
|
+
});
|
|
46994
|
+
if (index < 0) return;
|
|
46995
|
+
newCheckboxes[index] = __assign(__assign({}, newCheckboxes[index]), { isSelected: !newCheckboxes[index].isSelected });
|
|
46996
|
+
setLocalCheckboxes(newCheckboxes);
|
|
46997
|
+
onCheckboxesChange === null || onCheckboxesChange === void 0 ? void 0 : onCheckboxesChange(newCheckboxes);
|
|
46998
|
+
};
|
|
46999
|
+
return React__default['default'].createElement(
|
|
47000
|
+
React__default['default'].Fragment,
|
|
47001
|
+
null,
|
|
47002
|
+
isSubmitting && ((renderLoader === null || renderLoader === void 0 ? void 0 : renderLoader()) || React__default['default'].createElement(Loader, null)),
|
|
47003
|
+
!isSubmitting &&
|
|
47004
|
+
React__default['default'].createElement(
|
|
47005
|
+
'form',
|
|
47006
|
+
{ className: 'form', name: 'booking--summary', id: 'booking--summary', onSubmit: onSubmit },
|
|
47007
|
+
React__default['default'].createElement(
|
|
47008
|
+
'div',
|
|
47009
|
+
{ className: 'form__booking--summary' },
|
|
47010
|
+
React__default['default'].createElement(
|
|
47011
|
+
'div',
|
|
47012
|
+
{ className: 'form__region' },
|
|
47013
|
+
React__default['default'].createElement(
|
|
47014
|
+
'div',
|
|
47015
|
+
{ className: 'form__row' },
|
|
47016
|
+
React__default['default'].createElement(
|
|
47017
|
+
'div',
|
|
47018
|
+
{ className: 'form__group' },
|
|
47019
|
+
React__default['default'].createElement(
|
|
47020
|
+
'div',
|
|
47021
|
+
{ className: 'form__region-header' },
|
|
47022
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.SUMMARY.PERSONAL_DETAILS)
|
|
47023
|
+
)
|
|
47024
|
+
)
|
|
47025
|
+
),
|
|
47026
|
+
travelerFormValues.rooms.map(function (room, roomIndex) {
|
|
47027
|
+
var _a, _b;
|
|
47028
|
+
return React__default['default'].createElement(
|
|
47029
|
+
'div',
|
|
47030
|
+
{ className: 'form__row', key: roomIndex },
|
|
47031
|
+
React__default['default'].createElement(
|
|
47032
|
+
'div',
|
|
47033
|
+
{ className: 'form__group' },
|
|
47034
|
+
React__default['default'].createElement(
|
|
47035
|
+
'div',
|
|
47036
|
+
{ className: 'form__region-header' },
|
|
47037
|
+
React__default['default'].createElement(
|
|
47038
|
+
'h5',
|
|
47039
|
+
{ className: 'form__region-heading' },
|
|
47040
|
+
travelerFormValues.rooms.length > 1
|
|
47041
|
+
? ''.concat(translations.SHARED.ROOM, ' ').concat(roomIndex + 1)
|
|
47042
|
+
: translations.ROOM_OPTIONS_FORM.TRAVELER_GROUP
|
|
47043
|
+
),
|
|
47044
|
+
React__default['default'].createElement(
|
|
47045
|
+
'p',
|
|
47046
|
+
{ className: 'form__region-label' },
|
|
47047
|
+
''
|
|
47048
|
+
.concat(room.adults.length + room.children.length, ' ')
|
|
47049
|
+
.concat(room.adults.length + room.children.length === 1 ? translations.SUMMARY.TRAVELER : translations.SUMMARY.TRAVELERS, ': ')
|
|
47050
|
+
.concat(
|
|
47051
|
+
lodash
|
|
47052
|
+
.compact([
|
|
47053
|
+
room.adults.length,
|
|
47054
|
+
room.adults.length === 1 && ' '.concat(translations.SUMMARY.ADULT),
|
|
47055
|
+
room.adults.length > 1 && ' '.concat(translations.SUMMARY.ADULTS),
|
|
47056
|
+
((_a = room.adults) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
47057
|
+
((_b = room.children) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
47058
|
+
', ',
|
|
47059
|
+
room.children.length,
|
|
47060
|
+
room.children.length === 1 && ' '.concat(translations.SUMMARY.CHILD),
|
|
47061
|
+
room.children.length > 1 && ' '.concat(translations.SUMMARY.CHILDREN)
|
|
47062
|
+
])
|
|
47063
|
+
.join('')
|
|
47064
|
+
)
|
|
47065
|
+
)
|
|
47066
|
+
)
|
|
47067
|
+
),
|
|
47068
|
+
__spreadArray(__spreadArray([], room.adults, true), room.children, true).map(function (traveler) {
|
|
47069
|
+
var isMainBooker = traveler.id === travelerFormValues.mainBookerId;
|
|
47070
|
+
return React__default['default'].createElement(
|
|
47071
|
+
'div',
|
|
47072
|
+
{ className: 'form__group form__group--sm-50', key: traveler.id },
|
|
47073
|
+
React__default['default'].createElement(
|
|
47074
|
+
'ul',
|
|
47075
|
+
{ className: 'list list--plain' },
|
|
47076
|
+
React__default['default'].createElement(
|
|
47077
|
+
'li',
|
|
47078
|
+
{ className: 'list__item' },
|
|
47079
|
+
React__default['default'].createElement('strong', null, traveler.firstName, ' ', traveler.lastName),
|
|
47080
|
+
' ',
|
|
47081
|
+
isMainBooker && React__default['default'].createElement('em', null, '(', translations.SUMMARY.MAIN_BOOKER, ')')
|
|
47082
|
+
),
|
|
47083
|
+
React__default['default'].createElement('li', { className: 'list__item' }, formatBirthDate(traveler.birthDate)),
|
|
47084
|
+
isMainBooker &&
|
|
47085
|
+
React__default['default'].createElement(
|
|
47086
|
+
React__default['default'].Fragment,
|
|
47087
|
+
null,
|
|
47088
|
+
travelerFormValues.street &&
|
|
47089
|
+
React__default['default'].createElement(
|
|
47090
|
+
'li',
|
|
47091
|
+
{ className: 'list__item' },
|
|
47092
|
+
''
|
|
47093
|
+
.concat(travelerFormValues.street, ' ')
|
|
47094
|
+
.concat(lodash.compact([travelerFormValues.houseNumber, travelerFormValues.box]).join(' '), ', ')
|
|
47095
|
+
.concat(travelerFormValues.zipCode, ' ')
|
|
47096
|
+
.concat(travelerFormValues.place)
|
|
47097
|
+
),
|
|
47098
|
+
travelerFormValues.phone && React__default['default'].createElement('li', { className: 'list__item' }, travelerFormValues.phone),
|
|
47099
|
+
travelerFormValues.email && React__default['default'].createElement('li', { className: 'list__item' }, travelerFormValues.email)
|
|
47100
|
+
)
|
|
47101
|
+
)
|
|
47102
|
+
);
|
|
47103
|
+
})
|
|
47104
|
+
);
|
|
47105
|
+
})
|
|
47106
|
+
),
|
|
47107
|
+
React__default['default'].createElement(
|
|
47108
|
+
'div',
|
|
47109
|
+
{ className: 'form__region' },
|
|
47110
|
+
React__default['default'].createElement(
|
|
47111
|
+
'div',
|
|
47112
|
+
{ className: 'form__row' },
|
|
47113
|
+
React__default['default'].createElement(
|
|
47114
|
+
'div',
|
|
47115
|
+
{ className: 'form__group' },
|
|
47116
|
+
React__default['default'].createElement(
|
|
47117
|
+
'div',
|
|
47118
|
+
{ className: 'form__region-header' },
|
|
47119
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.SUMMARY.OPTIONS)
|
|
47120
|
+
)
|
|
47121
|
+
)
|
|
47122
|
+
),
|
|
47123
|
+
React__default['default'].createElement(
|
|
47124
|
+
'div',
|
|
47125
|
+
{ className: 'form__row' },
|
|
47126
|
+
React__default['default'].createElement(
|
|
47127
|
+
'div',
|
|
47128
|
+
{ className: 'form__group' },
|
|
47129
|
+
React__default['default'].createElement('ul', { className: 'list list--booking-summary' }, renderOptions())
|
|
47130
|
+
)
|
|
47131
|
+
)
|
|
47132
|
+
),
|
|
47133
|
+
enableVoucher &&
|
|
47134
|
+
React__default['default'].createElement(
|
|
47135
|
+
'div',
|
|
47136
|
+
{ className: 'form__region' },
|
|
47137
|
+
React__default['default'].createElement(
|
|
47138
|
+
'div',
|
|
47139
|
+
{ className: 'form__row' },
|
|
47140
|
+
React__default['default'].createElement(
|
|
47141
|
+
'div',
|
|
47142
|
+
{ className: 'form__group' },
|
|
47143
|
+
React__default['default'].createElement(
|
|
47144
|
+
'div',
|
|
47145
|
+
{ className: 'form__region-header' },
|
|
47146
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.SUMMARY.VOUCHERS)
|
|
47147
|
+
)
|
|
47148
|
+
)
|
|
47149
|
+
),
|
|
47150
|
+
React__default['default'].createElement(
|
|
47151
|
+
'div',
|
|
47152
|
+
{ className: 'form__row' },
|
|
47153
|
+
React__default['default'].createElement(
|
|
47154
|
+
'div',
|
|
47155
|
+
{ className: 'form__group' },
|
|
47156
|
+
React__default['default'].createElement('input', {
|
|
47157
|
+
type: 'text',
|
|
47158
|
+
className: 'form__input info-message__voucher__input',
|
|
47159
|
+
value: (_b = voucher.code) !== null && _b !== void 0 ? _b : '',
|
|
47160
|
+
onChange: function (event) {
|
|
47161
|
+
return onVoucherChange === null || onVoucherChange === void 0 ? void 0 : onVoucherChange({ code: event.target.value });
|
|
47162
|
+
}
|
|
47163
|
+
}),
|
|
47164
|
+
React__default['default'].createElement(
|
|
47165
|
+
'button',
|
|
47166
|
+
{ type: 'button', className: buildClassName(['cta', !voucher.code && 'cta--disabled']), onClick: onValidateVoucher },
|
|
47167
|
+
translations.SUMMARY.VOUCHER_VALIDATE
|
|
47168
|
+
)
|
|
47169
|
+
)
|
|
47170
|
+
),
|
|
47171
|
+
React__default['default'].createElement(
|
|
47172
|
+
'div',
|
|
47173
|
+
{ className: 'form__row' },
|
|
47174
|
+
React__default['default'].createElement(
|
|
47175
|
+
'div',
|
|
47176
|
+
{ className: 'form__group info-message__voucher' },
|
|
47177
|
+
voucher.isValid &&
|
|
47178
|
+
voucher.isValidated &&
|
|
47179
|
+
React__default['default'].createElement(
|
|
47180
|
+
'div',
|
|
47181
|
+
{ className: 'info-message info-message__voucher__valid' },
|
|
47182
|
+
React__default['default'].createElement('span', null, translations.SUMMARY.VOUCHER_VALID),
|
|
47183
|
+
React__default['default'].createElement(
|
|
47184
|
+
'button',
|
|
47185
|
+
{ type: 'button', className: 'cta cta--secondary', onClick: onAddVoucher },
|
|
47186
|
+
translations.SUMMARY.ADD_VOUCHER
|
|
47187
|
+
)
|
|
47188
|
+
),
|
|
47189
|
+
!voucher.isValid &&
|
|
47190
|
+
voucher.isValidated &&
|
|
47191
|
+
React__default['default'].createElement('div', { className: 'info-message--error' }, translations.SUMMARY.VOUCHER_INVALID)
|
|
47192
|
+
)
|
|
47193
|
+
),
|
|
47194
|
+
React__default['default'].createElement(
|
|
47195
|
+
'div',
|
|
47196
|
+
{ className: 'form__row' },
|
|
47197
|
+
React__default['default'].createElement(
|
|
47198
|
+
'ul',
|
|
47199
|
+
{ className: 'info-message__voucher' },
|
|
47200
|
+
!lodash.isEmpty(voucherCodes) &&
|
|
47201
|
+
voucherCodes.map(function (code, index) {
|
|
47202
|
+
return React__default['default'].createElement(
|
|
47203
|
+
'li',
|
|
47204
|
+
{ key: ''.concat(code, '-').concat(index) },
|
|
47205
|
+
React__default['default'].createElement(
|
|
47206
|
+
'div',
|
|
47207
|
+
{ className: 'info-message__voucher__list' },
|
|
47208
|
+
code,
|
|
47209
|
+
' ',
|
|
47210
|
+
React__default['default'].createElement(
|
|
47211
|
+
'button',
|
|
47212
|
+
{
|
|
47213
|
+
type: 'button',
|
|
47214
|
+
className: 'cta--add-remove',
|
|
47215
|
+
onClick: function () {
|
|
47216
|
+
return onRemoveVoucher === null || onRemoveVoucher === void 0 ? void 0 : onRemoveVoucher(code);
|
|
47217
|
+
}
|
|
47218
|
+
},
|
|
47219
|
+
React__default['default'].createElement(Icon, { height: 16, name: 'ui-trashcan' })
|
|
47220
|
+
)
|
|
47221
|
+
)
|
|
47222
|
+
);
|
|
47223
|
+
})
|
|
47224
|
+
)
|
|
47225
|
+
)
|
|
47226
|
+
),
|
|
47227
|
+
!lodash.isEmpty(notifications) &&
|
|
47228
|
+
React__default['default'].createElement(
|
|
47229
|
+
'div',
|
|
47230
|
+
{ className: 'form__region' },
|
|
47231
|
+
React__default['default'].createElement(
|
|
47232
|
+
'div',
|
|
47233
|
+
{ className: 'form__row' },
|
|
47234
|
+
React__default['default'].createElement(
|
|
47235
|
+
'div',
|
|
47236
|
+
{ className: 'form__group' },
|
|
47237
|
+
React__default['default'].createElement(
|
|
47238
|
+
'div',
|
|
47239
|
+
{ className: 'info-message' },
|
|
47240
|
+
React__default['default'].createElement(Icon, { name: 'ui-tooltip', className: 'icon--secondary-color' }),
|
|
47241
|
+
React__default['default'].createElement(
|
|
47242
|
+
'div',
|
|
47243
|
+
{ className: 'info-message__copy' },
|
|
47244
|
+
React__default['default'].createElement('h5', null, translations.SUMMARY.NOTIFICATIONS_TITLE),
|
|
47245
|
+
lodash
|
|
47246
|
+
.uniqBy(
|
|
47247
|
+
(notifications !== null && notifications !== void 0 ? notifications : []).filter(function (notification) {
|
|
47248
|
+
return !notification.hasToBeConfirmed;
|
|
47249
|
+
}),
|
|
47250
|
+
'id'
|
|
47251
|
+
)
|
|
47252
|
+
.map(function (notification) {
|
|
47253
|
+
return React__default['default'].createElement(
|
|
47254
|
+
'span',
|
|
47255
|
+
{ key: notification.id, className: 'checkbox__label-text' },
|
|
47256
|
+
React__default['default'].createElement('strong', { className: 'checkbox__label-text--title' }, notification.title),
|
|
47257
|
+
React__default['default'].createElement('span', { className: 'checkbox__label-text--description' }, notification.description)
|
|
47258
|
+
);
|
|
47259
|
+
}),
|
|
47260
|
+
lodash
|
|
47261
|
+
.uniqBy(
|
|
47262
|
+
(notifications !== null && notifications !== void 0 ? notifications : []).filter(function (notification) {
|
|
47263
|
+
return notification.hasToBeConfirmed;
|
|
47264
|
+
}),
|
|
47265
|
+
'id'
|
|
47266
|
+
)
|
|
47267
|
+
.map(function (notification) {
|
|
47268
|
+
return React__default['default'].createElement(
|
|
47269
|
+
'div',
|
|
47270
|
+
{ className: 'checkbox', key: notification.id },
|
|
47271
|
+
React__default['default'].createElement(
|
|
47272
|
+
'label',
|
|
47273
|
+
{ className: 'checkbox__label' },
|
|
47274
|
+
React__default['default'].createElement('input', {
|
|
47275
|
+
type: 'checkbox',
|
|
47276
|
+
className: 'checkbox__input',
|
|
47277
|
+
checked: notification.isConfirmed,
|
|
47278
|
+
onChange: function (event) {
|
|
47279
|
+
return handleNotificationChange(notification.id, event.target.checked);
|
|
47280
|
+
}
|
|
47281
|
+
}),
|
|
47282
|
+
React__default['default'].createElement(
|
|
47283
|
+
'span',
|
|
47284
|
+
{ className: 'checkbox__label-text' },
|
|
47285
|
+
React__default['default'].createElement('strong', { className: 'checkbox__label-text--title' }, notification.title),
|
|
47286
|
+
React__default['default'].createElement('span', { className: 'checkbox__label-text--description' }, notification.description)
|
|
47287
|
+
)
|
|
47288
|
+
)
|
|
47289
|
+
);
|
|
47290
|
+
})
|
|
47291
|
+
)
|
|
47292
|
+
)
|
|
47293
|
+
)
|
|
47294
|
+
)
|
|
47295
|
+
),
|
|
47296
|
+
React__default['default'].createElement(
|
|
47297
|
+
'div',
|
|
47298
|
+
{ className: 'form__region' },
|
|
47299
|
+
React__default['default'].createElement(
|
|
47300
|
+
'div',
|
|
47301
|
+
{ className: 'form__row' },
|
|
47302
|
+
React__default['default'].createElement(
|
|
47303
|
+
'div',
|
|
47304
|
+
{ className: 'form__group' },
|
|
47305
|
+
React__default['default'].createElement(
|
|
47306
|
+
'div',
|
|
47307
|
+
{ className: 'form__region-header' },
|
|
47308
|
+
React__default['default'].createElement('h5', { className: 'form__region-heading' }, translations.SUMMARY.REMARKS)
|
|
47309
|
+
)
|
|
47310
|
+
)
|
|
47311
|
+
),
|
|
47312
|
+
React__default['default'].createElement(
|
|
47313
|
+
'div',
|
|
47314
|
+
{ className: 'form__row' },
|
|
47315
|
+
React__default['default'].createElement(
|
|
47316
|
+
'div',
|
|
47317
|
+
{ className: 'form__group' },
|
|
47318
|
+
React__default['default'].createElement('textarea', {
|
|
47319
|
+
className: 'form__input',
|
|
47320
|
+
value: remarks,
|
|
47321
|
+
onChange: function (event) {
|
|
47322
|
+
return onRemarksChange === null || onRemarksChange === void 0 ? void 0 : onRemarksChange(event.target.value);
|
|
47323
|
+
}
|
|
47324
|
+
})
|
|
47325
|
+
)
|
|
47326
|
+
)
|
|
47327
|
+
),
|
|
47328
|
+
React__default['default'].createElement(
|
|
47329
|
+
'div',
|
|
47330
|
+
{ className: 'form__region' },
|
|
47331
|
+
React__default['default'].createElement(
|
|
47332
|
+
'div',
|
|
47333
|
+
{ className: 'form__row' },
|
|
47334
|
+
React__default['default'].createElement(
|
|
47335
|
+
'div',
|
|
47336
|
+
{ className: 'form__group' },
|
|
47337
|
+
React__default['default'].createElement(
|
|
47338
|
+
'div',
|
|
47339
|
+
{ className: 'info-message' },
|
|
47340
|
+
React__default['default'].createElement(Icon, { name: 'ui-tooltip', className: 'icon--secondary-color' }),
|
|
47341
|
+
React__default['default'].createElement(
|
|
47342
|
+
'div',
|
|
47343
|
+
{ className: 'info-message__copy' },
|
|
47344
|
+
React__default['default'].createElement('h5', null, translations.SUMMARY.VALIDATE_TITLE),
|
|
47345
|
+
customValidateText
|
|
47346
|
+
? React__default['default'].createElement('div', { dangerouslySetInnerHTML: { __html: customValidateText } })
|
|
47347
|
+
: React__default['default'].createElement(
|
|
47348
|
+
React__default['default'].Fragment,
|
|
47349
|
+
null,
|
|
47350
|
+
React__default['default'].createElement(
|
|
47351
|
+
'p',
|
|
47352
|
+
null,
|
|
47353
|
+
isOffer ? translations.SUMMARY.VALIDATE_TEXT_OFFER : translations.SUMMARY.VALIDATE_TEXT_BOOKING
|
|
47354
|
+
),
|
|
47355
|
+
allowOption && React__default['default'].createElement('p', null, translations.SUMMARY.VALIDATE_TEXT_OPTION)
|
|
47356
|
+
),
|
|
47357
|
+
localCheckboxes === null || localCheckboxes === void 0
|
|
47358
|
+
? void 0
|
|
47359
|
+
: localCheckboxes.map(function (checkbox) {
|
|
47360
|
+
return React__default['default'].createElement(
|
|
47361
|
+
'div',
|
|
47362
|
+
{ className: 'checkbox', key: checkbox.id },
|
|
47363
|
+
React__default['default'].createElement(
|
|
47364
|
+
'label',
|
|
47365
|
+
{ className: 'checkbox__label' },
|
|
47366
|
+
React__default['default'].createElement('input', {
|
|
47367
|
+
type: 'checkbox',
|
|
47368
|
+
className: 'checkbox__input',
|
|
47369
|
+
checked: checkbox.isSelected,
|
|
47370
|
+
onChange: function () {
|
|
47371
|
+
return handleCheckboxChange(checkbox.id);
|
|
47372
|
+
}
|
|
47373
|
+
}),
|
|
47374
|
+
React__default['default'].createElement('span', {
|
|
47375
|
+
className: 'checkbox__label-text',
|
|
47376
|
+
dangerouslySetInnerHTML: { __html: checkbox.text }
|
|
47377
|
+
})
|
|
47378
|
+
)
|
|
47379
|
+
);
|
|
47380
|
+
})
|
|
47381
|
+
)
|
|
47382
|
+
)
|
|
47383
|
+
)
|
|
47384
|
+
)
|
|
47385
|
+
)
|
|
47386
|
+
),
|
|
47387
|
+
React__default['default'].createElement(
|
|
47388
|
+
'div',
|
|
47389
|
+
{ className: 'booking__navigator' },
|
|
47390
|
+
renderPreviousButton(),
|
|
47391
|
+
allowOption &&
|
|
47392
|
+
React__default['default'].createElement(
|
|
47393
|
+
'button',
|
|
47394
|
+
{
|
|
47395
|
+
title: translations.STEPS.SUBMIT_OPTION,
|
|
47396
|
+
className: buildClassName(['cta', !userValidated && 'cta--disabled']),
|
|
47397
|
+
disabled: !userValidated,
|
|
47398
|
+
name: 'option'
|
|
47399
|
+
},
|
|
47400
|
+
translations.STEPS.SUBMIT_OPTION
|
|
47401
|
+
),
|
|
47402
|
+
React__default['default'].createElement(
|
|
47403
|
+
'button',
|
|
47404
|
+
{
|
|
47405
|
+
title: isOffer ? translations.STEPS.SUBMIT_OFFER : translations.STEPS.SUBMIT_BOOKING,
|
|
47406
|
+
className: buildClassName(['cta', !userValidated && 'cta--disabled']),
|
|
47407
|
+
disabled: !userValidated,
|
|
47408
|
+
name: 'default'
|
|
47409
|
+
},
|
|
47410
|
+
isOffer ? translations.STEPS.SUBMIT_OFFER : translations.STEPS.SUBMIT_BOOKING
|
|
47411
|
+
)
|
|
47412
|
+
)
|
|
47413
|
+
)
|
|
47414
|
+
);
|
|
47415
|
+
};
|
|
47416
|
+
|
|
47417
|
+
var renderEditablePackagingEntrySummaryOptions = function (editablePackagingEntry, priceDetails, translations) {
|
|
47418
|
+
var _a, _b;
|
|
47419
|
+
var priceDetailsByProduct = lodash.groupBy(
|
|
47420
|
+
(_a = priceDetails === null || priceDetails === void 0 ? void 0 : priceDetails.details) !== null && _a !== void 0 ? _a : [],
|
|
47421
|
+
function (detail) {
|
|
47422
|
+
return ''.concat(detail.productCode, '|').concat(detail.accommodationCode);
|
|
47423
|
+
}
|
|
47424
|
+
);
|
|
47425
|
+
return (
|
|
47426
|
+
(_b = editablePackagingEntry === null || editablePackagingEntry === void 0 ? void 0 : editablePackagingEntry.lines) !== null && _b !== void 0 ? _b : []
|
|
47427
|
+
).map(function (line) {
|
|
47428
|
+
var _a, _b, _c;
|
|
47429
|
+
var groupedPriceDetails = (_a = priceDetailsByProduct[''.concat(line.productCode, '|').concat(line.accommodationCode)]) !== null && _a !== void 0 ? _a : [];
|
|
47430
|
+
var visiblePriceDetails = groupedPriceDetails.filter(function (detail) {
|
|
47431
|
+
return detail.showPrice || detail.isSeparate;
|
|
47432
|
+
});
|
|
47433
|
+
return React__default['default'].createElement(
|
|
47434
|
+
'li',
|
|
47435
|
+
{ key: line.guid },
|
|
47436
|
+
React__default['default'].createElement('h6', null, line.productName),
|
|
47437
|
+
React__default['default'].createElement(
|
|
47438
|
+
'ul',
|
|
47439
|
+
null,
|
|
47440
|
+
React__default['default'].createElement('li', { className: 'list__item' }, lodash.compact([line.accommodationName, line.regimeName]).join(', ')),
|
|
47441
|
+
(_c = (_b = line.flightInformation) === null || _b === void 0 ? void 0 : _b.flightLines) === null || _c === void 0
|
|
47442
|
+
? void 0
|
|
47443
|
+
: _c.map(function (flightLine, index) {
|
|
47444
|
+
var _a, _b;
|
|
47445
|
+
return React__default['default'].createElement(
|
|
47446
|
+
'li',
|
|
47447
|
+
{ className: 'list__item', key: ''.concat(line.guid, '-').concat(index) },
|
|
47448
|
+
flightLine.departureAirportCode,
|
|
47449
|
+
' ',
|
|
47450
|
+
(_a = flightLine.departureTime) === null || _a === void 0 ? void 0 : _a.slice(0, 5),
|
|
47451
|
+
' > ',
|
|
47452
|
+
flightLine.arrivalAirportCode,
|
|
47453
|
+
' ',
|
|
47454
|
+
(_b = flightLine.arrivalTime) === null || _b === void 0 ? void 0 : _b.slice(0, 5),
|
|
47455
|
+
' (',
|
|
47456
|
+
flightLine.operatingFlightNumber || ''.concat(flightLine.airlineCode).concat(flightLine.flightNumber),
|
|
47457
|
+
')'
|
|
47458
|
+
);
|
|
47459
|
+
}),
|
|
47460
|
+
!lodash.isEmpty(visiblePriceDetails) &&
|
|
47461
|
+
visiblePriceDetails.map(function (detail, index) {
|
|
47462
|
+
var _a;
|
|
47463
|
+
return React__default['default'].createElement(
|
|
47464
|
+
'li',
|
|
47465
|
+
{ className: 'list__item', key: ''.concat(line.guid, '-price-').concat(index) },
|
|
47466
|
+
detail.priceDescription,
|
|
47467
|
+
': ',
|
|
47468
|
+
(_a = detail.total) === null || _a === void 0 ? void 0 : _a.toLocaleString(undefined, { style: 'currency', currency: 'EUR' })
|
|
47469
|
+
);
|
|
47470
|
+
})
|
|
47471
|
+
),
|
|
47472
|
+
React__default['default'].createElement(
|
|
47473
|
+
'p',
|
|
47474
|
+
null,
|
|
47475
|
+
'(',
|
|
47476
|
+
line.from === line.to
|
|
47477
|
+
? getDateText(line.from)
|
|
47478
|
+
: React__default['default'].createElement(React__default['default'].Fragment, null, getDateText(line.from), ' > ', getDateText(line.to)),
|
|
47479
|
+
')'
|
|
47480
|
+
)
|
|
47481
|
+
);
|
|
47482
|
+
});
|
|
47483
|
+
};
|
|
47484
|
+
|
|
47485
|
+
var travelerFormFields = [{ type: 'gender' }, { type: 'firstName' }, { type: 'lastName' }, { type: 'birthDate' }];
|
|
47486
|
+
var mainBookerFormFields = [
|
|
47487
|
+
{ type: 'street' },
|
|
47488
|
+
{ type: 'houseNumber' },
|
|
47489
|
+
{ type: 'box' },
|
|
47490
|
+
{ type: 'zipCode' },
|
|
47491
|
+
{ type: 'place' },
|
|
47492
|
+
{ type: 'country' },
|
|
47493
|
+
{ type: 'phone' },
|
|
47494
|
+
{ type: 'email' }
|
|
47495
|
+
];
|
|
47496
|
+
var travellersSettings = {
|
|
47497
|
+
countries: [
|
|
47498
|
+
{ iso2: 'BE', name: 'Belgium', phonePrefix: '+32' },
|
|
47499
|
+
{ iso2: 'NL', name: 'Netherlands', phonePrefix: '+31' },
|
|
47500
|
+
{ iso2: 'FR', name: 'France', phonePrefix: '+33' }
|
|
47501
|
+
],
|
|
47502
|
+
formFields: travelerFormFields,
|
|
47503
|
+
mainBookerFormFields: mainBookerFormFields
|
|
47504
|
+
};
|
|
47505
|
+
var BookPackagingEntry = function (_a) {
|
|
47506
|
+
var _b, _c;
|
|
47507
|
+
var activeSearchSeed = _a.activeSearchSeed,
|
|
47508
|
+
isConfirmationPage = _a.isConfirmationPage;
|
|
46980
47509
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
46981
|
-
|
|
46982
|
-
|
|
46983
|
-
|
|
46984
|
-
|
|
46985
|
-
|
|
46986
|
-
|
|
46987
|
-
|
|
46988
|
-
|
|
47510
|
+
var dispatch = reactRedux.useDispatch();
|
|
47511
|
+
var _d = reactRedux.useSelector(function (state) {
|
|
47512
|
+
return state.searchResults;
|
|
47513
|
+
}),
|
|
47514
|
+
editablePackagingEntry = _d.editablePackagingEntry,
|
|
47515
|
+
priceDetails = _d.priceDetails,
|
|
47516
|
+
currentStep = _d.currentStep,
|
|
47517
|
+
bookingNumber = _d.bookingNumber;
|
|
47518
|
+
var _e = React.useState([]),
|
|
47519
|
+
countries = _e[0],
|
|
47520
|
+
setCountries = _e[1];
|
|
47521
|
+
var _f = React.useState(true),
|
|
47522
|
+
userValidated = _f[0],
|
|
47523
|
+
setUserValidated = _f[1];
|
|
47524
|
+
var _g = React.useState(''),
|
|
47525
|
+
remarks = _g[0],
|
|
47526
|
+
setRemarks = _g[1];
|
|
47527
|
+
var _h = React.useState(false),
|
|
47528
|
+
isSubmitting = _h[0],
|
|
47529
|
+
setIsSubmitting = _h[1];
|
|
47530
|
+
if (!context || !editablePackagingEntry || !priceDetails) return null;
|
|
47531
|
+
var config = {
|
|
47532
|
+
host: context.tideConnection.host,
|
|
47533
|
+
apiKey: context.tideConnection.apiKey
|
|
47534
|
+
};
|
|
47535
|
+
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
46989
47536
|
var stepLabels = [translations.STEPS.PERSONAL_DETAILS, translations.STEPS.SUMMARY, translations.STEPS.CONFIRMATION];
|
|
47537
|
+
console.log('editablePackagingEntry in WLSidebar:', editablePackagingEntry);
|
|
47538
|
+
console.log('priceDetails in WLSidebar:', priceDetails);
|
|
47539
|
+
var initialValues = React.useMemo(
|
|
47540
|
+
function () {
|
|
47541
|
+
return createInitialValuesFromEditablePackagingEntry(editablePackagingEntry);
|
|
47542
|
+
},
|
|
47543
|
+
[editablePackagingEntry === null || editablePackagingEntry === void 0 ? void 0 : editablePackagingEntry.transactionId]
|
|
47544
|
+
);
|
|
47545
|
+
var formik$1 = formik.useFormik({
|
|
47546
|
+
initialValues: initialValues,
|
|
47547
|
+
enableReinitialize: true,
|
|
47548
|
+
validate: function (values) {
|
|
47549
|
+
return validateForm(values, false, 'b2c', translations, travellersSettings.formFields, travellersSettings.mainBookerFormFields);
|
|
47550
|
+
},
|
|
47551
|
+
onSubmit: function (values) {
|
|
47552
|
+
dispatch(setEditablePackagingEntry(applyTravelersFormValuesToEditablePackagingEntry(editablePackagingEntry, values)));
|
|
47553
|
+
dispatch(setCurrentStep(1));
|
|
47554
|
+
}
|
|
47555
|
+
});
|
|
47556
|
+
React.useEffect(function () {
|
|
47557
|
+
if (!context) return;
|
|
47558
|
+
var controller = new AbortController();
|
|
47559
|
+
(function () {
|
|
47560
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47561
|
+
var result;
|
|
47562
|
+
return __generator(this, function (_b) {
|
|
47563
|
+
switch (_b.label) {
|
|
47564
|
+
case 0:
|
|
47565
|
+
_b.trys.push([0, 2, , 3]);
|
|
47566
|
+
return [4 /*yield*/, build.getCountries(config, controller.signal)];
|
|
47567
|
+
case 1:
|
|
47568
|
+
result = _b.sent();
|
|
47569
|
+
setCountries(result.items);
|
|
47570
|
+
return [3 /*break*/, 3];
|
|
47571
|
+
case 2:
|
|
47572
|
+
_b.sent();
|
|
47573
|
+
return [3 /*break*/, 3];
|
|
47574
|
+
case 3:
|
|
47575
|
+
return [2 /*return*/];
|
|
47576
|
+
}
|
|
47577
|
+
});
|
|
47578
|
+
});
|
|
47579
|
+
})();
|
|
47580
|
+
return function () {
|
|
47581
|
+
return controller.abort();
|
|
47582
|
+
};
|
|
47583
|
+
}, []);
|
|
47584
|
+
React.useEffect(
|
|
47585
|
+
function () {
|
|
47586
|
+
if (isConfirmationPage) {
|
|
47587
|
+
dispatch(setCurrentStep(2));
|
|
47588
|
+
}
|
|
47589
|
+
},
|
|
47590
|
+
[isConfirmationPage, dispatch]
|
|
47591
|
+
);
|
|
47592
|
+
var handleSummarySubmit = function (e) {
|
|
47593
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47594
|
+
var updatedEditablePackagingEntry, redirectUrl, request, bookingResponse;
|
|
47595
|
+
var _a, _b;
|
|
47596
|
+
return __generator(this, function (_c) {
|
|
47597
|
+
switch (_c.label) {
|
|
47598
|
+
case 0:
|
|
47599
|
+
e.preventDefault();
|
|
47600
|
+
setIsSubmitting(true);
|
|
47601
|
+
if (typeof window !== 'undefined') {
|
|
47602
|
+
window.scrollTo(0, 0);
|
|
47603
|
+
}
|
|
47604
|
+
updatedEditablePackagingEntry = __assign(__assign({}, editablePackagingEntry), { remarks: remarks });
|
|
47605
|
+
if (context.generatePaymentUrl && typeof window !== 'undefined') {
|
|
47606
|
+
redirectUrl = new URL(window.location.href);
|
|
47607
|
+
redirectUrl.searchParams.set('bookingConfirmation', 'true');
|
|
47608
|
+
redirectUrl.searchParams.set('link', '');
|
|
47609
|
+
updatedEditablePackagingEntry = __assign(__assign({}, updatedEditablePackagingEntry), {
|
|
47610
|
+
redirectUrl: redirectUrl.toString(),
|
|
47611
|
+
returnPaymentUrl: true
|
|
47612
|
+
});
|
|
47613
|
+
}
|
|
47614
|
+
dispatch(setEditablePackagingEntry(updatedEditablePackagingEntry));
|
|
47615
|
+
_c.label = 1;
|
|
47616
|
+
case 1:
|
|
47617
|
+
_c.trys.push([1, 3, 4, 5]);
|
|
47618
|
+
request = {
|
|
47619
|
+
language: (_a = context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB',
|
|
47620
|
+
officeId: context.tideConnection.officeId,
|
|
47621
|
+
catalogueId: (_b = context.searchConfiguration.defaultCatalogueId) !== null && _b !== void 0 ? _b : 0,
|
|
47622
|
+
agentId: context.agentId,
|
|
47623
|
+
payload: updatedEditablePackagingEntry
|
|
47624
|
+
};
|
|
47625
|
+
return [4 /*yield*/, build.bookPackagingEntry(config, request)];
|
|
47626
|
+
case 2:
|
|
47627
|
+
bookingResponse = _c.sent();
|
|
47628
|
+
dispatch(setBookingNumber(bookingResponse.number));
|
|
47629
|
+
if (bookingResponse.paymentUrl) {
|
|
47630
|
+
window.location.href = bookingResponse.paymentUrl;
|
|
47631
|
+
} else {
|
|
47632
|
+
dispatch(setCurrentStep(2));
|
|
47633
|
+
}
|
|
47634
|
+
return [3 /*break*/, 5];
|
|
47635
|
+
case 3:
|
|
47636
|
+
_c.sent();
|
|
47637
|
+
dispatch(setCurrentStep(3));
|
|
47638
|
+
return [3 /*break*/, 5];
|
|
47639
|
+
case 4:
|
|
47640
|
+
setIsSubmitting(false);
|
|
47641
|
+
return [7 /*endfinally*/];
|
|
47642
|
+
case 5:
|
|
47643
|
+
return [2 /*return*/];
|
|
47644
|
+
}
|
|
47645
|
+
});
|
|
47646
|
+
});
|
|
47647
|
+
};
|
|
46990
47648
|
return React__default['default'].createElement(
|
|
46991
47649
|
'div',
|
|
46992
47650
|
{ className: 'booking' },
|
|
@@ -46994,16 +47652,77 @@ var BookPackagingEntry = function (_a) {
|
|
|
46994
47652
|
'div',
|
|
46995
47653
|
{ className: 'booking__content' },
|
|
46996
47654
|
React__default['default'].createElement(
|
|
46997
|
-
|
|
46998
|
-
{
|
|
46999
|
-
|
|
47000
|
-
|
|
47001
|
-
|
|
47002
|
-
|
|
47003
|
-
|
|
47004
|
-
|
|
47005
|
-
|
|
47006
|
-
|
|
47655
|
+
'div',
|
|
47656
|
+
{ className: 'booking__panel' },
|
|
47657
|
+
React__default['default'].createElement(
|
|
47658
|
+
BookingPanel,
|
|
47659
|
+
{
|
|
47660
|
+
currentStep: currentStep,
|
|
47661
|
+
stepLabels: stepLabels,
|
|
47662
|
+
StepIndicatorsComponent: StepIndicators$1,
|
|
47663
|
+
renderTitle: function (step) {
|
|
47664
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null, step + 1, '.\u00A0', stepLabels[step]);
|
|
47665
|
+
}
|
|
47666
|
+
},
|
|
47667
|
+
currentStep === 0 &&
|
|
47668
|
+
React__default['default'].createElement(SharedTravelersForm, {
|
|
47669
|
+
formik: formik$1,
|
|
47670
|
+
translations: translations,
|
|
47671
|
+
travellersSettings: travellersSettings,
|
|
47672
|
+
countries: countries,
|
|
47673
|
+
travelersFirstStep: false,
|
|
47674
|
+
isUnavailable: false,
|
|
47675
|
+
useCompactForm: false,
|
|
47676
|
+
showAgentSelection: false
|
|
47677
|
+
}),
|
|
47678
|
+
currentStep === 1 &&
|
|
47679
|
+
React__default['default'].createElement(SharedSummary, {
|
|
47680
|
+
translations: translations,
|
|
47681
|
+
travelerFormValues: formik$1.values,
|
|
47682
|
+
isSubmitting: isSubmitting,
|
|
47683
|
+
userValidated: userValidated,
|
|
47684
|
+
remarks: remarks,
|
|
47685
|
+
enableVoucher: false,
|
|
47686
|
+
allowOption: false,
|
|
47687
|
+
isOffer: false,
|
|
47688
|
+
onUserValidatedChange: setUserValidated,
|
|
47689
|
+
onRemarksChange: setRemarks,
|
|
47690
|
+
onSubmit: handleSummarySubmit,
|
|
47691
|
+
renderOptions: function () {
|
|
47692
|
+
return renderEditablePackagingEntrySummaryOptions(editablePackagingEntry, priceDetails);
|
|
47693
|
+
},
|
|
47694
|
+
renderPreviousButton: function () {
|
|
47695
|
+
return React__default['default'].createElement(
|
|
47696
|
+
'button',
|
|
47697
|
+
{
|
|
47698
|
+
type: 'button',
|
|
47699
|
+
title: translations.STEPS.PREVIOUS,
|
|
47700
|
+
onClick: function () {
|
|
47701
|
+
return dispatch(setCurrentStep(0));
|
|
47702
|
+
},
|
|
47703
|
+
className: 'cta cta--secondary'
|
|
47704
|
+
},
|
|
47705
|
+
translations.STEPS.PREVIOUS
|
|
47706
|
+
);
|
|
47707
|
+
}
|
|
47708
|
+
}),
|
|
47709
|
+
currentStep === 2 &&
|
|
47710
|
+
React__default['default'].createElement(SharedConfirmation, {
|
|
47711
|
+
bookingNumber:
|
|
47712
|
+
(_c =
|
|
47713
|
+
bookingNumber !== null && bookingNumber !== void 0
|
|
47714
|
+
? bookingNumber
|
|
47715
|
+
: editablePackagingEntry === null || editablePackagingEntry === void 0
|
|
47716
|
+
? void 0
|
|
47717
|
+
: editablePackagingEntry.dossierNumber) !== null && _c !== void 0
|
|
47718
|
+
? _c
|
|
47719
|
+
: '',
|
|
47720
|
+
isOption: false,
|
|
47721
|
+
isOffer: false,
|
|
47722
|
+
translations: translations.CONFIRMATION
|
|
47723
|
+
}),
|
|
47724
|
+
currentStep === 3 && React__default['default'].createElement('div', null)
|
|
47725
|
+
)
|
|
47007
47726
|
),
|
|
47008
47727
|
React__default['default'].createElement('div', { className: 'backdrop', id: 'backdrop' }),
|
|
47009
47728
|
React__default['default'].createElement(WLSidebar, { activeSearchSeed: activeSearchSeed })
|
|
@@ -47063,9 +47782,12 @@ var SearchResultsContainer = function () {
|
|
|
47063
47782
|
var _k = React.useState(false),
|
|
47064
47783
|
itineraryOpen = _k[0],
|
|
47065
47784
|
setItineraryOpen = _k[1];
|
|
47066
|
-
var _l = React.useState(
|
|
47067
|
-
|
|
47068
|
-
|
|
47785
|
+
var _l = React.useState(false),
|
|
47786
|
+
isBookingConfirmation = _l[0],
|
|
47787
|
+
setIsBookingConfirmation = _l[1];
|
|
47788
|
+
var _m = React.useState(null),
|
|
47789
|
+
selectedAccommodationSeed = _m[0],
|
|
47790
|
+
setSelectedAccommodationSeed = _m[1];
|
|
47069
47791
|
var skipInitialPackagingAccoDetailsRef = React.useRef(false);
|
|
47070
47792
|
var panelRef = React.useRef(null);
|
|
47071
47793
|
var sortByTypes = [
|
|
@@ -47810,6 +48532,13 @@ var SearchResultsContainer = function () {
|
|
|
47810
48532
|
if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
|
|
47811
48533
|
dispatch(setEditablePackagingEntry(structuredClone(context.packagingEntry)));
|
|
47812
48534
|
dispatch(setTransactionId(context.packagingEntry.transactionId));
|
|
48535
|
+
var params = new URLSearchParams(location.search);
|
|
48536
|
+
var bookingConfirmation = getStringFromParams(params, 'bookingConfirmation');
|
|
48537
|
+
console.log('bookingConfirmation', bookingConfirmation);
|
|
48538
|
+
if (bookingConfirmation == 'true') {
|
|
48539
|
+
setIsBookingConfirmation(true);
|
|
48540
|
+
dispatch(setBookPackagingEntry(true));
|
|
48541
|
+
}
|
|
47813
48542
|
}
|
|
47814
48543
|
},
|
|
47815
48544
|
[context === null || context === void 0 ? void 0 : context.packagingEntry]
|
|
@@ -48514,38 +49243,45 @@ var SearchResultsContainer = function () {
|
|
|
48514
49243
|
return __assign(__assign({}, entry), { language: language, transactionId: transactionId, pax: entry.pax, lines: nextLines });
|
|
48515
49244
|
};
|
|
48516
49245
|
var buildBasePackagingEntry = function (sourceEntry, seed, transactionId, language) {
|
|
48517
|
-
var _a
|
|
49246
|
+
var _a;
|
|
48518
49247
|
if (sourceEntry) {
|
|
48519
49248
|
return structuredClone(sourceEntry);
|
|
48520
49249
|
}
|
|
48521
49250
|
var paxId = 0;
|
|
48522
|
-
var pax =
|
|
48523
|
-
|
|
48524
|
-
|
|
48525
|
-
|
|
48526
|
-
|
|
48527
|
-
|
|
48528
|
-
|
|
48529
|
-
|
|
48530
|
-
|
|
48531
|
-
|
|
48532
|
-
|
|
48533
|
-
|
|
48534
|
-
|
|
48535
|
-
|
|
48536
|
-
|
|
48537
|
-
|
|
48538
|
-
|
|
49251
|
+
var pax = [];
|
|
49252
|
+
var rooms = [];
|
|
49253
|
+
(_a = seed.rooms) === null || _a === void 0
|
|
49254
|
+
? void 0
|
|
49255
|
+
: _a.forEach(function (room, roomIndex) {
|
|
49256
|
+
var paxIds = room.pax.map(function (_, paxIndex) {
|
|
49257
|
+
var id = paxId++;
|
|
49258
|
+
pax.push({
|
|
49259
|
+
id: id,
|
|
49260
|
+
firstName: '',
|
|
49261
|
+
lastName: '',
|
|
49262
|
+
dateOfBirth: null,
|
|
49263
|
+
isMainBooker: roomIndex === 0 && paxIndex === 0
|
|
49264
|
+
});
|
|
49265
|
+
return id;
|
|
49266
|
+
});
|
|
49267
|
+
rooms.push({
|
|
49268
|
+
id: roomIndex,
|
|
49269
|
+
paxIds: paxIds
|
|
49270
|
+
});
|
|
49271
|
+
});
|
|
48539
49272
|
return {
|
|
48540
49273
|
language: language,
|
|
48541
49274
|
transactionId: transactionId,
|
|
48542
49275
|
dossierNumber: '',
|
|
48543
|
-
status: 0,
|
|
49276
|
+
status: context === null || context === void 0 ? void 0 : context.entryStatus,
|
|
49277
|
+
customStatusId: context === null || context === void 0 ? void 0 : context.customEntryStatusId,
|
|
48544
49278
|
bookingDate: null,
|
|
48545
49279
|
price: 0,
|
|
48546
49280
|
depositAmount: 0,
|
|
48547
49281
|
pax: pax,
|
|
48548
|
-
|
|
49282
|
+
rooms: rooms,
|
|
49283
|
+
lines: [],
|
|
49284
|
+
address: {}
|
|
48549
49285
|
};
|
|
48550
49286
|
};
|
|
48551
49287
|
var handleShowMoreFlights = function (flyInType) {
|
|
@@ -48560,7 +49296,7 @@ var SearchResultsContainer = function () {
|
|
|
48560
49296
|
'div',
|
|
48561
49297
|
{ className: 'search' },
|
|
48562
49298
|
bookPackagingEntry
|
|
48563
|
-
? React__default['default'].createElement(BookPackagingEntry, { activeSearchSeed: activeSearchSeed })
|
|
49299
|
+
? React__default['default'].createElement(BookPackagingEntry, { activeSearchSeed: activeSearchSeed, isConfirmationPage: isBookingConfirmation })
|
|
48564
49300
|
: React__default['default'].createElement(
|
|
48565
49301
|
'div',
|
|
48566
49302
|
{ className: 'search__container' },
|