@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.
Files changed (47) hide show
  1. package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
  2. package/build/build-cjs/booking-product/components/rooms.d.ts +2 -0
  3. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +1 -1
  4. package/build/build-cjs/booking-wizard/types.d.ts +0 -1
  5. package/build/build-cjs/index.js +275 -44
  6. package/build/build-cjs/shared/utils/localization-util.d.ts +3 -0
  7. package/build/build-esm/booking-product/components/footer.d.ts +1 -0
  8. package/build/build-esm/booking-product/components/rooms.d.ts +2 -0
  9. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +1 -1
  10. package/build/build-esm/booking-wizard/types.d.ts +0 -1
  11. package/build/build-esm/index.js +276 -45
  12. package/build/build-esm/shared/utils/localization-util.d.ts +3 -0
  13. package/package.json +1 -1
  14. package/rollup.config.js +23 -23
  15. package/src/booking-product/components/footer.tsx +7 -1
  16. package/src/booking-product/components/product.tsx +4 -0
  17. package/src/booking-product/components/rating.tsx +21 -21
  18. package/src/booking-product/components/rooms.tsx +5 -2
  19. package/src/booking-wizard/components/icon.tsx +250 -1
  20. package/src/booking-wizard/components/labeled-input.tsx +64 -64
  21. package/src/booking-wizard/components/labeled-select.tsx +69 -69
  22. package/src/booking-wizard/features/booking/selectors.ts +12 -2
  23. package/src/booking-wizard/features/flight-options/flight-filter.tsx +16 -3
  24. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +8 -6
  25. package/src/booking-wizard/features/flight-options/flight-option.tsx +1 -1
  26. package/src/booking-wizard/features/product-options/option-pax-card.tsx +93 -22
  27. package/src/booking-wizard/features/product-options/option-units-card.tsx +93 -21
  28. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +2 -2
  29. package/src/booking-wizard/features/summary/summary.tsx +3 -1
  30. package/src/shared/utils/class-util.ts +9 -9
  31. package/styles/booking-wizard-variables.scss +530 -0
  32. package/styles/booking-wizard.scss +23 -1
  33. package/styles/components/_booking.scss +1409 -0
  34. package/styles/components/_checkbox.scss +215 -0
  35. package/styles/components/_cta.scss +80 -14
  36. package/styles/components/_date-range-picker.scss +1 -0
  37. package/styles/components/_flight-option.scss +1389 -0
  38. package/styles/components/_form.scss +258 -0
  39. package/styles/components/_list.scss +82 -0
  40. package/styles/components/_mixins.scss +17 -5
  41. package/styles/components/_placeholders.scss +2 -2
  42. package/styles/components/_pricing-summary.scss +117 -0
  43. package/styles/components/_select-wrapper.scss +66 -0
  44. package/styles/components/_step-indicators.scss +160 -0
  45. package/styles/components/_table.scss +81 -0
  46. package/styles/components/_tree.scss +540 -0
  47. package/tsconfig.json +24 -24
@@ -3,6 +3,7 @@ interface FooterProps {
3
3
  priceText: string | undefined;
4
4
  isLoading: boolean;
5
5
  isOffer: boolean | undefined;
6
+ roomsIsDisabled: boolean;
6
7
  handleBookClick: () => void;
7
8
  }
8
9
  declare const Footer: React.FC<FooterProps>;
