@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.
@@ -25076,7 +25076,7 @@ var Sidebar = function (_a) {
25076
25076
  React__default['default'].createElement(
25077
25077
  'div',
25078
25078
  { className: 'pricing-summary__property' },
25079
- React__default['default'].createElement('h6', { className: 'pricing-summary__title' }, translations.SHARED.COMMISSION)
25079
+ React__default['default'].createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.COMMISSION)
25080
25080
  ),
25081
25081
  React__default['default'].createElement(
25082
25082
  'div',
@@ -25160,7 +25160,7 @@ var Sidebar = function (_a) {
25160
25160
  React__default['default'].createElement(
25161
25161
  'div',
25162
25162
  { className: 'pricing-summary__property' },
25163
- React__default['default'].createElement('h6', { className: 'pricing-summary__title' }, translations.SHARED.COMMISSION)
25163
+ React__default['default'].createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.COMMISSION)
25164
25164
  ),
25165
25165
  React__default['default'].createElement(
25166
25166
  'div',
@@ -34942,492 +34942,489 @@ var Icon$1 = function (_a) {
34942
34942
  }
34943
34943
  };
34944
34944
 
34945
- var getDepartureTime = function (flight) {
34945
+ var FLIGHT_SERVICE_TYPE = 7;
34946
+ var ACCOMMODATION_SERVICE_TYPE = 3;
34947
+ var getFlightLines = function (flight) {
34946
34948
  var _a, _b;
34947
- if (lodash.isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) return '';
34948
- try {
34949
- var config = (_a = lodash.first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
34950
- if (!config) return '';
34951
- var parsed = JSON.parse(config);
34952
- var line = lodash.first(parsed === null || parsed === void 0 ? void 0 : parsed.FlightLines);
34953
- return (_b = line === null || line === void 0 ? void 0 : line.DepartureTime) !== null && _b !== void 0 ? _b : '';
34954
- } catch (_c) {
34955
- return '';
34956
- }
34949
+ return (_b = (_a = flight === null || flight === void 0 ? void 0 : flight.flightInformation) === null || _a === void 0 ? void 0 : _a.flightLines) !== null &&
34950
+ _b !== void 0
34951
+ ? _b
34952
+ : [];
34953
+ };
34954
+ var getDepartureTime = function (flight) {
34955
+ var firstLine = lodash.first(getFlightLines(flight));
34956
+ if (!(firstLine === null || firstLine === void 0 ? void 0 : firstLine.departureTime)) return '';
34957
+ return firstLine.departureTime.slice(0, 5);
34957
34958
  };
34958
34959
  var getArrivalTime = function (flight) {
34959
- var _a, _b;
34960
- if (lodash.isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) return '';
34961
- try {
34962
- var config = (_a = lodash.first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
34963
- if (!config) return '';
34964
- var parsed = JSON.parse(config);
34965
- var line = lodash.last(parsed === null || parsed === void 0 ? void 0 : parsed.FlightLines);
34966
- return (_b = line === null || line === void 0 ? void 0 : line.ArrivalTime) !== null && _b !== void 0 ? _b : '';
34967
- } catch (_c) {
34968
- return '';
34969
- }
34960
+ var lastLine = lodash.last(getFlightLines(flight));
34961
+ if (!(lastLine === null || lastLine === void 0 ? void 0 : lastLine.arrivalTime)) return '';
34962
+ return lastLine.arrivalTime.slice(0, 5);
34970
34963
  };
34971
34964
  var getDuration = function (flight) {
34972
- var _a;
34973
- if (lodash.isEmpty(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) return '';
34974
- try {
34975
- var config = (_a = lodash.first(flight === null || flight === void 0 ? void 0 : flight.metaDatas)) === null || _a === void 0 ? void 0 : _a.configuration;
34976
- if (!config) return '';
34977
- var parsed = JSON.parse(config);
34978
- var ticks = parsed === null || parsed === void 0 ? void 0 : parsed.DurationInTicks;
34979
- if (!ticks) return '';
34980
- var seconds = ticks / 10000000;
34981
- var hours = Math.floor(seconds / 3600);
34982
- var minutes = Math.floor((seconds % 3600) / 60);
34983
- return ''.concat(hours, 'h ').concat(minutes.toString().padStart(2, '0'), 'm');
34984
- } catch (_b) {
34985
- return '';
34986
- }
34965
+ var lines = getFlightLines(flight);
34966
+ if (!lines.length) return '';
34967
+ var totalTicks =
34968
+ lines.reduce(function (sum, line) {
34969
+ var _a;
34970
+ return sum + ((_a = line.durationInTicks) !== null && _a !== void 0 ? _a : 0);
34971
+ }, 0) || 0;
34972
+ if (!totalTicks) return '';
34973
+ var seconds = totalTicks / 10000000;
34974
+ var hours = Math.floor(seconds / 3600);
34975
+ var minutes = Math.floor((seconds % 3600) / 60);
34976
+ return ''.concat(hours, 'h ').concat(minutes.toString().padStart(2, '0'), 'm');
34987
34977
  };
34988
34978
  var numberOfNights = function (segment) {
34989
- return dateFns.differenceInCalendarDays(new Date(segment.endDate), new Date(segment.startDate));
34979
+ return dateFns.differenceInCalendarDays(new Date(segment.to), new Date(segment.from));
34980
+ };
34981
+ var getSegmentIcon = function (segment) {
34982
+ switch (segment.serviceType) {
34983
+ case 3:
34984
+ return React__default['default'].createElement(Icon$1, { name: 'ui-bed', width: 15, height: 15 });
34985
+ case 4:
34986
+ return React__default['default'].createElement(Icon$1, { name: 'ui-ticket', width: 15, height: 15 });
34987
+ case 11:
34988
+ return React__default['default'].createElement(Icon$1, { name: 'ui-ship', width: 15, height: 15 });
34989
+ case 13:
34990
+ case 17:
34991
+ case 22:
34992
+ return React__default['default'].createElement(Icon$1, { name: 'ui-car', width: 15, height: 15 });
34993
+ default:
34994
+ return React__default['default'].createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 });
34995
+ }
34996
+ };
34997
+ var getSegmentTitle = function (segment) {
34998
+ if (segment.accommodationName) return segment.accommodationName;
34999
+ return segment.productName;
34990
35000
  };
34991
35001
  var Itinerary = function (_a) {
34992
- var _b;
35002
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
34993
35003
  var isOpen = _a.isOpen,
34994
- handleSetIsOpen = _a.handleSetIsOpen,
34995
- isLoading = _a.isLoading;
35004
+ handleSetIsOpen = _a.handleSetIsOpen;
35005
+ _a.isLoading;
34996
35006
  var context = React.useContext(SearchResultsConfigurationContext);
34997
35007
  var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
34998
- var entry = reactRedux.useSelector(function (state) {
34999
- return state.searchResults;
35000
- }).entry;
35001
- if (isLoading || !entry) {
35008
+ var packagingEntry = context === null || context === void 0 ? void 0 : context.packagingEntry;
35009
+ var sortedLines = React.useMemo(
35010
+ function () {
35011
+ var _a;
35012
+ return __spreadArray(
35013
+ [],
35014
+ (_a = packagingEntry === null || packagingEntry === void 0 ? void 0 : packagingEntry.lines) !== null && _a !== void 0 ? _a : [],
35015
+ true
35016
+ ).sort(function (a, b) {
35017
+ var _a, _b;
35018
+ var orderA = (_a = a.order) !== null && _a !== void 0 ? _a : Infinity;
35019
+ var orderB = (_b = b.order) !== null && _b !== void 0 ? _b : Infinity;
35020
+ // First sort by order
35021
+ if (orderA !== orderB) {
35022
+ return orderA - orderB;
35023
+ }
35024
+ // Fallback to date
35025
+ return new Date(a.from).getTime() - new Date(b.from).getTime();
35026
+ });
35027
+ },
35028
+ [packagingEntry]
35029
+ );
35030
+ if (!packagingEntry) {
35002
35031
  return null;
35003
35032
  }
35004
- var firstEntryLine = lodash.first(entry === null || entry === void 0 ? void 0 : entry.items);
35005
- var lastEntryLine = lodash.last(entry === null || entry === void 0 ? void 0 : entry.items);
35006
- var country = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.countryName;
35007
- var location = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.locationName;
35008
- var outboundFlight =
35009
- entry === null || entry === void 0
35010
- ? void 0
35011
- : entry.items.find(function (item) {
35012
- return item.productType === 7 && !item.isReturnFlight;
35013
- });
35014
- var returnFlight =
35015
- entry === null || entry === void 0
35033
+ var firstEntryLine = lodash.first(sortedLines);
35034
+ var lastEntryLine = lodash.last(sortedLines);
35035
+ var accommodationLine =
35036
+ (_c = sortedLines.find(function (line) {
35037
+ return line.serviceType === ACCOMMODATION_SERVICE_TYPE;
35038
+ })) !== null && _c !== void 0
35039
+ ? _c
35040
+ : firstEntryLine;
35041
+ var country =
35042
+ (_e =
35043
+ (_d = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.country) === null || _d === void 0 ? void 0 : _d.name) !==
35044
+ null && _e !== void 0
35045
+ ? _e
35046
+ : (_f = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.country) === null || _f === void 0
35016
35047
  ? void 0
35017
- : entry.items.find(function (item) {
35018
- return item.productType === 7 && item.isReturnFlight;
35019
- });
35020
- var otherSegments =
35021
- entry === null || entry === void 0
35048
+ : _f.name;
35049
+ var location =
35050
+ (_m =
35051
+ (_k =
35052
+ (_h =
35053
+ (_g = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.location) === null || _g === void 0
35054
+ ? void 0
35055
+ : _g.name) !== null && _h !== void 0
35056
+ ? _h
35057
+ : (_j = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.oord) === null || _j === void 0
35058
+ ? void 0
35059
+ : _j.name) !== null && _k !== void 0
35060
+ ? _k
35061
+ : (_l = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.region) === null || _l === void 0
35062
+ ? void 0
35063
+ : _l.name) !== null && _m !== void 0
35064
+ ? _m
35065
+ : (_o = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.location) === null || _o === void 0
35022
35066
  ? void 0
35023
- : entry.items.filter(function (item) {
35024
- return item.productType !== 7;
35025
- });
35067
+ : _o.name;
35068
+ var flightSegments = sortedLines.filter(function (item) {
35069
+ return item.serviceType === FLIGHT_SERVICE_TYPE;
35070
+ });
35071
+ var outboundFlight = lodash.first(flightSegments);
35072
+ var returnFlight = flightSegments.length > 1 ? lodash.last(flightSegments) : undefined;
35073
+ var otherSegments = sortedLines.filter(function (item) {
35074
+ return item.serviceType !== FLIGHT_SERVICE_TYPE;
35075
+ });
35076
+ console.log('other segments', otherSegments);
35077
+ var numberOfPax = ((_p = packagingEntry.pax) === null || _p === void 0 ? void 0 : _p.length) || 1;
35078
+ var totalPrice = packagingEntry.price || 0;
35079
+ var pricePerPerson = totalPrice / numberOfPax;
35026
35080
  return React__default['default'].createElement(
35027
- React__default['default'].Fragment,
35028
- null,
35081
+ 'div',
35082
+ { className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
35083
+ React__default['default'].createElement('div', { className: 'search__filters--background', onClick: handleSetIsOpen }),
35084
+ React__default['default'].createElement(
35085
+ 'button',
35086
+ { className: 'search__filters--close', onClick: handleSetIsOpen },
35087
+ React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
35088
+ ),
35029
35089
  React__default['default'].createElement(
35030
35090
  'div',
35031
- { className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
35032
- React__default['default'].createElement('div', {
35033
- className: 'search__filters--background',
35034
- onClick: function () {
35035
- return handleSetIsOpen();
35036
- }
35037
- }),
35091
+ { className: 'search__filters' },
35038
35092
  React__default['default'].createElement(
35039
- 'button',
35040
- {
35041
- className: 'search__filters--close',
35042
- onClick: function () {
35043
- return handleSetIsOpen();
35044
- }
35045
- },
35046
- React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
35093
+ 'div',
35094
+ { className: 'search__filter-row search__filter__header' },
35095
+ React__default['default'].createElement(
35096
+ 'div',
35097
+ { className: 'search__filter-row-flex-title' },
35098
+ React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.ITINERARY_TITLE)
35099
+ )
35047
35100
  ),
35048
35101
  React__default['default'].createElement(
35049
- 'div',
35050
- { className: 'search__filters' },
35102
+ React__default['default'].Fragment,
35103
+ null,
35104
+ React__default['default'].createElement(
35105
+ 'div',
35106
+ { className: 'search__filter-group' },
35107
+ (context === null || context === void 0 ? void 0 : context.destinationImage) &&
35108
+ React__default['default'].createElement(
35109
+ 'div',
35110
+ { className: 'search__filter__image__wrapper' },
35111
+ React__default['default'].createElement('img', {
35112
+ src: context.destinationImage.url,
35113
+ alt: context.destinationImage.alt,
35114
+ className: 'search__filter__image'
35115
+ }),
35116
+ (packagingEntry === null || packagingEntry === void 0 ? void 0 : packagingEntry.dossierNumber) &&
35117
+ React__default['default'].createElement(
35118
+ 'span',
35119
+ { className: 'search__filter__image__text' },
35120
+ translations.SRP.DOSSIER_NUMBER,
35121
+ ': ',
35122
+ packagingEntry.dossierNumber
35123
+ ),
35124
+ React__default['default'].createElement(
35125
+ 'h4',
35126
+ { className: 'search__filter__image__title' },
35127
+ (location || '') + (location && country ? ' - ' : '') + (country || '')
35128
+ )
35129
+ )
35130
+ ),
35051
35131
  React__default['default'].createElement(
35052
35132
  'div',
35053
- { className: 'search__filter-row search__filter__header' },
35133
+ { className: 'search__filter__prices' },
35054
35134
  React__default['default'].createElement(
35055
35135
  'div',
35056
- { className: 'search__filter-row-flex-title' },
35057
- React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.ITINERARY_TITLE)
35058
- )
35059
- ),
35060
- isLoading
35061
- ? React__default['default'].createElement(Spinner, null)
35062
- : React__default['default'].createElement(
35063
- React__default['default'].Fragment,
35136
+ { className: 'search__filter__prices__wrapper' },
35137
+ React__default['default'].createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$2(pricePerPerson, 'EUR')),
35138
+ React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
35139
+ React__default['default'].createElement(
35140
+ 'p',
35064
35141
  null,
35142
+ React__default['default'].createElement('strong', null, '(', formatPrice$2(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
35143
+ )
35144
+ ),
35145
+ React__default['default'].createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
35146
+ ),
35147
+ React__default['default'].createElement(
35148
+ 'div',
35149
+ { className: 'search__filter__itinerary' },
35150
+ React__default['default'].createElement('p', null, translations.SRP.DAY_BY_DAY),
35151
+ firstEntryLine &&
35152
+ React__default['default'].createElement(
35153
+ 'div',
35154
+ { className: 'search__filter__itinerary__country' },
35065
35155
  React__default['default'].createElement(
35066
35156
  'div',
35067
- { className: 'search__filter-group' },
35068
- (context === null || context === void 0 ? void 0 : context.destinationImage) &&
35069
- React__default['default'].createElement(
35070
- 'div',
35071
- { className: 'search__filter__image__wrapper' },
35072
- React__default['default'].createElement('img', {
35073
- src: context.destinationImage.url,
35074
- alt: context.destinationImage.alt,
35075
- className: 'search__filter__image'
35076
- }),
35077
- (entry === null || entry === void 0 ? void 0 : entry.number) &&
35078
- React__default['default'].createElement(
35079
- 'span',
35080
- { className: 'search__filter__image__text' },
35081
- translations.SRP.DOSSIER_NUMBER,
35082
- ': ',
35083
- entry === null || entry === void 0 ? void 0 : entry.number
35084
- ),
35085
- React__default['default'].createElement(
35086
- 'h4',
35087
- { className: 'search__filter__image__title' },
35088
- (location || '') + (location && country ? ' - ' : '') + (country || '')
35089
- )
35090
- )
35157
+ { className: 'search__filter__itinerary__country-icon' },
35158
+ React__default['default'].createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
35091
35159
  ),
35092
35160
  React__default['default'].createElement(
35093
35161
  'div',
35094
- { className: 'search__filter__prices' },
35162
+ { className: 'search__filter__itinerary__country-content' },
35163
+ React__default['default'].createElement(
35164
+ 'p',
35165
+ null,
35166
+ dateFns.format(new Date(firstEntryLine.from), 'EEE. d MMM yyyy'),
35167
+ ' -',
35168
+ ' ',
35169
+ React__default['default'].createElement('strong', null, translations.SRP.START)
35170
+ )
35171
+ )
35172
+ ),
35173
+ outboundFlight &&
35174
+ React__default['default'].createElement(
35175
+ 'div',
35176
+ { className: 'search__filter__itinerary__transport' },
35177
+ React__default['default'].createElement(
35178
+ 'div',
35179
+ { className: 'search__filter__itinerary__transport-timeline' },
35180
+ React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35181
+ ),
35182
+ React__default['default'].createElement(
35183
+ 'div',
35184
+ { className: 'search__filter__itinerary__transport-item' },
35095
35185
  React__default['default'].createElement(
35096
35186
  'div',
35097
- { className: 'search__filter__prices__wrapper' },
35187
+ { className: 'search__filter__itinerary__transport-date' },
35098
35188
  React__default['default'].createElement(
35099
- 'h3',
35100
- { className: 'search__filter__prices--amount' },
35101
- formatPrice$2(
35102
- ((entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0) /
35103
- ((entry === null || entry === void 0 ? void 0 : entry.numberOfPax) || 1),
35104
- (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR'
35105
- )
35189
+ 'p',
35190
+ { className: 'search__filter__itinerary__transport-date-date' },
35191
+ React__default['default'].createElement('strong', null, dateFns.format(new Date(outboundFlight.from), 'd'))
35106
35192
  ),
35107
- React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
35193
+ React__default['default'].createElement('p', null, dateFns.format(new Date(outboundFlight.from), 'MMM'))
35194
+ ),
35195
+ React__default['default'].createElement(
35196
+ 'div',
35197
+ { className: 'search__filter__itinerary__transport-badge' },
35198
+ React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 15 })
35199
+ ),
35200
+ React__default['default'].createElement(
35201
+ 'div',
35202
+ { className: 'search__filter__itinerary__transport-details' },
35203
+ React__default['default'].createElement('h6', null, outboundFlight.productName),
35108
35204
  React__default['default'].createElement(
35109
35205
  'p',
35110
- null,
35206
+ { className: 'search__filter__itinerary__transport-details-plane' },
35111
35207
  React__default['default'].createElement(
35112
- 'strong',
35208
+ 'span',
35113
35209
  null,
35114
- '(',
35115
- formatPrice$2(
35116
- (entry === null || entry === void 0 ? void 0 : entry.sellingPrice) || 0,
35117
- (entry === null || entry === void 0 ? void 0 : entry.currencyCode) || 'EUR'
35118
- ),
35210
+ React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35211
+ ' ',
35212
+ React__default['default'].createElement('strong', null, getDepartureTime(outboundFlight))
35213
+ ),
35214
+ ' ',
35215
+ '-',
35216
+ ' ',
35217
+ React__default['default'].createElement(
35218
+ 'span',
35219
+ null,
35220
+ React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35119
35221
  ' ',
35120
- translations.SRP.TOTAL,
35121
- ')'
35222
+ React__default['default'].createElement('strong', null, getArrivalTime(outboundFlight))
35122
35223
  )
35123
- )
35124
- ),
35125
- React__default['default'].createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
35126
- ),
35127
- React__default['default'].createElement(
35128
- 'div',
35129
- { className: 'search__filter__itinerary' },
35130
- React__default['default'].createElement('p', null, translations.SRP.DAY_BY_DAY),
35131
- React__default['default'].createElement(
35132
- 'div',
35133
- { className: 'search__filter__itinerary__country' },
35134
- React__default['default'].createElement(
35135
- 'div',
35136
- { className: 'search__filter__itinerary__country-icon' },
35137
- React__default['default'].createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
35138
35224
  ),
35139
35225
  React__default['default'].createElement(
35140
- 'div',
35141
- { className: 'search__filter__itinerary__country-content' },
35226
+ 'p',
35227
+ { className: 'search__filter__itinerary__transport-details-time' },
35142
35228
  React__default['default'].createElement(
35143
- 'p',
35229
+ 'span',
35144
35230
  null,
35145
- dateFns.format(
35146
- new Date((firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.startDate) || ''),
35147
- 'EEE. d MMM yyyy'
35148
- ),
35149
- ' - ',
35150
- React__default['default'].createElement('strong', null, translations.SRP.START)
35231
+ React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35232
+ ' ',
35233
+ getDuration(outboundFlight)
35151
35234
  )
35152
35235
  )
35153
- ),
35154
- outboundFlight &&
35236
+ )
35237
+ )
35238
+ ),
35239
+ !lodash.isEmpty(otherSegments) &&
35240
+ React__default['default'].createElement(
35241
+ 'div',
35242
+ { className: 'search__filter__itinerary__segments' },
35243
+ otherSegments.map(function (segment, index) {
35244
+ var _a, _b, _c, _d, _e, _f, _g, _h;
35245
+ return React__default['default'].createElement(
35246
+ 'div',
35247
+ { className: 'search__filter__itinerary__segments__wrapper', key: 'segment-'.concat(index) },
35155
35248
  React__default['default'].createElement(
35156
35249
  'div',
35157
- { className: 'search__filter__itinerary__transport' },
35158
- React__default['default'].createElement(
35159
- 'div',
35160
- { className: 'search__filter__itinerary__transport-timeline' },
35161
- React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35162
- ),
35250
+ { className: 'search__filter__itinerary__segments-timeline' },
35251
+ React__default['default'].createElement('div', { className: 'search__filter__itinerary__segments-timeline-line' })
35252
+ ),
35253
+ React__default['default'].createElement(
35254
+ 'div',
35255
+ { className: 'search__filter__itinerary__segment' },
35163
35256
  React__default['default'].createElement(
35164
35257
  'div',
35165
- { className: 'search__filter__itinerary__transport-item' },
35258
+ { className: 'search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start' },
35166
35259
  React__default['default'].createElement(
35167
35260
  'div',
35168
35261
  { className: 'search__filter__itinerary__transport-date' },
35169
35262
  React__default['default'].createElement(
35170
35263
  'p',
35171
35264
  { className: 'search__filter__itinerary__transport-date-date' },
35172
- React__default['default'].createElement(
35173
- 'strong',
35174
- null,
35175
- dateFns.format(new Date((outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.startDate) || ''), 'd')
35176
- )
35265
+ React__default['default'].createElement('strong', null, dateFns.format(new Date(segment.from), 'd'))
35177
35266
  ),
35178
- React__default['default'].createElement(
35179
- 'p',
35180
- null,
35181
- dateFns.format(new Date((outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.startDate) || ''), 'MMM')
35182
- )
35267
+ React__default['default'].createElement('p', null, dateFns.format(new Date(segment.from), 'MMM'))
35183
35268
  ),
35184
35269
  React__default['default'].createElement(
35185
35270
  'div',
35186
- { className: 'search__filter__itinerary__transport-badge' },
35187
- React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 15 })
35271
+ { className: 'search__filter__itinerary__segment-badge' },
35272
+ React__default['default'].createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 })
35188
35273
  ),
35189
35274
  React__default['default'].createElement(
35190
35275
  'div',
35191
- { className: 'search__filter__itinerary__transport-details' },
35192
- React__default['default'].createElement('h6', null, outboundFlight.productName),
35276
+ { className: 'search__filter__itinerary__segment-details' },
35193
35277
  React__default['default'].createElement(
35194
- 'p',
35195
- { className: 'search__filter__itinerary__transport-details-plane' },
35196
- React__default['default'].createElement(
35197
- 'span',
35198
- null,
35199
- React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35200
- ' ',
35201
- React__default['default'].createElement('strong', null, getDepartureTime(outboundFlight))
35202
- ),
35203
- ' ',
35204
- '-',
35205
- ' ',
35206
- React__default['default'].createElement(
35207
- 'span',
35208
- null,
35209
- React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35210
- ' ',
35211
- React__default['default'].createElement('strong', null, getArrivalTime(outboundFlight))
35212
- )
35278
+ 'h6',
35279
+ null,
35280
+ ((_a = segment.location) === null || _a === void 0 ? void 0 : _a.name) ||
35281
+ ((_b = segment.oord) === null || _b === void 0 ? void 0 : _b.name) ||
35282
+ ((_c = segment.region) === null || _c === void 0 ? void 0 : _c.name),
35283
+ (((_d = segment.location) === null || _d === void 0 ? void 0 : _d.name) ||
35284
+ ((_e = segment.oord) === null || _e === void 0 ? void 0 : _e.name) ||
35285
+ ((_f = segment.region) === null || _f === void 0 ? void 0 : _f.name)) &&
35286
+ ((_g = segment.country) === null || _g === void 0 ? void 0 : _g.name)
35287
+ ? ', '
35288
+ : '',
35289
+ (_h = segment.country) === null || _h === void 0 ? void 0 : _h.name
35213
35290
  ),
35214
35291
  React__default['default'].createElement(
35215
35292
  'p',
35216
- { className: 'search__filter__itinerary__transport-details-time' },
35217
- React__default['default'].createElement(
35218
- 'span',
35219
- null,
35220
- React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35221
- ' ',
35222
- getDuration(outboundFlight)
35223
- )
35293
+ { className: 'search__filter__itinerary__segment-details-text' },
35294
+ dateFns.format(new Date(segment.from), 'EEE. d MMM yyyy'),
35295
+ '> ',
35296
+ dateFns.format(new Date(segment.to), 'EEE. d MMM yyyy')
35224
35297
  )
35225
35298
  )
35226
35299
  )
35227
35300
  ),
35228
- !lodash.isEmpty(otherSegments) &&
35229
35301
  React__default['default'].createElement(
35230
35302
  'div',
35231
- { className: 'search__filter__itinerary__segments' },
35232
- otherSegments === null || otherSegments === void 0
35233
- ? void 0
35234
- : otherSegments.map(function (segment, index) {
35235
- return React__default['default'].createElement(
35236
- 'div',
35237
- { className: 'search__filter__itinerary__segments__wrapper', key: 'segment-'.concat(index) },
35238
- React__default['default'].createElement(
35239
- 'div',
35240
- { className: 'search__filter__itinerary__segments-timeline' },
35241
- React__default['default'].createElement('div', { className: 'search__filter__itinerary__segments-timeline-line' })
35242
- ),
35243
- React__default['default'].createElement(
35244
- 'div',
35245
- { className: 'search__filter__itinerary__segment' },
35246
- React__default['default'].createElement(
35247
- 'div',
35248
- { className: 'search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start' },
35249
- React__default['default'].createElement(
35250
- 'div',
35251
- { className: 'search__filter__itinerary__transport-date' },
35252
- React__default['default'].createElement(
35253
- 'p',
35254
- { className: 'search__filter__itinerary__transport-date-date' },
35255
- React__default['default'].createElement(
35256
- 'strong',
35257
- null,
35258
- dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'd')
35259
- )
35260
- ),
35261
- React__default['default'].createElement(
35262
- 'p',
35263
- null,
35264
- dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'MMM')
35265
- )
35266
- ),
35267
- React__default['default'].createElement(
35268
- 'div',
35269
- { className: 'search__filter__itinerary__segment-badge' },
35270
- React__default['default'].createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 })
35271
- ),
35272
- React__default['default'].createElement(
35273
- 'div',
35274
- { className: 'search__filter__itinerary__segment-details' },
35275
- React__default['default'].createElement(
35276
- 'h6',
35277
- null,
35278
- segment === null || segment === void 0 ? void 0 : segment.locationName,
35279
- ', ',
35280
- segment === null || segment === void 0 ? void 0 : segment.countryName
35281
- ),
35282
- React__default['default'].createElement(
35283
- 'p',
35284
- { className: 'search__filter__itinerary__segment-details-text' },
35285
- dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.startDate) || ''), 'EEE. d MMM yyyy'),
35286
- '> ',
35287
- dateFns.format(new Date((segment === null || segment === void 0 ? void 0 : segment.endDate) || ''), 'EEE. d MMM yyyy')
35288
- )
35289
- )
35290
- )
35291
- ),
35292
- React__default['default'].createElement(
35293
- 'div',
35294
- { className: 'search__filter__itinerary__segment' },
35295
- React__default['default'].createElement(
35296
- 'div',
35297
- { className: 'search__filter__itinerary__segment-item' },
35298
- segment.productType === 3 &&
35299
- React__default['default'].createElement(
35300
- 'div',
35301
- { className: 'search__filter__itinerary__segment-date search__filter__itinerary__segment-nights' },
35302
- React__default['default'].createElement(
35303
- 'p',
35304
- { className: 'search__filter__itinerary__segment-date-date' },
35305
- React__default['default'].createElement('strong', null, numberOfNights(segment))
35306
- ),
35307
- React__default['default'].createElement(Icon$1, { name: 'ui-moon', width: 16, height: 16 })
35308
- ),
35309
- React__default['default'].createElement(
35310
- 'div',
35311
- { className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
35312
- segment.productType === 3 && React__default['default'].createElement(Icon$1, { name: 'ui-bed', width: 15, height: 15 }),
35313
- segment.productType === 4 && React__default['default'].createElement(Icon$1, { name: 'ui-ticket', width: 15, height: 15 }),
35314
- (segment.productType === 17 || segment.productType === 22) &&
35315
- React__default['default'].createElement(Icon$1, { name: 'ui-car', width: 15, height: 15 }),
35316
- segment.productType === 11 && React__default['default'].createElement(Icon$1, { name: 'ui-ship', width: 15, height: 15 })
35317
- ),
35318
- React__default['default'].createElement(
35319
- 'div',
35320
- { className: 'search__filter__itinerary__segment-details' },
35321
- React__default['default'].createElement('h6', null, segment === null || segment === void 0 ? void 0 : segment.productName)
35322
- )
35323
- )
35324
- )
35325
- );
35326
- })
35327
- ),
35328
- returnFlight &&
35329
- React__default['default'].createElement(
35330
- 'div',
35331
- { className: 'search__filter__itinerary__transport' },
35332
- React__default['default'].createElement(
35333
- 'div',
35334
- { className: 'search__filter__itinerary__transport-timeline' },
35335
- React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35336
- ),
35303
+ { className: 'search__filter__itinerary__segment' },
35337
35304
  React__default['default'].createElement(
35338
35305
  'div',
35339
- { className: 'search__filter__itinerary__transport-item' },
35306
+ { className: 'search__filter__itinerary__segment-item' },
35340
35307
  React__default['default'].createElement(
35341
35308
  'div',
35342
- { className: 'search__filter__itinerary__transport-date' },
35343
- React__default['default'].createElement(
35344
- 'p',
35345
- { className: 'search__filter__itinerary__transport-date-date' },
35309
+ { className: 'search__filter__itinerary__segment-date search__filter__itinerary__segment-nights' },
35310
+ segment.serviceType === ACCOMMODATION_SERVICE_TYPE &&
35346
35311
  React__default['default'].createElement(
35347
- 'strong',
35312
+ React__default['default'].Fragment,
35348
35313
  null,
35349
- dateFns.format(new Date((returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.startDate) || ''), 'd')
35314
+ React__default['default'].createElement(
35315
+ 'p',
35316
+ { className: 'search__filter__itinerary__segment-date-date' },
35317
+ React__default['default'].createElement('strong', null, numberOfNights(segment))
35318
+ ),
35319
+ React__default['default'].createElement(Icon$1, { name: 'ui-moon', width: 16, height: 16 })
35350
35320
  )
35351
- ),
35352
- React__default['default'].createElement(
35353
- 'p',
35354
- null,
35355
- dateFns.format(new Date((returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.startDate) || ''), 'MMM')
35356
- )
35357
35321
  ),
35358
35322
  React__default['default'].createElement(
35359
35323
  'div',
35360
- { className: 'search__filter__itinerary__transport-badge' },
35361
- React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 15 })
35324
+ { className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
35325
+ getSegmentIcon(segment)
35362
35326
  ),
35363
35327
  React__default['default'].createElement(
35364
35328
  'div',
35365
- { className: 'search__filter__itinerary__transport-details' },
35366
- React__default['default'].createElement(
35367
- 'h6',
35368
- null,
35369
- returnFlight === null || returnFlight === void 0 ? void 0 : returnFlight.productName
35370
- ),
35371
- React__default['default'].createElement(
35372
- 'p',
35373
- { className: 'search__filter__itinerary__transport-details-plane' },
35374
- React__default['default'].createElement(
35375
- 'span',
35376
- null,
35377
- React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35378
- ' ',
35379
- React__default['default'].createElement('strong', null, getDepartureTime(returnFlight))
35380
- ),
35381
- ' ',
35382
- '-',
35383
- ' ',
35384
- React__default['default'].createElement(
35385
- 'span',
35386
- null,
35387
- React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35388
- ' ',
35389
- React__default['default'].createElement('strong', null, getArrivalTime(returnFlight))
35390
- )
35391
- ),
35392
- React__default['default'].createElement(
35393
- 'p',
35394
- { className: 'search__filter__itinerary__transport-details-time' },
35395
- React__default['default'].createElement(
35396
- 'span',
35397
- null,
35398
- React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35399
- ' ',
35400
- getDuration(returnFlight)
35401
- )
35402
- )
35329
+ { className: 'search__filter__itinerary__segment-details' },
35330
+ React__default['default'].createElement('h6', null, getSegmentTitle(segment)),
35331
+ segment.regimeName && React__default['default'].createElement('p', null, segment.regimeName)
35403
35332
  )
35404
35333
  )
35334
+ )
35335
+ );
35336
+ })
35337
+ ),
35338
+ returnFlight &&
35339
+ returnFlight !== outboundFlight &&
35340
+ React__default['default'].createElement(
35341
+ 'div',
35342
+ { className: 'search__filter__itinerary__transport' },
35343
+ React__default['default'].createElement(
35344
+ 'div',
35345
+ { className: 'search__filter__itinerary__transport-timeline' },
35346
+ React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
35347
+ ),
35348
+ React__default['default'].createElement(
35349
+ 'div',
35350
+ { className: 'search__filter__itinerary__transport-item' },
35351
+ React__default['default'].createElement(
35352
+ 'div',
35353
+ { className: 'search__filter__itinerary__transport-date' },
35354
+ React__default['default'].createElement(
35355
+ 'p',
35356
+ { className: 'search__filter__itinerary__transport-date-date' },
35357
+ React__default['default'].createElement('strong', null, dateFns.format(new Date(returnFlight.from), 'd'))
35405
35358
  ),
35359
+ React__default['default'].createElement('p', null, dateFns.format(new Date(returnFlight.from), 'MMM'))
35360
+ ),
35406
35361
  React__default['default'].createElement(
35407
35362
  'div',
35408
- { className: 'search__filter__itinerary__country' },
35363
+ { className: 'search__filter__itinerary__transport-badge' },
35364
+ React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 15 })
35365
+ ),
35366
+ React__default['default'].createElement(
35367
+ 'div',
35368
+ { className: 'search__filter__itinerary__transport-details' },
35369
+ React__default['default'].createElement('h6', null, returnFlight.productName),
35409
35370
  React__default['default'].createElement(
35410
- 'div',
35411
- { className: 'search__filter__itinerary__country-icon' },
35412
- React__default['default'].createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
35371
+ 'p',
35372
+ { className: 'search__filter__itinerary__transport-details-plane' },
35373
+ React__default['default'].createElement(
35374
+ 'span',
35375
+ null,
35376
+ React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
35377
+ ' ',
35378
+ React__default['default'].createElement('strong', null, getDepartureTime(returnFlight))
35379
+ ),
35380
+ ' ',
35381
+ '-',
35382
+ ' ',
35383
+ React__default['default'].createElement(
35384
+ 'span',
35385
+ null,
35386
+ React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
35387
+ ' ',
35388
+ React__default['default'].createElement('strong', null, getArrivalTime(returnFlight))
35389
+ )
35413
35390
  ),
35414
35391
  React__default['default'].createElement(
35415
- 'div',
35416
- { className: 'search__filter__itinerary__country-content' },
35392
+ 'p',
35393
+ { className: 'search__filter__itinerary__transport-details-time' },
35417
35394
  React__default['default'].createElement(
35418
- 'p',
35395
+ 'span',
35419
35396
  null,
35420
- dateFns.format(
35421
- new Date((lastEntryLine === null || lastEntryLine === void 0 ? void 0 : lastEntryLine.startDate) || ''),
35422
- 'EEE. d MMM yyyy'
35423
- ),
35424
- ' - ',
35425
- React__default['default'].createElement('strong', null, translations.SRP.END)
35397
+ React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
35398
+ ' ',
35399
+ getDuration(returnFlight)
35426
35400
  )
35427
35401
  )
35428
35402
  )
35429
35403
  )
35404
+ ),
35405
+ lastEntryLine &&
35406
+ React__default['default'].createElement(
35407
+ 'div',
35408
+ { className: 'search__filter__itinerary__country' },
35409
+ React__default['default'].createElement(
35410
+ 'div',
35411
+ { className: 'search__filter__itinerary__country-icon' },
35412
+ React__default['default'].createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
35413
+ ),
35414
+ React__default['default'].createElement(
35415
+ 'div',
35416
+ { className: 'search__filter__itinerary__country-content' },
35417
+ React__default['default'].createElement(
35418
+ 'p',
35419
+ null,
35420
+ dateFns.format(new Date(lastEntryLine.to), 'EEE. d MMM yyyy'),
35421
+ ' -',
35422
+ ' ',
35423
+ React__default['default'].createElement('strong', null, translations.SRP.END)
35424
+ )
35425
+ )
35430
35426
  )
35427
+ )
35431
35428
  )
35432
35429
  )
35433
35430
  );