@qite/tide-booking-component 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
- package/build/build-cjs/booking-product/components/rooms.d.ts +2 -0
- package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +1 -1
- package/build/build-cjs/booking-wizard/types.d.ts +0 -1
- package/build/build-cjs/index.js +275 -44
- package/build/build-cjs/shared/utils/localization-util.d.ts +3 -0
- package/build/build-esm/booking-product/components/footer.d.ts +1 -0
- package/build/build-esm/booking-product/components/rooms.d.ts +2 -0
- package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +1 -1
- package/build/build-esm/booking-wizard/types.d.ts +0 -1
- package/build/build-esm/index.js +276 -45
- package/build/build-esm/shared/utils/localization-util.d.ts +3 -0
- package/package.json +1 -1
- package/rollup.config.js +23 -23
- package/src/booking-product/components/footer.tsx +7 -1
- package/src/booking-product/components/product.tsx +4 -0
- package/src/booking-product/components/rating.tsx +21 -21
- package/src/booking-product/components/rooms.tsx +5 -2
- package/src/booking-wizard/components/icon.tsx +250 -1
- package/src/booking-wizard/components/labeled-input.tsx +64 -64
- package/src/booking-wizard/components/labeled-select.tsx +69 -69
- package/src/booking-wizard/features/booking/selectors.ts +12 -2
- package/src/booking-wizard/features/flight-options/flight-filter.tsx +16 -3
- package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +8 -6
- package/src/booking-wizard/features/flight-options/flight-option.tsx +1 -1
- package/src/booking-wizard/features/product-options/option-pax-card.tsx +93 -22
- package/src/booking-wizard/features/product-options/option-units-card.tsx +93 -21
- package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +2 -2
- package/src/booking-wizard/features/summary/summary.tsx +3 -1
- package/src/shared/utils/class-util.ts +9 -9
- package/styles/booking-wizard-variables.scss +530 -0
- package/styles/booking-wizard.scss +23 -1
- package/styles/components/_booking.scss +1409 -0
- package/styles/components/_checkbox.scss +215 -0
- package/styles/components/_cta.scss +80 -14
- package/styles/components/_date-range-picker.scss +1 -0
- package/styles/components/_flight-option.scss +1389 -0
- package/styles/components/_form.scss +258 -0
- package/styles/components/_list.scss +82 -0
- package/styles/components/_mixins.scss +17 -5
- package/styles/components/_placeholders.scss +2 -2
- package/styles/components/_pricing-summary.scss +117 -0
- package/styles/components/_select-wrapper.scss +66 -0
- package/styles/components/_step-indicators.scss +160 -0
- package/styles/components/_table.scss +81 -0
- package/styles/components/_tree.scss +540 -0
- package/tsconfig.json +24 -24
|
@@ -2,6 +2,8 @@ import React from "react";
|
|
|
2
2
|
import { ProductRoom } from "../types";
|
|
3
3
|
interface RoomsProps {
|
|
4
4
|
rooms: ProductRoom[];
|
|
5
|
+
isDisabled: boolean;
|
|
6
|
+
setIsDisabled: (isOpen: boolean) => void;
|
|
5
7
|
onChange: (rooms: ProductRoom[]) => void;
|
|
6
8
|
}
|
|
7
9
|
declare const Rooms: React.FC<RoomsProps>;
|
|
@@ -47,7 +47,7 @@ export declare const selectIsUnavailable: (state: RootState) => boolean | undefi
|
|
|
47
47
|
export declare const selectRequestRooms: (state: RootState) => import("@qite/tide-client/build/types").BookingPackageRequestRoom[] | undefined;
|
|
48
48
|
export declare const selectOfficeId: (state: RootState) => number;
|
|
49
49
|
export declare const selectLanguageCode: (state: RootState) => string;
|
|
50
|
-
export declare const selectTranslations: (state: RootState) => any
|
|
50
|
+
export declare const selectTranslations: (state: RootState) => Record<string, any>;
|
|
51
51
|
export declare const selectBookingOptions: (state: RootState) => import("../../types").BookingOptions;
|
|
52
52
|
export declare const selectBookingType: (state: RootState) => string;
|
|
53
53
|
export declare const selectTagIds: (state: RootState) => number[] | undefined;
|
package/build/build-esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
import React, { useLayoutEffect as useLayoutEffect$1, useEffect, useContext, useState } from 'react';
|
|
2
|
+
import React, { useLayoutEffect as useLayoutEffect$1, useEffect, useContext, useState, useRef } from 'react';
|
|
3
3
|
import JsonURL from '@jsonurl/jsonurl';
|
|
4
4
|
import { isToday, getDate, getYear, getMonth, startOfWeek, startOfMonth, endOfWeek, addWeeks, endOfMonth, eachDayOfInterval, format as format$1, getISOWeek, getISODay, isSameMonth, startOfDay, isAfter, isEqual, isWithinInterval, endOfDay, isBefore, addMonths, addDays, formatISO, differenceInYears, parseISO, differenceInMinutes, differenceInCalendarDays, parse } from 'date-fns';
|
|
5
5
|
import { isNil, isArray, compact, isEmpty, range, chunk, isFunction, clamp, omit, sum, first, orderBy, uniq, uniqBy, sortBy, last, findIndex, set, get as get$2 } from 'lodash';
|
|
@@ -49,8 +49,8 @@ function __awaiter$1(thisArg, _arguments, P, generator) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function __generator$1(thisArg, body) {
|
|
52
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
53
|
-
return g
|
|
52
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
53
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
54
54
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
55
55
|
function step(op) {
|
|
56
56
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -813,6 +813,8 @@ var ServiceType = {
|
|
|
813
813
|
voucher: 26,
|
|
814
814
|
reduction: 27,
|
|
815
815
|
rocket: 28,
|
|
816
|
+
tent: 29,
|
|
817
|
+
camp: 30,
|
|
816
818
|
};
|
|
817
819
|
|
|
818
820
|
/******************************************************************************
|
|
@@ -7398,7 +7400,7 @@ var ENDPOINT_FEED = ENDPOINT + "/feed";
|
|
|
7398
7400
|
* api/web/file/feed
|
|
7399
7401
|
* fetch a xml from blob feed.
|
|
7400
7402
|
* @param config
|
|
7401
|
-
* @param
|
|
7403
|
+
* @param slug
|
|
7402
7404
|
* @param signal
|
|
7403
7405
|
* @returns OK if succeeded.
|
|
7404
7406
|
*/
|
|
@@ -7407,6 +7409,20 @@ var feedXml = function (config, request, signal) {
|
|
|
7407
7409
|
var apiKey = config.apiKey;
|
|
7408
7410
|
return get$1(url, apiKey, config.token, signal);
|
|
7409
7411
|
};
|
|
7412
|
+
/**
|
|
7413
|
+
* api/web/file/feed
|
|
7414
|
+
* fetch a xml from blob feed in subfolder.
|
|
7415
|
+
* @param config
|
|
7416
|
+
* @param slug
|
|
7417
|
+
* @param folder
|
|
7418
|
+
* @param signal
|
|
7419
|
+
* @returns OK if succeeded.
|
|
7420
|
+
*/
|
|
7421
|
+
var feedXmlFolder = function (config, slug, folder, signal) {
|
|
7422
|
+
var url = "" + config.host + ENDPOINT_FEED + "/" + slug + "/" + folder;
|
|
7423
|
+
var apiKey = config.apiKey;
|
|
7424
|
+
return get$1(url, apiKey, config.token, signal);
|
|
7425
|
+
};
|
|
7410
7426
|
|
|
7411
7427
|
build.AllotmentType = AllotmentType;
|
|
7412
7428
|
build.AvailabilitySearchType = AvailabilitySearchType;
|
|
@@ -7429,6 +7445,7 @@ build.createCrmContact = createCrmContact;
|
|
|
7429
7445
|
build.createParams = createParams;
|
|
7430
7446
|
var details_1 = build.details = details;
|
|
7431
7447
|
build.feedXml = feedXml;
|
|
7448
|
+
build.feedXmlFolder = feedXmlFolder;
|
|
7432
7449
|
build.forgotPassword = forgotPassword;
|
|
7433
7450
|
var generateBookingAccommodations_1 = build.generateBookingAccommodations = generateBookingAccommodations;
|
|
7434
7451
|
build.getAffiliates = getAffiliates;
|
|
@@ -9071,7 +9088,7 @@ var Loader = function (_a) {
|
|
|
9071
9088
|
};
|
|
9072
9089
|
|
|
9073
9090
|
var Footer = function (_a) {
|
|
9074
|
-
var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, handleBookClick = _a.handleBookClick;
|
|
9091
|
+
var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, roomsIsDisabled = _a.roomsIsDisabled, handleBookClick = _a.handleBookClick;
|
|
9075
9092
|
var _b = useContext(SettingsContext$1), language = _b.language, alternativeActionText = _b.alternativeActionText, alternativeAction = _b.alternativeAction;
|
|
9076
9093
|
var translations = getTranslations(language);
|
|
9077
9094
|
return (React.createElement("div", { className: "booking-product__footer" }, isLoading
|
|
@@ -9080,7 +9097,10 @@ var Footer = function (_a) {
|
|
|
9080
9097
|
priceText && (React.createElement("div", { className: "booking-product__footer-total" },
|
|
9081
9098
|
React.createElement("div", { className: "booking-product__footer-label" }, translations.SHARED.TOTAL_PRICE),
|
|
9082
9099
|
React.createElement("div", { className: "booking-product__footer-price" }, priceText))),
|
|
9083
|
-
React.createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React.createElement("button", { type: "button", className:
|
|
9100
|
+
React.createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React.createElement("button", { type: "button", className: buildClassName([
|
|
9101
|
+
"cta",
|
|
9102
|
+
!roomsIsDisabled && "cta--disabled"
|
|
9103
|
+
]), onClick: handleBookClick, disabled: !roomsIsDisabled }, isOffer ? translations.PRODUCT.TO_YOUR_OFFER : translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
|
|
9084
9104
|
? (React.createElement("a", { href: "#offer-form", className: "cta", onClick: alternativeAction }, alternativeActionText))
|
|
9085
9105
|
: (React.createElement(React.Fragment, null, translations.PRODUCT.NOT_AVAILABLE))))))));
|
|
9086
9106
|
};
|
|
@@ -9155,10 +9175,9 @@ var AmountInput = function (_a) {
|
|
|
9155
9175
|
};
|
|
9156
9176
|
|
|
9157
9177
|
var Rooms = function (_a) {
|
|
9158
|
-
var rooms = _a.rooms, onChange = _a.onChange;
|
|
9159
|
-
var _b = useState(
|
|
9160
|
-
var _c = useState(
|
|
9161
|
-
var _d = useState(rooms), currentRooms = _d[0], setRoomState = _d[1];
|
|
9178
|
+
var rooms = _a.rooms, isDisabled = _a.isDisabled, setIsDisabled = _a.setIsDisabled, onChange = _a.onChange;
|
|
9179
|
+
var _b = useState(false), isTouched = _b[0], setIsTouched = _b[1];
|
|
9180
|
+
var _c = useState(rooms), currentRooms = _c[0], setRoomState = _c[1];
|
|
9162
9181
|
var language = useContext(SettingsContext$1).language;
|
|
9163
9182
|
var translations = getTranslations(language);
|
|
9164
9183
|
var handleCloseClick = function () {
|
|
@@ -9228,12 +9247,13 @@ var Product = function (_a) {
|
|
|
9228
9247
|
var translations = getTranslations(language);
|
|
9229
9248
|
var _e = useState(false), loaded = _e[0], setLoaded = _e[1];
|
|
9230
9249
|
var _f = useState(false), isLoading = _f[0], setIsLoading = _f[1];
|
|
9231
|
-
var _g = useState(),
|
|
9232
|
-
var _h = useState(
|
|
9233
|
-
var _j = useState(false),
|
|
9234
|
-
var _k = useState(
|
|
9235
|
-
var _l = useState(),
|
|
9236
|
-
var _m = useState(
|
|
9250
|
+
var _g = useState(true), roomsIsDisabled = _g[0], setRoomsIsDisabled = _g[1];
|
|
9251
|
+
var _h = useState(), price = _h[0], setPrice = _h[1];
|
|
9252
|
+
var _j = useState(false), hasFlight = _j[0], setHasFlight = _j[1];
|
|
9253
|
+
var _k = useState(false), hasTransfer = _k[0], setHasTransfer = _k[1];
|
|
9254
|
+
var _l = useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _l[0], setRooms = _l[1];
|
|
9255
|
+
var _m = useState(), dateRange = _m[0], setDateRange = _m[1];
|
|
9256
|
+
var _o = useState(productName), packageProductName = _o[0], setPackageProductName = _o[1];
|
|
9237
9257
|
var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
9238
9258
|
var apiSettingsState, startDate, endDate, requestRooms, request, response, selectedOption, hasFlight_1, hasTranfer;
|
|
9239
9259
|
return __generator$1(this, function (_a) {
|
|
@@ -9393,9 +9413,9 @@ var Product = function (_a) {
|
|
|
9393
9413
|
return (React.createElement("div", { className: "booking-product" },
|
|
9394
9414
|
React.createElement(Header, { name: packageProductName, rating: rating, priceText: priceText, isLoading: isLoading, hasFlight: hasFlight, hasTransfer: hasTransfer }),
|
|
9395
9415
|
React.createElement("div", { className: "booking-product__body" },
|
|
9396
|
-
React.createElement(Rooms, { rooms: rooms, onChange: handleRoomChange }),
|
|
9416
|
+
React.createElement(Rooms, { rooms: rooms, isDisabled: roomsIsDisabled, setIsDisabled: setRoomsIsDisabled, onChange: handleRoomChange }),
|
|
9397
9417
|
React.createElement(Dates, { value: dateRange, duration: duration, onChange: handleDateChange })),
|
|
9398
|
-
React.createElement(Footer, { priceText: priceText, isLoading: isLoading, isOffer: isOffer, handleBookClick: handleBookClick })));
|
|
9418
|
+
React.createElement(Footer, { priceText: priceText, isLoading: isLoading, isOffer: isOffer, roomsIsDisabled: roomsIsDisabled, handleBookClick: handleBookClick })));
|
|
9399
9419
|
};
|
|
9400
9420
|
|
|
9401
9421
|
var BookingProduct = function (_a) {
|
|
@@ -9719,9 +9739,15 @@ var selectLanguageCode = function (state) {
|
|
|
9719
9739
|
return state.booking.languageCode;
|
|
9720
9740
|
};
|
|
9721
9741
|
var selectTranslations = function (state) {
|
|
9722
|
-
var _a;
|
|
9723
|
-
var
|
|
9724
|
-
|
|
9742
|
+
var _a, _b;
|
|
9743
|
+
var defaultStaticTranslations = getTranslations(state.booking.languageCode);
|
|
9744
|
+
var dynamicTranslations = (_b = (state.booking.translations && ((_a = state.booking.translations.find(function (x) { return x.language == state.booking.languageCode; })) === null || _a === void 0 ? void 0 : _a.value))) !== null && _b !== void 0 ? _b : {};
|
|
9745
|
+
var merged = {};
|
|
9746
|
+
for (var _i = 0, _c = Array.from(new Set(__spreadArray(__spreadArray([], Object.keys(defaultStaticTranslations), true), Object.keys(dynamicTranslations), true))); _i < _c.length; _i++) {
|
|
9747
|
+
var key = _c[_i];
|
|
9748
|
+
merged[key] = __assign(__assign({}, (defaultStaticTranslations[key] || {})), (dynamicTranslations[key] || {}));
|
|
9749
|
+
}
|
|
9750
|
+
return merged;
|
|
9725
9751
|
};
|
|
9726
9752
|
var selectBookingOptions = function (state) {
|
|
9727
9753
|
return state.booking.bookingOptions;
|
|
@@ -10559,25 +10585,146 @@ var Icon = function (_a) {
|
|
|
10559
10585
|
}
|
|
10560
10586
|
switch (name) {
|
|
10561
10587
|
case "ui-chevron":
|
|
10588
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10589
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10590
|
+
.join(" "), width: width, height: height, viewBox: "0 0 320 512" },
|
|
10591
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10592
|
+
title && React.createElement("title", null, title),
|
|
10593
|
+
React.createElement("path", { d: "M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z" })));
|
|
10562
10594
|
case "ui-error":
|
|
10595
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10596
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10597
|
+
.join(" "), width: width, height: height, viewBox: "0 0 512 512" },
|
|
10598
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10599
|
+
title && React.createElement("title", null, title),
|
|
10600
|
+
React.createElement("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" })));
|
|
10563
10601
|
case "ui-tel":
|
|
10602
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10603
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10604
|
+
.join(" "), width: width, height: height, viewBox: "0 0 512 512" },
|
|
10605
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10606
|
+
title && React.createElement("title", null, title),
|
|
10607
|
+
React.createElement("path", { d: "M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z" })));
|
|
10564
10608
|
case "ui-mail":
|
|
10609
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10610
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10611
|
+
.join(" "), width: width, height: height, viewBox: "0 0 512 512" },
|
|
10612
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10613
|
+
title && React.createElement("title", null, title),
|
|
10614
|
+
React.createElement("path", { d: "M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z" })));
|
|
10565
10615
|
case "ui-home":
|
|
10566
10616
|
case "ui-filter":
|
|
10617
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10618
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10619
|
+
.join(" "), width: width, height: height, viewBox: "0 0 10.701 9.698" },
|
|
10620
|
+
title && React.createElement("title", null, title),
|
|
10621
|
+
React.createElement("g", { id: "filter-solid", transform: "translate(-2.667 -5.333)" },
|
|
10622
|
+
React.createElement("path", { id: "Path_54", "data-name": "Path 54", d: "M9.355,15.031V10.517l3.836-3.846a.605.605,0,0,0,.177-.435V5.668a.334.334,0,0,0-.334-.334H3a.334.334,0,0,0-.334.334v.558a.6.6,0,0,0,.177.425L6.68,10.544v3.411Z", transform: "translate(0 0)", fill: "#12aad8" }),
|
|
10623
|
+
React.createElement("path", { id: "Path_55", "data-name": "Path 55", d: "M13.194,5.333H2.827a.174.174,0,0,0-.161.174v.575A.445.445,0,0,0,2.8,6.4L6.81,10.413v3.344l2.425,1.207V10.406l4.013-4.013a.451.451,0,0,0,.12-.3V5.507a.174.174,0,0,0-.174-.174Z" }))));
|
|
10567
10624
|
case "ui-close":
|
|
10625
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10626
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10627
|
+
.join(" "), width: width, height: height, viewBox: "0 0 384 512" },
|
|
10628
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10629
|
+
title && React.createElement("title", null, title),
|
|
10630
|
+
React.createElement("path", { d: "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" })));
|
|
10568
10631
|
case "ui-ticket":
|
|
10632
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10633
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10634
|
+
.join(" "), width: width, height: height, viewBox: "0 0 20 20" },
|
|
10635
|
+
title && React.createElement("title", null, title),
|
|
10636
|
+
React.createElement("g", { id: "ticket", transform: "translate(0.439 1.629)" },
|
|
10637
|
+
React.createElement("path", { id: "Path_14", "data-name": "Path 14", d: "M12.125,5.335l3.751,3.751L9.086,15.875,5.335,12.125Zm-2.5,11.62L16.955,9.62a.745.745,0,0,0,0-1.068l-4.3-4.3a.774.774,0,0,0-1.068,0L4.255,11.59a.745.745,0,0,0,0,1.068l4.3,4.3a.774.774,0,0,0,1.068,0ZM20.172,9.395,9.406,20.172a1.533,1.533,0,0,1-2.148,0l-1.5-1.5a2.293,2.293,0,0,0,0-3.228,2.2,2.2,0,0,0-1.614-.665,2.2,2.2,0,0,0-1.614.665l-1.484-1.5a1.533,1.533,0,0,1,0-2.148L11.816,1.05a1.533,1.533,0,0,1,2.148,0l1.484,1.484a2.2,2.2,0,0,0-.665,1.614,2.2,2.2,0,0,0,.665,1.614,2.293,2.293,0,0,0,3.228,0l1.5,1.484a1.533,1.533,0,0,1,0,2.148Z", transform: "translate(-1.05 -2.24)" }))));
|
|
10569
10638
|
case "ui-payback":
|
|
10639
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10640
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10641
|
+
.join(" "), width: width, height: height, viewBox: "0 0 20 20.154" },
|
|
10642
|
+
title && React.createElement("title", null, title),
|
|
10643
|
+
React.createElement("g", { id: "layer1", transform: "translate(-205.148 -293.014)" },
|
|
10644
|
+
React.createElement("path", { id: "path453469", d: "M223.472,306.895a1.674,1.674,0,0,0-1.188.487l-1.971,1.972a1.67,1.67,0,0,0-.978-.726l-4.652-1.247a2.766,2.766,0,0,0-2.182.331l-2.9,1.832-.235-.408a1.089,1.089,0,0,0-1.471-.394l-2.209,1.274a1.089,1.089,0,0,0-.394,1.471l3.291,5.7a1.088,1.088,0,0,0,1.47.4l2.209-1.276a1.09,1.09,0,0,0,.395-1.471l-.043-.076,1.258-.85,4.63.911a1.742,1.742,0,0,0,1.653-.514c1.493-1.527,2.988-3.048,4.505-4.544l0,0a1.675,1.675,0,0,0-1.189-2.863Zm0,1.332a.336.336,0,0,1,.238.1.323.323,0,0,1,0,.476c-1.525,1.5-3.024,3.031-4.518,4.559a1.847,1.847,0,0,1-.433.134l-4.9-.963a.672.672,0,0,0-.507.1l-1.411.954-1.667-2.886,2.947-1.858a1.411,1.411,0,0,1,1.118-.171l4.652,1.247a.336.336,0,1,1-.175.65l-2.92-.782a.672.672,0,0,0-.348,1.3l2.92.782a1.693,1.693,0,0,0,1.741-.572.672.672,0,0,0,.177-.118l2.85-2.852A.336.336,0,0,1,223.472,308.226Zm-15.14,1.812.325.564a.615.615,0,0,0,.253.438l2.445,4.235-1.745,1.008-3.024-5.237Z", transform: "translate(0 -4.554)", "fill-rule": "evenodd" }),
|
|
10645
|
+
React.createElement("path", { id: "path453459", d: "M223.672,301.014a.672.672,0,1,0,0,1.344h1.344a.672.672,0,1,0,0-1.344Z", transform: "translate(-5.857 -2.625)", "fill-rule": "evenodd" }),
|
|
10646
|
+
React.createElement("path", { id: "path453437", d: "M223.672,297.014a.672.672,0,0,0,0,1.344h1.344a.672.672,0,0,0,0-1.344Z", transform: "translate(-5.857 -1.312)", "fill-rule": "evenodd" }),
|
|
10647
|
+
React.createElement("path", { id: "rect18334", d: "M222.7,293.014a4.7,4.7,0,1,0,4.7,4.7A4.714,4.714,0,0,0,222.7,293.014Zm0,1.344a3.359,3.359,0,1,1-3.359,3.359A3.349,3.349,0,0,1,222.7,294.357Z", transform: "translate(-4.217)", "fill-rule": "evenodd" }))));
|
|
10570
10648
|
case "ui-backpack":
|
|
10649
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10650
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10651
|
+
.join(" "), width: width, height: height, viewBox: "0 0 14.499 16.11" },
|
|
10652
|
+
title && React.createElement("title", null, title),
|
|
10653
|
+
React.createElement("path", { id: "Path_2", "data-name": "Path 2", d: "M22.444,28.805A.805.805,0,0,0,21.639,28H16.806a.806.806,0,0,0-.806.806v1.611h6.444ZM16,32.027h6.444v2.417H16Z", transform: "translate(-11.972 -18.334)" }),
|
|
10654
|
+
React.createElement("path", { id: "Path_3", "data-name": "Path 3", d: "M20.5,12.055a4.837,4.837,0,0,0-4.028-4.761V6.417A2.419,2.419,0,0,0,14.055,4H12.444a2.419,2.419,0,0,0-2.417,2.417v.878A4.837,4.837,0,0,0,6,12.055V18.5A1.613,1.613,0,0,0,7.611,20.11h.806V14.472a2.419,2.419,0,0,1,2.417-2.417h4.833a2.419,2.419,0,0,1,2.417,2.417V20.11h.806A1.613,1.613,0,0,0,20.5,18.5ZM11.639,6.417a.806.806,0,0,1,.806-.806h1.611a.805.805,0,0,1,.805.806v.806H11.639Z", transform: "translate(-6 -4)" })));
|
|
10571
10655
|
case "ui-suitcase":
|
|
10656
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10657
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10658
|
+
.join(" "), width: width, height: height, viewBox: "0 0 15.992 13.708" },
|
|
10659
|
+
title && React.createElement("title", null, title),
|
|
10660
|
+
React.createElement("path", { id: "Path_21", "data-name": "Path 21", d: "M5.712,2.285h4.569V1.142H5.712Zm-3.141,0V13.708H2a1.924,1.924,0,0,1-1.41-.589A1.924,1.924,0,0,1,0,11.709V4.284a1.924,1.924,0,0,1,.589-1.41A1.924,1.924,0,0,1,2,2.285Zm10,0V13.708H3.427V2.285H4.569V.857A.826.826,0,0,1,4.819.25.826.826,0,0,1,5.426,0h5.14a.826.826,0,0,1,.607.25.826.826,0,0,1,.25.607V2.285Zm3.427,2v7.425a2.011,2.011,0,0,1-2,2h-.571V2.285h.571a1.924,1.924,0,0,1,1.41.589A1.924,1.924,0,0,1,15.992,4.284Z", transform: "translate(0 0)" })));
|
|
10572
10661
|
case "ui-business-lounge":
|
|
10662
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10663
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10664
|
+
.join(" "), width: width, height: height, viewBox: "0 0 20 19.999" },
|
|
10665
|
+
title && React.createElement("title", null, title),
|
|
10666
|
+
React.createElement("g", { id: "waiting-room-svgrepo-com", transform: "translate(0 -0.008)" },
|
|
10667
|
+
React.createElement("g", { id: "Group_46", "data-name": "Group 46", transform: "translate(0 0.008)" },
|
|
10668
|
+
React.createElement("g", { id: "Group_45", "data-name": "Group 45", transform: "translate(0)" },
|
|
10669
|
+
React.createElement("path", { id: "Path_33", "data-name": "Path 33", d: "M65.683,110.007a1.667,1.667,0,1,0-1.667-1.667A1.666,1.666,0,0,0,65.683,110.007Z", transform: "translate(-61.515 -102.507)" }),
|
|
10670
|
+
React.createElement("path", { id: "Path_34", "data-name": "Path 34", d: "M6.25,242.2H2.418L.824,235.025a.417.417,0,1,0-.814.181l1.657,7.455v2.454a.417.417,0,1,0,.833,0v-2.083H5v2.083a.417.417,0,1,0,.833,0v-2.083h.417a.417.417,0,0,0,0-.833Z", transform: "translate(0 -225.532)" }),
|
|
10671
|
+
React.createElement("path", { id: "Path_35", "data-name": "Path 35", d: "M281.933.008a4.583,4.583,0,1,0,4.583,4.583A4.588,4.588,0,0,0,281.933.008Zm1.667,5h-1.667a.417.417,0,0,1-.417-.417v-2.5a.417.417,0,0,1,.833,0V4.175h1.25a.417.417,0,1,1,0,.833Z", transform: "translate(-266.516 -0.008)" }),
|
|
10672
|
+
React.createElement("path", { id: "Path_36", "data-name": "Path 36", d: "M70.265,218.341H67.348v-3.333a1.667,1.667,0,0,0-3.333,0v4.583a1.251,1.251,0,0,0,1.25,1.25h3.75v2.917a1.25,1.25,0,1,0,2.5,0v-4.167A1.251,1.251,0,0,0,70.265,218.341Z", transform: "translate(-61.514 -205.008)" }))))));
|
|
10573
10673
|
case "ui-shopping-bag":
|
|
10674
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10675
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10676
|
+
.join(" "), width: width, height: height, viewBox: "0 0 13.299 14.65" },
|
|
10677
|
+
title && React.createElement("title", null, title),
|
|
10678
|
+
React.createElement("path", { id: "Path_22", "data-name": "Path 22", d: "M9.135.6A3.523,3.523,0,0,0,5.612,4.123V5.691A2.455,2.455,0,0,0,5,5.869,2.967,2.967,0,0,0,3.842,6.8,6.951,6.951,0,0,0,3,9.393c-.452,2.056-.678,3.083-.392,3.885A2.967,2.967,0,0,0,3.835,14.8c.721.451,1.774.451,3.878.451h2.843c2.1,0,3.157,0,3.878-.451a2.967,2.967,0,0,0,1.223-1.521c.285-.8.059-1.829-.392-3.885a6.951,6.951,0,0,0-.837-2.59,2.967,2.967,0,0,0-1.162-.934,2.456,2.456,0,0,0-.608-.178V4.123A3.523,3.523,0,0,0,9.135.6Zm2.411,5.012V4.123a2.411,2.411,0,0,0-4.821,0V5.612c.287,0,.613,0,.989,0h2.843C10.933,5.607,11.259,5.607,11.546,5.612ZM6.168,8.574a.742.742,0,1,0-.742-.742A.742.742,0,0,0,6.168,8.574Zm6.676-.742A.742.742,0,1,1,12.1,7.09.742.742,0,0,1,12.844,7.832Z", transform: "translate(-2.486 -0.6)", "fill-rule": "evenodd" })));
|
|
10574
10679
|
case "ui-priority":
|
|
10680
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10681
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10682
|
+
.join(" "), width: width, height: height, viewBox: "0 0 20 17.533" },
|
|
10683
|
+
title && React.createElement("title", null, title),
|
|
10684
|
+
React.createElement("g", { id: "list-high-priority", transform: "translate(-1.5 -2.552)" },
|
|
10685
|
+
React.createElement("path", { id: "Path_24", "data-name": "Path 24", d: "M24,39H34v1.333H24Z", transform: "translate(-12.5 -20.249)" }),
|
|
10686
|
+
React.createElement("path", { id: "Path_25", "data-name": "Path 25", d: "M24,29H34v1.333H24Z", transform: "translate(-12.5 -14.694)" }),
|
|
10687
|
+
React.createElement("path", { id: "Path_26", "data-name": "Path 26", d: "M24,19H34v1.333H24Z", transform: "translate(-12.5 -9.138)" }),
|
|
10688
|
+
React.createElement("path", { id: "Path_27", "data-name": "Path 27", d: "M30.75,9h7v1.333h-7Z", transform: "translate(-16.25 -3.583)" }),
|
|
10689
|
+
React.createElement("path", { id: "Path_28", "data-name": "Path 28", d: "M13.417,6.043,7.8,2.551V5.418H7.551a5.544,5.544,0,0,0-4.326,2.2A8.164,8.164,0,0,0,1.5,12.751a8.164,8.164,0,0,0,1.725,5.133,5.544,5.544,0,0,0,4.326,2.2H9.833V18.751H7.551c-2.6,0-4.718-2.692-4.718-6s2.117-6,4.718-6H7.8V9.635ZM9.133,4.95l1.783,1.109L9.133,7.2Z" }))));
|
|
10575
10690
|
case "ui-tooltip":
|
|
10576
|
-
|
|
10691
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10692
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10693
|
+
.join(" "), width: width, height: height, viewBox: "0 0 512 512" },
|
|
10694
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10695
|
+
title && React.createElement("title", null, title),
|
|
10696
|
+
React.createElement("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" })));
|
|
10577
10697
|
case "ui-qsm-location":
|
|
10698
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10699
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10700
|
+
.join(" "), width: width, height: height, viewBox: "0 0 384 512" },
|
|
10701
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10702
|
+
title && React.createElement("title", null, title),
|
|
10703
|
+
React.createElement("path", { d: "M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z" })));
|
|
10578
10704
|
case "ui-plane-depart":
|
|
10705
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10706
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10707
|
+
.join(" "), width: width, height: height, viewBox: "0 0 640 512" },
|
|
10708
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10709
|
+
title && React.createElement("title", null, title),
|
|
10710
|
+
React.createElement("path", { d: "M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z" })));
|
|
10579
10711
|
case "ui-plane-arrive":
|
|
10712
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10713
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10714
|
+
.join(" "), width: width, height: height, viewBox: "0 0 640 512" },
|
|
10715
|
+
React.createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
|
|
10716
|
+
title && React.createElement("title", null, title),
|
|
10717
|
+
React.createElement("path", { d: "M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" })));
|
|
10580
10718
|
case "ui-clock":
|
|
10719
|
+
return (React.createElement("svg", { className: ["icon", "icon--".concat(name), className]
|
|
10720
|
+
.filter(function (className) { return !isEmpty(className); })
|
|
10721
|
+
.join(" "), width: width, height: height, viewBox: "0 0 19 19" },
|
|
10722
|
+
title && React.createElement("title", null, title),
|
|
10723
|
+
React.createElement("g", { id: "Group_56", "data-name": "Group 56", transform: "translate(-390 -665)" },
|
|
10724
|
+
React.createElement("circle", { id: "Ellipse_5", "data-name": "Ellipse 5", cx: "9.5", cy: "9.5", r: "9.5", transform: "translate(390 665)", fill: "#fff" }),
|
|
10725
|
+
React.createElement("g", { id: "time", transform: "translate(391.211 666.211)" },
|
|
10726
|
+
React.createElement("path", { id: "Path_11", "data-name": "Path 11", d: "M8.289,13.578a5.289,5.289,0,1,1,5.289-5.289A5.289,5.289,0,0,1,8.289,13.578Zm0-9.823a4.534,4.534,0,1,0,4.534,4.534A4.534,4.534,0,0,0,8.289,3.756Z", transform: "translate(0 0)" }),
|
|
10727
|
+
React.createElement("path", { id: "Path_12", "data-name": "Path 12", d: "M24.612,16.167,22.5,14.055V10.5h.756v3.241l1.889,1.893Z", transform: "translate(-14.589 -5.611)" })))));
|
|
10581
10728
|
default:
|
|
10582
10729
|
return null;
|
|
10583
10730
|
}
|
|
@@ -11076,6 +11223,18 @@ var FlightFilter = function (_a) {
|
|
|
11076
11223
|
var filterOptions = _a.filterOptions, resultCount = _a.resultCount, applyFilter = _a.applyFilter;
|
|
11077
11224
|
var translations = useSelector(selectTranslations);
|
|
11078
11225
|
var _b = useState(false), filtersVisible = _b[0], setFiltersVisible = _b[1];
|
|
11226
|
+
var filterRef = useRef(null);
|
|
11227
|
+
useEffect(function () {
|
|
11228
|
+
function handleClickOutside(event) {
|
|
11229
|
+
if (filterRef.current && !filterRef.current.contains(event.target)) {
|
|
11230
|
+
setFiltersVisible(false);
|
|
11231
|
+
}
|
|
11232
|
+
}
|
|
11233
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
11234
|
+
return function () {
|
|
11235
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
11236
|
+
};
|
|
11237
|
+
}, []);
|
|
11079
11238
|
var updateAirportFilter = function (code) {
|
|
11080
11239
|
var updatedFilterOptions = __assign(__assign({}, filterOptions), { airports: filterOptions.airports.map(function (x) {
|
|
11081
11240
|
if (x.value !== code)
|
|
@@ -11134,10 +11293,10 @@ var FlightFilter = function (_a) {
|
|
|
11134
11293
|
};
|
|
11135
11294
|
return (React.createElement(React.Fragment, null,
|
|
11136
11295
|
React.createElement("button", { type: "button", className: "cta cta--filter", onClick: function () { return setFiltersVisible(!filtersVisible); } },
|
|
11137
|
-
React.createElement(Icon, { name: "filter", width: 11, height: 10 }),
|
|
11296
|
+
React.createElement(Icon, { name: "ui-filter", width: 11, height: 10 }),
|
|
11138
11297
|
React.createElement("span", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
|
|
11139
11298
|
filtersVisible),
|
|
11140
|
-
React.createElement("div", { className: buildClassName(["flight__filter", filtersVisible && "flight__filter--active"]) },
|
|
11299
|
+
React.createElement("div", { ref: filterRef, className: buildClassName(["flight__filter", filtersVisible && "flight__filter--active"]) },
|
|
11141
11300
|
React.createElement("div", { className: "flight__filter__header" },
|
|
11142
11301
|
React.createElement("div", { className: "flight__filter__header__title" },
|
|
11143
11302
|
React.createElement("h3", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
|
|
@@ -11366,18 +11525,16 @@ var FlightOptionFlight = function (_a) {
|
|
|
11366
11525
|
details.isNextDay && (React.createElement("span", { className: "flight__info__times__days" }, translations.FLIGHTS_FORM.PLUS_ONE_DAY))))),
|
|
11367
11526
|
React.createElement("div", { className: "flight__detail__btn__wrapper" },
|
|
11368
11527
|
React.createElement("div", { className: buildClassName(["flight__detail__btn", isDetailVisible && "flight__detail__btn--active"]), onClick: function () { return setIsDetailVisible(!isDetailVisible); } },
|
|
11369
|
-
React.createElement(Icon, { name: "chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
11528
|
+
React.createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
|
|
11370
11529
|
React.createElement("div", { className: buildClassName(["flight__detail", isDetailVisible && "flight__detail--active"]) }, details.flightLines.map(function (flightLine, flightLineIndex) { return (React.createElement(React.Fragment, { key: flightLineIndex },
|
|
11371
11530
|
React.createElement("div", { className: "flight__info" },
|
|
11372
11531
|
React.createElement("div", { className: "flight__info__times__wrapper" },
|
|
11373
11532
|
React.createElement("div", { className: "flight__info__times" },
|
|
11374
|
-
React.createElement("
|
|
11375
|
-
|
|
11376
|
-
" ",
|
|
11377
|
-
flightLine.departureAirport),
|
|
11533
|
+
React.createElement("p", null, flightLine.departureTime),
|
|
11534
|
+
React.createElement("strong", null, flightLine.departureAirport),
|
|
11378
11535
|
React.createElement("p", null, getDateText(flightLine.departureDate))),
|
|
11379
11536
|
React.createElement("div", null,
|
|
11380
|
-
React.createElement(Icon, { name: "plane-depart", width: 30, height: 20 }))),
|
|
11537
|
+
React.createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
|
|
11381
11538
|
React.createElement("div", { className: "flight__info__duration" },
|
|
11382
11539
|
React.createElement("p", null, flightLine.travelDuration),
|
|
11383
11540
|
React.createElement("div", { className: "flight__info__duration__stops" }),
|
|
@@ -11385,18 +11542,16 @@ var FlightOptionFlight = function (_a) {
|
|
|
11385
11542
|
React.createElement("strong", null, flightLine.number)),
|
|
11386
11543
|
React.createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
|
|
11387
11544
|
React.createElement("div", null,
|
|
11388
|
-
React.createElement(Icon, { name: "plane-
|
|
11545
|
+
React.createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
|
|
11389
11546
|
React.createElement("div", { className: "flight__info__times flight__info__times--arrival" },
|
|
11390
|
-
React.createElement("
|
|
11391
|
-
|
|
11392
|
-
" ",
|
|
11393
|
-
flightLine.arrivalAirport),
|
|
11547
|
+
React.createElement("p", null, flightLine.arrivalTime),
|
|
11548
|
+
React.createElement("strong", null, flightLine.arrivalAirport),
|
|
11394
11549
|
React.createElement("p", null, getDateText(flightLine.arrivalDate))))),
|
|
11395
11550
|
flightLine.waitDuration && (React.createElement("div", { className: "flight__info" },
|
|
11396
11551
|
React.createElement("div", { className: "flight__info__times" }),
|
|
11397
11552
|
React.createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
|
|
11398
11553
|
React.createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
|
|
11399
|
-
React.createElement(Icon, { name: "clock", width:
|
|
11554
|
+
React.createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
|
|
11400
11555
|
React.createElement("div", { className: "flight__info__duration__stoptime" },
|
|
11401
11556
|
React.createElement("span", null, translations.FLIGHTS_FORM.STOP_TIME),
|
|
11402
11557
|
React.createElement("strong", null, flightLine.waitDuration))),
|
|
@@ -11428,7 +11583,7 @@ var FlightOption = function (_a) {
|
|
|
11428
11583
|
priceDifference > 0 && "price--increase",
|
|
11429
11584
|
priceDifference < 0 && "price--decrease"
|
|
11430
11585
|
]) }, getPriceDifferenceText(priceDifference))),
|
|
11431
|
-
React.createElement("button", { type: "button", className: "cta ".concat(isSelected ? 'cta--selected' : 'cta--
|
|
11586
|
+
React.createElement("button", { type: "button", className: "cta ".concat(isSelected ? 'cta--selected' : 'cta--select'), onClick: handleButtonClick }, isSelected ? translations.SHARED.SELECTED : translations.SHARED.SELECT)))),
|
|
11432
11587
|
React.createElement(FlightOptionFlight, { details: item.outward, isOptionsVisible: outwardVisible }),
|
|
11433
11588
|
React.createElement(FlightOptionFlight, { details: item.return, isOptionsVisible: returnVisible })))));
|
|
11434
11589
|
};
|
|
@@ -12031,6 +12186,8 @@ var OptionPaxCard = function (_a) {
|
|
|
12031
12186
|
var pax = _a.pax, requestRoomsPax = _a.requestRoomsPax, parentIndex = _a.parentIndex, onPaxChange = _a.onPaxChange;
|
|
12032
12187
|
var _b = useState(), toggleStates = _b[0], setToggleStates = _b[1];
|
|
12033
12188
|
var translations = useSelector(selectTranslations);
|
|
12189
|
+
var departureFlight = useSelector(selectDepartureFlight);
|
|
12190
|
+
var returnFlight = useSelector(selectReturnFlight);
|
|
12034
12191
|
useEffect(function () {
|
|
12035
12192
|
if (!toggleStates || toggleStates.length !== pax.length) {
|
|
12036
12193
|
setToggleStates(pax.map(function () { return true; }));
|
|
@@ -12055,6 +12212,36 @@ var OptionPaxCard = function (_a) {
|
|
|
12055
12212
|
if (onPaxChange)
|
|
12056
12213
|
onPaxChange(updatedPax, parentIndex);
|
|
12057
12214
|
};
|
|
12215
|
+
var getAirlineGroups = function (p) {
|
|
12216
|
+
return p.airlineGroups
|
|
12217
|
+
.filter(function (x) { var _a, _b; return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") || x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : ""); });
|
|
12218
|
+
};
|
|
12219
|
+
var handleOnAirlineGroupChange = function (group, paxId) {
|
|
12220
|
+
var updatedPax = pax.map(function (p) {
|
|
12221
|
+
return p.id !== paxId
|
|
12222
|
+
? p
|
|
12223
|
+
: __assign(__assign({}, p), { airlineGroups: p.airlineGroups.map(function (g) {
|
|
12224
|
+
return g.label === group.label ? group : g;
|
|
12225
|
+
}) });
|
|
12226
|
+
});
|
|
12227
|
+
if (onPaxChange)
|
|
12228
|
+
onPaxChange(updatedPax, parentIndex);
|
|
12229
|
+
};
|
|
12230
|
+
var getAirportGroups = function (p) {
|
|
12231
|
+
return p.airportGroups
|
|
12232
|
+
.filter(function (x) { var _a, _b; return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") || x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : ""); });
|
|
12233
|
+
};
|
|
12234
|
+
var handleOnAirportGroupChange = function (group, paxId) {
|
|
12235
|
+
var updatedPax = pax.map(function (p) {
|
|
12236
|
+
return p.id !== paxId
|
|
12237
|
+
? p
|
|
12238
|
+
: __assign(__assign({}, p), { airportGroups: p.airportGroups.map(function (g) {
|
|
12239
|
+
return g.label === group.label ? group : g;
|
|
12240
|
+
}) });
|
|
12241
|
+
});
|
|
12242
|
+
if (onPaxChange)
|
|
12243
|
+
onPaxChange(updatedPax, parentIndex);
|
|
12244
|
+
};
|
|
12058
12245
|
return (React.createElement(React.Fragment, null, pax.map(function (p, i) {
|
|
12059
12246
|
var _a, _b;
|
|
12060
12247
|
return (React.createElement("div", { key: i, className: buildClassName([
|
|
@@ -12070,11 +12257,16 @@ var OptionPaxCard = function (_a) {
|
|
|
12070
12257
|
React.createElement("button", { type: "button", className: "booking-card__toggle", onClick: function () {
|
|
12071
12258
|
setToggleStates(toggleStates === null || toggleStates === void 0 ? void 0 : toggleStates.map(function (s, si) { return (si == i ? !s : s); }));
|
|
12072
12259
|
} }))),
|
|
12073
|
-
toggleStates &&
|
|
12074
|
-
toggleStates[i] &&
|
|
12260
|
+
toggleStates && toggleStates[i] && (React.createElement(React.Fragment, null,
|
|
12075
12261
|
p.groups.map(function (pg) {
|
|
12076
12262
|
return pg && (React.createElement(OptionPaxGroup, { key: pg.name, paxId: p.id, group: pg, firstClassName: "booking-card__group-body", secondClassName: "booking-card__group-heading", parentId: "".concat(p.id, "_").concat(pg.name), onGroupChange: onGroupChange }));
|
|
12077
|
-
})
|
|
12263
|
+
}),
|
|
12264
|
+
getAirlineGroups(p).map(function (group, i) { return (React.createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
|
|
12265
|
+
handleOnAirlineGroupChange(updatedGroup, p.id);
|
|
12266
|
+
} })); }),
|
|
12267
|
+
getAirportGroups(p).map(function (group, i) { return (React.createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
|
|
12268
|
+
handleOnAirportGroupChange(updatedGroup, p.id);
|
|
12269
|
+
} })); })))));
|
|
12078
12270
|
})));
|
|
12079
12271
|
};
|
|
12080
12272
|
|
|
@@ -12153,6 +12345,8 @@ var OptionUnitsCard = function (_a) {
|
|
|
12153
12345
|
var units = _a.units, parentIndex = _a.parentIndex, onUnitsChange = _a.onUnitsChange;
|
|
12154
12346
|
var _b = useState(), toggleStates = _b[0], setToggleStates = _b[1];
|
|
12155
12347
|
var translations = useSelector(selectTranslations);
|
|
12348
|
+
var departureFlight = useSelector(selectDepartureFlight);
|
|
12349
|
+
var returnFlight = useSelector(selectReturnFlight);
|
|
12156
12350
|
useEffect(function () {
|
|
12157
12351
|
if (!toggleStates || toggleStates.length !== units.length) {
|
|
12158
12352
|
setToggleStates(units.map(function () { return true; }));
|
|
@@ -12172,6 +12366,36 @@ var OptionUnitsCard = function (_a) {
|
|
|
12172
12366
|
if (onUnitsChange)
|
|
12173
12367
|
onUnitsChange(updatedUnits, parentIndex);
|
|
12174
12368
|
};
|
|
12369
|
+
var getAirlineGroups = function (p) {
|
|
12370
|
+
return p.airlineGroups
|
|
12371
|
+
.filter(function (x) { var _a, _b; return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") || x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : ""); });
|
|
12372
|
+
};
|
|
12373
|
+
var handleOnAirlineGroupChange = function (group, unitIndex) {
|
|
12374
|
+
var updatedPax = units.map(function (u) {
|
|
12375
|
+
return u.index !== unitIndex
|
|
12376
|
+
? u
|
|
12377
|
+
: __assign(__assign({}, u), { airlineGroups: u.airlineGroups.map(function (g) {
|
|
12378
|
+
return g.label === group.label ? group : g;
|
|
12379
|
+
}) });
|
|
12380
|
+
});
|
|
12381
|
+
if (onUnitsChange)
|
|
12382
|
+
onUnitsChange(updatedPax, parentIndex);
|
|
12383
|
+
};
|
|
12384
|
+
var getAirportGroups = function (p) {
|
|
12385
|
+
return p.airportGroups
|
|
12386
|
+
.filter(function (x) { var _a, _b; return x.flightIds.includes((_a = departureFlight === null || departureFlight === void 0 ? void 0 : departureFlight.entryLineGuid) !== null && _a !== void 0 ? _a : "") || x.flightIds.includes((_b = returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.entryLineGuid) !== null && _b !== void 0 ? _b : ""); });
|
|
12387
|
+
};
|
|
12388
|
+
var handleOnAirportGroupChange = function (group, unitIndex) {
|
|
12389
|
+
var updatedPax = units.map(function (u) {
|
|
12390
|
+
return u.index !== unitIndex
|
|
12391
|
+
? u
|
|
12392
|
+
: __assign(__assign({}, u), { airportGroups: u.airportGroups.map(function (g) {
|
|
12393
|
+
return g.label === group.label ? group : g;
|
|
12394
|
+
}) });
|
|
12395
|
+
});
|
|
12396
|
+
if (onUnitsChange)
|
|
12397
|
+
onUnitsChange(updatedPax, parentIndex);
|
|
12398
|
+
};
|
|
12175
12399
|
return (React.createElement(React.Fragment, null, units.map(function (u, i) { return (React.createElement("div", { className: buildClassName([
|
|
12176
12400
|
"booking-card__group",
|
|
12177
12401
|
toggleStates && toggleStates[i] && "booking-card__group--active",
|
|
@@ -12187,10 +12411,16 @@ var OptionUnitsCard = function (_a) {
|
|
|
12187
12411
|
setToggleStates(toggleStates === null || toggleStates === void 0 ? void 0 : toggleStates.map(function (s, si) { return (si == i ? !s : s); }));
|
|
12188
12412
|
} }))),
|
|
12189
12413
|
toggleStates &&
|
|
12190
|
-
toggleStates[i] &&
|
|
12414
|
+
toggleStates[i] && (React.createElement(React.Fragment, null,
|
|
12191
12415
|
u.groups.map(function (ug) {
|
|
12192
12416
|
return ug && (React.createElement(OptionUnitGroup, { key: ug.name, unitIndex: u.index, group: ug, firstClassName: "booking-card__group-body", secondClassName: "booking-card__group-heading", parentId: "".concat(u.index, "_").concat(ug.name), onGroupChange: onGroupChange }));
|
|
12193
|
-
})
|
|
12417
|
+
}),
|
|
12418
|
+
getAirlineGroups(u).map(function (group, i) { return (React.createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
|
|
12419
|
+
handleOnAirlineGroupChange(updatedGroup, u.index);
|
|
12420
|
+
} })); }),
|
|
12421
|
+
getAirportGroups(u).map(function (group, i) { return (React.createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
|
|
12422
|
+
handleOnAirportGroupChange(updatedGroup, u.index);
|
|
12423
|
+
} })); }))))); })));
|
|
12194
12424
|
};
|
|
12195
12425
|
|
|
12196
12426
|
var OptionBookingGroup = function (_a) {
|
|
@@ -12814,7 +13044,7 @@ var SidebarFlight = function (_a) {
|
|
|
12814
13044
|
React.createElement("h6", { className: "pricing-summary__title" }, title),
|
|
12815
13045
|
React.createElement("div", { className: "pricing-summary__row" },
|
|
12816
13046
|
React.createElement("div", { className: "pricing-summary__property" }, translations.SIDEBAR.FLIGHT_DEPARTURE),
|
|
12817
|
-
React.createElement("div", { className: "pricing-summary__value" }, firstFlight === null || firstFlight === void 0 ? void 0 :
|
|
13047
|
+
React.createElement("div", { className: "pricing-summary__value pricing-summary__value--flight" }, firstFlight === null || firstFlight === void 0 ? void 0 :
|
|
12818
13048
|
firstFlight.departureAirportDescription,
|
|
12819
13049
|
" (", firstFlight === null || firstFlight === void 0 ? void 0 :
|
|
12820
13050
|
firstFlight.departureAirportIata,
|
|
@@ -12825,7 +13055,7 @@ var SidebarFlight = function (_a) {
|
|
|
12825
13055
|
firstFlight.departureTime)),
|
|
12826
13056
|
React.createElement("div", { className: "pricing-summary__row" },
|
|
12827
13057
|
React.createElement("div", { className: "pricing-summary__property" }, translations.SIDEBAR.FLIGHT_ARRIVAL),
|
|
12828
|
-
React.createElement("div", { className: "pricing-summary__value" }, lastFlight === null || lastFlight === void 0 ? void 0 :
|
|
13058
|
+
React.createElement("div", { className: "pricing-summary__value pricing-summary__value--flight" }, lastFlight === null || lastFlight === void 0 ? void 0 :
|
|
12829
13059
|
lastFlight.arrivalAirportDescription,
|
|
12830
13060
|
" (", lastFlight === null || lastFlight === void 0 ? void 0 :
|
|
12831
13061
|
lastFlight.arrivalAirportIata,
|
|
@@ -13143,6 +13373,7 @@ var Summary = function () {
|
|
|
13143
13373
|
var packageDetails = useSelector(selectPackageDetails);
|
|
13144
13374
|
var activeOption = useSelector(selectActiveOption);
|
|
13145
13375
|
var apiSettings = useSelector(selectApiSettings);
|
|
13376
|
+
var languageCode = useSelector(selectLanguageCode);
|
|
13146
13377
|
if (!travelerFormValues) {
|
|
13147
13378
|
if (settings.skipRouter) {
|
|
13148
13379
|
dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
|
|
@@ -13188,7 +13419,7 @@ var Summary = function () {
|
|
|
13188
13419
|
_a.label = 1;
|
|
13189
13420
|
case 1:
|
|
13190
13421
|
_a.trys.push([1, 3, 4, 5]);
|
|
13191
|
-
return [4 /*yield*/, book_1(tideClientConfig, bookRequest)];
|
|
13422
|
+
return [4 /*yield*/, book_1(tideClientConfig, bookRequest, undefined, languageCode)];
|
|
13192
13423
|
case 2:
|
|
13193
13424
|
bookingResponse = _a.sent();
|
|
13194
13425
|
// Booking successfull
|
|
@@ -49,6 +49,9 @@ export declare const getTranslations: (language: string) => {
|
|
|
49
49
|
MORNING_DEPARTURE: string;
|
|
50
50
|
AFTERNOON_DEPARTURE: string;
|
|
51
51
|
EVENING_DEPARTURE: string;
|
|
52
|
+
FLIGHTS_FOUND_1: string;
|
|
53
|
+
FLIGHTS_FOUND_2: string;
|
|
54
|
+
FLIGHTS_FOUND_3: string;
|
|
52
55
|
};
|
|
53
56
|
PRODUCT: {
|
|
54
57
|
STAY_INCLUDED: string;
|
package/package.json
CHANGED