@@ -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;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { BookingPackageFlight } from "@qite/tide-client/build/types";
3
2
  export interface Settings {
4
3
  officeId: number;
@@ -60,8 +60,8 @@ function __awaiter$1(thisArg, _arguments, P, generator) {
60
60
  }
61
61
 
62
62
  function __generator$1(thisArg, body) {
63
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
64
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
63
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
64
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
65
65
  function verb(n) { return function (v) { return step([n, v]); }; }
66
66
  function step(op) {
67
67
  if (f) throw new TypeError("Generator is already executing.");
@@ -824,6 +824,8 @@ var ServiceType = {
824
824
  voucher: 26,
825
825
  reduction: 27,
826
826
  rocket: 28,
827
+ tent: 29,
828
+ camp: 30,
827
829
  };
828
830
 
829
831
  /******************************************************************************
@@ -7409,7 +7411,7 @@ var ENDPOINT_FEED = ENDPOINT + "/feed";
7409
7411
  * api/web/file/feed
7410
7412
  * fetch a xml from blob feed.
7411
7413
  * @param config
7412
- * @param request
7414
+ * @param slug
7413
7415
  * @param signal
7414
7416
  * @returns OK if succeeded.
7415
7417
  */
@@ -7418,6 +7420,20 @@ var feedXml = function (config, request, signal) {
7418
7420
  var apiKey = config.apiKey;
7419
7421
  return get$1(url, apiKey, config.token, signal);
7420
7422
  };
7423
+ /**
7424
+ * api/web/file/feed
7425
+ * fetch a xml from blob feed in subfolder.
7426
+ * @param config
7427
+ * @param slug
7428
+ * @param folder
7429
+ * @param signal
7430
+ * @returns OK if succeeded.
7431
+ */
7432
+ var feedXmlFolder = function (config, slug, folder, signal) {
7433
+ var url = "" + config.host + ENDPOINT_FEED + "/" + slug + "/" + folder;
7434
+ var apiKey = config.apiKey;
7435
+ return get$1(url, apiKey, config.token, signal);
7436
+ };
7421
7437
 
7422
7438
  build.AllotmentType = AllotmentType;
7423
7439
  build.AvailabilitySearchType = AvailabilitySearchType;
@@ -7440,6 +7456,7 @@ build.createCrmContact = createCrmContact;
7440
7456
  build.createParams = createParams;
7441
7457
  var details_1 = build.details = details;
7442
7458
  build.feedXml = feedXml;
7459
+ build.feedXmlFolder = feedXmlFolder;
7443
7460
  build.forgotPassword = forgotPassword;
7444
7461
  var generateBookingAccommodations_1 = build.generateBookingAccommodations = generateBookingAccommodations;
7445
7462
  build.getAffiliates = getAffiliates;
@@ -9082,7 +9099,7 @@ var Loader = function (_a) {
9082
9099
  };
9083
9100
 
9084
9101
  var Footer = function (_a) {
9085
- var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, handleBookClick = _a.handleBookClick;
9102
+ var priceText = _a.priceText, isLoading = _a.isLoading, isOffer = _a.isOffer, roomsIsDisabled = _a.roomsIsDisabled, handleBookClick = _a.handleBookClick;
9086
9103
  var _b = React.useContext(SettingsContext$1), language = _b.language, alternativeActionText = _b.alternativeActionText, alternativeAction = _b.alternativeAction;
9087
9104
  var translations = getTranslations(language);
9088
9105
  return (React__default["default"].createElement("div", { className: "booking-product__footer" }, isLoading
@@ -9091,7 +9108,10 @@ var Footer = function (_a) {
9091
9108
  priceText && (React__default["default"].createElement("div", { className: "booking-product__footer-total" },
9092
9109
  React__default["default"].createElement("div", { className: "booking-product__footer-label" }, translations.SHARED.TOTAL_PRICE),
9093
9110
  React__default["default"].createElement("div", { className: "booking-product__footer-price" }, priceText))),
9094
- React__default["default"].createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React__default["default"].createElement("button", { type: "button", className: "cta", onClick: handleBookClick }, isOffer ? translations.PRODUCT.TO_YOUR_OFFER : translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
9111
+ React__default["default"].createElement("div", { className: "booking-product_footer-actions" }, priceText ? (React__default["default"].createElement("button", { type: "button", className: buildClassName([
9112
+ "cta",
9113
+ !roomsIsDisabled && "cta--disabled"
9114
+ ]), onClick: handleBookClick, disabled: !roomsIsDisabled }, isOffer ? translations.PRODUCT.TO_YOUR_OFFER : translations.PRODUCT.BOOK_NOW)) : ((alternativeActionText && alternativeAction)
9095
9115
  ? (React__default["default"].createElement("a", { href: "#offer-form", className: "cta", onClick: alternativeAction }, alternativeActionText))
9096
9116
  : (React__default["default"].createElement(React__default["default"].Fragment, null, translations.PRODUCT.NOT_AVAILABLE))))))));
9097
9117
  };
@@ -9166,10 +9186,9 @@ var AmountInput = function (_a) {
9166
9186
  };
9167
9187
 
9168
9188
  var Rooms = function (_a) {
9169
- var rooms = _a.rooms, onChange = _a.onChange;
9170
- var _b = React.useState(true), isDisabled = _b[0], setIsDisabled = _b[1];
9171
- var _c = React.useState(false), isTouched = _c[0], setIsTouched = _c[1];
9172
- var _d = React.useState(rooms), currentRooms = _d[0], setRoomState = _d[1];
9189
+ var rooms = _a.rooms, isDisabled = _a.isDisabled, setIsDisabled = _a.setIsDisabled, onChange = _a.onChange;
9190
+ var _b = React.useState(false), isTouched = _b[0], setIsTouched = _b[1];
9191
+ var _c = React.useState(rooms), currentRooms = _c[0], setRoomState = _c[1];
9173
9192
  var language = React.useContext(SettingsContext$1).language;
9174
9193
  var translations = getTranslations(language);
9175
9194
  var handleCloseClick = function () {
@@ -9239,12 +9258,13 @@ var Product = function (_a) {
9239
9258
  var translations = getTranslations(language);
9240
9259
  var _e = React.useState(false), loaded = _e[0], setLoaded = _e[1];
9241
9260
  var _f = React.useState(false), isLoading = _f[0], setIsLoading = _f[1];
9242
- var _g = React.useState(), price = _g[0], setPrice = _g[1];
9243
- var _h = React.useState(false), hasFlight = _h[0], setHasFlight = _h[1];
9244
- var _j = React.useState(false), hasTransfer = _j[0], setHasTransfer = _j[1];
9245
- var _k = React.useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _k[0], setRooms = _k[1];
9246
- var _l = React.useState(), dateRange = _l[0], setDateRange = _l[1];
9247
- var _m = React.useState(productName), packageProductName = _m[0], setPackageProductName = _m[1];
9261
+ var _g = React.useState(true), roomsIsDisabled = _g[0], setRoomsIsDisabled = _g[1];
9262
+ var _h = React.useState(), price = _h[0], setPrice = _h[1];
9263
+ var _j = React.useState(false), hasFlight = _j[0], setHasFlight = _j[1];
9264
+ var _k = React.useState(false), hasTransfer = _k[0], setHasTransfer = _k[1];
9265
+ var _l = React.useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _l[0], setRooms = _l[1];
9266
+ var _m = React.useState(), dateRange = _m[0], setDateRange = _m[1];
9267
+ var _o = React.useState(productName), packageProductName = _o[0], setPackageProductName = _o[1];
9248
9268
  var fetchPackage = function (signal) { return __awaiter$1(void 0, void 0, void 0, function () {
9249
9269
  var apiSettingsState, startDate, endDate, requestRooms, request, response, selectedOption, hasFlight_1, hasTranfer;
9250
9270
  return __generator$1(this, function (_a) {
@@ -9404,9 +9424,9 @@ var Product = function (_a) {
9404
9424
  return (React__default["default"].createElement("div", { className: "booking-product" },
9405
9425
  React__default["default"].createElement(Header, { name: packageProductName, rating: rating, priceText: priceText, isLoading: isLoading, hasFlight: hasFlight, hasTransfer: hasTransfer }),
9406
9426
  React__default["default"].createElement("div", { className: "booking-product__body" },
9407
- React__default["default"].createElement(Rooms, { rooms: rooms, onChange: handleRoomChange }),
9427
+ React__default["default"].createElement(Rooms, { rooms: rooms, isDisabled: roomsIsDisabled, setIsDisabled: setRoomsIsDisabled, onChange: handleRoomChange }),
9408
9428
  React__default["default"].createElement(Dates, { value: dateRange, duration: duration, onChange: handleDateChange })),
9409
- React__default["default"].createElement(Footer, { priceText: priceText, isLoading: isLoading, isOffer: isOffer, handleBookClick: handleBookClick })));
9429
+ React__default["default"].createElement(Footer, { priceText: priceText, isLoading: isLoading, isOffer: isOffer, roomsIsDisabled: roomsIsDisabled, handleBookClick: handleBookClick })));
9410
9430
  };
9411
9431
 
9412
9432
  var BookingProduct = function (_a) {
@@ -9730,9 +9750,15 @@ var selectLanguageCode = function (state) {
9730
9750
  return state.booking.languageCode;
9731
9751
  };
9732
9752
  var selectTranslations = function (state) {
9733
- var _a;
9734
- var translations = state.booking.translations && ((_a = state.booking.translations.find(function (x) { return x.language == state.booking.languageCode; })) === null || _a === void 0 ? void 0 : _a.value);
9735
- return translations !== null && translations !== void 0 ? translations : getTranslations(state.booking.languageCode);
9753
+ var _a, _b;
9754
+ var defaultStaticTranslations = getTranslations(state.booking.languageCode);
9755
+ 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 : {};
9756
+ var merged = {};
9757
+ for (var _i = 0, _c = Array.from(new Set(__spreadArray(__spreadArray([], Object.keys(defaultStaticTranslations), true), Object.keys(dynamicTranslations), true))); _i < _c.length; _i++) {
9758
+ var key = _c[_i];
9759
+ merged[key] = __assign(__assign({}, (defaultStaticTranslations[key] || {})), (dynamicTranslations[key] || {}));
9760
+ }
9761
+ return merged;
9736
9762
  };
9737
9763
  var selectBookingOptions = function (state) {
9738
9764
  return state.booking.bookingOptions;
@@ -10570,25 +10596,146 @@ var Icon = function (_a) {
10570
10596
  }
10571
10597
  switch (name) {
10572
10598
  case "ui-chevron":
10599
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10600
+ .filter(function (className) { return !lodash.isEmpty(className); })
10601
+ .join(" "), width: width, height: height, viewBox: "0 0 320 512" },
10602
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10603
+ title && React__default["default"].createElement("title", null, title),
10604
+ React__default["default"].createElement("path", { d: "M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z" })));
10573
10605
  case "ui-error":
10606
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10607
+ .filter(function (className) { return !lodash.isEmpty(className); })
10608
+ .join(" "), width: width, height: height, viewBox: "0 0 512 512" },
10609
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10610
+ title && React__default["default"].createElement("title", null, title),
10611
+ React__default["default"].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" })));
10574
10612
  case "ui-tel":
10613
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10614
+ .filter(function (className) { return !lodash.isEmpty(className); })
10615
+ .join(" "), width: width, height: height, viewBox: "0 0 512 512" },
10616
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10617
+ title && React__default["default"].createElement("title", null, title),
10618
+ React__default["default"].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" })));
10575
10619
  case "ui-mail":
10620
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10621
+ .filter(function (className) { return !lodash.isEmpty(className); })
10622
+ .join(" "), width: width, height: height, viewBox: "0 0 512 512" },
10623
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10624
+ title && React__default["default"].createElement("title", null, title),
10625
+ React__default["default"].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" })));
10576
10626
  case "ui-home":
10577
10627
  case "ui-filter":
10628
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10629
+ .filter(function (className) { return !lodash.isEmpty(className); })
10630
+ .join(" "), width: width, height: height, viewBox: "0 0 10.701 9.698" },
10631
+ title && React__default["default"].createElement("title", null, title),
10632
+ React__default["default"].createElement("g", { id: "filter-solid", transform: "translate(-2.667 -5.333)" },
10633
+ React__default["default"].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" }),
10634
+ React__default["default"].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" }))));
10578
10635
  case "ui-close":
10636
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10637
+ .filter(function (className) { return !lodash.isEmpty(className); })
10638
+ .join(" "), width: width, height: height, viewBox: "0 0 384 512" },
10639
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10640
+ title && React__default["default"].createElement("title", null, title),
10641
+ React__default["default"].createElement("path", { d: "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" })));
10579
10642
  case "ui-ticket":
10643
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10644
+ .filter(function (className) { return !lodash.isEmpty(className); })
10645
+ .join(" "), width: width, height: height, viewBox: "0 0 20 20" },
10646
+ title && React__default["default"].createElement("title", null, title),
10647
+ React__default["default"].createElement("g", { id: "ticket", transform: "translate(0.439 1.629)" },
10648
+ React__default["default"].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)" }))));
10580
10649
  case "ui-payback":
10650
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10651
+ .filter(function (className) { return !lodash.isEmpty(className); })
10652
+ .join(" "), width: width, height: height, viewBox: "0 0 20 20.154" },
10653
+ title && React__default["default"].createElement("title", null, title),
10654
+ React__default["default"].createElement("g", { id: "layer1", transform: "translate(-205.148 -293.014)" },
10655
+ React__default["default"].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" }),
10656
+ React__default["default"].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" }),
10657
+ React__default["default"].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" }),
10658
+ React__default["default"].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" }))));
10581
10659
  case "ui-backpack":
10660
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10661
+ .filter(function (className) { return !lodash.isEmpty(className); })
10662
+ .join(" "), width: width, height: height, viewBox: "0 0 14.499 16.11" },
10663
+ title && React__default["default"].createElement("title", null, title),
10664
+ React__default["default"].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)" }),
10665
+ React__default["default"].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)" })));
10582
10666
  case "ui-suitcase":
