@qite/tide-booking-component 1.4.97 → 1.4.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build-cjs/index.js +1423 -975
- package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +2 -0
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +9 -10
- package/build/build-cjs/src/search-results/types.d.ts +24 -1
- package/build/build-cjs/src/search-results/utils/packaging-utils.d.ts +7 -0
- package/build/build-cjs/src/search-results/utils/query-utils.d.ts +11 -0
- package/build/build-cjs/src/shared/components/flyin/accommodation-flyin.d.ts +1 -2
- package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +4 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +1 -0
- package/build/build-esm/index.js +1419 -965
- package/build/build-esm/src/search-results/components/itinerary/index.d.ts +2 -0
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +9 -10
- package/build/build-esm/src/search-results/types.d.ts +24 -1
- package/build/build-esm/src/search-results/utils/packaging-utils.d.ts +7 -0
- package/build/build-esm/src/search-results/utils/query-utils.d.ts +11 -0
- package/build/build-esm/src/shared/components/flyin/accommodation-flyin.d.ts +1 -2
- package/build/build-esm/src/shared/components/flyin/flyin.d.ts +4 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +1 -0
- package/package.json +2 -2
- package/src/qsm/components/search-input-group/index.tsx +0 -1
- package/src/search-results/components/itinerary/index.tsx +331 -234
- package/src/search-results/components/search-results-container/search-results-container.tsx +444 -383
- package/src/search-results/store/search-results-slice.ts +22 -10
- package/src/search-results/types.ts +26 -1
- package/src/search-results/utils/packaging-utils.ts +75 -0
- package/src/search-results/utils/query-utils.ts +152 -0
- package/src/shared/components/flyin/accommodation-flyin.tsx +10 -11
- package/src/shared/components/flyin/flyin.tsx +52 -4
- package/styles/components/_flyin.scss +25 -0
- package/styles/components/_search.scss +28 -1
package/build/build-cjs/index.js
CHANGED
|
@@ -13415,11 +13415,17 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13415
13415
|
};
|
|
13416
13416
|
|
|
13417
13417
|
var ENDPOINT = '/api/web/packaging';
|
|
13418
|
+
var ENDPOINT_START_TRANSACTION = ENDPOINT + '/start';
|
|
13418
13419
|
var ENDPOINT_ACCOMMODATIONS = ENDPOINT + '/accommodations';
|
|
13419
13420
|
var ENDPOINT_ENTRY = function (magicLinkCode) {
|
|
13420
13421
|
return ENDPOINT + '/entry/' + magicLinkCode;
|
|
13421
13422
|
};
|
|
13422
13423
|
// MANUAL PACKAGING SEARCH
|
|
13424
|
+
var startTransaction = function (config, signal) {
|
|
13425
|
+
var apiKey = config.apiKey;
|
|
13426
|
+
var url = '' + config.host + ENDPOINT_START_TRANSACTION;
|
|
13427
|
+
return get(url, apiKey, config.token, signal, true);
|
|
13428
|
+
};
|
|
13423
13429
|
var searchPackagingAccommodations = function (config, request, signal) {
|
|
13424
13430
|
var url = '' + config.host + ENDPOINT_ACCOMMODATIONS;
|
|
13425
13431
|
var apiKey = config.apiKey;
|
|
@@ -13507,6 +13513,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
13507
13513
|
exports.searchWithErrorMapping = searchWithErrorMapping;
|
|
13508
13514
|
exports.setCustomEntryStatus = setCustomEntryStatus;
|
|
13509
13515
|
exports.setEntryStatus = setEntryStatus;
|
|
13516
|
+
exports.startTransaction = startTransaction;
|
|
13510
13517
|
exports.tourCodes = tourCodes;
|
|
13511
13518
|
exports.transportDates = transportDates;
|
|
13512
13519
|
exports.update = update;
|
|
@@ -32836,7 +32843,6 @@ var SearchInputGroup = function (_a) {
|
|
|
32836
32843
|
);
|
|
32837
32844
|
React.useEffect(
|
|
32838
32845
|
function () {
|
|
32839
|
-
console.log('options updated, resetting loading state');
|
|
32840
32846
|
setIsLoading(false);
|
|
32841
32847
|
},
|
|
32842
32848
|
[options]
|
|
@@ -33798,13 +33804,15 @@ var initialState$1 = {
|
|
|
33798
33804
|
selectedFlight: null,
|
|
33799
33805
|
selectedFlightDetails: null,
|
|
33800
33806
|
bookingPackageDetails: null,
|
|
33801
|
-
entry: null,
|
|
33802
33807
|
isLoading: false,
|
|
33803
33808
|
filters: [],
|
|
33804
33809
|
selectedSortType: null,
|
|
33805
33810
|
activeTab: 'compact',
|
|
33806
33811
|
currentPage: 1,
|
|
33807
|
-
flyInIsOpen: false
|
|
33812
|
+
flyInIsOpen: false,
|
|
33813
|
+
editablePackagingEntry: null,
|
|
33814
|
+
transactionId: null,
|
|
33815
|
+
accommodationFlyInStep: 'details'
|
|
33808
33816
|
};
|
|
33809
33817
|
var searchResultsSlice = toolkit.createSlice({
|
|
33810
33818
|
name: 'searchResults',
|
|
@@ -33840,9 +33848,6 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33840
33848
|
setBookingPackageDetails: function (state, action) {
|
|
33841
33849
|
state.bookingPackageDetails = action.payload.details;
|
|
33842
33850
|
},
|
|
33843
|
-
setEntry: function (state, action) {
|
|
33844
|
-
state.entry = action.payload.entry;
|
|
33845
|
-
},
|
|
33846
33851
|
selectFlight: function (state, action) {
|
|
33847
33852
|
if (!state.bookingPackageDetails) return;
|
|
33848
33853
|
var _a = action.payload,
|
|
@@ -33891,6 +33896,15 @@ var searchResultsSlice = toolkit.createSlice({
|
|
|
33891
33896
|
},
|
|
33892
33897
|
setFlyInIsOpen: function (state, action) {
|
|
33893
33898
|
state.flyInIsOpen = action.payload;
|
|
33899
|
+
},
|
|
33900
|
+
setEditablePackagingEntry: function (state, action) {
|
|
33901
|
+
state.editablePackagingEntry = action.payload;
|
|
33902
|
+
},
|
|
33903
|
+
setTransactionId: function (state, action) {
|
|
33904
|
+
state.transactionId = action.payload;
|
|
33905
|
+
},
|
|
33906
|
+
setAccommodationFlyInStep: function (state, action) {
|
|
33907
|
+
state.accommodationFlyInStep = action.payload;
|
|
33894
33908
|
}
|
|
33895
33909
|
}
|
|
33896
33910
|
});
|
|
@@ -33904,7 +33918,6 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33904
33918
|
setSelectedFlight = _a.setSelectedFlight,
|
|
33905
33919
|
setSelectedFlightDetails = _a.setSelectedFlightDetails,
|
|
33906
33920
|
setBookingPackageDetails = _a.setBookingPackageDetails,
|
|
33907
|
-
setEntry = _a.setEntry,
|
|
33908
33921
|
selectFlight = _a.selectFlight,
|
|
33909
33922
|
setIsLoading = _a.setIsLoading,
|
|
33910
33923
|
setFilters = _a.setFilters,
|
|
@@ -33913,7 +33926,10 @@ var setResults = ((_a = searchResultsSlice.actions), _a.setResults),
|
|
|
33913
33926
|
setActiveTab = _a.setActiveTab;
|
|
33914
33927
|
_a.setCurrentPage;
|
|
33915
33928
|
_a.resetSearchState;
|
|
33916
|
-
var setFlyInIsOpen = _a.setFlyInIsOpen
|
|
33929
|
+
var setFlyInIsOpen = _a.setFlyInIsOpen,
|
|
33930
|
+
setEditablePackagingEntry = _a.setEditablePackagingEntry,
|
|
33931
|
+
setTransactionId = _a.setTransactionId,
|
|
33932
|
+
setAccommodationFlyInStep = _a.setAccommodationFlyInStep;
|
|
33917
33933
|
var searchResultsReducer = searchResultsSlice.reducer;
|
|
33918
33934
|
|
|
33919
33935
|
var ItemPicker = function (_a) {
|
|
@@ -34942,492 +34958,715 @@ var Icon$1 = function (_a) {
|
|
|
34942
34958
|
}
|
|
34943
34959
|
};
|
|
34944
34960
|
|
|
34945
|
-
var
|
|
34946
|
-
|
|
34947
|
-
|
|
34948
|
-
|
|
34949
|
-
|
|
34950
|
-
|
|
34951
|
-
|
|
34952
|
-
|
|
34953
|
-
|
|
34954
|
-
|
|
34955
|
-
|
|
34961
|
+
var GROUP_TOUR_SERVICE_TYPE = 1;
|
|
34962
|
+
var ACCOMMODATION_SERVICE_TYPE = 3;
|
|
34963
|
+
var FLIGHT_SERVICE_TYPE = 7;
|
|
34964
|
+
var toDateOnlyString = function (value) {
|
|
34965
|
+
var date = value instanceof Date ? value : new Date(value);
|
|
34966
|
+
return date.toISOString().split('T')[0];
|
|
34967
|
+
};
|
|
34968
|
+
var getAgeAtReferenceDate = function (dateOfBirth, referenceDate) {
|
|
34969
|
+
var dob = dateOfBirth instanceof Date ? dateOfBirth : new Date(dateOfBirth);
|
|
34970
|
+
var ref = referenceDate instanceof Date ? referenceDate : new Date(referenceDate);
|
|
34971
|
+
var age = ref.getFullYear() - dob.getFullYear();
|
|
34972
|
+
var monthDiff = ref.getMonth() - dob.getMonth();
|
|
34973
|
+
if (monthDiff < 0 || (monthDiff === 0 && ref.getDate() < dob.getDate())) {
|
|
34974
|
+
age--;
|
|
34956
34975
|
}
|
|
34976
|
+
return age;
|
|
34957
34977
|
};
|
|
34958
|
-
var
|
|
34959
|
-
|
|
34960
|
-
|
|
34961
|
-
|
|
34962
|
-
|
|
34963
|
-
|
|
34964
|
-
|
|
34965
|
-
|
|
34966
|
-
|
|
34967
|
-
|
|
34968
|
-
|
|
34978
|
+
var getFlightLines$1 = function (lines) {
|
|
34979
|
+
return __spreadArray([], lines, true)
|
|
34980
|
+
.filter(function (line) {
|
|
34981
|
+
return line.serviceType === FLIGHT_SERVICE_TYPE;
|
|
34982
|
+
})
|
|
34983
|
+
.sort(function (a, b) {
|
|
34984
|
+
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
34985
|
+
});
|
|
34986
|
+
};
|
|
34987
|
+
var getDepartureAirportFromEntry = function (lines) {
|
|
34988
|
+
var _a, _b, _c;
|
|
34989
|
+
var firstFlight = getFlightLines$1(lines)[0];
|
|
34990
|
+
var firstSegment =
|
|
34991
|
+
(_b =
|
|
34992
|
+
(_a = firstFlight === null || firstFlight === void 0 ? void 0 : firstFlight.flightInformation) === null || _a === void 0 ? void 0 : _a.flightLines) ===
|
|
34993
|
+
null || _b === void 0
|
|
34994
|
+
? void 0
|
|
34995
|
+
: _b[0];
|
|
34996
|
+
return (_c = firstSegment === null || firstSegment === void 0 ? void 0 : firstSegment.departureAirportCode) !== null && _c !== void 0 ? _c : null;
|
|
34997
|
+
};
|
|
34998
|
+
var getDestinationAirportFromEntry = function (lines) {
|
|
34999
|
+
var _a, _b, _c;
|
|
35000
|
+
var outboundFlight = getFlightLines$1(lines)[0];
|
|
35001
|
+
var flightSegments =
|
|
35002
|
+
(_a = outboundFlight === null || outboundFlight === void 0 ? void 0 : outboundFlight.flightInformation) === null || _a === void 0 ? void 0 : _a.flightLines;
|
|
35003
|
+
if (!(flightSegments === null || flightSegments === void 0 ? void 0 : flightSegments.length)) return null;
|
|
35004
|
+
return (_c = (_b = flightSegments[flightSegments.length - 1]) === null || _b === void 0 ? void 0 : _b.arrivalAirportCode) !== null && _c !== void 0
|
|
35005
|
+
? _c
|
|
35006
|
+
: null;
|
|
35007
|
+
};
|
|
35008
|
+
var mapPackagingPaxToBookingPax = function (pax, fallbackId, referenceDate) {
|
|
35009
|
+
var _a, _b, _c, _d, _e, _f;
|
|
35010
|
+
return {
|
|
35011
|
+
id: (_a = pax === null || pax === void 0 ? void 0 : pax.id) !== null && _a !== void 0 ? _a : fallbackId,
|
|
35012
|
+
guid:
|
|
35013
|
+
(_c = (_b = pax === null || pax === void 0 ? void 0 : pax.id) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0
|
|
35014
|
+
? _c
|
|
35015
|
+
: fallbackId.toString(),
|
|
35016
|
+
firstName: (_d = pax === null || pax === void 0 ? void 0 : pax.firstName) !== null && _d !== void 0 ? _d : '',
|
|
35017
|
+
lastName: (_e = pax === null || pax === void 0 ? void 0 : pax.lastName) !== null && _e !== void 0 ? _e : '',
|
|
35018
|
+
dateOfBirth: (_f = pax === null || pax === void 0 ? void 0 : pax.dateOfBirth) !== null && _f !== void 0 ? _f : undefined,
|
|
35019
|
+
age: (pax === null || pax === void 0 ? void 0 : pax.dateOfBirth) ? getAgeAtReferenceDate(pax.dateOfBirth, referenceDate) : undefined,
|
|
35020
|
+
isMainBooker: pax === null || pax === void 0 ? void 0 : pax.isMainBooker,
|
|
35021
|
+
email: ''
|
|
35022
|
+
};
|
|
35023
|
+
};
|
|
35024
|
+
var getRequestRoomsFromPackagingEntry = function (entry) {
|
|
35025
|
+
var _a, _b, _c, _d;
|
|
35026
|
+
var accommodationLines = ((_a = entry.lines) !== null && _a !== void 0 ? _a : []).filter(function (line) {
|
|
35027
|
+
var _a;
|
|
35028
|
+
return line.serviceType === ACCOMMODATION_SERVICE_TYPE && ((_a = line.pax) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
35029
|
+
});
|
|
35030
|
+
var paxById = new Map(
|
|
35031
|
+
((_b = entry.pax) !== null && _b !== void 0 ? _b : []).map(function (p) {
|
|
35032
|
+
return [p.id, p];
|
|
35033
|
+
})
|
|
35034
|
+
);
|
|
35035
|
+
if (!accommodationLines.length) {
|
|
35036
|
+
return [
|
|
35037
|
+
{
|
|
35038
|
+
index: 0,
|
|
35039
|
+
pax: ((_c = entry.pax) !== null && _c !== void 0 ? _c : []).map(function (p) {
|
|
35040
|
+
return mapPackagingPaxToBookingPax(p, p.id, new Date().toISOString());
|
|
35041
|
+
})
|
|
35042
|
+
}
|
|
35043
|
+
];
|
|
35044
|
+
}
|
|
35045
|
+
var roomGroups = [];
|
|
35046
|
+
accommodationLines.forEach(function (line) {
|
|
35047
|
+
var groupedByRoom = new Map();
|
|
35048
|
+
line.pax.forEach(function (linePax) {
|
|
35049
|
+
var _a;
|
|
35050
|
+
var roomIndexWithinLine = Number((_a = linePax.room) !== null && _a !== void 0 ? _a : 0);
|
|
35051
|
+
var paxId = Number(linePax.paxId);
|
|
35052
|
+
var pax = mapPackagingPaxToBookingPax(paxById.get(paxId), paxId, line.from);
|
|
35053
|
+
if (!groupedByRoom.has(roomIndexWithinLine)) {
|
|
35054
|
+
groupedByRoom.set(roomIndexWithinLine, []);
|
|
35055
|
+
}
|
|
35056
|
+
groupedByRoom.get(roomIndexWithinLine).push(pax);
|
|
35057
|
+
});
|
|
35058
|
+
var sortedGroups = Array.from(groupedByRoom.entries())
|
|
35059
|
+
.sort(function (_a, _b) {
|
|
35060
|
+
var a = _a[0];
|
|
35061
|
+
var b = _b[0];
|
|
35062
|
+
return a - b;
|
|
35063
|
+
})
|
|
35064
|
+
.map(function (_a) {
|
|
35065
|
+
var pax = _a[1];
|
|
35066
|
+
return pax;
|
|
35067
|
+
});
|
|
35068
|
+
roomGroups.push.apply(roomGroups, sortedGroups);
|
|
35069
|
+
});
|
|
35070
|
+
if (!roomGroups.length) {
|
|
35071
|
+
return [
|
|
35072
|
+
{
|
|
35073
|
+
index: 0,
|
|
35074
|
+
pax: ((_d = entry.pax) !== null && _d !== void 0 ? _d : []).map(function (p) {
|
|
35075
|
+
return mapPackagingPaxToBookingPax(p, p.id, accommodationLines[0].from);
|
|
35076
|
+
})
|
|
35077
|
+
}
|
|
35078
|
+
];
|
|
34969
35079
|
}
|
|
35080
|
+
return roomGroups.map(function (pax, index) {
|
|
35081
|
+
return {
|
|
35082
|
+
index: index,
|
|
35083
|
+
pax: pax
|
|
35084
|
+
};
|
|
35085
|
+
});
|
|
34970
35086
|
};
|
|
34971
|
-
var
|
|
34972
|
-
|
|
34973
|
-
|
|
34974
|
-
|
|
34975
|
-
|
|
34976
|
-
|
|
34977
|
-
|
|
34978
|
-
var
|
|
34979
|
-
|
|
34980
|
-
|
|
34981
|
-
|
|
34982
|
-
|
|
34983
|
-
|
|
34984
|
-
|
|
34985
|
-
return '';
|
|
35087
|
+
var parseHotelId = function (line) {
|
|
35088
|
+
if (!(line === null || line === void 0 ? void 0 : line.productCode)) return null;
|
|
35089
|
+
var parsed = Number(line.productCode);
|
|
35090
|
+
return Number.isNaN(parsed) ? null : parsed;
|
|
35091
|
+
};
|
|
35092
|
+
var getPackagingRequestRoomsFromBookingRooms = function (rooms) {
|
|
35093
|
+
if (!(rooms === null || rooms === void 0 ? void 0 : rooms.length)) {
|
|
35094
|
+
var room_1 = { index: 0, travellers: [] };
|
|
35095
|
+
lodash.range(0, 2).forEach(function () {
|
|
35096
|
+
room_1.travellers.push({
|
|
35097
|
+
age: 30
|
|
35098
|
+
});
|
|
35099
|
+
});
|
|
35100
|
+
return [room_1];
|
|
34986
35101
|
}
|
|
35102
|
+
return rooms.map(function (x, i) {
|
|
35103
|
+
var _a;
|
|
35104
|
+
var room = { index: (_a = x.index) !== null && _a !== void 0 ? _a : i, travellers: [] };
|
|
35105
|
+
x.pax.forEach(function (p) {
|
|
35106
|
+
var _a;
|
|
35107
|
+
room.travellers.push({
|
|
35108
|
+
age: (_a = p.age) !== null && _a !== void 0 ? _a : 30
|
|
35109
|
+
});
|
|
35110
|
+
});
|
|
35111
|
+
return room;
|
|
35112
|
+
});
|
|
35113
|
+
};
|
|
35114
|
+
|
|
35115
|
+
var getFlightLines = function (flight) {
|
|
35116
|
+
var _a, _b;
|
|
35117
|
+
return (_b = (_a = flight === null || flight === void 0 ? void 0 : flight.flightInformation) === null || _a === void 0 ? void 0 : _a.flightLines) !== null &&
|
|
35118
|
+
_b !== void 0
|
|
35119
|
+
? _b
|
|
35120
|
+
: [];
|
|
35121
|
+
};
|
|
35122
|
+
var getDepartureTime = function (flight) {
|
|
35123
|
+
var firstLine = lodash.first(getFlightLines(flight));
|
|
35124
|
+
if (!(firstLine === null || firstLine === void 0 ? void 0 : firstLine.departureTime)) return '';
|
|
35125
|
+
return firstLine.departureTime.slice(0, 5);
|
|
35126
|
+
};
|
|
35127
|
+
var getArrivalTime = function (flight) {
|
|
35128
|
+
var lastLine = lodash.last(getFlightLines(flight));
|
|
35129
|
+
if (!(lastLine === null || lastLine === void 0 ? void 0 : lastLine.arrivalTime)) return '';
|
|
35130
|
+
return lastLine.arrivalTime.slice(0, 5);
|
|
35131
|
+
};
|
|
35132
|
+
var getDuration = function (flight) {
|
|
35133
|
+
var lines = getFlightLines(flight);
|
|
35134
|
+
if (!lines.length) return '';
|
|
35135
|
+
var totalTicks =
|
|
35136
|
+
lines.reduce(function (sum, line) {
|
|
35137
|
+
var _a;
|
|
35138
|
+
return sum + ((_a = line.durationInTicks) !== null && _a !== void 0 ? _a : 0);
|
|
35139
|
+
}, 0) || 0;
|
|
35140
|
+
if (!totalTicks) return '';
|
|
35141
|
+
var seconds = totalTicks / 10000000;
|
|
35142
|
+
var hours = Math.floor(seconds / 3600);
|
|
35143
|
+
var minutes = Math.floor((seconds % 3600) / 60);
|
|
35144
|
+
return ''.concat(hours, 'h ').concat(minutes.toString().padStart(2, '0'), 'm');
|
|
34987
35145
|
};
|
|
34988
35146
|
var numberOfNights = function (segment) {
|
|
34989
|
-
return dateFns.differenceInCalendarDays(new Date(segment.
|
|
35147
|
+
return dateFns.differenceInCalendarDays(new Date(segment.to), new Date(segment.from));
|
|
35148
|
+
};
|
|
35149
|
+
var getSegmentIcon = function (segment) {
|
|
35150
|
+
switch (segment.serviceType) {
|
|
35151
|
+
case 3:
|
|
35152
|
+
return React__default['default'].createElement(
|
|
35153
|
+
'div',
|
|
35154
|
+
{ className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
|
|
35155
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-bed', width: 15, height: 15 })
|
|
35156
|
+
);
|
|
35157
|
+
case 4:
|
|
35158
|
+
return React__default['default'].createElement(
|
|
35159
|
+
'div',
|
|
35160
|
+
{ className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
|
|
35161
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-ticket', width: 15, height: 15 })
|
|
35162
|
+
);
|
|
35163
|
+
case 11:
|
|
35164
|
+
return React__default['default'].createElement(
|
|
35165
|
+
'div',
|
|
35166
|
+
{ className: 'search__filter__itinerary__segment-badge search__filter__itinerary__segment-badge--secondary' },
|
|
35167
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-ship', width: 15, height: 15 })
|
|
35168
|
+
);
|
|
35169
|
+
case 13:
|
|
35170
|
+
case 17:
|
|
35171
|
+
case 22:
|
|
35172
|
+
return React__default['default'].createElement(
|
|
35173
|
+
'div',
|
|
35174
|
+
{ className: 'search__filter__itinerary__transport-badge' },
|
|
35175
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-car', width: 15, height: 15 })
|
|
35176
|
+
);
|
|
35177
|
+
default:
|
|
35178
|
+
return React__default['default'].createElement(
|
|
35179
|
+
'div',
|
|
35180
|
+
{ className: 'search__filter__itinerary__segment-badge' },
|
|
35181
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 })
|
|
35182
|
+
);
|
|
35183
|
+
}
|
|
35184
|
+
};
|
|
35185
|
+
var canEdit = function (segment) {
|
|
35186
|
+
if (segment.serviceType === ACCOMMODATION_SERVICE_TYPE) {
|
|
35187
|
+
return true;
|
|
35188
|
+
}
|
|
35189
|
+
return false;
|
|
35190
|
+
};
|
|
35191
|
+
var getSegmentTitle = function (segment) {
|
|
35192
|
+
var _a;
|
|
35193
|
+
return (_a = segment.productName) !== null && _a !== void 0 ? _a : segment.accommodationName;
|
|
34990
35194
|
};
|
|
34991
35195
|
var Itinerary = function (_a) {
|
|
34992
|
-
var _b;
|
|
35196
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
34993
35197
|
var isOpen = _a.isOpen,
|
|
34994
|
-
handleSetIsOpen = _a.handleSetIsOpen
|
|
34995
|
-
|
|
35198
|
+
handleSetIsOpen = _a.handleSetIsOpen;
|
|
35199
|
+
_a.isLoading;
|
|
35200
|
+
var onEditAccommodation = _a.onEditAccommodation;
|
|
34996
35201
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
34997
35202
|
var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
|
|
34998
|
-
var
|
|
35203
|
+
var editablePackagingEntry = reactRedux.useSelector(function (state) {
|
|
34999
35204
|
return state.searchResults;
|
|
35000
|
-
}).
|
|
35001
|
-
|
|
35205
|
+
}).editablePackagingEntry;
|
|
35206
|
+
var packagingEntry =
|
|
35207
|
+
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
35208
|
+
? editablePackagingEntry
|
|
35209
|
+
: context === null || context === void 0
|
|
35210
|
+
? void 0
|
|
35211
|
+
: context.packagingEntry;
|
|
35212
|
+
var sortedLines = React.useMemo(
|
|
35213
|
+
function () {
|
|
35214
|
+
var _a;
|
|
35215
|
+
return __spreadArray(
|
|
35216
|
+
[],
|
|
35217
|
+
(_a = packagingEntry === null || packagingEntry === void 0 ? void 0 : packagingEntry.lines) !== null && _a !== void 0 ? _a : [],
|
|
35218
|
+
true
|
|
35219
|
+
).sort(function (a, b) {
|
|
35220
|
+
var _a, _b;
|
|
35221
|
+
var orderA = (_a = a.order) !== null && _a !== void 0 ? _a : Infinity;
|
|
35222
|
+
var orderB = (_b = b.order) !== null && _b !== void 0 ? _b : Infinity;
|
|
35223
|
+
// First sort by order
|
|
35224
|
+
if (orderA !== orderB) {
|
|
35225
|
+
return orderA - orderB;
|
|
35226
|
+
}
|
|
35227
|
+
// Fallback to date
|
|
35228
|
+
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
35229
|
+
});
|
|
35230
|
+
},
|
|
35231
|
+
[packagingEntry]
|
|
35232
|
+
);
|
|
35233
|
+
if (!packagingEntry) {
|
|
35002
35234
|
return null;
|
|
35003
35235
|
}
|
|
35004
|
-
var firstEntryLine = lodash.first(
|
|
35005
|
-
var lastEntryLine = lodash.last(
|
|
35006
|
-
var
|
|
35007
|
-
|
|
35008
|
-
|
|
35009
|
-
|
|
35010
|
-
?
|
|
35011
|
-
:
|
|
35012
|
-
|
|
35013
|
-
|
|
35014
|
-
|
|
35015
|
-
|
|
35236
|
+
var firstEntryLine = lodash.first(sortedLines);
|
|
35237
|
+
var lastEntryLine = lodash.last(sortedLines);
|
|
35238
|
+
var accommodationLine =
|
|
35239
|
+
(_c = sortedLines.find(function (line) {
|
|
35240
|
+
return line.serviceType === ACCOMMODATION_SERVICE_TYPE;
|
|
35241
|
+
})) !== null && _c !== void 0
|
|
35242
|
+
? _c
|
|
35243
|
+
: firstEntryLine;
|
|
35244
|
+
var country =
|
|
35245
|
+
(_e =
|
|
35246
|
+
(_d = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.country) === null || _d === void 0 ? void 0 : _d.name) !==
|
|
35247
|
+
null && _e !== void 0
|
|
35248
|
+
? _e
|
|
35249
|
+
: (_f = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.country) === null || _f === void 0
|
|
35016
35250
|
? void 0
|
|
35017
|
-
:
|
|
35018
|
-
|
|
35019
|
-
|
|
35020
|
-
|
|
35021
|
-
|
|
35251
|
+
: _f.name;
|
|
35252
|
+
var location =
|
|
35253
|
+
(_m =
|
|
35254
|
+
(_k =
|
|
35255
|
+
(_h =
|
|
35256
|
+
(_g = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.location) === null || _g === void 0
|
|
35257
|
+
? void 0
|
|
35258
|
+
: _g.name) !== null && _h !== void 0
|
|
35259
|
+
? _h
|
|
35260
|
+
: (_j = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.oord) === null || _j === void 0
|
|
35261
|
+
? void 0
|
|
35262
|
+
: _j.name) !== null && _k !== void 0
|
|
35263
|
+
? _k
|
|
35264
|
+
: (_l = accommodationLine === null || accommodationLine === void 0 ? void 0 : accommodationLine.region) === null || _l === void 0
|
|
35265
|
+
? void 0
|
|
35266
|
+
: _l.name) !== null && _m !== void 0
|
|
35267
|
+
? _m
|
|
35268
|
+
: (_o = firstEntryLine === null || firstEntryLine === void 0 ? void 0 : firstEntryLine.location) === null || _o === void 0
|
|
35022
35269
|
? void 0
|
|
35023
|
-
:
|
|
35024
|
-
|
|
35025
|
-
|
|
35270
|
+
: _o.name;
|
|
35271
|
+
var flightSegments = sortedLines.filter(function (item) {
|
|
35272
|
+
return item.serviceType === FLIGHT_SERVICE_TYPE;
|
|
35273
|
+
});
|
|
35274
|
+
var outboundFlight = lodash.first(flightSegments);
|
|
35275
|
+
var returnFlight = flightSegments.length > 1 ? lodash.last(flightSegments) : undefined;
|
|
35276
|
+
var otherSegments = sortedLines.filter(function (item) {
|
|
35277
|
+
return item.serviceType !== FLIGHT_SERVICE_TYPE;
|
|
35278
|
+
});
|
|
35279
|
+
var grouped = lodash.groupBy(otherSegments, function (segment) {
|
|
35280
|
+
return ''.concat(segment.productCode, '-').concat(segment.from, '-').concat(segment.to);
|
|
35281
|
+
});
|
|
35282
|
+
var groupedOtherSegments = Object.entries(grouped).map(function (_a) {
|
|
35283
|
+
var key = _a[0],
|
|
35284
|
+
segments = _a[1];
|
|
35285
|
+
return {
|
|
35286
|
+
key: key,
|
|
35287
|
+
segments: segments
|
|
35288
|
+
};
|
|
35289
|
+
});
|
|
35290
|
+
console.log('otherSegments', otherSegments);
|
|
35291
|
+
console.log('groupedOtherSegments', groupedOtherSegments);
|
|
35292
|
+
var numberOfPax = ((_p = packagingEntry.pax) === null || _p === void 0 ? void 0 : _p.length) || 1;
|
|
35293
|
+
var totalPrice = packagingEntry.price || 0;
|
|
35294
|
+
var pricePerPerson = totalPrice / numberOfPax;
|
|
35026
35295
|
return React__default['default'].createElement(
|
|
35027
|
-
|
|
35028
|
-
|
|
35296
|
+
'div',
|
|
35297
|
+
{ className: 'search__filters--modal '.concat(isOpen ? 'is-open' : '') },
|
|
35298
|
+
React__default['default'].createElement('div', { className: 'search__filters--background', onClick: handleSetIsOpen }),
|
|
35299
|
+
React__default['default'].createElement(
|
|
35300
|
+
'button',
|
|
35301
|
+
{ className: 'search__filters--close', onClick: handleSetIsOpen },
|
|
35302
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
35303
|
+
),
|
|
35029
35304
|
React__default['default'].createElement(
|
|
35030
35305
|
'div',
|
|
35031
|
-
{ className: 'search__filters
|
|
35032
|
-
React__default['default'].createElement('div', {
|
|
35033
|
-
className: 'search__filters--background',
|
|
35034
|
-
onClick: function () {
|
|
35035
|
-
return handleSetIsOpen();
|
|
35036
|
-
}
|
|
35037
|
-
}),
|
|
35306
|
+
{ className: 'search__filters' },
|
|
35038
35307
|
React__default['default'].createElement(
|
|
35039
|
-
'
|
|
35040
|
-
{
|
|
35041
|
-
|
|
35042
|
-
|
|
35043
|
-
|
|
35044
|
-
}
|
|
35045
|
-
|
|
35046
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-close', height: 24 })
|
|
35308
|
+
'div',
|
|
35309
|
+
{ className: 'search__filter-row search__filter__header' },
|
|
35310
|
+
React__default['default'].createElement(
|
|
35311
|
+
'div',
|
|
35312
|
+
{ className: 'search__filter-row-flex-title' },
|
|
35313
|
+
React__default['default'].createElement('p', { className: 'search__filter-small-title' }, translations.SRP.ITINERARY_TITLE)
|
|
35314
|
+
)
|
|
35047
35315
|
),
|
|
35048
35316
|
React__default['default'].createElement(
|
|
35049
|
-
'
|
|
35050
|
-
|
|
35317
|
+
React__default['default'].Fragment,
|
|
35318
|
+
null,
|
|
35319
|
+
React__default['default'].createElement(
|
|
35320
|
+
'div',
|
|
35321
|
+
{ className: 'search__filter-group' },
|
|
35322
|
+
(context === null || context === void 0 ? void 0 : context.destinationImage) &&
|
|
35323
|
+
React__default['default'].createElement(
|
|
35324
|
+
'div',
|
|
35325
|
+
{ className: 'search__filter__image__wrapper' },
|
|
35326
|
+
React__default['default'].createElement('img', {
|
|
35327
|
+
src: context.destinationImage.url,
|
|
35328
|
+
alt: context.destinationImage.alt,
|
|
35329
|
+
className: 'search__filter__image'
|
|
35330
|
+
}),
|
|
35331
|
+
(packagingEntry === null || packagingEntry === void 0 ? void 0 : packagingEntry.dossierNumber) &&
|
|
35332
|
+
React__default['default'].createElement(
|
|
35333
|
+
'span',
|
|
35334
|
+
{ className: 'search__filter__image__text' },
|
|
35335
|
+
translations.SRP.DOSSIER_NUMBER,
|
|
35336
|
+
': ',
|
|
35337
|
+
packagingEntry.dossierNumber
|
|
35338
|
+
),
|
|
35339
|
+
React__default['default'].createElement(
|
|
35340
|
+
'h4',
|
|
35341
|
+
{ className: 'search__filter__image__title' },
|
|
35342
|
+
(location || '') + (location && country ? ' - ' : '') + (country || '')
|
|
35343
|
+
)
|
|
35344
|
+
)
|
|
35345
|
+
),
|
|
35051
35346
|
React__default['default'].createElement(
|
|
35052
35347
|
'div',
|
|
35053
|
-
{ className: '
|
|
35348
|
+
{ className: 'search__filter__prices' },
|
|
35054
35349
|
React__default['default'].createElement(
|
|
35055
35350
|
'div',
|
|
35056
|
-
{ className: '
|
|
35057
|
-
React__default['default'].createElement('
|
|
35058
|
-
|
|
35059
|
-
|
|
35060
|
-
|
|
35061
|
-
? React__default['default'].createElement(Spinner, null)
|
|
35062
|
-
: React__default['default'].createElement(
|
|
35063
|
-
React__default['default'].Fragment,
|
|
35351
|
+
{ className: 'search__filter__prices__wrapper' },
|
|
35352
|
+
React__default['default'].createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$2(pricePerPerson, 'EUR')),
|
|
35353
|
+
React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
|
|
35354
|
+
React__default['default'].createElement(
|
|
35355
|
+
'p',
|
|
35064
35356
|
null,
|
|
35357
|
+
React__default['default'].createElement('strong', null, '(', formatPrice$2(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
|
|
35358
|
+
)
|
|
35359
|
+
),
|
|
35360
|
+
React__default['default'].createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
|
|
35361
|
+
),
|
|
35362
|
+
React__default['default'].createElement(
|
|
35363
|
+
'div',
|
|
35364
|
+
{ className: 'search__filter__itinerary' },
|
|
35365
|
+
React__default['default'].createElement('p', null, translations.SRP.DAY_BY_DAY),
|
|
35366
|
+
firstEntryLine &&
|
|
35367
|
+
React__default['default'].createElement(
|
|
35368
|
+
'div',
|
|
35369
|
+
{ className: 'search__filter__itinerary__country' },
|
|
35065
35370
|
React__default['default'].createElement(
|
|
35066
35371
|
'div',
|
|
35067
|
-
{ className: '
|
|
35068
|
-
(
|
|
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
|
-
)
|
|
35372
|
+
{ className: 'search__filter__itinerary__country-icon' },
|
|
35373
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
|
|
35091
35374
|
),
|
|
35092
35375
|
React__default['default'].createElement(
|
|
35093
35376
|
'div',
|
|
35094
|
-
{ className: '
|
|
35377
|
+
{ className: 'search__filter__itinerary__country-content' },
|
|
35378
|
+
React__default['default'].createElement(
|
|
35379
|
+
'p',
|
|
35380
|
+
null,
|
|
35381
|
+
dateFns.format(new Date(firstEntryLine.from), 'EEE. d MMM yyyy'),
|
|
35382
|
+
' - ',
|
|
35383
|
+
React__default['default'].createElement('strong', null, translations.SRP.START)
|
|
35384
|
+
)
|
|
35385
|
+
)
|
|
35386
|
+
),
|
|
35387
|
+
outboundFlight &&
|
|
35388
|
+
React__default['default'].createElement(
|
|
35389
|
+
'div',
|
|
35390
|
+
{ className: 'search__filter__itinerary__transport' },
|
|
35391
|
+
React__default['default'].createElement(
|
|
35392
|
+
'div',
|
|
35393
|
+
{ className: 'search__filter__itinerary__transport-timeline' },
|
|
35394
|
+
React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
|
|
35395
|
+
),
|
|
35396
|
+
React__default['default'].createElement(
|
|
35397
|
+
'div',
|
|
35398
|
+
{ className: 'search__filter__itinerary__transport-item' },
|
|
35095
35399
|
React__default['default'].createElement(
|
|
35096
35400
|
'div',
|
|
35097
|
-
{ className: '
|
|
35401
|
+
{ className: 'search__filter__itinerary__transport-date' },
|
|
35098
35402
|
React__default['default'].createElement(
|
|
35099
|
-
'
|
|
35100
|
-
{ className: '
|
|
35101
|
-
|
|
35102
|
-
|
|
35103
|
-
|
|
35104
|
-
|
|
35403
|
+
'p',
|
|
35404
|
+
{ className: 'search__filter__itinerary__transport-date-date' },
|
|
35405
|
+
React__default['default'].createElement('strong', null, dateFns.format(new Date(outboundFlight.from), 'd'))
|
|
35406
|
+
),
|
|
35407
|
+
React__default['default'].createElement('p', null, dateFns.format(new Date(outboundFlight.from), 'MMM'))
|
|
35408
|
+
),
|
|
35409
|
+
React__default['default'].createElement(
|
|
35410
|
+
'div',
|
|
35411
|
+
{ className: 'search__filter__itinerary__transport-badge' },
|
|
35412
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 15 })
|
|
35413
|
+
),
|
|
35414
|
+
React__default['default'].createElement(
|
|
35415
|
+
'div',
|
|
35416
|
+
{ className: 'search__filter__itinerary__transport-details' },
|
|
35417
|
+
React__default['default'].createElement('h6', null, outboundFlight.productName),
|
|
35418
|
+
React__default['default'].createElement(
|
|
35419
|
+
'p',
|
|
35420
|
+
{ className: 'search__filter__itinerary__transport-details-plane' },
|
|
35421
|
+
React__default['default'].createElement(
|
|
35422
|
+
'span',
|
|
35423
|
+
null,
|
|
35424
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
|
|
35425
|
+
' ',
|
|
35426
|
+
React__default['default'].createElement('strong', null, getDepartureTime(outboundFlight))
|
|
35427
|
+
),
|
|
35428
|
+
' ',
|
|
35429
|
+
'-',
|
|
35430
|
+
' ',
|
|
35431
|
+
React__default['default'].createElement(
|
|
35432
|
+
'span',
|
|
35433
|
+
null,
|
|
35434
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
|
|
35435
|
+
' ',
|
|
35436
|
+
React__default['default'].createElement('strong', null, getArrivalTime(outboundFlight))
|
|
35105
35437
|
)
|
|
35106
35438
|
),
|
|
35107
|
-
React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
|
|
35108
35439
|
React__default['default'].createElement(
|
|
35109
35440
|
'p',
|
|
35110
|
-
|
|
35441
|
+
{ className: 'search__filter__itinerary__transport-details-time' },
|
|
35111
35442
|
React__default['default'].createElement(
|
|
35112
|
-
'
|
|
35443
|
+
'span',
|
|
35113
35444
|
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
|
-
),
|
|
35445
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
|
|
35119
35446
|
' ',
|
|
35120
|
-
|
|
35121
|
-
')'
|
|
35447
|
+
getDuration(outboundFlight)
|
|
35122
35448
|
)
|
|
35123
35449
|
)
|
|
35124
|
-
)
|
|
35125
|
-
|
|
35126
|
-
|
|
35127
|
-
|
|
35450
|
+
)
|
|
35451
|
+
)
|
|
35452
|
+
),
|
|
35453
|
+
!lodash.isEmpty(groupedOtherSegments) &&
|
|
35454
|
+
groupedOtherSegments.map(function (group) {
|
|
35455
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
35456
|
+
var firstSegment = lodash.first(group.segments);
|
|
35457
|
+
if (!firstSegment) return null;
|
|
35458
|
+
return React__default['default'].createElement(
|
|
35128
35459
|
'div',
|
|
35129
|
-
{ className: '
|
|
35130
|
-
React__default['default'].createElement('p', null, translations.SRP.DAY_BY_DAY),
|
|
35460
|
+
{ className: 'search__filter__itinerary__segments' },
|
|
35131
35461
|
React__default['default'].createElement(
|
|
35132
35462
|
'div',
|
|
35133
|
-
{ className: '
|
|
35463
|
+
{ className: 'search__filter__itinerary__segments__wrapper', key: group.key },
|
|
35134
35464
|
React__default['default'].createElement(
|
|
35135
35465
|
'div',
|
|
35136
|
-
{ className: '
|
|
35137
|
-
React__default['default'].createElement(
|
|
35466
|
+
{ className: 'search__filter__itinerary__segments-timeline' },
|
|
35467
|
+
React__default['default'].createElement('div', { className: 'search__filter__itinerary__segments-timeline-line' })
|
|
35138
35468
|
),
|
|
35139
35469
|
React__default['default'].createElement(
|
|
35140
35470
|
'div',
|
|
35141
|
-
{ className: '
|
|
35142
|
-
React__default['default'].createElement(
|
|
35143
|
-
'p',
|
|
35144
|
-
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)
|
|
35151
|
-
)
|
|
35152
|
-
)
|
|
35153
|
-
),
|
|
35154
|
-
outboundFlight &&
|
|
35155
|
-
React__default['default'].createElement(
|
|
35156
|
-
'div',
|
|
35157
|
-
{ className: 'search__filter__itinerary__transport' },
|
|
35471
|
+
{ className: 'search__filter__itinerary__segment' },
|
|
35158
35472
|
React__default['default'].createElement(
|
|
35159
35473
|
'div',
|
|
35160
|
-
{ className: '
|
|
35161
|
-
React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
|
|
35162
|
-
),
|
|
35163
|
-
React__default['default'].createElement(
|
|
35164
|
-
'div',
|
|
35165
|
-
{ className: 'search__filter__itinerary__transport-item' },
|
|
35474
|
+
{ className: 'search__filter__itinerary__segment-item search__filter__itinerary__segment-item--start' },
|
|
35166
35475
|
React__default['default'].createElement(
|
|
35167
35476
|
'div',
|
|
35168
35477
|
{ className: 'search__filter__itinerary__transport-date' },
|
|
35169
35478
|
React__default['default'].createElement(
|
|
35170
35479
|
'p',
|
|
35171
35480
|
{ 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
|
-
)
|
|
35481
|
+
React__default['default'].createElement('strong', null, dateFns.format(new Date(firstSegment.from), 'd'))
|
|
35177
35482
|
),
|
|
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
|
-
)
|
|
35483
|
+
React__default['default'].createElement('p', null, dateFns.format(new Date(firstSegment.from), 'MMM'))
|
|
35183
35484
|
),
|
|
35184
35485
|
React__default['default'].createElement(
|
|
35185
35486
|
'div',
|
|
35186
|
-
{ className: '
|
|
35187
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-
|
|
35487
|
+
{ className: 'search__filter__itinerary__segment-badge' },
|
|
35488
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-location', width: 15, height: 15 })
|
|
35188
35489
|
),
|
|
35189
35490
|
React__default['default'].createElement(
|
|
35190
35491
|
'div',
|
|
35191
|
-
{ className: '
|
|
35192
|
-
React__default['default'].createElement('h6', null, outboundFlight.productName),
|
|
35492
|
+
{ className: 'search__filter__itinerary__segment-details' },
|
|
35193
35493
|
React__default['default'].createElement(
|
|
35194
|
-
'
|
|
35195
|
-
|
|
35196
|
-
|
|
35197
|
-
|
|
35198
|
-
null,
|
|
35199
|
-
|
|
35200
|
-
|
|
35201
|
-
|
|
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
|
-
)
|
|
35494
|
+
'h6',
|
|
35495
|
+
null,
|
|
35496
|
+
((_a = firstSegment.location) === null || _a === void 0 ? void 0 : _a.name) ||
|
|
35497
|
+
((_b = firstSegment.oord) === null || _b === void 0 ? void 0 : _b.name) ||
|
|
35498
|
+
((_c = firstSegment.region) === null || _c === void 0 ? void 0 : _c.name),
|
|
35499
|
+
(((_d = firstSegment.location) === null || _d === void 0 ? void 0 : _d.name) ||
|
|
35500
|
+
((_e = firstSegment.oord) === null || _e === void 0 ? void 0 : _e.name) ||
|
|
35501
|
+
((_f = firstSegment.region) === null || _f === void 0 ? void 0 : _f.name)) &&
|
|
35502
|
+
((_g = firstSegment.country) === null || _g === void 0 ? void 0 : _g.name)
|
|
35503
|
+
? ', '
|
|
35504
|
+
: '',
|
|
35505
|
+
(_h = firstSegment.country) === null || _h === void 0 ? void 0 : _h.name
|
|
35213
35506
|
),
|
|
35214
35507
|
React__default['default'].createElement(
|
|
35215
35508
|
'p',
|
|
35216
|
-
{ className: '
|
|
35217
|
-
|
|
35218
|
-
|
|
35219
|
-
|
|
35220
|
-
React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
|
|
35221
|
-
' ',
|
|
35222
|
-
getDuration(outboundFlight)
|
|
35223
|
-
)
|
|
35509
|
+
{ className: 'search__filter__itinerary__segment-details-text' },
|
|
35510
|
+
dateFns.format(new Date(firstSegment.from), 'EEE. d MMM yyyy'),
|
|
35511
|
+
'> ',
|
|
35512
|
+
dateFns.format(new Date(firstSegment.to), 'EEE. d MMM yyyy')
|
|
35224
35513
|
)
|
|
35225
35514
|
)
|
|
35226
35515
|
)
|
|
35227
35516
|
),
|
|
35228
|
-
!lodash.isEmpty(otherSegments) &&
|
|
35229
|
-
React__default['default'].createElement(
|
|
35230
|
-
'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
35517
|
React__default['default'].createElement(
|
|
35330
35518
|
'div',
|
|
35331
|
-
{ className: '
|
|
35519
|
+
{ className: 'search__filter__itinerary__segment' },
|
|
35332
35520
|
React__default['default'].createElement(
|
|
35333
35521
|
'div',
|
|
35334
|
-
{
|
|
35335
|
-
|
|
35336
|
-
|
|
35337
|
-
|
|
35338
|
-
|
|
35339
|
-
|
|
35522
|
+
{
|
|
35523
|
+
className: 'search__filter__itinerary__segment-item '.concat(
|
|
35524
|
+
canEdit(firstSegment) ? 'search__filter__itinerary__segment-item--editable' : ''
|
|
35525
|
+
),
|
|
35526
|
+
onClick: function () {
|
|
35527
|
+
if (canEdit(firstSegment) && onEditAccommodation) {
|
|
35528
|
+
onEditAccommodation(group.segments);
|
|
35529
|
+
}
|
|
35530
|
+
}
|
|
35531
|
+
},
|
|
35340
35532
|
React__default['default'].createElement(
|
|
35341
35533
|
'div',
|
|
35342
|
-
{ className: '
|
|
35343
|
-
|
|
35344
|
-
'p',
|
|
35345
|
-
{ className: 'search__filter__itinerary__transport-date-date' },
|
|
35534
|
+
{ className: 'search__filter__itinerary__segment-date search__filter__itinerary__segment-nights' },
|
|
35535
|
+
firstSegment.serviceType === ACCOMMODATION_SERVICE_TYPE &&
|
|
35346
35536
|
React__default['default'].createElement(
|
|
35347
|
-
'
|
|
35537
|
+
React__default['default'].Fragment,
|
|
35348
35538
|
null,
|
|
35349
|
-
|
|
35539
|
+
React__default['default'].createElement(
|
|
35540
|
+
'p',
|
|
35541
|
+
{ className: 'search__filter__itinerary__segment-date-date' },
|
|
35542
|
+
React__default['default'].createElement('strong', null, numberOfNights(firstSegment))
|
|
35543
|
+
),
|
|
35544
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-moon', width: 16, height: 16 })
|
|
35350
35545
|
)
|
|
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
35546
|
),
|
|
35547
|
+
getSegmentIcon(firstSegment),
|
|
35358
35548
|
React__default['default'].createElement(
|
|
35359
35549
|
'div',
|
|
35360
|
-
{ className: '
|
|
35361
|
-
React__default['default'].createElement(
|
|
35362
|
-
|
|
35363
|
-
|
|
35364
|
-
|
|
35365
|
-
|
|
35366
|
-
|
|
35367
|
-
|
|
35368
|
-
|
|
35369
|
-
|
|
35370
|
-
|
|
35371
|
-
|
|
35372
|
-
|
|
35373
|
-
|
|
35374
|
-
|
|
35375
|
-
|
|
35376
|
-
|
|
35377
|
-
|
|
35378
|
-
|
|
35379
|
-
|
|
35380
|
-
|
|
35381
|
-
|
|
35382
|
-
|
|
35383
|
-
|
|
35384
|
-
|
|
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
|
-
)
|
|
35550
|
+
{ className: 'search__filter__itinerary__segment-details' },
|
|
35551
|
+
React__default['default'].createElement('h6', null, getSegmentTitle(firstSegment)),
|
|
35552
|
+
firstSegment.serviceType === ACCOMMODATION_SERVICE_TYPE &&
|
|
35553
|
+
group.segments.map(function (segment, index) {
|
|
35554
|
+
return React__default['default'].createElement(
|
|
35555
|
+
React__default['default'].Fragment,
|
|
35556
|
+
{ key: segment.guid },
|
|
35557
|
+
React__default['default'].createElement('strong', null, translations.SHARED.ROOM, '\u00A0', index + 1),
|
|
35558
|
+
segment.productName &&
|
|
35559
|
+
segment.accommodationName &&
|
|
35560
|
+
React__default['default'].createElement(
|
|
35561
|
+
'div',
|
|
35562
|
+
{ className: 'search__filter__itinerary__segment-details__room' },
|
|
35563
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-bed', width: 12, height: 12 }),
|
|
35564
|
+
segment.accommodationName
|
|
35565
|
+
),
|
|
35566
|
+
segment.regimeName &&
|
|
35567
|
+
React__default['default'].createElement(
|
|
35568
|
+
'div',
|
|
35569
|
+
{ className: 'search__filter__itinerary__segment-details__room' },
|
|
35570
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-utensils', width: 12, height: 12 }),
|
|
35571
|
+
segment.regimeName
|
|
35572
|
+
)
|
|
35573
|
+
);
|
|
35574
|
+
})
|
|
35403
35575
|
)
|
|
35404
35576
|
)
|
|
35577
|
+
)
|
|
35578
|
+
)
|
|
35579
|
+
);
|
|
35580
|
+
}),
|
|
35581
|
+
returnFlight &&
|
|
35582
|
+
returnFlight !== outboundFlight &&
|
|
35583
|
+
React__default['default'].createElement(
|
|
35584
|
+
'div',
|
|
35585
|
+
{ className: 'search__filter__itinerary__transport' },
|
|
35586
|
+
React__default['default'].createElement(
|
|
35587
|
+
'div',
|
|
35588
|
+
{ className: 'search__filter__itinerary__transport-timeline' },
|
|
35589
|
+
React__default['default'].createElement('div', { className: 'search__filter__itinerary__transport-timeline-line' })
|
|
35590
|
+
),
|
|
35591
|
+
React__default['default'].createElement(
|
|
35592
|
+
'div',
|
|
35593
|
+
{ className: 'search__filter__itinerary__transport-item' },
|
|
35594
|
+
React__default['default'].createElement(
|
|
35595
|
+
'div',
|
|
35596
|
+
{ className: 'search__filter__itinerary__transport-date' },
|
|
35597
|
+
React__default['default'].createElement(
|
|
35598
|
+
'p',
|
|
35599
|
+
{ className: 'search__filter__itinerary__transport-date-date' },
|
|
35600
|
+
React__default['default'].createElement('strong', null, dateFns.format(new Date(returnFlight.from), 'd'))
|
|
35405
35601
|
),
|
|
35602
|
+
React__default['default'].createElement('p', null, dateFns.format(new Date(returnFlight.from), 'MMM'))
|
|
35603
|
+
),
|
|
35604
|
+
React__default['default'].createElement(
|
|
35605
|
+
'div',
|
|
35606
|
+
{ className: 'search__filter__itinerary__transport-badge' },
|
|
35607
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane', height: 15 })
|
|
35608
|
+
),
|
|
35406
35609
|
React__default['default'].createElement(
|
|
35407
35610
|
'div',
|
|
35408
|
-
{ className: '
|
|
35611
|
+
{ className: 'search__filter__itinerary__transport-details' },
|
|
35612
|
+
React__default['default'].createElement('h6', null, returnFlight.productName),
|
|
35409
35613
|
React__default['default'].createElement(
|
|
35410
|
-
'
|
|
35411
|
-
{ className: '
|
|
35412
|
-
React__default['default'].createElement(
|
|
35614
|
+
'p',
|
|
35615
|
+
{ className: 'search__filter__itinerary__transport-details-plane' },
|
|
35616
|
+
React__default['default'].createElement(
|
|
35617
|
+
'span',
|
|
35618
|
+
null,
|
|
35619
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane-depart', height: 14 }),
|
|
35620
|
+
' ',
|
|
35621
|
+
React__default['default'].createElement('strong', null, getDepartureTime(returnFlight))
|
|
35622
|
+
),
|
|
35623
|
+
' ',
|
|
35624
|
+
'-',
|
|
35625
|
+
' ',
|
|
35626
|
+
React__default['default'].createElement(
|
|
35627
|
+
'span',
|
|
35628
|
+
null,
|
|
35629
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-plane-arrive', height: 14 }),
|
|
35630
|
+
' ',
|
|
35631
|
+
React__default['default'].createElement('strong', null, getArrivalTime(returnFlight))
|
|
35632
|
+
)
|
|
35413
35633
|
),
|
|
35414
35634
|
React__default['default'].createElement(
|
|
35415
|
-
'
|
|
35416
|
-
{ className: '
|
|
35635
|
+
'p',
|
|
35636
|
+
{ className: 'search__filter__itinerary__transport-details-time' },
|
|
35417
35637
|
React__default['default'].createElement(
|
|
35418
|
-
'
|
|
35638
|
+
'span',
|
|
35419
35639
|
null,
|
|
35420
|
-
|
|
35421
|
-
|
|
35422
|
-
|
|
35423
|
-
),
|
|
35424
|
-
' - ',
|
|
35425
|
-
React__default['default'].createElement('strong', null, translations.SRP.END)
|
|
35640
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-clock', height: 20 }),
|
|
35641
|
+
' ',
|
|
35642
|
+
getDuration(returnFlight)
|
|
35426
35643
|
)
|
|
35427
35644
|
)
|
|
35428
35645
|
)
|
|
35429
35646
|
)
|
|
35647
|
+
),
|
|
35648
|
+
lastEntryLine &&
|
|
35649
|
+
React__default['default'].createElement(
|
|
35650
|
+
'div',
|
|
35651
|
+
{ className: 'search__filter__itinerary__country' },
|
|
35652
|
+
React__default['default'].createElement(
|
|
35653
|
+
'div',
|
|
35654
|
+
{ className: 'search__filter__itinerary__country-icon' },
|
|
35655
|
+
React__default['default'].createElement(Icon$1, { name: 'ui-flag', width: 17.5, height: 20 })
|
|
35656
|
+
),
|
|
35657
|
+
React__default['default'].createElement(
|
|
35658
|
+
'div',
|
|
35659
|
+
{ className: 'search__filter__itinerary__country-content' },
|
|
35660
|
+
React__default['default'].createElement(
|
|
35661
|
+
'p',
|
|
35662
|
+
null,
|
|
35663
|
+
dateFns.format(new Date(lastEntryLine.to), 'EEE. d MMM yyyy'),
|
|
35664
|
+
' - ',
|
|
35665
|
+
React__default['default'].createElement('strong', null, translations.SRP.END)
|
|
35666
|
+
)
|
|
35667
|
+
)
|
|
35430
35668
|
)
|
|
35669
|
+
)
|
|
35431
35670
|
)
|
|
35432
35671
|
)
|
|
35433
35672
|
);
|
|
@@ -38197,19 +38436,27 @@ var formatPrice$1 = function (price, currencyCode) {
|
|
|
38197
38436
|
}).format(price);
|
|
38198
38437
|
};
|
|
38199
38438
|
var AccommodationFlyIn = function (_a) {
|
|
38200
|
-
var _b;
|
|
38201
|
-
_a.isLoading
|
|
38202
|
-
|
|
38203
|
-
setIsOpen = _a.setIsOpen;
|
|
38439
|
+
var _b, _c;
|
|
38440
|
+
var isLoading = _a.isLoading,
|
|
38441
|
+
handleConfirm = _a.handleConfirm;
|
|
38204
38442
|
var dispatch = reactRedux.useDispatch();
|
|
38205
38443
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
38206
|
-
|
|
38444
|
+
if (isLoading) {
|
|
38445
|
+
return React__default['default'].createElement(
|
|
38446
|
+
React__default['default'].Fragment,
|
|
38447
|
+
null,
|
|
38448
|
+
(_b = context === null || context === void 0 ? void 0 : context.customSpinner) !== null && _b !== void 0
|
|
38449
|
+
? _b
|
|
38450
|
+
: React__default['default'].createElement(Spinner, null)
|
|
38451
|
+
);
|
|
38452
|
+
}
|
|
38453
|
+
var language = (_c = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _c !== void 0 ? _c : 'en-GB';
|
|
38207
38454
|
var translations = getTranslations(language);
|
|
38208
|
-
var
|
|
38455
|
+
var _d = reactRedux.useSelector(function (state) {
|
|
38209
38456
|
return state.searchResults;
|
|
38210
38457
|
}),
|
|
38211
|
-
packagingAccoSearchDetails =
|
|
38212
|
-
selectedPackagingAccoResultCode =
|
|
38458
|
+
packagingAccoSearchDetails = _d.packagingAccoSearchDetails,
|
|
38459
|
+
selectedPackagingAccoResultCode = _d.selectedPackagingAccoResultCode;
|
|
38213
38460
|
var selectedPackagingAccoSearchDetails = React.useMemo(
|
|
38214
38461
|
function () {
|
|
38215
38462
|
return packagingAccoSearchDetails === null || packagingAccoSearchDetails === void 0
|
|
@@ -38300,11 +38547,6 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38300
38547
|
});
|
|
38301
38548
|
dispatch(setPackagingAccoSearchDetails(updatedPackagingAccoSearchDetails));
|
|
38302
38549
|
};
|
|
38303
|
-
var handleConfirm = function () {
|
|
38304
|
-
if (isOpen) {
|
|
38305
|
-
setIsOpen(false);
|
|
38306
|
-
}
|
|
38307
|
-
};
|
|
38308
38550
|
if (!selectedPackagingAccoSearchDetails) {
|
|
38309
38551
|
return null;
|
|
38310
38552
|
}
|
|
@@ -38464,7 +38706,13 @@ var AccommodationFlyIn = function (_a) {
|
|
|
38464
38706
|
React__default['default'].createElement(
|
|
38465
38707
|
'div',
|
|
38466
38708
|
{ className: 'flyin__button-wrapper' },
|
|
38467
|
-
React__default['default'].createElement(
|
|
38709
|
+
React__default['default'].createElement(
|
|
38710
|
+
'button',
|
|
38711
|
+
{ className: 'cta cta--select', onClick: handleConfirm },
|
|
38712
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) == build.PortalQsmType.AccommodationAndFlight
|
|
38713
|
+
? translations.QSM.CONFIRM
|
|
38714
|
+
: translations.PRODUCT.BOOK_NOW
|
|
38715
|
+
)
|
|
38468
38716
|
)
|
|
38469
38717
|
)
|
|
38470
38718
|
);
|
|
@@ -38951,97 +39199,6 @@ var GroupTourFlyIn = function (_a) {
|
|
|
38951
39199
|
);
|
|
38952
39200
|
};
|
|
38953
39201
|
|
|
38954
|
-
var FlyIn = function (_a) {
|
|
38955
|
-
var title = _a.title,
|
|
38956
|
-
srpType = _a.srpType,
|
|
38957
|
-
isOpen = _a.isOpen,
|
|
38958
|
-
setIsOpen = _a.setIsOpen,
|
|
38959
|
-
_b = _a.className,
|
|
38960
|
-
className = _b === void 0 ? '' : _b,
|
|
38961
|
-
onPanelRef = _a.onPanelRef,
|
|
38962
|
-
detailsLoading = _a.detailsLoading;
|
|
38963
|
-
var dispatch = reactRedux.useDispatch();
|
|
38964
|
-
var onCancelSearch = useFlightSearch().onCancelSearch;
|
|
38965
|
-
var panelRef = React.useRef(null);
|
|
38966
|
-
// expose DOM node if needed
|
|
38967
|
-
React.useEffect(
|
|
38968
|
-
function () {
|
|
38969
|
-
onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(panelRef.current);
|
|
38970
|
-
return function () {
|
|
38971
|
-
return onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(null);
|
|
38972
|
-
};
|
|
38973
|
-
},
|
|
38974
|
-
[onPanelRef]
|
|
38975
|
-
);
|
|
38976
|
-
React.useEffect(
|
|
38977
|
-
function () {
|
|
38978
|
-
// click outside detection
|
|
38979
|
-
var handleClickOutside = function (event) {
|
|
38980
|
-
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
38981
|
-
handleClose();
|
|
38982
|
-
}
|
|
38983
|
-
};
|
|
38984
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
38985
|
-
return function () {
|
|
38986
|
-
return document.removeEventListener('mousedown', handleClickOutside);
|
|
38987
|
-
};
|
|
38988
|
-
},
|
|
38989
|
-
[isOpen, setIsOpen]
|
|
38990
|
-
);
|
|
38991
|
-
// body scroll lock
|
|
38992
|
-
React.useEffect(
|
|
38993
|
-
function () {
|
|
38994
|
-
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
38995
|
-
return function () {
|
|
38996
|
-
document.body.style.overflow = '';
|
|
38997
|
-
};
|
|
38998
|
-
},
|
|
38999
|
-
[isOpen]
|
|
39000
|
-
);
|
|
39001
|
-
var handleClose = function () {
|
|
39002
|
-
if (isOpen && panelRef.current) {
|
|
39003
|
-
if (srpType === build.PortalQsmType.Flight) {
|
|
39004
|
-
dispatch(setSelectedFlight(null));
|
|
39005
|
-
dispatch(setSelectedFlightDetails(null));
|
|
39006
|
-
onCancelSearch();
|
|
39007
|
-
}
|
|
39008
|
-
setIsOpen(false);
|
|
39009
|
-
}
|
|
39010
|
-
};
|
|
39011
|
-
return React__default['default'].createElement(
|
|
39012
|
-
'div',
|
|
39013
|
-
{ className: 'flyin '.concat(isOpen ? 'flyin--active' : '', ' ').concat(className) },
|
|
39014
|
-
React__default['default'].createElement(
|
|
39015
|
-
'div',
|
|
39016
|
-
{ className: 'flyin__panel '.concat(isOpen ? 'flyin__panel--active' : ''), ref: panelRef },
|
|
39017
|
-
React__default['default'].createElement(
|
|
39018
|
-
'div',
|
|
39019
|
-
{ className: 'flyin__content' },
|
|
39020
|
-
React__default['default'].createElement(
|
|
39021
|
-
'div',
|
|
39022
|
-
{ className: 'flyin__content-title-row' },
|
|
39023
|
-
React__default['default'].createElement('h3', { className: 'flyin__content-title' }, title),
|
|
39024
|
-
React__default['default'].createElement(
|
|
39025
|
-
'span',
|
|
39026
|
-
{
|
|
39027
|
-
className: 'flyin__close',
|
|
39028
|
-
onClick: function () {
|
|
39029
|
-
return handleClose();
|
|
39030
|
-
}
|
|
39031
|
-
},
|
|
39032
|
-
React__default['default'].createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
39033
|
-
)
|
|
39034
|
-
)
|
|
39035
|
-
),
|
|
39036
|
-
srpType === build.PortalQsmType.Flight && React__default['default'].createElement(FlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
39037
|
-
srpType === build.PortalQsmType.Accommodation &&
|
|
39038
|
-
React__default['default'].createElement(AccommodationFlyIn, { isLoading: true, isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
39039
|
-
srpType === build.PortalQsmType.GroupTour &&
|
|
39040
|
-
React__default['default'].createElement(GroupTourFlyIn, { isLoading: detailsLoading, isOpen: isOpen, setIsOpen: setIsOpen })
|
|
39041
|
-
)
|
|
39042
|
-
);
|
|
39043
|
-
};
|
|
39044
|
-
|
|
39045
39202
|
var he$1 = { exports: {} };
|
|
39046
39203
|
|
|
39047
39204
|
/*! https://mths.be/he v1.2.0 by @mathias | MIT license */
|
|
@@ -43520,6 +43677,132 @@ var HotelAccommodationResults = function (_a) {
|
|
|
43520
43677
|
);
|
|
43521
43678
|
};
|
|
43522
43679
|
|
|
43680
|
+
var FlyIn = function (_a) {
|
|
43681
|
+
var title = _a.title,
|
|
43682
|
+
srpType = _a.srpType,
|
|
43683
|
+
isOpen = _a.isOpen,
|
|
43684
|
+
setIsOpen = _a.setIsOpen,
|
|
43685
|
+
_b = _a.className,
|
|
43686
|
+
className = _b === void 0 ? '' : _b,
|
|
43687
|
+
onPanelRef = _a.onPanelRef,
|
|
43688
|
+
detailsLoading = _a.detailsLoading,
|
|
43689
|
+
accommodationStep = _a.accommodationStep,
|
|
43690
|
+
isPackageEditFlow = _a.isPackageEditFlow,
|
|
43691
|
+
handleConfirm = _a.handleConfirm;
|
|
43692
|
+
var dispatch = reactRedux.useDispatch();
|
|
43693
|
+
var onCancelSearch = useFlightSearch().onCancelSearch;
|
|
43694
|
+
var panelRef = React.useRef(null);
|
|
43695
|
+
// expose DOM node if needed
|
|
43696
|
+
React.useEffect(
|
|
43697
|
+
function () {
|
|
43698
|
+
onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(panelRef.current);
|
|
43699
|
+
return function () {
|
|
43700
|
+
return onPanelRef === null || onPanelRef === void 0 ? void 0 : onPanelRef(null);
|
|
43701
|
+
};
|
|
43702
|
+
},
|
|
43703
|
+
[onPanelRef]
|
|
43704
|
+
);
|
|
43705
|
+
React.useEffect(
|
|
43706
|
+
function () {
|
|
43707
|
+
// click outside detection
|
|
43708
|
+
var handleClickOutside = function (event) {
|
|
43709
|
+
if (isOpen && panelRef.current && !panelRef.current.contains(event.target)) {
|
|
43710
|
+
handleClose();
|
|
43711
|
+
}
|
|
43712
|
+
};
|
|
43713
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
43714
|
+
return function () {
|
|
43715
|
+
return document.removeEventListener('mousedown', handleClickOutside);
|
|
43716
|
+
};
|
|
43717
|
+
},
|
|
43718
|
+
[isOpen, setIsOpen]
|
|
43719
|
+
);
|
|
43720
|
+
// body scroll lock
|
|
43721
|
+
React.useEffect(
|
|
43722
|
+
function () {
|
|
43723
|
+
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
43724
|
+
return function () {
|
|
43725
|
+
document.body.style.overflow = '';
|
|
43726
|
+
};
|
|
43727
|
+
},
|
|
43728
|
+
[isOpen]
|
|
43729
|
+
);
|
|
43730
|
+
var handleClose = function () {
|
|
43731
|
+
if (isOpen && panelRef.current) {
|
|
43732
|
+
if (srpType === build.PortalQsmType.Flight) {
|
|
43733
|
+
dispatch(setSelectedFlight(null));
|
|
43734
|
+
dispatch(setSelectedFlightDetails(null));
|
|
43735
|
+
onCancelSearch();
|
|
43736
|
+
} else {
|
|
43737
|
+
dispatch(setSelectedSearchResult(null));
|
|
43738
|
+
dispatch(setSelectedPackagingAccoResult(null));
|
|
43739
|
+
}
|
|
43740
|
+
dispatch(setAccommodationFlyInStep('details'));
|
|
43741
|
+
setIsOpen(false);
|
|
43742
|
+
}
|
|
43743
|
+
};
|
|
43744
|
+
var handleGoBack = function () {
|
|
43745
|
+
dispatch(setAccommodationFlyInStep('results'));
|
|
43746
|
+
};
|
|
43747
|
+
return React__default['default'].createElement(
|
|
43748
|
+
'div',
|
|
43749
|
+
{
|
|
43750
|
+
className: 'flyin '
|
|
43751
|
+
.concat(isOpen ? 'flyin--active' : '', ' ')
|
|
43752
|
+
.concat(className, ' ')
|
|
43753
|
+
.concat(isPackageEditFlow ? 'flyin--large' : '')
|
|
43754
|
+
},
|
|
43755
|
+
React__default['default'].createElement(
|
|
43756
|
+
'div',
|
|
43757
|
+
{ className: 'flyin__panel '.concat(isOpen ? 'flyin__panel--active' : ''), ref: panelRef },
|
|
43758
|
+
React__default['default'].createElement(
|
|
43759
|
+
'div',
|
|
43760
|
+
{ className: 'flyin__content' },
|
|
43761
|
+
React__default['default'].createElement(
|
|
43762
|
+
'div',
|
|
43763
|
+
{ className: 'flyin__content-title-row' },
|
|
43764
|
+
React__default['default'].createElement('h3', { className: 'flyin__content-title' }, title),
|
|
43765
|
+
React__default['default'].createElement(
|
|
43766
|
+
'span',
|
|
43767
|
+
{
|
|
43768
|
+
className: 'flyin__close',
|
|
43769
|
+
onClick: function () {
|
|
43770
|
+
return handleClose();
|
|
43771
|
+
}
|
|
43772
|
+
},
|
|
43773
|
+
React__default['default'].createElement(Icon, { name: 'ui-close', width: 30, height: 30, 'aria-hidden': 'true' })
|
|
43774
|
+
)
|
|
43775
|
+
),
|
|
43776
|
+
isPackageEditFlow &&
|
|
43777
|
+
accommodationStep === 'details' &&
|
|
43778
|
+
React__default['default'].createElement(
|
|
43779
|
+
'div',
|
|
43780
|
+
{ className: 'flyin__content-title-row' },
|
|
43781
|
+
React__default['default'].createElement(
|
|
43782
|
+
'div',
|
|
43783
|
+
{ onClick: handleGoBack, className: 'flyin__content-title__back' },
|
|
43784
|
+
React__default['default'].createElement(Icon, { name: 'ui-chevron', width: 14, height: 14, 'aria-hidden': 'true' }),
|
|
43785
|
+
'Go Back'
|
|
43786
|
+
)
|
|
43787
|
+
)
|
|
43788
|
+
),
|
|
43789
|
+
srpType === build.PortalQsmType.Flight && React__default['default'].createElement(FlightsFlyIn, { isOpen: isOpen, setIsOpen: setIsOpen }),
|
|
43790
|
+
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43791
|
+
accommodationStep === 'results' &&
|
|
43792
|
+
React__default['default'].createElement(
|
|
43793
|
+
'div',
|
|
43794
|
+
{ className: 'flyin__content' },
|
|
43795
|
+
React__default['default'].createElement(HotelAccommodationResults, { isLoading: detailsLoading })
|
|
43796
|
+
),
|
|
43797
|
+
(srpType === build.PortalQsmType.Accommodation || srpType === build.PortalQsmType.AccommodationAndFlight) &&
|
|
43798
|
+
accommodationStep === 'details' &&
|
|
43799
|
+
React__default['default'].createElement(AccommodationFlyIn, { isLoading: detailsLoading, handleConfirm: handleConfirm }),
|
|
43800
|
+
srpType === build.PortalQsmType.GroupTour &&
|
|
43801
|
+
React__default['default'].createElement(GroupTourFlyIn, { isLoading: detailsLoading, isOpen: isOpen, setIsOpen: setIsOpen })
|
|
43802
|
+
)
|
|
43803
|
+
);
|
|
43804
|
+
};
|
|
43805
|
+
|
|
43523
43806
|
var RoundTripResults = function () {
|
|
43524
43807
|
var activeTab = reactRedux.useSelector(function (state) {
|
|
43525
43808
|
return state.searchResults;
|
|
@@ -46935,42 +47218,140 @@ var applyFiltersToPackageAccoResults = function (results, filters, sortBy) {
|
|
|
46935
47218
|
});
|
|
46936
47219
|
};
|
|
46937
47220
|
|
|
46938
|
-
var
|
|
47221
|
+
var getSelectedOptionsPerRoom = function (details) {
|
|
47222
|
+
var _a;
|
|
47223
|
+
var firstResult = details[0];
|
|
47224
|
+
if (!((_a = firstResult === null || firstResult === void 0 ? void 0 : firstResult.rooms) === null || _a === void 0 ? void 0 : _a.length)) return [];
|
|
47225
|
+
return firstResult.rooms.map(function (room, roomIndex) {
|
|
47226
|
+
var _a;
|
|
47227
|
+
var selectedOption =
|
|
47228
|
+
(_a = room.options.find(function (option) {
|
|
47229
|
+
return option.isSelected;
|
|
47230
|
+
})) !== null && _a !== void 0
|
|
47231
|
+
? _a
|
|
47232
|
+
: room.options[0];
|
|
47233
|
+
return {
|
|
47234
|
+
roomIndex: roomIndex,
|
|
47235
|
+
option: selectedOption !== null && selectedOption !== void 0 ? selectedOption : null
|
|
47236
|
+
};
|
|
47237
|
+
});
|
|
47238
|
+
};
|
|
47239
|
+
var getRoomIndexFromLine = function (line) {
|
|
47240
|
+
var _a, _b;
|
|
47241
|
+
if (!((_a = line.pax) === null || _a === void 0 ? void 0 : _a.length)) return 0;
|
|
47242
|
+
var firstPax = __spreadArray([], line.pax, true).sort(function (a, b) {
|
|
47243
|
+
return a.order - b.order;
|
|
47244
|
+
})[0];
|
|
47245
|
+
return (_b = firstPax === null || firstPax === void 0 ? void 0 : firstPax.room) !== null && _b !== void 0 ? _b : 0;
|
|
47246
|
+
};
|
|
47247
|
+
var getRequestRoomsFromPackagingSegments = function (entry, segments) {
|
|
46939
47248
|
var _a;
|
|
47249
|
+
var accommodationLines = __spreadArray([], segments !== null && segments !== void 0 ? segments : [], true)
|
|
47250
|
+
.filter(function (line) {
|
|
47251
|
+
var _a;
|
|
47252
|
+
return line.serviceType === ACCOMMODATION_SERVICE_TYPE && ((_a = line.pax) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
47253
|
+
})
|
|
47254
|
+
.sort(function (a, b) {
|
|
47255
|
+
return a.order - b.order;
|
|
47256
|
+
});
|
|
47257
|
+
var paxById = new Map(
|
|
47258
|
+
((_a = entry.pax) !== null && _a !== void 0 ? _a : []).map(function (p) {
|
|
47259
|
+
return [p.id, p];
|
|
47260
|
+
})
|
|
47261
|
+
);
|
|
47262
|
+
if (!accommodationLines.length) {
|
|
47263
|
+
return [];
|
|
47264
|
+
}
|
|
47265
|
+
var roomGroups = [];
|
|
47266
|
+
accommodationLines.forEach(function (line) {
|
|
47267
|
+
var groupedByRoom = new Map();
|
|
47268
|
+
line.pax.forEach(function (linePax) {
|
|
47269
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
47270
|
+
var roomIndexWithinLine = Number((_a = linePax.room) !== null && _a !== void 0 ? _a : 0);
|
|
47271
|
+
var paxId = Number(linePax.paxId);
|
|
47272
|
+
var paxSource = paxById.get(paxId);
|
|
47273
|
+
var pax = {
|
|
47274
|
+
id: (_b = paxSource === null || paxSource === void 0 ? void 0 : paxSource.id) !== null && _b !== void 0 ? _b : paxId,
|
|
47275
|
+
guid:
|
|
47276
|
+
(_d = (_c = paxSource === null || paxSource === void 0 ? void 0 : paxSource.id) === null || _c === void 0 ? void 0 : _c.toString()) !== null &&
|
|
47277
|
+
_d !== void 0
|
|
47278
|
+
? _d
|
|
47279
|
+
: paxId.toString(),
|
|
47280
|
+
firstName: (_e = paxSource === null || paxSource === void 0 ? void 0 : paxSource.firstName) !== null && _e !== void 0 ? _e : '',
|
|
47281
|
+
lastName: (_f = paxSource === null || paxSource === void 0 ? void 0 : paxSource.lastName) !== null && _f !== void 0 ? _f : '',
|
|
47282
|
+
dateOfBirth: (_g = paxSource === null || paxSource === void 0 ? void 0 : paxSource.dateOfBirth) !== null && _g !== void 0 ? _g : undefined,
|
|
47283
|
+
age: (paxSource === null || paxSource === void 0 ? void 0 : paxSource.dateOfBirth) ? undefined : 30,
|
|
47284
|
+
isMainBooker: paxSource === null || paxSource === void 0 ? void 0 : paxSource.isMainBooker,
|
|
47285
|
+
email: ''
|
|
47286
|
+
};
|
|
47287
|
+
if (!groupedByRoom.has(roomIndexWithinLine)) {
|
|
47288
|
+
groupedByRoom.set(roomIndexWithinLine, []);
|
|
47289
|
+
}
|
|
47290
|
+
groupedByRoom.get(roomIndexWithinLine).push(pax);
|
|
47291
|
+
});
|
|
47292
|
+
var sortedGroups = Array.from(groupedByRoom.entries())
|
|
47293
|
+
.sort(function (_a, _b) {
|
|
47294
|
+
var a = _a[0];
|
|
47295
|
+
var b = _b[0];
|
|
47296
|
+
return a - b;
|
|
47297
|
+
})
|
|
47298
|
+
.map(function (_a) {
|
|
47299
|
+
var pax = _a[1];
|
|
47300
|
+
return pax;
|
|
47301
|
+
});
|
|
47302
|
+
roomGroups.push.apply(roomGroups, sortedGroups);
|
|
47303
|
+
});
|
|
47304
|
+
return roomGroups.map(function (pax, index) {
|
|
47305
|
+
return {
|
|
47306
|
+
index: index,
|
|
47307
|
+
pax: pax
|
|
47308
|
+
};
|
|
47309
|
+
});
|
|
47310
|
+
};
|
|
47311
|
+
|
|
47312
|
+
var SearchResultsContainer = function () {
|
|
47313
|
+
var _a, _b;
|
|
47314
|
+
var currentSearch = typeof window !== 'undefined' ? window.location.search : '';
|
|
46940
47315
|
var dispatch = reactRedux.useDispatch();
|
|
46941
47316
|
var context = React.useContext(SearchResultsConfigurationContext);
|
|
46942
47317
|
var translations = getTranslations((_a = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _a !== void 0 ? _a : 'en-GB');
|
|
46943
|
-
var
|
|
47318
|
+
var _c = reactRedux.useSelector(function (state) {
|
|
46944
47319
|
return state.searchResults;
|
|
46945
47320
|
}),
|
|
46946
|
-
results =
|
|
46947
|
-
filteredResults =
|
|
46948
|
-
packagingAccoResults =
|
|
46949
|
-
filteredPackagingAccoResults =
|
|
46950
|
-
bookingPackageDetails =
|
|
46951
|
-
|
|
46952
|
-
|
|
46953
|
-
|
|
46954
|
-
|
|
46955
|
-
|
|
46956
|
-
|
|
46957
|
-
|
|
47321
|
+
results = _c.results,
|
|
47322
|
+
filteredResults = _c.filteredResults,
|
|
47323
|
+
packagingAccoResults = _c.packagingAccoResults,
|
|
47324
|
+
filteredPackagingAccoResults = _c.filteredPackagingAccoResults,
|
|
47325
|
+
bookingPackageDetails = _c.bookingPackageDetails,
|
|
47326
|
+
isLoading = _c.isLoading,
|
|
47327
|
+
filters = _c.filters,
|
|
47328
|
+
selectedSortType = _c.selectedSortType,
|
|
47329
|
+
selectedSearchResult = _c.selectedSearchResult,
|
|
47330
|
+
selectedPackagingAccoResultCode = _c.selectedPackagingAccoResultCode,
|
|
47331
|
+
flyInIsOpen = _c.flyInIsOpen,
|
|
47332
|
+
packagingAccoSearchDetails = _c.packagingAccoSearchDetails,
|
|
47333
|
+
editablePackagingEntry = _c.editablePackagingEntry,
|
|
47334
|
+
transactionId = _c.transactionId,
|
|
47335
|
+
accommodationFlyInStep = _c.accommodationFlyInStep;
|
|
46958
47336
|
var isMobile = useMediaQuery('(max-width: 1200px)');
|
|
46959
|
-
var
|
|
46960
|
-
initialFiltersSet =
|
|
46961
|
-
setInitialFiltersSet =
|
|
46962
|
-
var
|
|
46963
|
-
initialFilters =
|
|
46964
|
-
setInitialFilters =
|
|
46965
|
-
var _e = React.useState(false),
|
|
46966
|
-
filtersOpen = _e[0],
|
|
46967
|
-
setFiltersOpen = _e[1];
|
|
47337
|
+
var _d = React.useState(false),
|
|
47338
|
+
initialFiltersSet = _d[0],
|
|
47339
|
+
setInitialFiltersSet = _d[1];
|
|
47340
|
+
var _e = React.useState([]),
|
|
47341
|
+
initialFilters = _e[0],
|
|
47342
|
+
setInitialFilters = _e[1];
|
|
46968
47343
|
var _f = React.useState(false),
|
|
46969
|
-
|
|
46970
|
-
|
|
47344
|
+
filtersOpen = _f[0],
|
|
47345
|
+
setFiltersOpen = _f[1];
|
|
46971
47346
|
var _g = React.useState(false),
|
|
46972
|
-
|
|
46973
|
-
|
|
47347
|
+
detailsIsLoading = _g[0],
|
|
47348
|
+
setDetailsIsLoading = _g[1];
|
|
47349
|
+
var _h = React.useState(false),
|
|
47350
|
+
itineraryOpen = _h[0],
|
|
47351
|
+
setItineraryOpen = _h[1];
|
|
47352
|
+
var _j = React.useState(null),
|
|
47353
|
+
selectedAccommodationSeed = _j[0],
|
|
47354
|
+
setSelectedAccommodationSeed = _j[1];
|
|
46974
47355
|
var panelRef = React.useRef(null);
|
|
46975
47356
|
var sortByTypes = [
|
|
46976
47357
|
{ direction: 'asc', label: 'default' },
|
|
@@ -46986,33 +47367,44 @@ var SearchResultsContainer = function () {
|
|
|
46986
47367
|
dispatch(setSortType(newSortByType));
|
|
46987
47368
|
}
|
|
46988
47369
|
};
|
|
46989
|
-
var
|
|
47370
|
+
var getRequestRooms = function (rooms) {
|
|
47371
|
+
if (!rooms) {
|
|
47372
|
+
// Fall back to 2 adults
|
|
47373
|
+
var room = { index: 0, pax: [] };
|
|
47374
|
+
lodash.range(0, 2).forEach(function () {
|
|
47375
|
+
room.pax.push({
|
|
47376
|
+
age: 30
|
|
47377
|
+
});
|
|
47378
|
+
});
|
|
47379
|
+
return [room];
|
|
47380
|
+
}
|
|
47381
|
+
var requestRooms =
|
|
47382
|
+
rooms === null || rooms === void 0
|
|
47383
|
+
? void 0
|
|
47384
|
+
: rooms.map(function (x, i) {
|
|
47385
|
+
var room = { index: i, pax: [] };
|
|
47386
|
+
lodash.range(0, x.adults).forEach(function () {
|
|
47387
|
+
room.pax.push({
|
|
47388
|
+
age: 30
|
|
47389
|
+
});
|
|
47390
|
+
});
|
|
47391
|
+
x.childAges.forEach(function (x) {
|
|
47392
|
+
room.pax.push({
|
|
47393
|
+
age: x
|
|
47394
|
+
});
|
|
47395
|
+
});
|
|
47396
|
+
return room;
|
|
47397
|
+
});
|
|
47398
|
+
return requestRooms;
|
|
47399
|
+
};
|
|
47400
|
+
var buildSearchFromSeed = function (seed) {
|
|
46990
47401
|
var _a;
|
|
46991
|
-
var
|
|
46992
|
-
|
|
46993
|
-
|
|
46994
|
-
|
|
46995
|
-
|
|
46996
|
-
|
|
46997
|
-
)
|
|
46998
|
-
).toISOString();
|
|
46999
|
-
var to = new Date(
|
|
47000
|
-
Math.max.apply(
|
|
47001
|
-
Math,
|
|
47002
|
-
entry.items.map(function (i) {
|
|
47003
|
-
return i.endDate.getTime();
|
|
47004
|
-
})
|
|
47005
|
-
)
|
|
47006
|
-
).toISOString();
|
|
47007
|
-
var rooms = entry.rooms;
|
|
47008
|
-
var hotelItem = entry.items.find(function (i) {
|
|
47009
|
-
return i.productType === 3;
|
|
47010
|
-
});
|
|
47011
|
-
var country = hotelItem ? hotelItem.countryId : null;
|
|
47012
|
-
var region = hotelItem ? hotelItem.regionId : null;
|
|
47013
|
-
var oord = hotelItem ? hotelItem.oordId : null;
|
|
47014
|
-
var city = hotelItem ? hotelItem.locationId : null;
|
|
47015
|
-
var hotel = hotelItem ? hotelItem.productCode : null;
|
|
47402
|
+
var country = seed.country;
|
|
47403
|
+
var region = seed.region;
|
|
47404
|
+
var oord = seed.oord;
|
|
47405
|
+
var city = seed.location;
|
|
47406
|
+
var hotel = seed.hotel;
|
|
47407
|
+
var tagId = seed.tagId;
|
|
47016
47408
|
if (typeof window !== 'undefined') {
|
|
47017
47409
|
window.scrollTo(0, 0);
|
|
47018
47410
|
}
|
|
@@ -47034,83 +47426,7 @@ var SearchResultsContainer = function () {
|
|
|
47034
47426
|
destinationId = city;
|
|
47035
47427
|
destinationIsLocation = true;
|
|
47036
47428
|
}
|
|
47037
|
-
|
|
47038
|
-
officeId: 1,
|
|
47039
|
-
agentId: context === null || context === void 0 ? void 0 : context.agentId,
|
|
47040
|
-
payload: {
|
|
47041
|
-
catalogueIds: (_a = context.tideConnection.catalogueIds) !== null && _a !== void 0 ? _a : [],
|
|
47042
|
-
serviceType:
|
|
47043
|
-
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation ||
|
|
47044
|
-
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight
|
|
47045
|
-
? 3
|
|
47046
|
-
: context.searchConfiguration.qsmType === build.PortalQsmType.Flight
|
|
47047
|
-
? 7
|
|
47048
|
-
: context.searchConfiguration.qsmType === build.PortalQsmType.RoundTrip
|
|
47049
|
-
? 1
|
|
47050
|
-
: 0,
|
|
47051
|
-
searchType: 0,
|
|
47052
|
-
destination: {
|
|
47053
|
-
id: Number(destinationId),
|
|
47054
|
-
isCountry: destinationIsCountry,
|
|
47055
|
-
isRegion: destinationIsRegion,
|
|
47056
|
-
isOord: destinationIsOord,
|
|
47057
|
-
isLocation: destinationIsLocation
|
|
47058
|
-
},
|
|
47059
|
-
rooms: getRequestRoomsFromEntry(rooms),
|
|
47060
|
-
fromDate: from,
|
|
47061
|
-
toDate: to,
|
|
47062
|
-
earliestFromOffset: 0,
|
|
47063
|
-
latestToOffset: 0,
|
|
47064
|
-
includeFlights: true,
|
|
47065
|
-
regimeCodes:
|
|
47066
|
-
entry.items.map(function (i) {
|
|
47067
|
-
return i.regimeCode;
|
|
47068
|
-
}) || [],
|
|
47069
|
-
useExactDates: true,
|
|
47070
|
-
onlyCachedResults: false,
|
|
47071
|
-
includeAllAllotments: true,
|
|
47072
|
-
productCodes: hotel ? [hotel] : []
|
|
47073
|
-
}
|
|
47074
|
-
};
|
|
47075
|
-
return searchRequest;
|
|
47076
|
-
};
|
|
47077
|
-
var buildSearchFromQueryParams = function (params) {
|
|
47078
|
-
var _a;
|
|
47079
|
-
var from = getDateFromParams(params, 'fromDate');
|
|
47080
|
-
var to = getDateFromParams(params, 'toDate');
|
|
47081
|
-
var rooms = getRoomsFromParams(params, 'rooms');
|
|
47082
|
-
var country = getNumberFromParams(params, 'country');
|
|
47083
|
-
var region = getNumberFromParams(params, 'region');
|
|
47084
|
-
var oord = getNumberFromParams(params, 'oord');
|
|
47085
|
-
var city = getNumberFromParams(params, 'location');
|
|
47086
|
-
var hotel = getNumberFromParams(params, 'hotel');
|
|
47087
|
-
var tagId = getNumberFromParams(params, 'tagId');
|
|
47088
|
-
if (!from || !to) {
|
|
47089
|
-
console.error('Missing fromDate or toDate in query params, using default values');
|
|
47090
|
-
return null;
|
|
47091
|
-
}
|
|
47092
|
-
if (typeof window !== 'undefined') {
|
|
47093
|
-
window.scrollTo(0, 0);
|
|
47094
|
-
}
|
|
47095
|
-
var destinationId = null;
|
|
47096
|
-
var destinationIsCountry = false;
|
|
47097
|
-
var destinationIsRegion = false;
|
|
47098
|
-
var destinationIsOord = false;
|
|
47099
|
-
var destinationIsLocation = false;
|
|
47100
|
-
if (country) {
|
|
47101
|
-
destinationId = country;
|
|
47102
|
-
destinationIsCountry = true;
|
|
47103
|
-
} else if (region) {
|
|
47104
|
-
destinationId = region;
|
|
47105
|
-
destinationIsRegion = true;
|
|
47106
|
-
} else if (oord) {
|
|
47107
|
-
destinationId = oord;
|
|
47108
|
-
destinationIsOord = true;
|
|
47109
|
-
} else if (city) {
|
|
47110
|
-
destinationId = city;
|
|
47111
|
-
destinationIsLocation = true;
|
|
47112
|
-
}
|
|
47113
|
-
var searchRequest = {
|
|
47429
|
+
return {
|
|
47114
47430
|
officeId: 1,
|
|
47115
47431
|
agentId: context === null || context === void 0 ? void 0 : context.agentId,
|
|
47116
47432
|
payload: {
|
|
@@ -47118,11 +47434,11 @@ var SearchResultsContainer = function () {
|
|
|
47118
47434
|
serviceType:
|
|
47119
47435
|
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation ||
|
|
47120
47436
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight
|
|
47121
|
-
?
|
|
47437
|
+
? ACCOMMODATION_SERVICE_TYPE
|
|
47122
47438
|
: context.searchConfiguration.qsmType === build.PortalQsmType.Flight
|
|
47123
|
-
?
|
|
47439
|
+
? FLIGHT_SERVICE_TYPE
|
|
47124
47440
|
: context.searchConfiguration.qsmType === build.PortalQsmType.RoundTrip
|
|
47125
|
-
?
|
|
47441
|
+
? GROUP_TOUR_SERVICE_TYPE
|
|
47126
47442
|
: undefined,
|
|
47127
47443
|
searchType: context.searchConfiguration.qsmType === build.PortalQsmType.GroupTour ? 1 : 0,
|
|
47128
47444
|
destination: {
|
|
@@ -47132,19 +47448,12 @@ var SearchResultsContainer = function () {
|
|
|
47132
47448
|
isOord: destinationIsOord,
|
|
47133
47449
|
isLocation: destinationIsLocation
|
|
47134
47450
|
},
|
|
47135
|
-
rooms:
|
|
47136
|
-
fromDate:
|
|
47137
|
-
toDate:
|
|
47451
|
+
rooms: seed.rooms,
|
|
47452
|
+
fromDate: seed.fromDate,
|
|
47453
|
+
toDate: seed.toDate,
|
|
47138
47454
|
earliestFromOffset: 0,
|
|
47139
47455
|
latestToOffset: 0,
|
|
47140
|
-
includeFlights: context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight
|
|
47141
|
-
// regimeCodes:
|
|
47142
|
-
// filters
|
|
47143
|
-
// .find((f) => f.property === 'regime')
|
|
47144
|
-
// ?.options?.filter((o) => o.isChecked)
|
|
47145
|
-
// .flatMap((o) => o.value.toString()) || [],
|
|
47146
|
-
// minPrice: filters.find((f) => f.property === 'price')?.selectedMin,
|
|
47147
|
-
// maxPrice: filters.find((f) => f.property === 'price')?.selectedMax,
|
|
47456
|
+
includeFlights: context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight,
|
|
47148
47457
|
useExactDates: (context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour ? false : true,
|
|
47149
47458
|
onlyCachedResults: false,
|
|
47150
47459
|
includeAllAllotments: true,
|
|
@@ -47152,82 +47461,16 @@ var SearchResultsContainer = function () {
|
|
|
47152
47461
|
productTagIds: tagId ? [tagId] : []
|
|
47153
47462
|
}
|
|
47154
47463
|
};
|
|
47155
|
-
console.log('Built search request from query params', searchRequest);
|
|
47156
|
-
return searchRequest;
|
|
47157
47464
|
};
|
|
47158
|
-
var
|
|
47159
|
-
|
|
47160
|
-
|
|
47161
|
-
|
|
47162
|
-
|
|
47163
|
-
|
|
47164
|
-
|
|
47165
|
-
|
|
47166
|
-
|
|
47167
|
-
return [room];
|
|
47168
|
-
}
|
|
47169
|
-
var requestRooms =
|
|
47170
|
-
rooms === null || rooms === void 0
|
|
47171
|
-
? void 0
|
|
47172
|
-
: rooms.map(function (x, i) {
|
|
47173
|
-
var room = { index: i, pax: [] };
|
|
47174
|
-
x.travellers.forEach(function (p) {
|
|
47175
|
-
room.pax.push({
|
|
47176
|
-
age: p.age,
|
|
47177
|
-
dateOfBirth: p.dateOfBirth
|
|
47178
|
-
});
|
|
47179
|
-
});
|
|
47180
|
-
return room;
|
|
47181
|
-
});
|
|
47182
|
-
return requestRooms;
|
|
47183
|
-
};
|
|
47184
|
-
var getRequestRooms = function (rooms) {
|
|
47185
|
-
if (!rooms) {
|
|
47186
|
-
// Fall back to 2 adults
|
|
47187
|
-
var room = { index: 0, pax: [] };
|
|
47188
|
-
lodash.range(0, 2).forEach(function () {
|
|
47189
|
-
room.pax.push({
|
|
47190
|
-
age: 30
|
|
47191
|
-
});
|
|
47192
|
-
});
|
|
47193
|
-
return [room];
|
|
47194
|
-
}
|
|
47195
|
-
var requestRooms =
|
|
47196
|
-
rooms === null || rooms === void 0
|
|
47197
|
-
? void 0
|
|
47198
|
-
: rooms.map(function (x, i) {
|
|
47199
|
-
var room = { index: i, pax: [] };
|
|
47200
|
-
lodash.range(0, x.adults).forEach(function () {
|
|
47201
|
-
room.pax.push({
|
|
47202
|
-
age: 30
|
|
47203
|
-
});
|
|
47204
|
-
});
|
|
47205
|
-
x.childAges.forEach(function (x) {
|
|
47206
|
-
room.pax.push({
|
|
47207
|
-
age: x
|
|
47208
|
-
});
|
|
47209
|
-
});
|
|
47210
|
-
return room;
|
|
47211
|
-
});
|
|
47212
|
-
return requestRooms;
|
|
47213
|
-
};
|
|
47214
|
-
var buildPackagingAccommodationRequestFromQueryParams = function (params) {
|
|
47215
|
-
var _a, _b;
|
|
47216
|
-
var from = getDateFromParams(params, 'fromDate');
|
|
47217
|
-
var to = getDateFromParams(params, 'toDate');
|
|
47218
|
-
var rooms = getRoomsFromParams(params, 'rooms');
|
|
47219
|
-
var country = getNumberFromParams(params, 'country');
|
|
47220
|
-
var region = getNumberFromParams(params, 'region');
|
|
47221
|
-
var oord = getNumberFromParams(params, 'oord');
|
|
47222
|
-
var city = getNumberFromParams(params, 'location');
|
|
47223
|
-
var hotel = getNumberFromParams(params, 'hotel');
|
|
47224
|
-
var tagId = getNumberFromParams(params, 'tagId');
|
|
47225
|
-
var agentId = getNumberFromParams(params, 'agentId');
|
|
47226
|
-
var destinationAirport = getStringFromParams(params, 'destinationAirport');
|
|
47227
|
-
if (!from || !to) {
|
|
47228
|
-
console.error('Missing fromDate or toDate in query params, using default values');
|
|
47229
|
-
return null;
|
|
47230
|
-
}
|
|
47465
|
+
var buildPackagingAccommodationRequestFromSeed = function (seed, currentTransactionId) {
|
|
47466
|
+
var _a, _b, _c, _d;
|
|
47467
|
+
var country = seed.country;
|
|
47468
|
+
var region = seed.region;
|
|
47469
|
+
var oord = seed.oord;
|
|
47470
|
+
var city = seed.location;
|
|
47471
|
+
(_a = seed.hotelCode) !== null && _a !== void 0 ? _a : seed.hotel ? seed.hotel.toString() : '';
|
|
47472
|
+
var tagId = seed.tagId;
|
|
47473
|
+
var destinationAirport = seed.destinationAirport;
|
|
47231
47474
|
if (typeof window !== 'undefined') {
|
|
47232
47475
|
window.scrollTo(0, 0);
|
|
47233
47476
|
}
|
|
@@ -47238,31 +47481,32 @@ var SearchResultsContainer = function () {
|
|
|
47238
47481
|
var destinationIsLocation = false;
|
|
47239
47482
|
var destinationCode = null;
|
|
47240
47483
|
var destinationIsAirport = false;
|
|
47241
|
-
if (
|
|
47242
|
-
destinationId =
|
|
47243
|
-
|
|
47244
|
-
} else if (region) {
|
|
47245
|
-
destinationId = region;
|
|
47246
|
-
destinationIsRegion = true;
|
|
47484
|
+
if (city) {
|
|
47485
|
+
destinationId = city;
|
|
47486
|
+
destinationIsLocation = true;
|
|
47247
47487
|
} else if (oord) {
|
|
47248
47488
|
destinationId = oord;
|
|
47249
47489
|
destinationIsOord = true;
|
|
47250
|
-
} else if (
|
|
47251
|
-
destinationId =
|
|
47252
|
-
|
|
47490
|
+
} else if (region) {
|
|
47491
|
+
destinationId = region;
|
|
47492
|
+
destinationIsRegion = true;
|
|
47493
|
+
} else if (country) {
|
|
47494
|
+
destinationId = country;
|
|
47495
|
+
destinationIsCountry = true;
|
|
47253
47496
|
} else if (destinationAirport) {
|
|
47254
47497
|
destinationCode = destinationAirport;
|
|
47255
47498
|
destinationIsAirport = true;
|
|
47256
47499
|
}
|
|
47257
|
-
|
|
47500
|
+
return {
|
|
47501
|
+
transactionId: currentTransactionId,
|
|
47258
47502
|
officeId: 1,
|
|
47259
|
-
agentId: agentId !== null &&
|
|
47260
|
-
catalogueId: (
|
|
47503
|
+
agentId: (_b = context === null || context === void 0 ? void 0 : context.agentId) !== null && _b !== void 0 ? _b : null,
|
|
47504
|
+
catalogueId: (_c = context.searchConfiguration.defaultCatalogueId) !== null && _c !== void 0 ? _c : 0,
|
|
47261
47505
|
searchConfigurationId: context.searchConfiguration.id,
|
|
47262
|
-
language: (
|
|
47263
|
-
|
|
47264
|
-
fromDate:
|
|
47265
|
-
toDate:
|
|
47506
|
+
language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB',
|
|
47507
|
+
serviceType: ACCOMMODATION_SERVICE_TYPE,
|
|
47508
|
+
fromDate: seed.fromDate,
|
|
47509
|
+
toDate: seed.toDate,
|
|
47266
47510
|
destination: {
|
|
47267
47511
|
id: Number(destinationId),
|
|
47268
47512
|
isCountry: destinationIsCountry,
|
|
@@ -47272,43 +47516,135 @@ var SearchResultsContainer = function () {
|
|
|
47272
47516
|
isAirport: destinationIsAirport,
|
|
47273
47517
|
code: destinationCode
|
|
47274
47518
|
},
|
|
47275
|
-
productCode:
|
|
47276
|
-
rooms:
|
|
47519
|
+
productCode: '',
|
|
47520
|
+
rooms: getPackagingRequestRoomsFromBookingRooms(seed.rooms),
|
|
47277
47521
|
tagIds: tagId ? [tagId] : []
|
|
47278
47522
|
};
|
|
47279
|
-
console.log('Search request for packaging accommodation from query params', searchRequest);
|
|
47280
|
-
return searchRequest;
|
|
47281
47523
|
};
|
|
47282
|
-
var
|
|
47283
|
-
|
|
47284
|
-
|
|
47285
|
-
|
|
47286
|
-
|
|
47287
|
-
|
|
47288
|
-
|
|
47289
|
-
|
|
47290
|
-
|
|
47291
|
-
|
|
47524
|
+
var buildSearchSeedFromQueryParams = function (params) {
|
|
47525
|
+
var from = getDateFromParams(params, 'fromDate');
|
|
47526
|
+
var to = getDateFromParams(params, 'toDate');
|
|
47527
|
+
var rooms = getRoomsFromParams(params, 'rooms');
|
|
47528
|
+
var country = getNumberFromParams(params, 'country');
|
|
47529
|
+
var region = getNumberFromParams(params, 'region');
|
|
47530
|
+
var oord = getNumberFromParams(params, 'oord');
|
|
47531
|
+
var city = getNumberFromParams(params, 'location');
|
|
47532
|
+
var hotel = getNumberFromParams(params, 'hotel');
|
|
47533
|
+
var tagId = getNumberFromParams(params, 'tagId');
|
|
47534
|
+
var destinationAirport = getStringFromParams(params, 'destinationAirport');
|
|
47535
|
+
var departureAirport = getStringFromParams(params, 'departureAirport');
|
|
47536
|
+
if (!from || !to) {
|
|
47537
|
+
return null;
|
|
47292
47538
|
}
|
|
47293
|
-
|
|
47294
|
-
|
|
47539
|
+
return {
|
|
47540
|
+
fromDate: from,
|
|
47541
|
+
toDate: to,
|
|
47542
|
+
country: country,
|
|
47543
|
+
region: region,
|
|
47544
|
+
oord: oord,
|
|
47545
|
+
location: city,
|
|
47546
|
+
hotel: hotel,
|
|
47547
|
+
hotelCode: hotel ? hotel.toString() : null,
|
|
47548
|
+
tagId: tagId,
|
|
47549
|
+
destinationAirport: destinationAirport,
|
|
47550
|
+
departureAirport: departureAirport,
|
|
47551
|
+
rooms: getRequestRooms(rooms)
|
|
47552
|
+
};
|
|
47553
|
+
};
|
|
47554
|
+
var handleConfirmHotelSwap = function () {
|
|
47555
|
+
var updatedEntry = swapHotelInPackagingEntry();
|
|
47556
|
+
console.log('Updated entry after hotel swap', updatedEntry);
|
|
47557
|
+
if (!updatedEntry) return;
|
|
47558
|
+
dispatch(setEditablePackagingEntry(updatedEntry));
|
|
47559
|
+
handleFlyInToggle(false);
|
|
47560
|
+
};
|
|
47561
|
+
var swapHotelInPackagingEntry = function () {
|
|
47562
|
+
var sourceEntry =
|
|
47563
|
+
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
47564
|
+
? editablePackagingEntry
|
|
47565
|
+
: context === null || context === void 0
|
|
47295
47566
|
? void 0
|
|
47296
|
-
:
|
|
47297
|
-
|
|
47298
|
-
|
|
47299
|
-
|
|
47300
|
-
|
|
47301
|
-
|
|
47302
|
-
|
|
47303
|
-
|
|
47304
|
-
|
|
47305
|
-
|
|
47306
|
-
|
|
47307
|
-
|
|
47308
|
-
|
|
47309
|
-
|
|
47310
|
-
|
|
47567
|
+
: context.packagingEntry;
|
|
47568
|
+
var details = packagingAccoSearchDetails;
|
|
47569
|
+
if (!sourceEntry || !(details === null || details === void 0 ? void 0 : details.length)) return null;
|
|
47570
|
+
var selectedOptionsPerRoom = getSelectedOptionsPerRoom(details);
|
|
47571
|
+
if (!selectedOptionsPerRoom.length) return null;
|
|
47572
|
+
var selectedHotel = details[0];
|
|
47573
|
+
var updatedLines = sourceEntry.lines.map(function (line) {
|
|
47574
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
47575
|
+
if (line.serviceType !== ACCOMMODATION_SERVICE_TYPE) {
|
|
47576
|
+
return line;
|
|
47577
|
+
}
|
|
47578
|
+
// TODO: fix roomIndex
|
|
47579
|
+
var roomIndex = getRoomIndexFromLine(line);
|
|
47580
|
+
console.log('Processing line', line, 'with room index', roomIndex);
|
|
47581
|
+
var selectedRoom = selectedOptionsPerRoom.find(function (x) {
|
|
47582
|
+
return x.roomIndex === roomIndex;
|
|
47583
|
+
});
|
|
47584
|
+
var selectedOption = selectedRoom === null || selectedRoom === void 0 ? void 0 : selectedRoom.option;
|
|
47585
|
+
if (!selectedOption) {
|
|
47586
|
+
return line;
|
|
47587
|
+
}
|
|
47588
|
+
return __assign(__assign({}, line), {
|
|
47589
|
+
guid: selectedOption.guid,
|
|
47590
|
+
productName: selectedHotel.name,
|
|
47591
|
+
productCode: selectedHotel.code,
|
|
47592
|
+
accommodationName: selectedOption.accommodationName,
|
|
47593
|
+
accommodationCode: selectedOption.accommodationCode,
|
|
47594
|
+
regimeName: selectedOption.regimeName,
|
|
47595
|
+
regimeCode: selectedOption.regimeCode,
|
|
47596
|
+
country: line.country
|
|
47597
|
+
? __assign(__assign({}, line.country), {
|
|
47598
|
+
id: (_a = selectedHotel.countryId) !== null && _a !== void 0 ? _a : line.country.id,
|
|
47599
|
+
name: (_b = selectedHotel.countryName) !== null && _b !== void 0 ? _b : line.country.name
|
|
47600
|
+
})
|
|
47601
|
+
: selectedHotel.countryId
|
|
47602
|
+
? { id: selectedHotel.countryId, name: selectedHotel.countryName, localizations: [] }
|
|
47603
|
+
: line.country,
|
|
47604
|
+
region: line.region
|
|
47605
|
+
? __assign(__assign({}, line.region), {
|
|
47606
|
+
id: (_c = selectedHotel.regionId) !== null && _c !== void 0 ? _c : line.region.id,
|
|
47607
|
+
name: (_d = selectedHotel.regionName) !== null && _d !== void 0 ? _d : line.region.name
|
|
47608
|
+
})
|
|
47609
|
+
: selectedHotel.regionId
|
|
47610
|
+
? { id: selectedHotel.regionId, name: selectedHotel.regionName, localizations: [] }
|
|
47611
|
+
: line.region,
|
|
47612
|
+
oord: line.oord
|
|
47613
|
+
? __assign(__assign({}, line.oord), {
|
|
47614
|
+
id: (_e = selectedHotel.oordId) !== null && _e !== void 0 ? _e : line.oord.id,
|
|
47615
|
+
name: (_f = selectedHotel.oordName) !== null && _f !== void 0 ? _f : line.oord.name
|
|
47616
|
+
})
|
|
47617
|
+
: selectedHotel.oordId
|
|
47618
|
+
? { id: selectedHotel.oordId, name: selectedHotel.oordName, localizations: [] }
|
|
47619
|
+
: line.oord,
|
|
47620
|
+
location: line.location
|
|
47621
|
+
? __assign(__assign({}, line.location), {
|
|
47622
|
+
id: (_g = selectedHotel.locationId) !== null && _g !== void 0 ? _g : line.location.id,
|
|
47623
|
+
name: (_h = selectedHotel.locationName) !== null && _h !== void 0 ? _h : line.location.name
|
|
47624
|
+
})
|
|
47625
|
+
: selectedHotel.locationId
|
|
47626
|
+
? { id: selectedHotel.locationId, name: selectedHotel.locationName, localizations: [] }
|
|
47627
|
+
: line.location,
|
|
47628
|
+
latitude: (_j = selectedHotel.latitude) !== null && _j !== void 0 ? _j : line.latitude,
|
|
47629
|
+
longitude: (_k = selectedHotel.longitude) !== null && _k !== void 0 ? _k : line.longitude,
|
|
47630
|
+
from: (_l = selectedHotel.fromDate) !== null && _l !== void 0 ? _l : line.from,
|
|
47631
|
+
to: (_m = selectedHotel.toDate) !== null && _m !== void 0 ? _m : line.to,
|
|
47632
|
+
isChanged: true
|
|
47633
|
+
});
|
|
47634
|
+
});
|
|
47635
|
+
return __assign(__assign({}, sourceEntry), { lines: updatedLines });
|
|
47311
47636
|
};
|
|
47637
|
+
var activeSearchSeed = React__default['default'].useMemo(
|
|
47638
|
+
function () {
|
|
47639
|
+
if (selectedAccommodationSeed) {
|
|
47640
|
+
return selectedAccommodationSeed;
|
|
47641
|
+
}
|
|
47642
|
+
if (typeof window === 'undefined') return null;
|
|
47643
|
+
var params = new URLSearchParams(window.location.search);
|
|
47644
|
+
return buildSearchSeedFromQueryParams(params);
|
|
47645
|
+
},
|
|
47646
|
+
[selectedAccommodationSeed, currentSearch]
|
|
47647
|
+
);
|
|
47312
47648
|
React.useEffect(
|
|
47313
47649
|
function () {
|
|
47314
47650
|
if (typeof document !== 'undefined') {
|
|
@@ -47317,189 +47653,232 @@ var SearchResultsContainer = function () {
|
|
|
47317
47653
|
},
|
|
47318
47654
|
[filtersOpen]
|
|
47319
47655
|
);
|
|
47320
|
-
|
|
47321
|
-
|
|
47322
|
-
|
|
47323
|
-
var
|
|
47324
|
-
|
|
47325
|
-
|
|
47326
|
-
|
|
47327
|
-
|
|
47328
|
-
|
|
47329
|
-
|
|
47330
|
-
|
|
47331
|
-
|
|
47332
|
-
|
|
47333
|
-
|
|
47334
|
-
|
|
47335
|
-
|
|
47336
|
-
|
|
47337
|
-
config = {
|
|
47338
|
-
host: context.tideConnection.host,
|
|
47339
|
-
apiKey: context.tideConnection.apiKey
|
|
47340
|
-
};
|
|
47341
|
-
params = new URLSearchParams(location.search);
|
|
47342
|
-
entryId = getStringFromParams(params, 'entryId');
|
|
47343
|
-
entryLight = null;
|
|
47344
|
-
searchRequest = void 0;
|
|
47345
|
-
if (!entryId) return [3 /*break*/, 3];
|
|
47346
|
-
return [4 /*yield*/, build.getEntryLight(config, entryId)];
|
|
47347
|
-
case 2:
|
|
47348
|
-
entryLight = _b.sent();
|
|
47349
|
-
// populate itinerary store
|
|
47350
|
-
dispatch(setEntry({ entry: entryLight }));
|
|
47351
|
-
searchRequest = buildSearchFromEntry(entryLight);
|
|
47352
|
-
return [3 /*break*/, 4];
|
|
47353
|
-
case 3:
|
|
47354
|
-
rq = buildSearchFromQueryParams(params);
|
|
47355
|
-
if (!rq) {
|
|
47356
|
-
throw new Error('Invalid search parameters');
|
|
47357
|
-
}
|
|
47358
|
-
searchRequest = rq;
|
|
47359
|
-
_b.label = 4;
|
|
47360
|
-
case 4:
|
|
47361
|
-
return [4 /*yield*/, build.search(config, searchRequest)];
|
|
47362
|
-
case 5:
|
|
47363
|
-
packageSearchResults = _b.sent();
|
|
47364
|
-
console.log('Search results', packageSearchResults);
|
|
47365
|
-
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47366
|
-
if (!initialFiltersSet) {
|
|
47367
|
-
dispatch(resetFilters(enrichedFilters));
|
|
47368
|
-
setInitialFilters(enrichedFilters);
|
|
47369
|
-
setInitialFiltersSet(true);
|
|
47370
|
-
}
|
|
47371
|
-
dispatch(setResults(packageSearchResults));
|
|
47372
|
-
initialFilteredResults = applyFilters(packageSearchResults, filters, null);
|
|
47373
|
-
dispatch(setFilteredResults(initialFilteredResults));
|
|
47374
|
-
if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
|
|
47375
|
-
if (entryId) {
|
|
47376
|
-
matching = packageSearchResults.find(function (r) {
|
|
47377
|
-
return r.productId === (entry === null || entry === void 0 ? void 0 : entry.id);
|
|
47378
|
-
});
|
|
47379
|
-
if (matching) {
|
|
47380
|
-
dispatch(setSelectedSearchResult(matching));
|
|
47381
|
-
}
|
|
47382
|
-
} else {
|
|
47383
|
-
if (context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight) {
|
|
47384
|
-
dispatch(setSelectedSearchResult(packageSearchResults[0]));
|
|
47385
|
-
}
|
|
47386
|
-
}
|
|
47387
|
-
}
|
|
47388
|
-
dispatch(setIsLoading(false));
|
|
47389
|
-
return [3 /*break*/, 7];
|
|
47390
|
-
case 6:
|
|
47391
|
-
err_1 = _b.sent();
|
|
47392
|
-
console.error('Search failed', err_1);
|
|
47393
|
-
dispatch(setIsLoading(false));
|
|
47394
|
-
return [3 /*break*/, 7];
|
|
47395
|
-
case 7:
|
|
47396
|
-
return [2 /*return*/];
|
|
47656
|
+
var runSearch = function () {
|
|
47657
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47658
|
+
var config, seed, searchRequest, packageSearchResults, enrichedFilters, initialFilteredResults, err_1;
|
|
47659
|
+
var _a;
|
|
47660
|
+
return __generator(this, function (_b) {
|
|
47661
|
+
switch (_b.label) {
|
|
47662
|
+
case 0:
|
|
47663
|
+
_b.trys.push([0, 2, 3, 4]);
|
|
47664
|
+
if (!context) return [2 /*return*/];
|
|
47665
|
+
dispatch(setIsLoading(true));
|
|
47666
|
+
config = {
|
|
47667
|
+
host: context.tideConnection.host,
|
|
47668
|
+
apiKey: context.tideConnection.apiKey
|
|
47669
|
+
};
|
|
47670
|
+
seed = activeSearchSeed;
|
|
47671
|
+
if (!seed) {
|
|
47672
|
+
throw new Error('Invalid search parameters');
|
|
47397
47673
|
}
|
|
47398
|
-
|
|
47399
|
-
|
|
47400
|
-
|
|
47401
|
-
|
|
47402
|
-
|
|
47403
|
-
|
|
47404
|
-
|
|
47405
|
-
|
|
47406
|
-
|
|
47407
|
-
|
|
47408
|
-
dispatch(setIsLoading(true));
|
|
47409
|
-
_b.label = 1;
|
|
47410
|
-
case 1:
|
|
47411
|
-
_b.trys.push([1, 3, , 4]);
|
|
47412
|
-
if (!context) {
|
|
47413
|
-
return [2 /*return*/];
|
|
47414
|
-
}
|
|
47415
|
-
config = {
|
|
47416
|
-
host: context.tideConnection.host,
|
|
47417
|
-
apiKey: context.tideConnection.apiKey
|
|
47418
|
-
};
|
|
47419
|
-
params = new URLSearchParams(location.search);
|
|
47420
|
-
searchRequest = void 0;
|
|
47421
|
-
rq = buildPackagingAccommodationRequestFromQueryParams(params);
|
|
47422
|
-
if (!rq) {
|
|
47423
|
-
throw new Error('Invalid search parameters');
|
|
47424
|
-
}
|
|
47425
|
-
searchRequest = rq;
|
|
47426
|
-
searchRequest.portalId = context.portalId;
|
|
47427
|
-
searchRequest.agentId = context.agentId;
|
|
47428
|
-
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47429
|
-
case 2:
|
|
47430
|
-
packageAccoSearchResults = _b.sent();
|
|
47431
|
-
console.log('package Acco SearchResults', packageAccoSearchResults);
|
|
47432
|
-
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47433
|
-
packageAccoSearchResults,
|
|
47434
|
-
context.filters,
|
|
47435
|
-
(_a = context.tags) !== null && _a !== void 0 ? _a : []
|
|
47436
|
-
);
|
|
47437
|
-
if (!initialFiltersSet) {
|
|
47438
|
-
dispatch(resetFilters(enrichedFilters));
|
|
47439
|
-
setInitialFilters(enrichedFilters);
|
|
47440
|
-
setInitialFiltersSet(true);
|
|
47441
|
-
}
|
|
47442
|
-
dispatch(setPackagingAccoResults(packageAccoSearchResults));
|
|
47443
|
-
initialFilteredResults = applyFiltersToPackageAccoResults(packageAccoSearchResults, filters, null);
|
|
47444
|
-
dispatch(setFilteredPackagingAccoResults(initialFilteredResults));
|
|
47445
|
-
dispatch(setIsLoading(false));
|
|
47446
|
-
return [3 /*break*/, 4];
|
|
47447
|
-
case 3:
|
|
47448
|
-
err_2 = _b.sent();
|
|
47449
|
-
console.error('Search failed', err_2);
|
|
47450
|
-
dispatch(setIsLoading(false));
|
|
47451
|
-
return [3 /*break*/, 4];
|
|
47452
|
-
case 4:
|
|
47453
|
-
return [2 /*return*/];
|
|
47674
|
+
searchRequest = buildSearchFromSeed(seed);
|
|
47675
|
+
return [4 /*yield*/, build.search(config, searchRequest)];
|
|
47676
|
+
case 1:
|
|
47677
|
+
packageSearchResults = _b.sent();
|
|
47678
|
+
console.log('Search results', packageSearchResults);
|
|
47679
|
+
enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
|
|
47680
|
+
if (!initialFiltersSet) {
|
|
47681
|
+
dispatch(resetFilters(enrichedFilters));
|
|
47682
|
+
setInitialFilters(enrichedFilters);
|
|
47683
|
+
setInitialFiltersSet(true);
|
|
47454
47684
|
}
|
|
47455
|
-
|
|
47456
|
-
|
|
47457
|
-
|
|
47458
|
-
|
|
47459
|
-
|
|
47460
|
-
|
|
47461
|
-
|
|
47462
|
-
|
|
47463
|
-
|
|
47464
|
-
|
|
47685
|
+
dispatch(setResults(packageSearchResults));
|
|
47686
|
+
initialFilteredResults = applyFilters(packageSearchResults, filters, null);
|
|
47687
|
+
dispatch(setFilteredResults(initialFilteredResults));
|
|
47688
|
+
if ((packageSearchResults === null || packageSearchResults === void 0 ? void 0 : packageSearchResults.length) > 0) {
|
|
47689
|
+
if (context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight) {
|
|
47690
|
+
dispatch(setSelectedSearchResult(packageSearchResults[0]));
|
|
47691
|
+
}
|
|
47692
|
+
}
|
|
47693
|
+
return [3 /*break*/, 4];
|
|
47694
|
+
case 2:
|
|
47695
|
+
err_1 = _b.sent();
|
|
47696
|
+
console.error('Search failed', err_1);
|
|
47697
|
+
return [3 /*break*/, 4];
|
|
47698
|
+
case 3:
|
|
47699
|
+
dispatch(setIsLoading(false));
|
|
47700
|
+
return [7 /*endfinally*/];
|
|
47701
|
+
case 4:
|
|
47702
|
+
return [2 /*return*/];
|
|
47465
47703
|
}
|
|
47466
|
-
|
|
47467
|
-
|
|
47704
|
+
});
|
|
47705
|
+
});
|
|
47706
|
+
};
|
|
47707
|
+
var runStartTransaction = function () {
|
|
47708
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47709
|
+
var config, transaction, err_2;
|
|
47710
|
+
return __generator(this, function (_a) {
|
|
47711
|
+
switch (_a.label) {
|
|
47712
|
+
case 0:
|
|
47713
|
+
_a.trys.push([0, 2, , 3]);
|
|
47714
|
+
if (!context) return [2 /*return*/, null];
|
|
47715
|
+
config = {
|
|
47716
|
+
host: context.tideConnection.host,
|
|
47717
|
+
apiKey: context.tideConnection.apiKey
|
|
47718
|
+
};
|
|
47719
|
+
return [4 /*yield*/, build.startTransaction(config)];
|
|
47720
|
+
case 1:
|
|
47721
|
+
transaction = _a.sent();
|
|
47722
|
+
console.log('Transaction started', transaction);
|
|
47723
|
+
dispatch(setTransactionId(transaction.transactionId));
|
|
47724
|
+
return [2 /*return*/, transaction.transactionId];
|
|
47725
|
+
case 2:
|
|
47726
|
+
err_2 = _a.sent();
|
|
47727
|
+
console.error('Transaction failed', err_2);
|
|
47728
|
+
return [2 /*return*/, null];
|
|
47729
|
+
case 3:
|
|
47730
|
+
return [2 /*return*/];
|
|
47468
47731
|
}
|
|
47469
|
-
|
|
47470
|
-
|
|
47471
|
-
|
|
47472
|
-
|
|
47473
|
-
|
|
47474
|
-
|
|
47475
|
-
|
|
47476
|
-
|
|
47732
|
+
});
|
|
47733
|
+
});
|
|
47734
|
+
};
|
|
47735
|
+
var runHotelSearch = function (currentTransactionId, seed) {
|
|
47736
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47737
|
+
var config, searchRequest, packageAccoSearchResults, enrichedFilters, initialFilteredResults, err_3;
|
|
47738
|
+
var _a;
|
|
47739
|
+
return __generator(this, function (_b) {
|
|
47740
|
+
switch (_b.label) {
|
|
47741
|
+
case 0:
|
|
47742
|
+
_b.trys.push([0, 2, , 3]);
|
|
47743
|
+
if (!context) return [2 /*return*/];
|
|
47744
|
+
dispatch(setIsLoading(true));
|
|
47745
|
+
config = {
|
|
47746
|
+
host: context.tideConnection.host,
|
|
47747
|
+
apiKey: context.tideConnection.apiKey
|
|
47748
|
+
};
|
|
47749
|
+
searchRequest = buildPackagingAccommodationRequestFromSeed(seed, currentTransactionId);
|
|
47750
|
+
searchRequest.portalId = context.portalId;
|
|
47751
|
+
searchRequest.agentId = context.agentId;
|
|
47752
|
+
console.log('Packaging accommodation search request', searchRequest);
|
|
47753
|
+
return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
|
|
47754
|
+
case 1:
|
|
47755
|
+
packageAccoSearchResults = _b.sent();
|
|
47756
|
+
enrichedFilters = enrichFiltersWithPackageAccoResults(
|
|
47757
|
+
packageAccoSearchResults,
|
|
47758
|
+
context.filters,
|
|
47759
|
+
(_a = context.tags) !== null && _a !== void 0 ? _a : []
|
|
47760
|
+
);
|
|
47761
|
+
if (!initialFiltersSet) {
|
|
47762
|
+
dispatch(resetFilters(enrichedFilters));
|
|
47763
|
+
setInitialFilters(enrichedFilters);
|
|
47764
|
+
setInitialFiltersSet(true);
|
|
47765
|
+
}
|
|
47766
|
+
dispatch(setPackagingAccoResults(packageAccoSearchResults));
|
|
47767
|
+
initialFilteredResults = applyFiltersToPackageAccoResults(packageAccoSearchResults, filters, null);
|
|
47768
|
+
dispatch(setFilteredPackagingAccoResults(initialFilteredResults));
|
|
47769
|
+
dispatch(setIsLoading(false));
|
|
47770
|
+
return [3 /*break*/, 3];
|
|
47771
|
+
case 2:
|
|
47772
|
+
err_3 = _b.sent();
|
|
47773
|
+
console.error('Search failed', err_3);
|
|
47774
|
+
dispatch(setIsLoading(false));
|
|
47775
|
+
return [3 /*break*/, 3];
|
|
47776
|
+
case 3:
|
|
47777
|
+
return [2 /*return*/];
|
|
47477
47778
|
}
|
|
47779
|
+
});
|
|
47780
|
+
});
|
|
47781
|
+
};
|
|
47782
|
+
var runAccommodationFlow = function (seed) {
|
|
47783
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47784
|
+
var currentTransactionId;
|
|
47785
|
+
var _a;
|
|
47786
|
+
return __generator(this, function (_b) {
|
|
47787
|
+
switch (_b.label) {
|
|
47788
|
+
case 0:
|
|
47789
|
+
if (!context || context.showMockup) return [2 /*return*/];
|
|
47790
|
+
currentTransactionId =
|
|
47791
|
+
((_a = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _a === void 0 ? void 0 : _a.transactionId) ||
|
|
47792
|
+
transactionId;
|
|
47793
|
+
console.log('Current transaction ID', currentTransactionId);
|
|
47794
|
+
if (!!currentTransactionId) return [3 /*break*/, 2];
|
|
47795
|
+
dispatch(setIsLoading(true));
|
|
47796
|
+
return [4 /*yield*/, runStartTransaction()];
|
|
47797
|
+
case 1:
|
|
47798
|
+
currentTransactionId = _b.sent();
|
|
47799
|
+
_b.label = 2;
|
|
47800
|
+
case 2:
|
|
47801
|
+
if (!currentTransactionId) {
|
|
47802
|
+
dispatch(setIsLoading(false));
|
|
47803
|
+
return [2 /*return*/];
|
|
47804
|
+
}
|
|
47805
|
+
return [4 /*yield*/, runHotelSearch(currentTransactionId, seed)];
|
|
47806
|
+
case 3:
|
|
47807
|
+
_b.sent();
|
|
47808
|
+
return [2 /*return*/];
|
|
47809
|
+
}
|
|
47810
|
+
});
|
|
47811
|
+
});
|
|
47812
|
+
};
|
|
47813
|
+
// separate Search
|
|
47814
|
+
React.useEffect(
|
|
47815
|
+
function () {
|
|
47816
|
+
if (
|
|
47817
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour ||
|
|
47818
|
+
((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight &&
|
|
47819
|
+
!context.searchConfiguration.enableManualPackaging)
|
|
47820
|
+
) {
|
|
47821
|
+
runSearch();
|
|
47822
|
+
}
|
|
47823
|
+
if ((context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation) {
|
|
47824
|
+
var seed = activeSearchSeed;
|
|
47825
|
+
if (seed) {
|
|
47826
|
+
runAccommodationFlow(seed);
|
|
47827
|
+
}
|
|
47828
|
+
}
|
|
47829
|
+
if (
|
|
47830
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight &&
|
|
47831
|
+
context.searchConfiguration.enableManualPackaging &&
|
|
47832
|
+
context.searchConfiguration.allowAccommodations &&
|
|
47833
|
+
!(context === null || context === void 0 ? void 0 : context.packagingEntry)
|
|
47834
|
+
) {
|
|
47835
|
+
var seed = activeSearchSeed;
|
|
47836
|
+
if (seed) {
|
|
47837
|
+
runAccommodationFlow(seed);
|
|
47838
|
+
}
|
|
47839
|
+
}
|
|
47840
|
+
},
|
|
47841
|
+
[
|
|
47842
|
+
location.search,
|
|
47843
|
+
context === null || context === void 0 ? void 0 : context.showMockup,
|
|
47844
|
+
context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType,
|
|
47845
|
+
context === null || context === void 0 ? void 0 : context.searchConfiguration.enableManualPackaging,
|
|
47846
|
+
context === null || context === void 0 ? void 0 : context.searchConfiguration.allowAccommodations,
|
|
47847
|
+
(_b = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _b === void 0 ? void 0 : _b.transactionId,
|
|
47848
|
+
activeSearchSeed
|
|
47849
|
+
]
|
|
47850
|
+
);
|
|
47851
|
+
React.useEffect(
|
|
47852
|
+
function () {
|
|
47853
|
+
if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
|
|
47854
|
+
console.log('original packaging entry from context', context.packagingEntry);
|
|
47855
|
+
dispatch(setEditablePackagingEntry(structuredClone(context.packagingEntry)));
|
|
47856
|
+
dispatch(setTransactionId(context.packagingEntry.transactionId));
|
|
47478
47857
|
}
|
|
47479
47858
|
},
|
|
47480
|
-
[
|
|
47859
|
+
[context === null || context === void 0 ? void 0 : context.packagingEntry]
|
|
47481
47860
|
);
|
|
47482
|
-
//
|
|
47861
|
+
// separate detailsCall
|
|
47483
47862
|
React.useEffect(
|
|
47484
47863
|
function () {
|
|
47485
47864
|
var fetchDetails = function () {
|
|
47486
47865
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47487
|
-
var config, selectedItem,
|
|
47488
|
-
|
|
47489
|
-
|
|
47866
|
+
var config, selectedItem, requestRooms, seed, detailsRequest, detailsResponse, err_4;
|
|
47867
|
+
var _a;
|
|
47868
|
+
return __generator(this, function (_b) {
|
|
47869
|
+
switch (_b.label) {
|
|
47490
47870
|
case 0:
|
|
47491
|
-
setDetailsIsLoading(true);
|
|
47492
|
-
console.log('Fetching details for selected search result', selectedSearchResult);
|
|
47493
47871
|
if (!selectedSearchResult || !context) return [2 /*return*/];
|
|
47872
|
+
setDetailsIsLoading(true);
|
|
47494
47873
|
if (
|
|
47495
47874
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
47496
47875
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour
|
|
47497
47876
|
) {
|
|
47498
47877
|
handleFlyInToggle(true);
|
|
47499
47878
|
}
|
|
47500
|
-
|
|
47879
|
+
_b.label = 1;
|
|
47501
47880
|
case 1:
|
|
47502
|
-
|
|
47881
|
+
_b.trys.push([1, 3, , 4]);
|
|
47503
47882
|
config = {
|
|
47504
47883
|
host: context.tideConnection.host,
|
|
47505
47884
|
apiKey: context.tideConnection.apiKey
|
|
@@ -47511,14 +47890,14 @@ var SearchResultsContainer = function () {
|
|
|
47511
47890
|
// TODO: handle this case better, show an error message to the user
|
|
47512
47891
|
return [2 /*return*/];
|
|
47513
47892
|
}
|
|
47514
|
-
params = new URLSearchParams(location.search);
|
|
47515
|
-
entryId = getStringFromParams(params, 'entryId');
|
|
47516
47893
|
requestRooms = void 0;
|
|
47517
|
-
if (
|
|
47518
|
-
requestRooms =
|
|
47894
|
+
if (context === null || context === void 0 ? void 0 : context.packagingEntry) {
|
|
47895
|
+
requestRooms = getRequestRoomsFromPackagingEntry(context.packagingEntry);
|
|
47519
47896
|
} else {
|
|
47520
|
-
|
|
47521
|
-
requestRooms =
|
|
47897
|
+
seed = activeSearchSeed;
|
|
47898
|
+
requestRooms = ((_a = seed === null || seed === void 0 ? void 0 : seed.rooms) === null || _a === void 0 ? void 0 : _a.length)
|
|
47899
|
+
? seed.rooms
|
|
47900
|
+
: getRequestRooms(null);
|
|
47522
47901
|
}
|
|
47523
47902
|
detailsRequest = {
|
|
47524
47903
|
officeId: 1,
|
|
@@ -47540,29 +47919,18 @@ var SearchResultsContainer = function () {
|
|
|
47540
47919
|
},
|
|
47541
47920
|
agentId: context.agentId
|
|
47542
47921
|
};
|
|
47543
|
-
if (!(entry && entryId)) return [3 /*break*/, 3];
|
|
47544
|
-
requestRooms = getRequestRoomsFromEntry(entry.rooms);
|
|
47545
47922
|
return [4 /*yield*/, build.details(config, detailsRequest)];
|
|
47546
47923
|
case 2:
|
|
47547
|
-
detailsResponse =
|
|
47548
|
-
console.log('Details:', detailsResponse);
|
|
47549
|
-
dispatch(setBookingPackageDetails({ details: detailsResponse === null || detailsResponse === void 0 ? void 0 : detailsResponse.payload }));
|
|
47550
|
-
return [3 /*break*/, 5];
|
|
47551
|
-
case 3:
|
|
47552
|
-
return [4 /*yield*/, build.details(config, detailsRequest)];
|
|
47553
|
-
case 4:
|
|
47554
|
-
detailsResponse = _a.sent();
|
|
47924
|
+
detailsResponse = _b.sent();
|
|
47555
47925
|
dispatch(setBookingPackageDetails({ details: detailsResponse === null || detailsResponse === void 0 ? void 0 : detailsResponse.payload }));
|
|
47556
47926
|
setDetailsIsLoading(false);
|
|
47557
|
-
|
|
47558
|
-
case
|
|
47559
|
-
|
|
47560
|
-
|
|
47561
|
-
err_3 = _a.sent();
|
|
47562
|
-
console.error('Failed to fetch package details', err_3);
|
|
47927
|
+
return [3 /*break*/, 4];
|
|
47928
|
+
case 3:
|
|
47929
|
+
err_4 = _b.sent();
|
|
47930
|
+
console.error('Failed to fetch package details', err_4);
|
|
47563
47931
|
setDetailsIsLoading(false);
|
|
47564
|
-
return [3 /*break*/,
|
|
47565
|
-
case
|
|
47932
|
+
return [3 /*break*/, 4];
|
|
47933
|
+
case 4:
|
|
47566
47934
|
return [2 /*return*/];
|
|
47567
47935
|
}
|
|
47568
47936
|
});
|
|
@@ -47572,8 +47940,7 @@ var SearchResultsContainer = function () {
|
|
|
47572
47940
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
47573
47941
|
var config,
|
|
47574
47942
|
selectedItem,
|
|
47575
|
-
|
|
47576
|
-
rooms,
|
|
47943
|
+
seed,
|
|
47577
47944
|
tagId,
|
|
47578
47945
|
destinationAirport,
|
|
47579
47946
|
destinationId,
|
|
@@ -47585,38 +47952,37 @@ var SearchResultsContainer = function () {
|
|
|
47585
47952
|
destinationIsAirport,
|
|
47586
47953
|
detailSearchRequest,
|
|
47587
47954
|
packageAccoSearchDetails,
|
|
47588
|
-
|
|
47589
|
-
var _a, _b;
|
|
47590
|
-
return __generator(this, function (
|
|
47591
|
-
switch (
|
|
47955
|
+
err_5;
|
|
47956
|
+
var _a, _b, _c, _d, _e;
|
|
47957
|
+
return __generator(this, function (_f) {
|
|
47958
|
+
switch (_f.label) {
|
|
47592
47959
|
case 0:
|
|
47593
47960
|
if (!selectedPackagingAccoResultCode || !context) return [2 /*return*/];
|
|
47961
|
+
setDetailsIsLoading(true);
|
|
47594
47962
|
if (
|
|
47595
47963
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.Accommodation ||
|
|
47964
|
+
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.AccommodationAndFlight ||
|
|
47596
47965
|
(context === null || context === void 0 ? void 0 : context.searchConfiguration.qsmType) === build.PortalQsmType.GroupTour
|
|
47597
47966
|
) {
|
|
47598
47967
|
handleFlyInToggle(true);
|
|
47599
47968
|
}
|
|
47600
|
-
|
|
47969
|
+
_f.label = 1;
|
|
47601
47970
|
case 1:
|
|
47602
|
-
|
|
47971
|
+
_f.trys.push([1, 3, , 4]);
|
|
47603
47972
|
config = {
|
|
47604
47973
|
host: context.tideConnection.host,
|
|
47605
47974
|
apiKey: context.tideConnection.apiKey
|
|
47606
47975
|
};
|
|
47607
|
-
console.log('selectedPackagingAccoResultCode', selectedPackagingAccoResultCode);
|
|
47608
47976
|
selectedItem = packagingAccoResults.find(function (r) {
|
|
47609
47977
|
return r.code === selectedPackagingAccoResultCode;
|
|
47610
47978
|
});
|
|
47611
|
-
console.log('Selected packaging acco item', selectedItem);
|
|
47612
47979
|
if (!selectedItem) {
|
|
47613
47980
|
// TODO: handle this case better, show an error message to the user
|
|
47614
47981
|
return [2 /*return*/];
|
|
47615
47982
|
}
|
|
47616
|
-
|
|
47617
|
-
|
|
47618
|
-
|
|
47619
|
-
destinationAirport = getStringFromParams(params, 'destinationAirport');
|
|
47983
|
+
seed = activeSearchSeed;
|
|
47984
|
+
tagId = (_a = seed === null || seed === void 0 ? void 0 : seed.tagId) !== null && _a !== void 0 ? _a : null;
|
|
47985
|
+
destinationAirport = (_b = seed === null || seed === void 0 ? void 0 : seed.destinationAirport) !== null && _b !== void 0 ? _b : null;
|
|
47620
47986
|
destinationId = null;
|
|
47621
47987
|
destinationIsCountry = false;
|
|
47622
47988
|
destinationIsRegion = false;
|
|
@@ -47641,14 +48007,15 @@ var SearchResultsContainer = function () {
|
|
|
47641
48007
|
destinationIsAirport = true;
|
|
47642
48008
|
}
|
|
47643
48009
|
detailSearchRequest = {
|
|
48010
|
+
transactionId: transactionId !== null && transactionId !== void 0 ? transactionId : '',
|
|
47644
48011
|
officeId: 1,
|
|
47645
48012
|
portalId: context.portalId,
|
|
47646
48013
|
agentId: context.agentId,
|
|
47647
|
-
catalogueId: (
|
|
48014
|
+
catalogueId: (_c = context.searchConfiguration.defaultCatalogueId) !== null && _c !== void 0 ? _c : 0,
|
|
47648
48015
|
searchConfigurationId: context.searchConfiguration.id,
|
|
47649
48016
|
vendorConfigurationId: selectedItem.vendorId,
|
|
47650
|
-
language: (
|
|
47651
|
-
serviceType:
|
|
48017
|
+
language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB',
|
|
48018
|
+
serviceType: ACCOMMODATION_SERVICE_TYPE,
|
|
47652
48019
|
fromDate: selectedItem.fromDate,
|
|
47653
48020
|
toDate: selectedItem.toDate,
|
|
47654
48021
|
destination: {
|
|
@@ -47661,18 +48028,22 @@ var SearchResultsContainer = function () {
|
|
|
47661
48028
|
code: destinationCode
|
|
47662
48029
|
},
|
|
47663
48030
|
productCode: selectedItem.code ? selectedItem.code : '',
|
|
47664
|
-
rooms:
|
|
48031
|
+
rooms: getPackagingRequestRoomsFromBookingRooms(
|
|
48032
|
+
(_e = seed === null || seed === void 0 ? void 0 : seed.rooms) !== null && _e !== void 0 ? _e : null
|
|
48033
|
+
),
|
|
47665
48034
|
tagIds: tagId ? [tagId] : []
|
|
47666
48035
|
};
|
|
47667
48036
|
return [4 /*yield*/, build.searchPackagingAccommodations(config, detailSearchRequest)];
|
|
47668
48037
|
case 2:
|
|
47669
|
-
packageAccoSearchDetails =
|
|
48038
|
+
packageAccoSearchDetails = _f.sent();
|
|
47670
48039
|
console.log('Packaging Acco Search details', packageAccoSearchDetails);
|
|
47671
48040
|
dispatch(setPackagingAccoSearchDetails(packageAccoSearchDetails));
|
|
48041
|
+
setDetailsIsLoading(false);
|
|
47672
48042
|
return [3 /*break*/, 4];
|
|
47673
48043
|
case 3:
|
|
47674
|
-
|
|
47675
|
-
console.error('Failed to fetch package details',
|
|
48044
|
+
err_5 = _f.sent();
|
|
48045
|
+
console.error('Failed to fetch package details', err_5);
|
|
48046
|
+
setDetailsIsLoading(false);
|
|
47676
48047
|
return [3 /*break*/, 4];
|
|
47677
48048
|
case 4:
|
|
47678
48049
|
return [2 /*return*/];
|
|
@@ -47686,6 +48057,7 @@ var SearchResultsContainer = function () {
|
|
|
47686
48057
|
if (selectedPackagingAccoResultCode) {
|
|
47687
48058
|
fetchPackagingAccoSearchDetails();
|
|
47688
48059
|
}
|
|
48060
|
+
dispatch(setAccommodationFlyInStep('details'));
|
|
47689
48061
|
},
|
|
47690
48062
|
[selectedSearchResult, selectedPackagingAccoResultCode]
|
|
47691
48063
|
);
|
|
@@ -47701,6 +48073,64 @@ var SearchResultsContainer = function () {
|
|
|
47701
48073
|
},
|
|
47702
48074
|
[filters, results, packagingAccoResults, selectedSortType]
|
|
47703
48075
|
);
|
|
48076
|
+
React.useEffect(
|
|
48077
|
+
function () {
|
|
48078
|
+
setInitialFiltersSet(false);
|
|
48079
|
+
},
|
|
48080
|
+
[activeSearchSeed]
|
|
48081
|
+
);
|
|
48082
|
+
var handleEditAccommodation = function (segments) {
|
|
48083
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
48084
|
+
var sourceEntry, seed;
|
|
48085
|
+
return __generator(this, function (_a) {
|
|
48086
|
+
switch (_a.label) {
|
|
48087
|
+
case 0:
|
|
48088
|
+
sourceEntry =
|
|
48089
|
+
editablePackagingEntry !== null && editablePackagingEntry !== void 0
|
|
48090
|
+
? editablePackagingEntry
|
|
48091
|
+
: context === null || context === void 0
|
|
48092
|
+
? void 0
|
|
48093
|
+
: context.packagingEntry;
|
|
48094
|
+
if (!sourceEntry) return [2 /*return*/];
|
|
48095
|
+
seed = buildSearchSeedFromAccommodationSegments(sourceEntry, segments);
|
|
48096
|
+
if (!seed) return [2 /*return*/];
|
|
48097
|
+
setDetailsIsLoading(true);
|
|
48098
|
+
setSelectedAccommodationSeed(seed);
|
|
48099
|
+
dispatch(setAccommodationFlyInStep('results'));
|
|
48100
|
+
handleFlyInToggle(true);
|
|
48101
|
+
return [4 /*yield*/, runAccommodationFlow(seed)];
|
|
48102
|
+
case 1:
|
|
48103
|
+
_a.sent();
|
|
48104
|
+
setDetailsIsLoading(false);
|
|
48105
|
+
return [2 /*return*/];
|
|
48106
|
+
}
|
|
48107
|
+
});
|
|
48108
|
+
});
|
|
48109
|
+
};
|
|
48110
|
+
var buildSearchSeedFromAccommodationSegments = function (entry, segments) {
|
|
48111
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
48112
|
+
if (!(segments === null || segments === void 0 ? void 0 : segments.length)) return null;
|
|
48113
|
+
var sortedSegments = __spreadArray([], segments, true).sort(function (a, b) {
|
|
48114
|
+
return new Date(a.from).getTime() - new Date(b.from).getTime();
|
|
48115
|
+
});
|
|
48116
|
+
var firstSegment = lodash.first(sortedSegments);
|
|
48117
|
+
var lastSegment = lodash.last(sortedSegments);
|
|
48118
|
+
if (!firstSegment || !lastSegment) return null;
|
|
48119
|
+
return {
|
|
48120
|
+
fromDate: toDateOnlyString(firstSegment.from),
|
|
48121
|
+
toDate: toDateOnlyString(lastSegment.to),
|
|
48122
|
+
country: (_b = (_a = firstSegment.country) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
|
|
48123
|
+
region: (_d = (_c = firstSegment.region) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null,
|
|
48124
|
+
oord: (_f = (_e = firstSegment.oord) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null,
|
|
48125
|
+
location: (_h = (_g = firstSegment.location) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : null,
|
|
48126
|
+
hotel: parseHotelId(firstSegment),
|
|
48127
|
+
hotelCode: (_j = firstSegment.productCode) !== null && _j !== void 0 ? _j : null,
|
|
48128
|
+
tagId: null,
|
|
48129
|
+
destinationAirport: getDestinationAirportFromEntry((_k = entry.lines) !== null && _k !== void 0 ? _k : []),
|
|
48130
|
+
departureAirport: getDepartureAirportFromEntry((_l = entry.lines) !== null && _l !== void 0 ? _l : []),
|
|
48131
|
+
rooms: getRequestRoomsFromPackagingSegments(entry, sortedSegments)
|
|
48132
|
+
};
|
|
48133
|
+
};
|
|
47704
48134
|
return React__default['default'].createElement(
|
|
47705
48135
|
'div',
|
|
47706
48136
|
{ id: 'tide-booking', className: 'search__bg' },
|
|
@@ -47752,7 +48182,8 @@ var SearchResultsContainer = function () {
|
|
|
47752
48182
|
handleSetIsOpen: function () {
|
|
47753
48183
|
return setItineraryOpen(!itineraryOpen);
|
|
47754
48184
|
},
|
|
47755
|
-
isLoading: isLoading
|
|
48185
|
+
isLoading: isLoading,
|
|
48186
|
+
onEditAccommodation: handleEditAccommodation
|
|
47756
48187
|
}),
|
|
47757
48188
|
React__default['default'].createElement(
|
|
47758
48189
|
'div',
|
|
@@ -47817,6 +48248,7 @@ var SearchResultsContainer = function () {
|
|
|
47817
48248
|
'span',
|
|
47818
48249
|
{ className: 'search__result-row-text' },
|
|
47819
48250
|
!isLoading &&
|
|
48251
|
+
!context.packagingEntry &&
|
|
47820
48252
|
React__default['default'].createElement(
|
|
47821
48253
|
React__default['default'].Fragment,
|
|
47822
48254
|
null,
|
|
@@ -47832,7 +48264,8 @@ var SearchResultsContainer = function () {
|
|
|
47832
48264
|
translations.SRP.TOTAL_RESULTS_LABEL
|
|
47833
48265
|
)
|
|
47834
48266
|
),
|
|
47835
|
-
!
|
|
48267
|
+
!context.packagingEntry &&
|
|
48268
|
+
!isMobile &&
|
|
47836
48269
|
sortByTypes &&
|
|
47837
48270
|
sortByTypes.length > 0 &&
|
|
47838
48271
|
React__default['default'].createElement(
|
|
@@ -47860,25 +48293,35 @@ var SearchResultsContainer = function () {
|
|
|
47860
48293
|
React__default['default'].createElement(
|
|
47861
48294
|
'div',
|
|
47862
48295
|
{ className: 'search__results__wrapper' },
|
|
47863
|
-
context.showTabViews &&
|
|
48296
|
+
context.showTabViews &&
|
|
48297
|
+
(context.searchConfiguration.qsmType === build.PortalQsmType.GroupTour ||
|
|
48298
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.Accommodation) &&
|
|
48299
|
+
React__default['default'].createElement(TabViews, null),
|
|
47864
48300
|
context.showRoundTripResults && context.showMockup && React__default['default'].createElement(RoundTripResults, null),
|
|
47865
48301
|
context.searchConfiguration.qsmType === build.PortalQsmType.GroupTour &&
|
|
47866
48302
|
React__default['default'].createElement(GroupTourResults, { isLoading: isLoading }),
|
|
47867
48303
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48304
|
+
!context.packagingEntry &&
|
|
47868
48305
|
context.showFlightResults &&
|
|
47869
48306
|
(bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights) &&
|
|
47870
48307
|
React__default['default'].createElement(FlightResults, {
|
|
47871
48308
|
flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.outwardFlights,
|
|
47872
48309
|
isDeparture: true
|
|
47873
48310
|
}),
|
|
47874
|
-
context.showHotelAccommodationResults &&
|
|
48311
|
+
context.showHotelAccommodationResults &&
|
|
48312
|
+
!context.packagingEntry &&
|
|
48313
|
+
React__default['default'].createElement(HotelAccommodationResults, { isLoading: isLoading }),
|
|
47875
48314
|
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48315
|
+
!context.packagingEntry &&
|
|
47876
48316
|
context.showFlightResults &&
|
|
47877
48317
|
(bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights) &&
|
|
47878
48318
|
React__default['default'].createElement(FlightResults, {
|
|
47879
48319
|
flights: bookingPackageDetails === null || bookingPackageDetails === void 0 ? void 0 : bookingPackageDetails.returnFlights,
|
|
47880
48320
|
isDeparture: false
|
|
47881
|
-
})
|
|
48321
|
+
}),
|
|
48322
|
+
context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
|
|
48323
|
+
context.packagingEntry &&
|
|
48324
|
+
React__default['default'].createElement('span', null, 'TODO: Show Full Itinerary here')
|
|
47882
48325
|
)
|
|
47883
48326
|
),
|
|
47884
48327
|
React__default['default'].createElement(FlyIn, {
|
|
@@ -47886,10 +48329,15 @@ var SearchResultsContainer = function () {
|
|
|
47886
48329
|
srpType: context.searchConfiguration.qsmType,
|
|
47887
48330
|
isOpen: flyInIsOpen,
|
|
47888
48331
|
setIsOpen: handleFlyInToggle,
|
|
48332
|
+
handleConfirm: function () {
|
|
48333
|
+
return handleConfirmHotelSwap();
|
|
48334
|
+
},
|
|
47889
48335
|
onPanelRef: function (el) {
|
|
47890
48336
|
return (panelRef.current = el);
|
|
47891
48337
|
},
|
|
47892
|
-
detailsLoading: detailsIsLoading
|
|
48338
|
+
detailsLoading: detailsIsLoading,
|
|
48339
|
+
accommodationStep: accommodationFlyInStep,
|
|
48340
|
+
isPackageEditFlow: !!context.packagingEntry
|
|
47893
48341
|
})
|
|
47894
48342
|
)
|
|
47895
48343
|
)
|