@qite/tide-booking-component 1.4.96 → 1.4.98

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.
@@ -25012,7 +25012,7 @@ var Sidebar = function (_a) {
25012
25012
  React__default.createElement(
25013
25013
  'div',
25014
25014
  { className: 'pricing-summary__property' },
25015
- React__default.createElement('h6', { className: 'pricing-summary__title' }, translations.SHARED.COMMISSION)
25015
+ React__default.createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.COMMISSION)
25016
25016
  ),
25017
25017
  React__default.createElement(
25018
25018
  'div',
@@ -25096,7 +25096,7 @@ var Sidebar = function (_a) {
25096
25096
  React__default.createElement(
25097
25097
  'div',
25098
25098
  { className: 'pricing-summary__property' },
25099
- React__default.createElement('h6', { className: 'pricing-summary__title' }, translations.SHARED.COMMISSION)
25099
+ React__default.createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.COMMISSION)
25100
25100
  ),
25101
25101
  React__default.createElement(
25102
25102
  'div',
@@ -34799,482 +34799,485 @@ var Icon$1 = function (_a) {
34799
34799
  }
34800
34800
  };
34801
34801
 
34802
- var getDepartureTime = function (flight) {
34802
+ var FLIGHT_SERVICE_TYPE = 7;
34803
+ var ACCOMMODATION_SERVICE_TYPE = 3;
34804
+ var getFlightLines = function (flight) {
34803
34805
  var _a, _b;
34804
- if (isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) return '';
34805
- try {
34806
- var config = (_a = first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
34807
- if (!config) return '';
34808
- var parsed = JSON.parse(config);
34809
- var line = first(parsed === null || parsed === void 0 ? void 0 : parsed.FlightLines);
34810
- return (_b = line === null || line === void 0 ? void 0 : line.DepartureTime) !== null && _b !== void 0 ? _b : '';
34811
- } catch (_c) {
34812
- return '';
34813
- }
34806
+ return (_b = (_a = flight === null || flight === void 0 ? void 0 : flight.flightInformation) === null || _a === void 0 ? void 0 : _a.flightLines) !== null &&
34807
+ _b !== void 0
34808
+ ? _b
34809
+ : [];
34810
+ };
34811
+ var getDepartureTime = function (flight) {
34812
+ var firstLine = first(getFlightLines(flight));
34813
+ if (!(firstLine === null || firstLine === void 0 ? void 0 : firstLine.departureTime)) return '';
34814
+ return firstLine.departureTime.slice(0, 5);
34814
34815
  };
34815
34816
  var getArrivalTime = function (flight) {
34816
- var _a, _b;
34817
- if (isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) return '';
34818
- try {
34819
- var config = (_a = first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
34820
- if (!config) return '';
34821
- var parsed = JSON.parse(config);
34822
- var line = last(parsed === null || parsed === void 0 ? void 0 : parsed.FlightLines);
34823
- return (_b = line === null || line === void 0 ? void 0 : line.ArrivalTime) !== null && _b !== void 0 ? _b : '';
34824
- } catch (_c) {
34825
- return '';
34826
- }
34817
+ var lastLine = last(getFlightLines(flight));
34818
+ if (!(lastLine === null || lastLine === void 0 ? void 0 : lastLine.arrivalTime)) return '';
34819
+ return lastLine.arrivalTime.slice(0, 5);
34827
34820
  };
34828
34821
  var getDuration = function (flight) {
34829
- var _a;
34830
- if (isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) return '';
34831
- try {
34832
- var config = (_a = first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
34833
- if (!config) return '';
34834
- var parsed = JSON.parse(config);
34835
- var ticks = parsed === null || parsed === void 0 ? void 0 : parsed.DurationInTicks;
34836
- if (!ticks) return '';
34837
- var seconds = ticks / 10000000;
34838
- var hours = Math.floor(seconds / 3600);
34839
- var minutes = Math.floor((seconds % 3600) / 60);
34840
- return ''.concat(hours, 'h ').concat(minutes.toString().padStart(2, '0'), 'm');
34841
- } catch (_b) {
34842
- return '';
34843
- }
34822
+ var lines = getFlightLines(flight);
34823
+ if (!lines.length) return '';
34824
+ var totalTicks =
34825
+ lines.reduce(function (sum, line) {
34826
+ var _a;
34827
+ return sum + ((_a = line.durationInTicks) !== null && _a !== void 0 ? _a : 0);
34828
+ }, 0) || 0;
34829
+ if (!totalTicks) return '';
34830
+ var seconds = totalTicks / 10000000;
34831
+ var hours = Math.floor(seconds / 3600);
34832
+ var minutes = Math.floor((seconds % 3600) / 60);
34833
+ return ''.concat(hours, 'h ').concat(minutes.toString().padStart(2, '0'), 'm');
34844
34834
  };
34845
34835
  var numberOfNights = function (segment) {
34846
- return differenceInCalendarDays(new Date(segment.endDate), new Date(segment.startDate));
34836
+ return differenceInCalendarDays(new Date(segment.to), new Date(segment.from));
34837
+ };
34838
+ var getSegmentIcon = function (segment) {
34839
+ switch (segment.serviceType) {
34840
+ case 3:
34841
+ return React__default.createElement(Icon$1, { name: 'ui-bed', width: 15, height: 15 });
34842
+ case 4:
34843
+ return React__default.createElement(Icon$1, { name: 'ui-ticket', width: 15, height: 15 });
34844
+ case 11:
34845
+ return React__default.createElement(Icon$1, { name: 'ui-ship', width: 15, height: 15 });
34846
+ case 13:
34847
+ case 17:
34848
+ case 22:
34849
+ return React__default.createElement(Icon$1, { name: 'ui-car', width: 15, height: 15 });
34850
+ default:
34851
+ return React__default.createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 });
34852
+ }
34853
+ };
34854
+ var getSegmentTitle = function (segment) {
34855
+ if (segment.accommodationName) return segment.accommodationName;
34856
+ return segment.productName;
34847
34857
  };
34848
34858
  var Itinerary = function (_a) {
34849
- var _b;
34859
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
34850
34860
  var isOpen = _a.isOpen,
34851
- handleSetIsOpen = _a.handleSetIsOpen,
34852
- isLoading = _a.isLoading;
34861
+ handleSetIsOpen = _a.handleSetIsOpen;
34862
+ _a.isLoading;
34853
34863
  var context = useContext(SearchResultsConfigurationContext);
34854
34864
  var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
34855
- var entry = useSelector(function (state) {
34856
- return state.searchResults;
34857
- }).entry;
34858
- if (isLoading || !entry) {
34865
+ var packagingEntry = context === null || context === void 0 ? void 0 : context.packagingEntry;
34866
+ var sortedLines = useMemo(
34867
+ function () {
34868
+ var _a;
34869
+ return __spreadArray(
34870
+ [],
34871
+ (_a = packagingEntry === null || packagingEntry === void 0 ? void 0 : packagingEntry.lines) !== null && _a !== void 0 ? _a : [],
34872
+ true
34873
+ ).sort(function (a, b) {
34874
+ var _a, _b;
34875
+ var orderA = (_a = a.order) !== null && _a !== void 0 ? _a : Infinity;
34876
+ var orderB = (_b = b.order) !== null && _b !== void 0 ? _b : Infinity;
34877
+ // First sort by order
34878
+ if (orderA !== orderB) {
34879
+ return orderA - orderB;
34880
+ }
34881
+ // Fallback to date
34882
+ return new Date(a.from).getTime() - new Date(b.from).getTime();
34883
+ });
34884
+ },
34885
+ [packagingEntry]
34886
+ );
34887
+ if (!packagingEntry) {
34859
34888
  return null;
34860
34889
  }
34861
- var firstEntryLine = first(entry === null || entry === void 0 ? void 0 : entry.items);
34862
- var lastEntryLine = last(entry === null || entry === void 0 ? void 0 : entry.items);
34863
- var country = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.countryName;
34864
- var location = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.locationName;
34865
- var outboundFlight =
34866
- entry === null || entry === void 0
34867
- ? void 0
34868
- : entry.items.find(function (item) {
34869
- return item.productType === 7 && !item.isReturnFlight;
34870
- });
34871
- var returnFlight =
34872
- entry === null || entry === void 0
34890
+ var firstEntryLine = first(sortedLines);
34891
+ var lastEntryLine = last(sortedLines);
34892
+ var accommodationLine =
34893
+ (_c = sortedLines.find(function (line) {
34894
+ return line.serviceType === ACCOMMODATION_SERVICE_TYPE;
34895
+ })) !== null && _c !== void 0
34896
+ ? _c
34897
+ : firstEntryLine;
34898
+ var country =
34899
+ (_e =
34900
+ (_d = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.country) === null || _d === void 0 ? void 0 : _d.name) !==
34901
+ null && _e !== void 0
34902
+ ? _e
34903
+ : (_f = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.country) === null || _f === void 0
34873
34904
  ? void 0
34874
- : entry.items.find(function (item) {
34875
- return item.productType === 7 && item.isReturnFlight;
34876
- });
34877
- var otherSegments =
34878
- entry === null || entry === void 0
34905
+ : _f.name;
34906
+ var location =
34907
+ (_m =
34908
+ (_k =
34909
+ (_h =
34910
+ (_g = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.location) === null || _g === void 0
34911
+ ? void 0
34912
+ : _g.name) !== null && _h !== void 0
34913
+ ? _h
34914
+ : (_j = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.oord) === null || _j === void 0
34915
+ ? void 0
34916
+ : _j.name) !== null && _k !== void 0
34917
+ ? _k
34918
+ : (_l = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.region) === null || _l === void 0
34919
+ ? void 0
34920
+ : _l.name) !== null && _m !== void 0
34921
+ ? _m
34922
+ : (_o = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.location) === null || _o === void 0
34879
34923
  ? void 0
34880
- : entry.items.filter(function (item) {
34881
- return item.productType !== 7;
34882
- });
34924
+ : _o.name;
34925
+ var flightSegments = sortedLines.filter(function (item) {
34926
+ return item.serviceType === FLIGHT_SERVICE_TYPE;
34927
+ });
34928
+ var outboundFlight = first(flightSegments);
34929
+ var returnFlight = flightSegments.length > 1 ? last(flightSegments) : undefined;
34930
+ var otherSegments = sortedLines.filter(function (item) {
34931
+ return item.serviceType !== FLIGHT_SERVICE_TYPE;
34932
+ });
34933
+ console.log('other segments', otherSegments);
34934
+ var numberOfPax = ((_p = packagingEntry.pax) === null || _p === void 0 ? void 0 : _p.length) || 1;
34935
+ var totalPrice = packagingEntry.price || 0;
34936
+ var pricePerPerson = totalPrice / numberOfPax;
34883
34937
  return React__default.createElement(
34884
- React__default.Fragment,
34885
- null,
34938
+ 'div',
34939
+ { className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
34940
+ React__default.createElement('div', { className: 'search__filters--background', onClick: handleSetIsOpen }),
34941
+ React__default.createElement(
34942
+ 'button',
34943
+ { className: 'search__filters--close', onClick: handleSetIsOpen },
34944
+ React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
34945
+ ),
34886
34946
  React__default.createElement(
34887
34947
  'div',
34888
- { className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
34889
- React__default.createElement('div', {
34890
- className: 'search__filters--background',
34891
- onClick: function () {
34892
- return handleSetIsOpen();
34893
- }
34894
- }),
34948
+ { className: 'search__filters' },
34895
34949
  React__default.createElement(
34896
- 'button',
34897
- {
34898
- className: 'search__filters--close',
34899
- onClick: function () {
34900
- return handleSetIsOpen();
34901
- }
34902
- },
34903
- React__default.createElement(Icon$1, { name: 'ui-close', height: 24 })
34950
+ 'div',
34951
+ { className: 'search__filter-row search__filter__header' },
34952
+ React__default.createElement(
34953
+ 'div',
34954
+ { className: 'search__filter-row-flex-title' },
34955
+ React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.ITINERARY_TITLE)
34956
+ )
34904
34957
  ),
34905
34958
  React__default.createElement(
34906
- 'div',
34907
- { className: 'search__filters' },
34959
+ React__default.Fragment,
34960
+ null,
34961
+ React__default.createElement(
34962
+ 'div',
34963
+ { className: 'search__filter-group' },
34964
+ (context === null || context === void 0 ? void 0 : context.destinationImage) &&
34965
+ React__default.createElement(
34966
+ 'div',
34967
+ { className: 'search__filter__image__wrapper' },
34968
+ React__default.createElement('img', { src: context.destinationImage.url, alt: context.destinationImage.alt, className: 'search__filter__image' }),
34969
+ (packagingEntry === null || packagingEntry === void 0 ? void 0 : packagingEntry.dossierNumber) &&
34970
+ React__default.createElement(
34971
+ 'span',
34972
+ { className: 'search__filter__image__text' },
34973
+ translations.SRP.DOSSIER_NUMBER,
34974
+ ': ',
34975
+ packagingEntry.dossierNumber
34976
+ ),
34977
+ React__default.createElement(
34978
+ 'h4',
34979
+ { className: 'search__filter__image__title' },
34980
+ (location || '') + (location && country ? ' - ' : '') + (country || '')
34981
+ )
34982
+ )
34983
+ ),
34908
34984
  React__default.createElement(
34909
34985
  'div',
34910
- { className: 'search__filter-row search__filter__header' },
34986
+ { className: 'search__filter__prices' },
34911
34987
  React__default.createElement(
34912
34988
  'div',
34913
- { className: 'search__filter-row-flex-title' },
34914
- React__default.createElement('p', { className: 'search__filter-small-title' }, translations.SRP.ITINERARY_TITLE)
34915
- )
34916
- ),
34917
- isLoading
34918
- ? React__default.createElement(Spinner, null)
34919
- : React__default.createElement(
34920
- React__default.Fragment,
34989
+ { className: 'search__filter__prices__wrapper' },
34990
+ React__default.createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$2(pricePerPerson, 'EUR')),
34991
+ React__default.createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
34992
+ React__default.createElement(
34993
+ 'p',
34921
34994
  null,
34995
+ React__default.createElement('strong', null, '(', formatPrice$2(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
34996
+ )
34997
+ ),
34998
+ React__default.createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
34999
+ ),
35000
+ React__default.createElement(
35001
+ 'div',
35002
+ { className: 'search__filter__itinerary' },
35003
+ React__default.createElement('p', null, translations.SRP.DAY_BY_DAY),
35004
+ firstEntryLine &&
35005
+ React__default.createElement(
35006
+ 'div',
35007
+ { className: 'search__filter__itinerary__country' },
34922
35008
  React__default.createElement(
34923
35009
  'div',
34924
- { className: 'search__filter-group' },
34925
- (context === null || context === void 0 ? void 0 : context.destinationImage) &&
34926
- React__default.createElement(
34927
- 'div',
34928
- { className: 'search__filter__image__wrapper' },
34929
- React__default.createElement('img', {
34930
- src: context.destinationImage.url,
34931
- alt: context.destinationImage.alt,
34932
- className: 'search__filter__image'
34933
- }),
34934
- (entry === null || entry === void 0 ? void 0 : entry.number) &&
34935
- React__default.createElement(
34936
- 'span',
34937
- { className: 'search__filter__image__text' },
34938
- translations.SRP.DOSSIER_NUMBER,
34939
- ': ',
34940
- entry === null || entry === void 0 ? void 0 : entry.number
34941
- ),
34942
- React__default.createElement(
34943
- 'h4',
34944
- { className: 'search__filter__image__title' },
34945
- (location || '') + (location && country ? ' - ' : '') + (country || '')
34946
- )
34947
- )
35010
+ { className: 'search__filter__itinerary__country-icon' },
35011
+ React__default.createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
34948
35012
  ),
34949
35013
  React__default.createElement(
34950
35014
  'div',
34951
- { className: 'search__filter__prices' },
35015
+ { className: 'search__filter__itinerary__country-content' },
35016
+ React__default.createElement(
35017
+ 'p',
35018
+ null,
35019
+ format$1(new Date(firstEntryLine.from), 'EEE. d MMM yyyy'),
35020
+ ' -',
35021
+ ' ',
35022
+ React__default.createElement('strong', null, translations.SRP.START)
35023
+ )
35024
+ )
35025
+ ),
35026
+ outboundFlight &&
35027
+ React__default.createElement(
35028
+ 'div',
35029
+ { className: 'search__filter__itinerary__transport' },
35030
+ React__default.createElement(
35031
+ 'div',
35032
+ { className: 'search__filter__itinerary__transport-timeline' },
35033
+ React__default.createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35034
+ ),
35035
+ React__default.createElement(
35036
+ 'div',
35037
+ { className: 'search__filter__itinerary__transport-item' },
34952
35038
  React__default.createElement(
34953
35039
  'div',
34954
- { className: 'search__filter__prices__wrapper' },
35040
+ { className: 'search__filter__itinerary__transport-date' },
34955
35041
  React__default.createElement(
34956
- 'h3',
34957
- { className: 'search__filter__prices--amount' },
34958
- formatPrice$2(
34959
- ((entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0) /
34960
- ((entry === null || entry === void 0 ? void 0 : entry.numberOfPax) || 1),
34961
- (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR'
34962
- )
35042
+ 'p',
35043
+ { className: 'search__filter__itinerary__transport-date-date' },
35044
+ React__default.createElement('strong', null, format$1(new Date(outboundFlight.from), 'd'))
34963
35045
  ),
34964
- React__default.createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
35046
+ React__default.createElement('p', null, format$1(new Date(outboundFlight.from), 'MMM'))
35047
+ ),
35048
+ React__default.createElement(
35049
+ 'div',
35050
+ { className: 'search__filter__itinerary__transport-badge' },
35051
+ React__default.createElement(Icon$1, { name: 'ui-plane', height: 15 })
35052
+ ),
35053
+ React__default.createElement(
35054
+ 'div',
35055
+ { className: 'search__filter__itinerary__transport-details' },
35056
+ React__default.createElement('h6', null, outboundFlight.productName),
34965
35057
  React__default.createElement(
34966
35058
  'p',
34967
- null,
35059
+ { className: 'search__filter__itinerary__transport-details-plane' },
34968
35060
  React__default.createElement(
34969
- 'strong',
35061
+ 'span',
34970
35062
  null,
34971
- '(',
34972
- formatPrice$2(
34973
- (entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0,
34974
- (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR'
34975
- ),
35063
+ React__default.createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
34976
35064
  ' ',
34977
- translations.SRP.TOTAL,
34978
- ')'
35065
+ React__default.createElement('strong', null, getDepartureTime(outboundFlight))
35066
+ ),
35067
+ ' ',
35068
+ '-',
35069
+ ' ',
35070
+ React__default.createElement(
35071
+ 'span',
35072
+ null,
35073
+ React__default.createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35074
+ ' ',
35075
+ React__default.createElement('strong', null, getArrivalTime(outboundFlight))
34979
35076
  )
34980
- )
34981
- ),
34982
- React__default.createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
34983
- ),
34984
- React__default.createElement(
34985
- 'div',
34986
- { className: 'search__filter__itinerary' },
34987
- React__default.createElement('p', null, translations.SRP.DAY_BY_DAY),
34988
- React__default.createElement(
34989
- 'div',
34990
- { className: 'search__filter__itinerary__country' },
34991
- React__default.createElement(
34992
- 'div',
34993
- { className: 'search__filter__itinerary__country-icon' },
34994
- React__default.createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
34995
35077
  ),
34996
35078
  React__default.createElement(
34997
- 'div',
34998
- { className: 'search__filter__itinerary__country-content' },
35079
+ 'p',
35080
+ { className: 'search__filter__itinerary__transport-details-time' },
34999
35081
  React__default.createElement(
35000
- 'p',
35082
+ 'span',
35001
35083
  null,
35002
- format$1(new Date((firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.startDate) || ''), 'EEE. d MMM yyyy'),
35003
- ' - ',
35004
- React__default.createElement('strong', null, translations.SRP.START)
35084
+ React__default.createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35085
+ ' ',
35086
+ getDuration(outboundFlight)
35005
35087
  )
35006
35088
  )
35007
- ),
35008
- outboundFlight &&
35089
+ )
35090
+ )
35091
+ ),
35092
+ !isEmpty(otherSegments) &&
35093
+ React__default.createElement(
35094
+ 'div',
35095
+ { className: 'search__filter__itinerary__segments' },
35096
+ otherSegments.map(function (segment, index) {
35097
+ var _a, _b, _c, _d, _e, _f, _g, _h;
35098
+ return React__default.createElement(
35099
+ 'div',
35100
+ { className: 'search__filter__itinerary__segments__wrapper', key: 'segment-'.concat(index) },
35009
35101
  React__default.createElement(
35010
35102
  'div',
35011
- { className: 'search__filter__itinerary__transport' },
35012
- React__default.createElement(
35013
- 'div',
35014
- { className: 'search__filter__itinerary__transport-timeline' },
35015
- React__default.createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35016
- ),
35103
+ { className: 'search__filter__itinerary__segments-timeline' },
35104
+ React__default.createElement('div', { className: 'search__filter__itinerary__segments-timeline-line' })
35105
+ ),
35106
+ React__default.createElement(
35107
+ 'div',
35108
+ { className: 'search__filter__itinerary__segment' },
35017
35109
  React__default.createElement(
35018
35110
  'div',
35019
- { className: 'search__filter__itinerary__transport-item' },
35111
+ { className: 'search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start' },
35020
35112
  React__default.createElement(
35021
35113
  'div',
35022
35114
  { className: 'search__filter__itinerary__transport-date' },
35023
35115
  React__default.createElement(
35024
35116
  'p',
35025
35117
  { className: 'search__filter__itinerary__transport-date-date' },
35026
- React__default.createElement(
35027
- 'strong',
35028
- null,
35029
- format$1(new Date((outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.startDate) || ''), 'd')
35030
- )
35118
+ React__default.createElement('strong', null, format$1(new Date(segment.from), 'd'))
35031
35119
  ),
35032
- React__default.createElement(
35033
- 'p',
35034
- null,
35035
- format$1(new Date((outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.startDate) || ''), 'MMM')
35036
- )
35120
+ React__default.createElement('p', null, format$1(new Date(segment.from), 'MMM'))
35037
35121
  ),
35038
35122
  React__default.createElement(
35039
35123
  'div',
35040
- { className: 'search__filter__itinerary__transport-badge' },
35041
- React__default.createElement(Icon$1, { name: 'ui-plane', height: 15 })
35124
+ { className: 'search__filter__itinerary__segment-badge' },
35125
+ React__default.createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 })
35042
35126
  ),
35043
35127
  React__default.createElement(
35044
35128
  'div',
35045
- { className: 'search__filter__itinerary__transport-details' },
35046
- React__default.createElement('h6', null, outboundFlight.productName),
35129
+ { className: 'search__filter__itinerary__segment-details' },
35047
35130
  React__default.createElement(
35048
- 'p',
35049
- { className: 'search__filter__itinerary__transport-details-plane' },
35050
- React__default.createElement(
35051
- 'span',
35052
- null,
35053
- React__default.createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35054
- ' ',
35055
- React__default.createElement('strong', null, getDepartureTime(outboundFlight))
35056
- ),
35057
- ' ',
35058
- '-',
35059
- ' ',
35060
- React__default.createElement(
35061
- 'span',
35062
- null,
35063
- React__default.createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35064
- ' ',
35065
- React__default.createElement('strong', null, getArrivalTime(outboundFlight))
35066
- )
35131
+ 'h6',
35132
+ null,
35133
+ ((_a = segment.location) === null || _a === void 0 ? void 0 : _a.name) ||
35134
+ ((_b = segment.oord) === null || _b === void 0 ? void 0 : _b.name) ||
35135
+ ((_c = segment.region) === null || _c === void 0 ? void 0 : _c.name),
35136
+ (((_d = segment.location) === null || _d === void 0 ? void 0 : _d.name) ||
35137
+ ((_e = segment.oord) === null || _e === void 0 ? void 0 : _e.name) ||
35138
+ ((_f = segment.region) === null || _f === void 0 ? void 0 : _f.name)) &&
35139
+ ((_g = segment.country) === null || _g === void 0 ? void 0 : _g.name)
35140
+ ? ', '
35141
+ : '',
35142
+ (_h = segment.country) === null || _h === void 0 ? void 0 : _h.name
35067
35143
  ),
35068
35144
  React__default.createElement(
35069
35145
  'p',
35070
- { className: 'search__filter__itinerary__transport-details-time' },
35071
- React__default.createElement(
35072
- 'span',
35073
- null,
35074
- React__default.createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35075
- ' ',
35076
- getDuration(outboundFlight)
35077
- )
35146
+ { className: 'search__filter__itinerary__segment-details-text' },
35147
+ format$1(new Date(segment.from), 'EEE. d MMM yyyy'),
35148
+ '> ',
35149
+ format$1(new Date(segment.to), 'EEE. d MMM yyyy')
35078
35150
  )
35079
35151
  )
35080
35152
  )
35081
35153
  ),
35082
- !isEmpty(otherSegments) &&
35083
- React__default.createElement(
35084
- 'div',
35085
- { className: 'search__filter__itinerary__segments' },
35086
- otherSegments === null || otherSegments === void 0
35087
- ? void 0
35088
- : otherSegments.map(function (segment, index) {
35089
- return React__default.createElement(
35090
- 'div',
35091
- { className: 'search__filter__itinerary__segments__wrapper', key: 'segment-'.concat(index) },
35092
- React__default.createElement(
35093
- 'div',
35094
- { className: 'search__filter__itinerary__segments-timeline' },
35095
- React__default.createElement('div', { className: 'search__filter__itinerary__segments-timeline-line' })
35096
- ),
35097
- React__default.createElement(
35098
- 'div',
35099
- { className: 'search__filter__itinerary__segment' },
35100
- React__default.createElement(
35101
- 'div',
35102
- { className: 'search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start' },
35103
- React__default.createElement(
35104
- 'div',
35105
- { className: 'search__filter__itinerary__transport-date' },
35106
- React__default.createElement(
35107
- 'p',
35108
- { className: 'search__filter__itinerary__transport-date-date' },
35109
- React__default.createElement(
35110
- 'strong',
35111
- null,
35112
- format$1(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'd')
35113
- )
35114
- ),
35115
- React__default.createElement(
35116
- 'p',
35117
- null,
35118
- format$1(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'MMM')
35119
- )
35120
- ),
35121
- React__default.createElement(
35122
- 'div',
35123
- { className: 'search__filter__itinerary__segment-badge' },
35124
- React__default.createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 })
35125
- ),
35126
- React__default.createElement(
35127
- 'div',
35128
- { className: 'search__filter__itinerary__segment-details' },
35129
- React__default.createElement(
35130
- 'h6',
35131
- null,
35132
- segment === null || segment === void 0 ? void 0 : segment.locationName,
35133
- ', ',
35134
- segment === null || segment === void 0 ? void 0 : segment.countryName
35135
- ),
35136
- React__default.createElement(
35137
- 'p',
35138
- { className: 'search__filter__itinerary__segment-details-text' },
35139
- format$1(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'EEE. d MMM yyyy'),
35140
- '> ',
35141
- format$1(new Date((segment === null || segment === void 0 ? void 0 : segment.endDate) || ''), 'EEE. d MMM yyyy')
35142
- )
35143
- )
35144
- )
35145
- ),
35146
- React__default.createElement(
35147
- 'div',
35148
- { className: 'search__filter__itinerary__segment' },
35149
- React__default.createElement(
35150
- 'div',
35151
- { className: 'search__filter__itinerary__segment-item' },
35152
- segment.productType === 3 &&
35153
- React__default.createElement(
35154
- 'div',
35155
- { className: 'search__filter__itinerary__segment-date search__filter__itinerary__segment-nights' },
35156
- React__default.createElement(
35157
- 'p',
35158
- { className: 'search__filter__itinerary__segment-date-date' },
35159
- React__default.createElement('strong', null, numberOfNights(segment))
35160
- ),
35161
- React__default.createElement(Icon$1, { name: 'ui-moon', width: 16, height: 16 })
35162
- ),
35163
- React__default.createElement(
35164
- 'div',
35165
- { className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
35166
- segment.productType === 3 && React__default.createElement(Icon$1, { name: 'ui-bed', width: 15, height: 15 }),
35167
- segment.productType === 4 && React__default.createElement(Icon$1, { name: 'ui-ticket', width: 15, height: 15 }),
35168
- (segment.productType === 17 || segment.productType === 22) &&
35169
- React__default.createElement(Icon$1, { name: 'ui-car', width: 15, height: 15 }),
35170
- segment.productType === 11 && React__default.createElement(Icon$1, { name: 'ui-ship', width: 15, height: 15 })
35171
- ),
35172
- React__default.createElement(
35173
- 'div',
35174
- { className: 'search__filter__itinerary__segment-details' },
35175
- React__default.createElement('h6', null, segment === null || segment === void 0 ? void 0 : segment.productName)
35176
- )
35177
- )
35178
- )
35179
- );
35180
- })
35181
- ),
35182
- returnFlight &&
35183
35154
  React__default.createElement(
35184
35155
  'div',
35185
- { className: 'search__filter__itinerary__transport' },
35156
+ { className: 'search__filter__itinerary__segment' },
35186
35157
  React__default.createElement(
35187
35158
  'div',
35188
- { className: 'search__filter__itinerary__transport-timeline' },
35189
- React__default.createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35190
- ),
35191
- React__default.createElement(
35192
- 'div',
35193
- { className: 'search__filter__itinerary__transport-item' },
35159
+ { className: 'search__filter__itinerary__segment-item' },
35194
35160
  React__default.createElement(
35195
35161
  'div',
35196
- { className: 'search__filter__itinerary__transport-date' },
35197
- React__default.createElement(
35198
- 'p',
35199
- { className: 'search__filter__itinerary__transport-date-date' },
35162
+ { className: 'search__filter__itinerary__segment-date search__filter__itinerary__segment-nights' },
35163
+ segment.serviceType === ACCOMMODATION_SERVICE_TYPE &&
35200
35164
  React__default.createElement(
35201
- 'strong',
35165
+ React__default.Fragment,
35202
35166
  null,
35203
- format$1(new Date((returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.startDate) || ''), 'd')
35167
+ React__default.createElement(
35168
+ 'p',
35169
+ { className: 'search__filter__itinerary__segment-date-date' },
35170
+ React__default.createElement('strong', null, numberOfNights(segment))
35171
+ ),
35172
+ React__default.createElement(Icon$1, { name: 'ui-moon', width: 16, height: 16 })
35204
35173
  )
35205
- ),
35206
- React__default.createElement(
35207
- 'p',
35208
- null,
35209
- format$1(new Date((returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.startDate) || ''), 'MMM')
35210
- )
35211
35174
  ),
35212
35175
  React__default.createElement(
35213
35176
  'div',
35214
- { className: 'search__filter__itinerary__transport-badge' },
35215
- React__default.createElement(Icon$1, { name: 'ui-plane', height: 15 })
35177
+ { className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
35178
+ getSegmentIcon(segment)
35216
35179
  ),
35217
35180
  React__default.createElement(
35218
35181
  'div',
35219
- { className: 'search__filter__itinerary__transport-details' },
35220
- React__default.createElement('h6', null, returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.productName),
35221
- React__default.createElement(
35222
- 'p',
35223
- { className: 'search__filter__itinerary__transport-details-plane' },
35224
- React__default.createElement(
35225
- 'span',
35226
- null,
35227
- React__default.createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35228
- ' ',
35229
- React__default.createElement('strong', null, getDepartureTime(returnFlight))
35230
- ),
35231
- ' ',
35232
- '-',
35233
- ' ',
35234
- React__default.createElement(
35235
- 'span',
35236
- null,
35237
- React__default.createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35238
- ' ',
35239
- React__default.createElement('strong', null, getArrivalTime(returnFlight))
35240
- )
35241
- ),
35242
- React__default.createElement(
35243
- 'p',
35244
- { className: 'search__filter__itinerary__transport-details-time' },
35245
- React__default.createElement(
35246
- 'span',
35247
- null,
35248
- React__default.createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35249
- ' ',
35250
- getDuration(returnFlight)
35251
- )
35252
- )
35182
+ { className: 'search__filter__itinerary__segment-details' },
35183
+ React__default.createElement('h6', null, getSegmentTitle(segment)),
35184
+ segment.regimeName && React__default.createElement('p', null, segment.regimeName)
35253
35185
  )
35254
35186
  )
35187
+ )
35188
+ );
35189
+ })
35190
+ ),
35191
+ returnFlight &&
35192
+ returnFlight !== outboundFlight &&
35193
+ React__default.createElement(
35194
+ 'div',
35195
+ { className: 'search__filter__itinerary__transport' },
35196
+ React__default.createElement(
35197
+ 'div',
35198
+ { className: 'search__filter__itinerary__transport-timeline' },
35199
+ React__default.createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35200
+ ),
35201
+ React__default.createElement(
35202
+ 'div',
35203
+ { className: 'search__filter__itinerary__transport-item' },
35204
+ React__default.createElement(
35205
+ 'div',
35206
+ { className: 'search__filter__itinerary__transport-date' },
35207
+ React__default.createElement(
35208
+ 'p',
35209
+ { className: 'search__filter__itinerary__transport-date-date' },
35210
+ React__default.createElement('strong', null, format$1(new Date(returnFlight.from), 'd'))
35255
35211
  ),
35212
+ React__default.createElement('p', null, format$1(new Date(returnFlight.from), 'MMM'))
35213
+ ),
35256
35214
  React__default.createElement(
35257
35215
  'div',
35258
- { className: 'search__filter__itinerary__country' },
35216
+ { className: 'search__filter__itinerary__transport-badge' },
35217
+ React__default.createElement(Icon$1, { name: 'ui-plane', height: 15 })
35218
+ ),
35219
+ React__default.createElement(
35220
+ 'div',
35221
+ { className: 'search__filter__itinerary__transport-details' },
35222
+ React__default.createElement('h6', null, returnFlight.productName),
35259
35223
  React__default.createElement(
35260
- 'div',
35261
- { className: 'search__filter__itinerary__country-icon' },
35262
- React__default.createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
35224
+ 'p',
35225
+ { className: 'search__filter__itinerary__transport-details-plane' },
35226
+ React__default.createElement(
35227
+ 'span',
35228
+ null,
35229
+ React__default.createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35230
+ ' ',
35231
+ React__default.createElement('strong', null, getDepartureTime(returnFlight))
35232
+ ),
35233
+ ' ',
35234
+ '-',
35235
+ ' ',
35236
+ React__default.createElement(
35237
+ 'span',
35238
+ null,
35239
+ React__default.createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35240
+ ' ',
35241
+ React__default.createElement('strong', null, getArrivalTime(returnFlight))
35242
+ )
35263
35243
  ),
35264
35244
  React__default.createElement(
35265
- 'div',
35266
- { className: 'search__filter__itinerary__country-content' },
35245
+ 'p',
35246
+ { className: 'search__filter__itinerary__transport-details-time' },
35267
35247
  React__default.createElement(
35268
- 'p',
35248
+ 'span',
35269
35249
  null,
35270
- format$1(new Date((lastEntryLine === null || lastEntryLine === void 0 ? void 0 : lastEntryLine.startDate) || ''), 'EEE. d MMM yyyy'),
35271
- ' - ',
35272
- React__default.createElement('strong', null, translations.SRP.END)
35250
+ React__default.createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35251
+ ' ',
35252
+ getDuration(returnFlight)
35273
35253
  )
35274
35254
  )
35275
35255
  )
35276
35256
  )
35257
+ ),
35258
+ lastEntryLine &&
35259
+ React__default.createElement(
35260
+ 'div',
35261
+ { className: 'search__filter__itinerary__country' },
35262
+ React__default.createElement(
35263
+ 'div',
35264
+ { className: 'search__filter__itinerary__country-icon' },
35265
+ React__default.createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
35266
+ ),
35267
+ React__default.createElement(
35268
+ 'div',
35269
+ { className: 'search__filter__itinerary__country-content' },
35270
+ React__default.createElement(
35271
+ 'p',
35272
+ null,
35273
+ format$1(new Date(lastEntryLine.to), 'EEE. d MMM yyyy'),
35274
+ ' -',
35275
+ ' ',
35276
+ React__default.createElement('strong', null, translations.SRP.END)
35277
+ )
35278
+ )
35277
35279
  )
35280
+ )
35278
35281
  )
35279
35282
  )
35280
35283
  );