10667
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10668
+ .filter(function (className) { return !lodash.isEmpty(className); })
10669
+ .join(" "), width: width, height: height, viewBox: "0 0 15.992 13.708" },
10670
+ title && React__default["default"].createElement("title", null, title),
10671
+ React__default["default"].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)" })));
10583
10672
  case "ui-business-lounge":
10673
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10674
+ .filter(function (className) { return !lodash.isEmpty(className); })
10675
+ .join(" "), width: width, height: height, viewBox: "0 0 20 19.999" },
10676
+ title && React__default["default"].createElement("title", null, title),
10677
+ React__default["default"].createElement("g", { id: "waiting-room-svgrepo-com", transform: "translate(0 -0.008)" },
10678
+ React__default["default"].createElement("g", { id: "Group_46", "data-name": "Group 46", transform: "translate(0 0.008)" },
10679
+ React__default["default"].createElement("g", { id: "Group_45", "data-name": "Group 45", transform: "translate(0)" },
10680
+ React__default["default"].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)" }),
10681
+ React__default["default"].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)" }),
10682
+ React__default["default"].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)" }),
10683
+ React__default["default"].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)" }))))));
10584
10684
  case "ui-shopping-bag":
10685
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10686
+ .filter(function (className) { return !lodash.isEmpty(className); })
10687
+ .join(" "), width: width, height: height, viewBox: "0 0 13.299 14.65" },
10688
+ title && React__default["default"].createElement("title", null, title),
10689
+ React__default["default"].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" })));
10585
10690
  case "ui-priority":
10691
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10692
+ .filter(function (className) { return !lodash.isEmpty(className); })
10693
+ .join(" "), width: width, height: height, viewBox: "0 0 20 17.533" },
10694
+ title && React__default["default"].createElement("title", null, title),
10695
+ React__default["default"].createElement("g", { id: "list-high-priority", transform: "translate(-1.5 -2.552)" },
10696
+ React__default["default"].createElement("path", { id: "Path_24", "data-name": "Path 24", d: "M24,39H34v1.333H24Z", transform: "translate(-12.5 -20.249)" }),
10697
+ React__default["default"].createElement("path", { id: "Path_25", "data-name": "Path 25", d: "M24,29H34v1.333H24Z", transform: "translate(-12.5 -14.694)" }),
10698
+ React__default["default"].createElement("path", { id: "Path_26", "data-name": "Path 26", d: "M24,19H34v1.333H24Z", transform: "translate(-12.5 -9.138)" }),
10699
+ React__default["default"].createElement("path", { id: "Path_27", "data-name": "Path 27", d: "M30.75,9h7v1.333h-7Z", transform: "translate(-16.25 -3.583)" }),
10700
+ React__default["default"].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" }))));
10586
10701
  case "ui-tooltip":
10587
- case "ui-tooltip":
10702
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10703
+ .filter(function (className) { return !lodash.isEmpty(className); })
10704
+ .join(" "), width: width, height: height, viewBox: "0 0 512 512" },
10705
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10706
+ title && React__default["default"].createElement("title", null, title),
10707
+ React__default["default"].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" })));
10588
10708
  case "ui-qsm-location":
10709
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10710
+ .filter(function (className) { return !lodash.isEmpty(className); })
10711
+ .join(" "), width: width, height: height, viewBox: "0 0 384 512" },
10712
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10713
+ title && React__default["default"].createElement("title", null, title),
10714
+ React__default["default"].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" })));
10589
10715
  case "ui-plane-depart":
10716
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10717
+ .filter(function (className) { return !lodash.isEmpty(className); })
10718
+ .join(" "), width: width, height: height, viewBox: "0 0 640 512" },
10719
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10720
+ title && React__default["default"].createElement("title", null, title),
10721
+ React__default["default"].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" })));
10590
10722
  case "ui-plane-arrive":
10723
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10724
+ .filter(function (className) { return !lodash.isEmpty(className); })
10725
+ .join(" "), width: width, height: height, viewBox: "0 0 640 512" },
10726
+ React__default["default"].createElement(HTMLComment, { text: "!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc." }),
10727
+ title && React__default["default"].createElement("title", null, title),
10728
+ React__default["default"].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" })));
10591
10729
  case "ui-clock":
10730
+ return (React__default["default"].createElement("svg", { className: ["icon", "icon--".concat(name), className]
10731
+ .filter(function (className) { return !lodash.isEmpty(className); })
10732
+ .join(" "), width: width, height: height, viewBox: "0 0 19 19" },
10733
+ title && React__default["default"].createElement("title", null, title),
10734
+ React__default["default"].createElement("g", { id: "Group_56", "data-name": "Group 56", transform: "translate(-390 -665)" },
10735
+ React__default["default"].createElement("circle", { id: "Ellipse_5", "data-name": "Ellipse 5", cx: "9.5", cy: "9.5", r: "9.5", transform: "translate(390 665)", fill: "#fff" }),
10736
+ React__default["default"].createElement("g", { id: "time", transform: "translate(391.211 666.211)" },
10737
+ React__default["default"].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)" }),
10738
+ React__default["default"].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)" })))));
10592
10739
  default:
10593
10740
  return null;
10594
10741
  }
@@ -11087,6 +11234,18 @@ var FlightFilter = function (_a) {
11087
11234
  var filterOptions = _a.filterOptions, resultCount = _a.resultCount, applyFilter = _a.applyFilter;
11088
11235
  var translations = reactRedux.useSelector(selectTranslations);
11089
11236
  var _b = React.useState(false), filtersVisible = _b[0], setFiltersVisible = _b[1];
11237
+ var filterRef = React.useRef(null);
11238
+ React.useEffect(function () {
11239
+ function handleClickOutside(event) {
11240
+ if (filterRef.current && !filterRef.current.contains(event.target)) {
11241
+ setFiltersVisible(false);
11242
+ }
11243
+ }
11244
+ document.addEventListener("mousedown", handleClickOutside);
11245
+ return function () {
11246
+ document.removeEventListener("mousedown", handleClickOutside);
11247
+ };
11248
+ }, []);
11090
11249
  var updateAirportFilter = function (code) {
11091
11250
  var updatedFilterOptions = __assign(__assign({}, filterOptions), { airports: filterOptions.airports.map(function (x) {
11092
11251
  if (x.value !== code)
@@ -11145,10 +11304,10 @@ var FlightFilter = function (_a) {
11145
11304
  };
11146
11305
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
11147
11306
  React__default["default"].createElement("button", { type: "button", className: "cta cta--filter", onClick: function () { return setFiltersVisible(!filtersVisible); } },
11148
- React__default["default"].createElement(Icon, { name: "filter", width: 11, height: 10 }),
11307
+ React__default["default"].createElement(Icon, { name: "ui-filter", width: 11, height: 10 }),
11149
11308
  React__default["default"].createElement("span", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
11150
11309
  filtersVisible),
11151
- React__default["default"].createElement("div", { className: buildClassName(["flight__filter", filtersVisible && "flight__filter--active"]) },
11310
+ React__default["default"].createElement("div", { ref: filterRef, className: buildClassName(["flight__filter", filtersVisible && "flight__filter--active"]) },
11152
11311
  React__default["default"].createElement("div", { className: "flight__filter__header" },
11153
11312
  React__default["default"].createElement("div", { className: "flight__filter__header__title" },
11154
11313
  React__default["default"].createElement("h3", null, translations.FLIGHTS_FORM.FILTER_OPTIONS),
@@ -11377,18 +11536,16 @@ var FlightOptionFlight = function (_a) {
11377
11536
  details.isNextDay && (React__default["default"].createElement("span", { className: "flight__info__times__days" }, translations.FLIGHTS_FORM.PLUS_ONE_DAY))))),
11378
11537
  React__default["default"].createElement("div", { className: "flight__detail__btn__wrapper" },
11379
11538
  React__default["default"].createElement("div", { className: buildClassName(["flight__detail__btn", isDetailVisible && "flight__detail__btn--active"]), onClick: function () { return setIsDetailVisible(!isDetailVisible); } },
11380
- React__default["default"].createElement(Icon, { name: "chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
11539
+ React__default["default"].createElement(Icon, { name: "ui-chevron", className: "flight__detail__btn__arrow", width: 16, height: 16 })))),
11381
11540
  React__default["default"].createElement("div", { className: buildClassName(["flight__detail", isDetailVisible && "flight__detail--active"]) }, details.flightLines.map(function (flightLine, flightLineIndex) { return (React__default["default"].createElement(React__default["default"].Fragment, { key: flightLineIndex },
11382
11541
  React__default["default"].createElement("div", { className: "flight__info" },
11383
11542
  React__default["default"].createElement("div", { className: "flight__info__times__wrapper" },
11384
11543
  React__default["default"].createElement("div", { className: "flight__info__times" },
11385
- React__default["default"].createElement("strong", null,
11386
- flightLine.departureTime,
11387
- " ",
11388
- flightLine.departureAirport),
11544
+ React__default["default"].createElement("p", null, flightLine.departureTime),
11545
+ React__default["default"].createElement("strong", null, flightLine.departureAirport),
11389
11546
  React__default["default"].createElement("p", null, getDateText(flightLine.departureDate))),
11390
11547
  React__default["default"].createElement("div", null,
11391
- React__default["default"].createElement(Icon, { name: "plane-depart", width: 30, height: 20 }))),
11548
+ React__default["default"].createElement(Icon, { name: "ui-plane-depart", width: 30, height: 20 }))),
11392
11549
  React__default["default"].createElement("div", { className: "flight__info__duration" },
11393
11550
  React__default["default"].createElement("p", null, flightLine.travelDuration),
11394
11551
  React__default["default"].createElement("div", { className: "flight__info__duration__stops" }),
@@ -11396,18 +11553,16 @@ var FlightOptionFlight = function (_a) {
11396
11553
  React__default["default"].createElement("strong", null, flightLine.number)),
11397
11554
  React__default["default"].createElement("div", { className: "flight__info__times__wrapper flight__info__times__wrapper--arrival" },
11398
11555
  React__default["default"].createElement("div", null,
11399
- React__default["default"].createElement(Icon, { name: "plane-arive", width: 35, height: 25 })),
11556
+ React__default["default"].createElement(Icon, { name: "ui-plane-arrive", width: 30, height: 20 })),
11400
11557
  React__default["default"].createElement("div", { className: "flight__info__times flight__info__times--arrival" },
11401
- React__default["default"].createElement("strong", null,
11402
- flightLine.arrivalTime,
11403
- " ",
11404
- flightLine.arrivalAirport),
11558
+ React__default["default"].createElement("p", null, flightLine.arrivalTime),
11559
+ React__default["default"].createElement("strong", null, flightLine.arrivalAirport),
11405
11560
  React__default["default"].createElement("p", null, getDateText(flightLine.arrivalDate))))),
11406
11561
  flightLine.waitDuration && (React__default["default"].createElement("div", { className: "flight__info" },
11407
11562
  React__default["default"].createElement("div", { className: "flight__info__times" }),
11408
11563
  React__default["default"].createElement("div", { className: "flight__info__duration flight__info__duration--waittime" },
11409
11564
  React__default["default"].createElement("div", { className: "flight__info__duration__stops flight__info__duration__stops--stoptime" },
11410
- React__default["default"].createElement(Icon, { name: "clock", width: 20, height: 20 })),
11565
+ React__default["default"].createElement(Icon, { name: "ui-clock", width: 24, height: 24 })),
11411
11566
  React__default["default"].createElement("div", { className: "flight__info__duration__stoptime" },
11412
11567
  React__default["default"].createElement("span", null, translations.FLIGHTS_FORM.STOP_TIME),
11413
11568
  React__default["default"].createElement("strong", null, flightLine.waitDuration))),
@@ -11439,7 +11594,7 @@ var FlightOption = function (_a) {
11439
11594
  priceDifference > 0 && "price--increase",
11440
11595
  priceDifference < 0 && "price--decrease"
11441
11596
  ]) }, getPriceDifferenceText(priceDifference))),
11442
- React__default["default"].createElement("button", { type: "button", className: "cta ".concat(isSelected ? 'cta--selected' : 'cta--secondary'), onClick: handleButtonClick }, isSelected ? translations.SHARED.SELECTED : translations.SHARED.SELECT)))),
11597
+ React__default["default"].createElement("button", { type: "button", className: "cta ".concat(isSelected ? 'cta--selected' : 'cta--select'), onClick: handleButtonClick }, isSelected ? translations.SHARED.SELECTED : translations.SHARED.SELECT)))),
11443
11598
  React__default["default"].createElement(FlightOptionFlight, { details: item.outward, isOptionsVisible: outwardVisible }),
11444
11599
  React__default["default"].createElement(FlightOptionFlight, { details: item.return, isOptionsVisible: returnVisible })))));
11445
11600
  };
@@ -12042,6 +12197,8 @@ var OptionPaxCard = function (_a) {
12042
12197
  var pax = _a.pax, requestRoomsPax = _a.requestRoomsPax, parentIndex = _a.parentIndex, onPaxChange = _a.onPaxChange;
12043
12198
  var _b = React.useState(), toggleStates = _b[0], setToggleStates = _b[1];
12044
12199
  var translations = reactRedux.useSelector(selectTranslations);
12200
+ var departureFlight = reactRedux.useSelector(selectDepartureFlight);
12201
+ var returnFlight = reactRedux.useSelector(selectReturnFlight);
12045
12202
  React.useEffect(function () {
12046
12203
  if (!toggleStates || toggleStates.length !== pax.length) {
12047
12204
  setToggleStates(pax.map(function () { return true; }));
@@ -12066,6 +12223,36 @@ var OptionPaxCard = function (_a) {
12066
12223
  if (onPaxChange)
12067
12224
  onPaxChange(updatedPax, parentIndex);
12068
12225
  };
12226
+ var getAirlineGroups = function (p) {
12227
+ return p.airlineGroups
12228
+ .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 : ""); });
12229
+ };
12230
+ var handleOnAirlineGroupChange = function (group, paxId) {
12231
+ var updatedPax = pax.map(function (p) {
12232
+ return p.id !== paxId
12233
+ ? p
12234
+ : __assign(__assign({}, p), { airlineGroups: p.airlineGroups.map(function (g) {
12235
+ return g.label === group.label ? group : g;
12236
+ }) });
12237
+ });
12238
+ if (onPaxChange)
12239
+ onPaxChange(updatedPax, parentIndex);
12240
+ };
12241
+ var getAirportGroups = function (p) {
12242
+ return p.airportGroups
12243
+ .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 : ""); });
12244
+ };
12245
+ var handleOnAirportGroupChange = function (group, paxId) {
12246
+ var updatedPax = pax.map(function (p) {
12247
+ return p.id !== paxId
12248
+ ? p
12249
+ : __assign(__assign({}, p), { airportGroups: p.airportGroups.map(function (g) {
12250
+ return g.label === group.label ? group : g;
12251
+ }) });
12252
+ });
12253
+ if (onPaxChange)
12254
+ onPaxChange(updatedPax, parentIndex);
12255
+ };
12069
12256
  return (React__default["default"].createElement(React__default["default"].Fragment, null, pax.map(function (p, i) {
12070
12257
  var _a, _b;
12071
12258
  return (React__default["default"].createElement("div", { key: i, className: buildClassName([
@@ -12081,11 +12268,16 @@ var OptionPaxCard = function (_a) {
12081
12268
  React__default["default"].createElement("button", { type: "button", className: "booking-card__toggle", onClick: function () {
12082
12269
  setToggleStates(toggleStates === null || toggleStates === void 0 ? void 0 : toggleStates.map(function (s, si) { return (si == i ? !s : s); }));
12083
12270
  } }))),
12084
- toggleStates &&
12085
- toggleStates[i] &&
12271
+ toggleStates && toggleStates[i] && (React__default["default"].createElement(React__default["default"].Fragment, null,
12086
12272
  p.groups.map(function (pg) {
12087
12273
  return pg && (React__default["default"].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 }));
12088
- })));
12274
+ }),
12275
+ getAirlineGroups(p).map(function (group, i) { return (React__default["default"].createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
12276
+ handleOnAirlineGroupChange(updatedGroup, p.id);
12277
+ } })); }),
12278
+ getAirportGroups(p).map(function (group, i) { return (React__default["default"].createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
12279
+ handleOnAirportGroupChange(updatedGroup, p.id);
12280
+ } })); })))));
12089
12281
  })));
12090
12282
  };
12091
12283
 
@@ -12164,6 +12356,8 @@ var OptionUnitsCard = function (_a) {
12164
12356
  var units = _a.units, parentIndex = _a.parentIndex, onUnitsChange = _a.onUnitsChange;
12165
12357
  var _b = React.useState(), toggleStates = _b[0], setToggleStates = _b[1];
12166
12358
  var translations = reactRedux.useSelector(selectTranslations);
12359
+ var departureFlight = reactRedux.useSelector(selectDepartureFlight);
12360
+ var returnFlight = reactRedux.useSelector(selectReturnFlight);
12167
12361
  React.useEffect(function () {
12168
12362
  if (!toggleStates || toggleStates.length !== units.length) {
12169
12363
  setToggleStates(units.map(function () { return true; }));
@@ -12183,6 +12377,36 @@ var OptionUnitsCard = function (_a) {
12183
12377
  if (onUnitsChange)
12184
12378
  onUnitsChange(updatedUnits, parentIndex);
12185
12379
  };
12380
+ var getAirlineGroups = function (p) {
12381
+ return p.airlineGroups
12382
+ .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 : ""); });
12383
+ };
12384
+ var handleOnAirlineGroupChange = function (group, unitIndex) {
12385
+ var updatedPax = units.map(function (u) {
12386
+ return u.index !== unitIndex
12387
+ ? u
12388
+ : __assign(__assign({}, u), { airlineGroups: u.airlineGroups.map(function (g) {
12389
+ return g.label === group.label ? group : g;
12390
+ }) });
12391
+ });
12392
+ if (onUnitsChange)
12393
+ onUnitsChange(updatedPax, parentIndex);
12394
+ };
12395
+ var getAirportGroups = function (p) {
12396
+ return p.airportGroups
12397
+ .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 : ""); });
12398
+ };
12399
+ var handleOnAirportGroupChange = function (group, unitIndex) {
12400
+ var updatedPax = units.map(function (u) {
12401
+ return u.index !== unitIndex
12402
+ ? u
12403
+ : __assign(__assign({}, u), { airportGroups: u.airportGroups.map(function (g) {
12404
+ return g.label === group.label ? group : g;
12405
+ }) });
12406
+ });
12407
+ if (onUnitsChange)
12408
+ onUnitsChange(updatedPax, parentIndex);
12409
+ };
12186
12410
  return (React__default["default"].createElement(React__default["default"].Fragment, null, units.map(function (u, i) { return (React__default["default"].createElement("div", { className: buildClassName([
12187
12411
  "booking-card__group",
12188
12412
  toggleStates && toggleStates[i] && "booking-card__group--active",
@@ -12198,10 +12422,16 @@ var OptionUnitsCard = function (_a) {
12198
12422
  setToggleStates(toggleStates === null || toggleStates === void 0 ? void 0 : toggleStates.map(function (s, si) { return (si == i ? !s : s); }));
12199
12423
  } }))),
12200
12424
  toggleStates &&
12201
- toggleStates[i] &&
12425
+ toggleStates[i] && (React__default["default"].createElement(React__default["default"].Fragment, null,
12202
12426
  u.groups.map(function (ug) {
12203
12427
  return ug && (React__default["default"].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 }));
12204
- }))); })));
12428
+ }),
12429
+ getAirlineGroups(u).map(function (group, i) { return (React__default["default"].createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
12430
+ handleOnAirlineGroupChange(updatedGroup, u.index);
12431
+ } })); }),
12432
+ getAirportGroups(u).map(function (group, i) { return (React__default["default"].createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: function (updatedGroup) {
12433
+ handleOnAirportGroupChange(updatedGroup, u.index);
12434
+ } })); }))))); })));
12205
12435
  };
12206
12436
 
12207
12437
  var OptionBookingGroup = function (_a) {
@@ -12825,7 +13055,7 @@ var SidebarFlight = function (_a) {
12825
13055
  React__default["default"].createElement("h6", { className: "pricing-summary__title" }, title),
12826
13056
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
12827
13057
  React__default["default"].createElement("div", { className: "pricing-summary__property" }, translations.SIDEBAR.FLIGHT_DEPARTURE),
12828
- React__default["default"].createElement("div", { className: "pricing-summary__value" }, firstFlight === null || firstFlight === void 0 ? void 0 :
13058
+ React__default["default"].createElement("div", { className: "pricing-summary__value pricing-summary__value--flight" }, firstFlight === null || firstFlight === void 0 ? void 0 :
12829
13059
  firstFlight.departureAirportDescription,
12830
13060
  " (", firstFlight === null || firstFlight === void 0 ? void 0 :
12831
13061
  firstFlight.departureAirportIata,
@@ -12836,7 +13066,7 @@ var SidebarFlight = function (_a) {
12836
13066
  firstFlight.departureTime)),
12837
13067
  React__default["default"].createElement("div", { className: "pricing-summary__row" },
12838
13068
  React__default["default"].createElement("div", { className: "pricing-summary__property" }, translations.SIDEBAR.FLIGHT_ARRIVAL),
12839
- React__default["default"].createElement("div", { className: "pricing-summary__value" }, lastFlight === null || lastFlight === void 0 ? void 0 :
13069
+ React__default["default"].createElement("div", { className: "pricing-summary__value pricing-summary__value--flight" }, lastFlight === null || lastFlight === void 0 ? void 0 :
12840
13070
  lastFlight.arrivalAirportDescription,
12841
13071
  " (", lastFlight === null || lastFlight === void 0 ? void 0 :
12842
13072
  lastFlight.arrivalAirportIata,
@@ -13154,6 +13384,7 @@ var Summary = function () {
13154
13384
  var packageDetails = reactRedux.useSelector(selectPackageDetails);
13155
13385
  var activeOption = reactRedux.useSelector(selectActiveOption);
13156
13386
  var apiSettings = reactRedux.useSelector(selectApiSettings);
13387
+ var languageCode = reactRedux.useSelector(selectLanguageCode);
13157
13388
  if (!travelerFormValues) {
13158
13389
  if (settings.skipRouter) {
13159
13390
  dispatch(setCurrentStep(TRAVELERS_FORM_STEP));
@@ -13199,7 +13430,7 @@ var Summary = function () {
13199
13430
  _a.label = 1;
13200
13431
  case 1:
13201
13432
  _a.trys.push([1, 3, 4, 5]);
13202
- return [4 /*yield*/, book_1(tideClientConfig, bookRequest)];
13433
+ return [4 /*yield*/, book_1(tideClientConfig, bookRequest, undefined, languageCode)];
13203
13434
  case 2:
13204
13435
  bookingResponse = _a.sent();
13205
13436
  // 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;