@qite/tide-booking-component 1.4.128 → 1.4.129
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 +206 -211
- package/build/build-cjs/src/shared/booking/shared-sidebar.d.ts +0 -2
- package/build/build-cjs/src/shared/utils/booking-summary.d.ts +1 -1
- package/build/build-esm/index.js +206 -211
- package/build/build-esm/src/shared/booking/shared-sidebar.d.ts +0 -2
- package/build/build-esm/src/shared/utils/booking-summary.d.ts +1 -1
- package/package.json +1 -1
package/build/build-cjs/index.js
CHANGED
|
@@ -21354,7 +21354,7 @@ const SidebarFlight = ({ title, flightMetaData, translations }) => {
|
|
|
21354
21354
|
React__default["default"].createElement("div", { className: "pricing-summary__value" }, translations.SIDEBAR.LUGGAGE_INCLUDED)))));
|
|
21355
21355
|
};
|
|
21356
21356
|
|
|
21357
|
-
const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, headerComponent, travelerRooms, startDateText, endDateText, loaderComponent, departureFlightMetaData, returnFlightMetaData, accommodations, packagingAccommodations, isOnRequest, includedServiceTypes, basePrice, commission,
|
|
21357
|
+
const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, headerComponent, travelerRooms, startDateText, endDateText, loaderComponent, departureFlightMetaData, returnFlightMetaData, accommodations, packagingAccommodations, isOnRequest, includedServiceTypes, basePrice, commission, totalPrice, includedCosts, extraCosts, deposit, basePricePerPaxType, seperateExtraPricePerPaxType, isUnavailable, agent, footerComponent }) => {
|
|
21358
21358
|
if (!translations)
|
|
21359
21359
|
return null;
|
|
21360
21360
|
const [active, setActive] = React.useState(false);
|
|
@@ -21365,6 +21365,8 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21365
21365
|
const canShowPriceBreakdownSection = Boolean(basePrice && basePrice > 0) || !lodash.isEmpty(includedCosts) || !lodash.isEmpty(extraCosts);
|
|
21366
21366
|
const canShowTotalPriceSection = Boolean(totalPrice && totalPrice > 0);
|
|
21367
21367
|
const remainingAmount = Number(((totalPrice ?? 0) - (deposit ?? 0)).toFixed(2));
|
|
21368
|
+
// TODO: Determine currency code based on the data, for now default to EUR
|
|
21369
|
+
let currencyCode = 'EUR';
|
|
21368
21370
|
return (React__default["default"].createElement("div", { className: buildClassName(['booking__sidebar', active && 'booking__sidebar--active']) },
|
|
21369
21371
|
headerComponent,
|
|
21370
21372
|
React__default["default"].createElement("div", { className: "booking__sidebar-frame" },
|
|
@@ -21494,7 +21496,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21494
21496
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
21495
21497
|
React__default["default"].createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
21496
21498
|
translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React__default["default"].createElement("div", { className: "pricing-summary__group" },
|
|
21497
|
-
|
|
21499
|
+
agent && (React__default["default"].createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
21498
21500
|
React__default["default"].createElement("div", { className: "pricing-summary__property" },
|
|
21499
21501
|
React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.COMMISSION)),
|
|
21500
21502
|
React__default["default"].createElement("div", { className: "pricing-summary__value" },
|
|
@@ -21510,7 +21512,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21510
21512
|
};
|
|
21511
21513
|
|
|
21512
21514
|
const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
21513
|
-
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge
|
|
21515
|
+
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge } = React.useContext(SettingsContext);
|
|
21514
21516
|
const bookingAttributes = reactRedux.useSelector(selectBookingAttributes);
|
|
21515
21517
|
const selectFormRooms = React.useMemo(() => makeSelectFormRooms(maxChildAge), [maxChildAge]);
|
|
21516
21518
|
const rooms = reactRedux.useSelector(selectFormRooms);
|
|
@@ -21527,7 +21529,7 @@ const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
|
21527
21529
|
const isUnavailable = reactRedux.useSelector(selectIsUnavailable) || false;
|
|
21528
21530
|
const isLoading = isFetchingProductOptions || isFetchingPriceDetails;
|
|
21529
21531
|
const agent = reactRedux.useSelector(selectAgentAdressId);
|
|
21530
|
-
return (React__default["default"].createElement(SharedSidebar, { productName: productName, thumbnailUrl: thumbnailUrl, isLoading: isLoading, startDateText: getDateText(bookingAttributes?.startDate), endDateText: bookingAttributes?.startDate !== bookingAttributes?.endDate ? getDateText(bookingAttributes?.endDate) : undefined, travelerRooms: travelerRooms, departureFlightMetaData: departureFlightMetaData, returnFlightMetaData: returnFlightMetaData, basePrice: reactRedux.useSelector(selectBasePrice), commission: reactRedux.useSelector(selectCommission),
|
|
21532
|
+
return (React__default["default"].createElement(SharedSidebar, { productName: productName, thumbnailUrl: thumbnailUrl, isLoading: isLoading, startDateText: getDateText(bookingAttributes?.startDate), endDateText: bookingAttributes?.startDate !== bookingAttributes?.endDate ? getDateText(bookingAttributes?.endDate) : undefined, travelerRooms: travelerRooms, departureFlightMetaData: departureFlightMetaData, returnFlightMetaData: returnFlightMetaData, basePrice: reactRedux.useSelector(selectBasePrice), commission: reactRedux.useSelector(selectCommission), totalPrice: reactRedux.useSelector(selectTotalPrice), includedCosts: reactRedux.useSelector(selectSeparatePackagePriceDetails$1), extraCosts: reactRedux.useSelector(selectSeparateExtraPriceDetails), accommodations: accommodations, includedServiceTypes: includedServiceTypes, deposit: reactRedux.useSelector(selectDeposit), isOnRequest: reactRedux.useSelector(selectIsOnRequest), headerComponent: sidebarHeaderComponent ?? undefined, footerComponent: sidebarFooterComponent ?? undefined, loaderComponent: loaderComponent ?? undefined, isUnavailable: isUnavailable, basePricePerPaxType: showPricesPerPaxType ? reactRedux.useSelector(selectBasePricePerPaxType) : undefined, seperateExtraPricePerPaxType: showPricesPerPaxType ? reactRedux.useSelector(selectSeparateExtraPriceDetailsPerPaxType) : undefined, translations: translations, agent: agent }));
|
|
21531
21533
|
};
|
|
21532
21534
|
|
|
21533
21535
|
const SummaryPerPaxOptionGroup = ({ group }) => {
|
|
@@ -21709,7 +21711,7 @@ const Summary = () => {
|
|
|
21709
21711
|
}
|
|
21710
21712
|
else {
|
|
21711
21713
|
const location = window.location;
|
|
21712
|
-
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath
|
|
21714
|
+
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath}?${bookingQueryString}`;
|
|
21713
21715
|
}
|
|
21714
21716
|
}
|
|
21715
21717
|
}
|
|
@@ -22640,12 +22642,7 @@ const TravelersForm = () => {
|
|
|
22640
22642
|
navigate(`${!settings.skipBasePathInRouting ? settings.basePath : ''}${settings.summary.pathSuffix}?${bookingQueryString}`);
|
|
22641
22643
|
return;
|
|
22642
22644
|
}
|
|
22643
|
-
|
|
22644
|
-
dispatch(fetchPackage());
|
|
22645
|
-
}
|
|
22646
|
-
else {
|
|
22647
|
-
dispatch(fetchPriceDetails());
|
|
22648
|
-
}
|
|
22645
|
+
dispatch(fetchPackage());
|
|
22649
22646
|
if (settings.skipRouter)
|
|
22650
22647
|
dispatch(setCurrentStep$1(travelersFirstStep ? FLIGHT_OPTIONS_FORM_STEP : SUMMARY_STEP));
|
|
22651
22648
|
else
|
|
@@ -22656,8 +22653,6 @@ const TravelersForm = () => {
|
|
|
22656
22653
|
dispatch(fetchPriceDetails());
|
|
22657
22654
|
}, [dispatch]);
|
|
22658
22655
|
React.useEffect(() => {
|
|
22659
|
-
if (!travelersFirstStep)
|
|
22660
|
-
return;
|
|
22661
22656
|
if (!bookingAttributes?.rooms?.length)
|
|
22662
22657
|
return;
|
|
22663
22658
|
if (!hasMounted) {
|
|
@@ -22682,7 +22677,7 @@ const TravelersForm = () => {
|
|
|
22682
22677
|
}
|
|
22683
22678
|
};
|
|
22684
22679
|
fetchAll();
|
|
22685
|
-
}, [bookingAttributes?.rooms, dispatch, hasMounted
|
|
22680
|
+
}, [bookingAttributes?.rooms, dispatch, hasMounted]);
|
|
22686
22681
|
const roomsQuery = React.useMemo(() => formik$1.values.rooms
|
|
22687
22682
|
.map((room) => {
|
|
22688
22683
|
const adults = room.adults ? room.adults.length : 0;
|
|
@@ -31048,10 +31043,10 @@ const findAccommodationForDay = (nodes, currentDay) => {
|
|
|
31048
31043
|
};
|
|
31049
31044
|
const buildItineraryHtml = (itinerary, translations) => {
|
|
31050
31045
|
if (!itinerary) {
|
|
31051
|
-
return `
|
|
31052
|
-
<div class="itinerary-shell">
|
|
31053
|
-
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31054
|
-
</div>
|
|
31046
|
+
return `
|
|
31047
|
+
<div class="itinerary-shell">
|
|
31048
|
+
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31049
|
+
</div>
|
|
31055
31050
|
`;
|
|
31056
31051
|
}
|
|
31057
31052
|
const allNodes = itinerary.nodes ?? [];
|
|
@@ -31065,66 +31060,66 @@ const buildItineraryHtml = (itinerary, translations) => {
|
|
|
31065
31060
|
const hasAccommodationInCurrentNode = uniqueItems.some(isAccommodationItem);
|
|
31066
31061
|
const activeAccommodation = findAccommodationForDay(allNodes, startDay);
|
|
31067
31062
|
const accommodationBanner = !hasAccommodationInCurrentNode && activeAccommodation
|
|
31068
|
-
? `
|
|
31069
|
-
<div class="itinerary-node__accommodation-banner">
|
|
31070
|
-
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31071
|
-
</div>
|
|
31063
|
+
? `
|
|
31064
|
+
<div class="itinerary-node__accommodation-banner">
|
|
31065
|
+
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31066
|
+
</div>
|
|
31072
31067
|
`
|
|
31073
31068
|
: '';
|
|
31074
31069
|
const itemsHtml = hasItems
|
|
31075
31070
|
? uniqueItems
|
|
31076
|
-
.map((item) => `
|
|
31077
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31078
|
-
${item.contents ?? ''}
|
|
31079
|
-
</article>
|
|
31071
|
+
.map((item) => `
|
|
31072
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31073
|
+
${item.contents ?? ''}
|
|
31074
|
+
</article>
|
|
31080
31075
|
`)
|
|
31081
31076
|
.join('')
|
|
31082
31077
|
: `<div class="itinerary-node__empty">${translations.ITINERARY.NO_ITEMS}</div>`;
|
|
31083
|
-
return `
|
|
31084
|
-
<section class="itinerary-node">
|
|
31085
|
-
<header class="itinerary-node__header">
|
|
31086
|
-
|
|
31087
|
-
<div class="itinerary-node__day">
|
|
31088
|
-
<p class="itinerary-node__day-day">${day}</p>
|
|
31089
|
-
<p class="itinerary-node__day-month">${month}</p>
|
|
31090
|
-
</div>
|
|
31091
|
-
|
|
31092
|
-
<div>
|
|
31093
|
-
<h2 class="itinerary-node__title">${escapeHtml(node.title)}</h2>
|
|
31094
|
-
</div>
|
|
31095
|
-
</header>
|
|
31096
|
-
|
|
31097
|
-
<div class="itinerary-node__content">
|
|
31098
|
-
${accommodationBanner}
|
|
31099
|
-
${itemsHtml}
|
|
31100
|
-
</div>
|
|
31101
|
-
</section>
|
|
31078
|
+
return `
|
|
31079
|
+
<section class="itinerary-node">
|
|
31080
|
+
<header class="itinerary-node__header">
|
|
31081
|
+
|
|
31082
|
+
<div class="itinerary-node__day">
|
|
31083
|
+
<p class="itinerary-node__day-day">${day}</p>
|
|
31084
|
+
<p class="itinerary-node__day-month">${month}</p>
|
|
31085
|
+
</div>
|
|
31086
|
+
|
|
31087
|
+
<div>
|
|
31088
|
+
<h2 class="itinerary-node__title">${escapeHtml(node.title)}</h2>
|
|
31089
|
+
</div>
|
|
31090
|
+
</header>
|
|
31091
|
+
|
|
31092
|
+
<div class="itinerary-node__content">
|
|
31093
|
+
${accommodationBanner}
|
|
31094
|
+
${itemsHtml}
|
|
31095
|
+
</div>
|
|
31096
|
+
</section>
|
|
31102
31097
|
`;
|
|
31103
31098
|
})
|
|
31104
31099
|
.join('');
|
|
31105
31100
|
const defaultItemsHtml = itinerary.defaultItems && itinerary.defaultItems.length > 0
|
|
31106
|
-
? `
|
|
31107
|
-
<section class="itinerary-default-items">
|
|
31108
|
-
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31101
|
+
? `
|
|
31102
|
+
<section class="itinerary-default-items">
|
|
31103
|
+
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31109
31104
|
${getUniqueItems(itinerary.defaultItems)
|
|
31110
|
-
.map((item) => `
|
|
31111
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31112
|
-
${item.contents ?? ''}
|
|
31113
|
-
</article>
|
|
31105
|
+
.map((item) => `
|
|
31106
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31107
|
+
${item.contents ?? ''}
|
|
31108
|
+
</article>
|
|
31114
31109
|
`)
|
|
31115
|
-
.join('')}
|
|
31116
|
-
</section>
|
|
31110
|
+
.join('')}
|
|
31111
|
+
</section>
|
|
31117
31112
|
`
|
|
31118
31113
|
: '';
|
|
31119
|
-
return `
|
|
31120
|
-
<div class="itinerary-shell">
|
|
31121
|
-
${itinerary.title ? `<header class="itinerary-shell__header"><h1 class="itinerary-shell__title">${escapeHtml(itinerary.title)}</h1></header>` : ''}
|
|
31122
|
-
|
|
31123
|
-
<div class="itinerary-shell__content">
|
|
31124
|
-
${nodesHtml}
|
|
31125
|
-
${defaultItemsHtml}
|
|
31126
|
-
</div>
|
|
31127
|
-
</div>
|
|
31114
|
+
return `
|
|
31115
|
+
<div class="itinerary-shell">
|
|
31116
|
+
${itinerary.title ? `<header class="itinerary-shell__header"><h1 class="itinerary-shell__title">${escapeHtml(itinerary.title)}</h1></header>` : ''}
|
|
31117
|
+
|
|
31118
|
+
<div class="itinerary-shell__content">
|
|
31119
|
+
${nodesHtml}
|
|
31120
|
+
${defaultItemsHtml}
|
|
31121
|
+
</div>
|
|
31122
|
+
</div>
|
|
31128
31123
|
`;
|
|
31129
31124
|
};
|
|
31130
31125
|
const FullItinerary = ({ isLoading }) => {
|
|
@@ -31144,141 +31139,141 @@ const FullItinerary = ({ isLoading }) => {
|
|
|
31144
31139
|
}
|
|
31145
31140
|
const shadowRoot = host.shadowRoot ?? host.attachShadow({ mode: 'open' });
|
|
31146
31141
|
shadowRootRef.current = shadowRoot;
|
|
31147
|
-
shadowRoot.innerHTML = `
|
|
31148
|
-
<style>
|
|
31149
|
-
:host {
|
|
31150
|
-
all: initial;
|
|
31151
|
-
display: block;
|
|
31152
|
-
width: 100%;
|
|
31153
|
-
}
|
|
31154
|
-
|
|
31155
|
-
*,
|
|
31156
|
-
*::before,
|
|
31157
|
-
*::after {
|
|
31158
|
-
box-sizing: border-box;
|
|
31159
|
-
}
|
|
31160
|
-
|
|
31161
|
-
.itinerary-shell {
|
|
31162
|
-
width: 100%;
|
|
31163
|
-
margin: 0 auto;
|
|
31164
|
-
font-family: 'Outfit', sans-serif;
|
|
31165
|
-
color: #222;
|
|
31166
|
-
}
|
|
31167
|
-
|
|
31168
|
-
.itinerary-shell__header {
|
|
31169
|
-
margin-bottom: 24px;
|
|
31170
|
-
}
|
|
31171
|
-
|
|
31172
|
-
.itinerary-shell__title {
|
|
31173
|
-
margin: 0;
|
|
31174
|
-
font-size: 32px;
|
|
31175
|
-
line-height: 1.2;
|
|
31176
|
-
}
|
|
31177
|
-
|
|
31178
|
-
.itinerary-shell__content {
|
|
31179
|
-
display: grid;
|
|
31180
|
-
gap: 24px;
|
|
31181
|
-
}
|
|
31182
|
-
|
|
31183
|
-
.itinerary-node {
|
|
31184
|
-
border: 1px solid #e5e7eb;
|
|
31185
|
-
border-radius: 16px;
|
|
31186
|
-
overflow: hidden;
|
|
31187
|
-
background: #fff;
|
|
31188
|
-
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31189
|
-
}
|
|
31190
|
-
|
|
31191
|
-
.itinerary-node__header {
|
|
31192
|
-
display: flex;
|
|
31193
|
-
gap: 16px;
|
|
31194
|
-
align-items: center;
|
|
31195
|
-
border-bottom: 1px solid #eef0f2;
|
|
31196
|
-
background: #fafafa;
|
|
31197
|
-
}
|
|
31198
|
-
|
|
31199
|
-
.itinerary-node__day {
|
|
31200
|
-
flex: 50px 0 0;
|
|
31201
|
-
display: flex;
|
|
31202
|
-
flex-flow: column;
|
|
31203
|
-
align-items: center;
|
|
31204
|
-
justify-content: center;
|
|
31205
|
-
background: #1f9470;
|
|
31206
|
-
color: white;
|
|
31207
|
-
border: 1.5px solid var(--tide-booking-color-secondary);
|
|
31208
|
-
}
|
|
31209
|
-
|
|
31210
|
-
.itinerary-node__day-month {
|
|
31211
|
-
margin: 0px;
|
|
31212
|
-
}
|
|
31213
|
-
|
|
31214
|
-
.itinerary-node__day-day {
|
|
31215
|
-
margin: 0px;
|
|
31216
|
-
font-weight: var(--tide-booking-search-results-label-date-month-font-weight);
|
|
31217
|
-
color: var(--tide-booking-search-results-label-date-month-color);
|
|
31218
|
-
font-size: 24px;
|
|
31219
|
-
}
|
|
31220
|
-
|
|
31221
|
-
.itinerary-node__title {
|
|
31222
|
-
margin: 0;
|
|
31223
|
-
font-size: 22px;
|
|
31224
|
-
line-height: 1.25;
|
|
31225
|
-
}
|
|
31226
|
-
|
|
31227
|
-
.itinerary-node__content {
|
|
31228
|
-
display: grid;
|
|
31229
|
-
gap: 20px;
|
|
31230
|
-
padding: 20px;
|
|
31231
|
-
}
|
|
31232
|
-
|
|
31233
|
-
.itinerary-node__accommodation-banner {
|
|
31234
|
-
padding: 12px 16px;
|
|
31235
|
-
border: 1px solid #dbeafe;
|
|
31236
|
-
border-radius: 12px;
|
|
31237
|
-
background: #eff6ff;
|
|
31238
|
-
color: #1e3a8a;
|
|
31239
|
-
font-size: 14px;
|
|
31240
|
-
line-height: 1.4;
|
|
31241
|
-
}
|
|
31242
|
-
|
|
31243
|
-
.itinerary-item {
|
|
31244
|
-
display: block;
|
|
31245
|
-
border-radius: 12px;
|
|
31246
|
-
overflow: hidden;
|
|
31247
|
-
background: #fff;
|
|
31248
|
-
}
|
|
31249
|
-
|
|
31250
|
-
.itinerary-node__empty,
|
|
31251
|
-
.itinerary-empty {
|
|
31252
|
-
padding: 20px;
|
|
31253
|
-
border: 1px dashed #d1d5db;
|
|
31254
|
-
border-radius: 12px;
|
|
31255
|
-
color: #6b7280;
|
|
31256
|
-
background: #fafafa;
|
|
31257
|
-
}
|
|
31258
|
-
|
|
31259
|
-
.itinerary-default-items {
|
|
31260
|
-
border: 1px solid #e5e7eb;
|
|
31261
|
-
border-radius: 16px;
|
|
31262
|
-
padding: 20px;
|
|
31263
|
-
background: #fff;
|
|
31264
|
-
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31265
|
-
}
|
|
31266
|
-
|
|
31267
|
-
.itinerary-default-items__title {
|
|
31268
|
-
margin: 0 0 16px;
|
|
31269
|
-
font-size: 22px;
|
|
31270
|
-
}
|
|
31271
|
-
|
|
31272
|
-
@media (max-width: 768px) {
|
|
31273
|
-
.itinerary-shell {
|
|
31274
|
-
padding: 16px;
|
|
31275
|
-
}
|
|
31276
|
-
}
|
|
31277
|
-
|
|
31278
|
-
${itinerary?.styleSheetBody ?? ''}
|
|
31279
|
-
</style>
|
|
31280
|
-
|
|
31281
|
-
${html}
|
|
31142
|
+
shadowRoot.innerHTML = `
|
|
31143
|
+
<style>
|
|
31144
|
+
:host {
|
|
31145
|
+
all: initial;
|
|
31146
|
+
display: block;
|
|
31147
|
+
width: 100%;
|
|
31148
|
+
}
|
|
31149
|
+
|
|
31150
|
+
*,
|
|
31151
|
+
*::before,
|
|
31152
|
+
*::after {
|
|
31153
|
+
box-sizing: border-box;
|
|
31154
|
+
}
|
|
31155
|
+
|
|
31156
|
+
.itinerary-shell {
|
|
31157
|
+
width: 100%;
|
|
31158
|
+
margin: 0 auto;
|
|
31159
|
+
font-family: 'Outfit', sans-serif;
|
|
31160
|
+
color: #222;
|
|
31161
|
+
}
|
|
31162
|
+
|
|
31163
|
+
.itinerary-shell__header {
|
|
31164
|
+
margin-bottom: 24px;
|
|
31165
|
+
}
|
|
31166
|
+
|
|
31167
|
+
.itinerary-shell__title {
|
|
31168
|
+
margin: 0;
|
|
31169
|
+
font-size: 32px;
|
|
31170
|
+
line-height: 1.2;
|
|
31171
|
+
}
|
|
31172
|
+
|
|
31173
|
+
.itinerary-shell__content {
|
|
31174
|
+
display: grid;
|
|
31175
|
+
gap: 24px;
|
|
31176
|
+
}
|
|
31177
|
+
|
|
31178
|
+
.itinerary-node {
|
|
31179
|
+
border: 1px solid #e5e7eb;
|
|
31180
|
+
border-radius: 16px;
|
|
31181
|
+
overflow: hidden;
|
|
31182
|
+
background: #fff;
|
|
31183
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31184
|
+
}
|
|
31185
|
+
|
|
31186
|
+
.itinerary-node__header {
|
|
31187
|
+
display: flex;
|
|
31188
|
+
gap: 16px;
|
|
31189
|
+
align-items: center;
|
|
31190
|
+
border-bottom: 1px solid #eef0f2;
|
|
31191
|
+
background: #fafafa;
|
|
31192
|
+
}
|
|
31193
|
+
|
|
31194
|
+
.itinerary-node__day {
|
|
31195
|
+
flex: 50px 0 0;
|
|
31196
|
+
display: flex;
|
|
31197
|
+
flex-flow: column;
|
|
31198
|
+
align-items: center;
|
|
31199
|
+
justify-content: center;
|
|
31200
|
+
background: #1f9470;
|
|
31201
|
+
color: white;
|
|
31202
|
+
border: 1.5px solid var(--tide-booking-color-secondary);
|
|
31203
|
+
}
|
|
31204
|
+
|
|
31205
|
+
.itinerary-node__day-month {
|
|
31206
|
+
margin: 0px;
|
|
31207
|
+
}
|
|
31208
|
+
|
|
31209
|
+
.itinerary-node__day-day {
|
|
31210
|
+
margin: 0px;
|
|
31211
|
+
font-weight: var(--tide-booking-search-results-label-date-month-font-weight);
|
|
31212
|
+
color: var(--tide-booking-search-results-label-date-month-color);
|
|
31213
|
+
font-size: 24px;
|
|
31214
|
+
}
|
|
31215
|
+
|
|
31216
|
+
.itinerary-node__title {
|
|
31217
|
+
margin: 0;
|
|
31218
|
+
font-size: 22px;
|
|
31219
|
+
line-height: 1.25;
|
|
31220
|
+
}
|
|
31221
|
+
|
|
31222
|
+
.itinerary-node__content {
|
|
31223
|
+
display: grid;
|
|
31224
|
+
gap: 20px;
|
|
31225
|
+
padding: 20px;
|
|
31226
|
+
}
|
|
31227
|
+
|
|
31228
|
+
.itinerary-node__accommodation-banner {
|
|
31229
|
+
padding: 12px 16px;
|
|
31230
|
+
border: 1px solid #dbeafe;
|
|
31231
|
+
border-radius: 12px;
|
|
31232
|
+
background: #eff6ff;
|
|
31233
|
+
color: #1e3a8a;
|
|
31234
|
+
font-size: 14px;
|
|
31235
|
+
line-height: 1.4;
|
|
31236
|
+
}
|
|
31237
|
+
|
|
31238
|
+
.itinerary-item {
|
|
31239
|
+
display: block;
|
|
31240
|
+
border-radius: 12px;
|
|
31241
|
+
overflow: hidden;
|
|
31242
|
+
background: #fff;
|
|
31243
|
+
}
|
|
31244
|
+
|
|
31245
|
+
.itinerary-node__empty,
|
|
31246
|
+
.itinerary-empty {
|
|
31247
|
+
padding: 20px;
|
|
31248
|
+
border: 1px dashed #d1d5db;
|
|
31249
|
+
border-radius: 12px;
|
|
31250
|
+
color: #6b7280;
|
|
31251
|
+
background: #fafafa;
|
|
31252
|
+
}
|
|
31253
|
+
|
|
31254
|
+
.itinerary-default-items {
|
|
31255
|
+
border: 1px solid #e5e7eb;
|
|
31256
|
+
border-radius: 16px;
|
|
31257
|
+
padding: 20px;
|
|
31258
|
+
background: #fff;
|
|
31259
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31260
|
+
}
|
|
31261
|
+
|
|
31262
|
+
.itinerary-default-items__title {
|
|
31263
|
+
margin: 0 0 16px;
|
|
31264
|
+
font-size: 22px;
|
|
31265
|
+
}
|
|
31266
|
+
|
|
31267
|
+
@media (max-width: 768px) {
|
|
31268
|
+
.itinerary-shell {
|
|
31269
|
+
padding: 16px;
|
|
31270
|
+
}
|
|
31271
|
+
}
|
|
31272
|
+
|
|
31273
|
+
${itinerary?.styleSheetBody ?? ''}
|
|
31274
|
+
</style>
|
|
31275
|
+
|
|
31276
|
+
${html}
|
|
31282
31277
|
`;
|
|
31283
31278
|
}, [html, itinerary?.styleSheetBody, isLoading]);
|
|
31284
31279
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -31382,7 +31377,7 @@ const DayByDayExcursions = () => {
|
|
|
31382
31377
|
})));
|
|
31383
31378
|
};
|
|
31384
31379
|
|
|
31385
|
-
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations
|
|
31380
|
+
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations) => {
|
|
31386
31381
|
const priceDetailsByProduct = lodash.groupBy(priceDetails?.details ?? [], (detail) => `${detail.productCode}|${detail.accommodationCode}`);
|
|
31387
31382
|
return (editablePackagingEntry?.lines ?? []).map((line) => {
|
|
31388
31383
|
const groupedPriceDetails = priceDetailsByProduct[`${line.productCode}|${line.accommodationCode}`] ?? [];
|
|
@@ -31406,7 +31401,7 @@ const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, pric
|
|
|
31406
31401
|
visiblePriceDetails.map((detail, index) => (React__default["default"].createElement("li", { className: "list__item", key: `${line.guid}-price-${index}` },
|
|
31407
31402
|
detail.priceDescription,
|
|
31408
31403
|
": ",
|
|
31409
|
-
detail.total
|
|
31404
|
+
detail.total?.toLocaleString(undefined, { style: 'currency', currency: 'EUR' }))))),
|
|
31410
31405
|
React__default["default"].createElement("p", null,
|
|
31411
31406
|
"(",
|
|
31412
31407
|
line.from === line.to ? (getDateText(line.from)) : (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -31526,7 +31521,7 @@ const WLSidebar = ({ activeSearchSeed, packagingAccoResult }) => {
|
|
|
31526
31521
|
const separateExtraPriceDetails = priceDetails?.details.filter((pd) => !pd.isInPackage && pd.isSeparate) ?? [];
|
|
31527
31522
|
const totalPrice = lodash.sum([basePrice, ...separateExtraPriceDetails.map((priceDetail) => priceDetail.price * priceDetail.amount)]);
|
|
31528
31523
|
const includedCosts = selectSeparatePackagePriceDetails(priceDetails?.details.filter((pd) => pd.isInPackage) ?? []);
|
|
31529
|
-
return (React__default["default"].createElement(SharedSidebar, { productName: location ?? '', thumbnailUrl: accoImage ?? context.destinationImage?.url, translations: translations, travelerRooms: travelerRooms, startDateText: lodash.first(sortedLines)?.from && formatDate(new Date(lodash.first(sortedLines).from)), endDateText: lodash.last(sortedLines)?.to && formatDate(new Date(lodash.last(sortedLines).to)), isLoading: !editablePackagingEntry || !priceDetails, loaderComponent: React__default["default"].createElement(Spinner, null), departureFlightMetaData: outboundFlightMetaData, returnFlightMetaData: returnFlightMetaData, includedServiceTypes: editablePackagingEntry.lines.map((line) => line.serviceType), packagingAccommodations: accommodationLines, basePrice: basePrice, commission: priceDetails?.commission, totalPrice: totalPrice, includedCosts: includedCosts, extraCosts: separateExtraPriceDetails, deposit: priceDetails?.deposit, isUnavailable: false, agent: context.agentId
|
|
31524
|
+
return (React__default["default"].createElement(SharedSidebar, { productName: location ?? '', thumbnailUrl: accoImage ?? context.destinationImage?.url, translations: translations, travelerRooms: travelerRooms, startDateText: lodash.first(sortedLines)?.from && formatDate(new Date(lodash.first(sortedLines).from)), endDateText: lodash.last(sortedLines)?.to && formatDate(new Date(lodash.last(sortedLines).to)), isLoading: !editablePackagingEntry || !priceDetails, loaderComponent: React__default["default"].createElement(Spinner, null), departureFlightMetaData: outboundFlightMetaData, returnFlightMetaData: returnFlightMetaData, includedServiceTypes: editablePackagingEntry.lines.map((line) => line.serviceType), packagingAccommodations: accommodationLines, basePrice: basePrice, commission: priceDetails?.commission, totalPrice: totalPrice, includedCosts: includedCosts, extraCosts: separateExtraPriceDetails, deposit: priceDetails?.deposit, isUnavailable: false, agent: context.agentId }));
|
|
31530
31525
|
};
|
|
31531
31526
|
|
|
31532
31527
|
const formatBirthDate = (birthDate) => {
|
|
@@ -31820,7 +31815,7 @@ const BookPackagingEntry = ({ activeSearchSeed, isLoading, isConfirmationPage })
|
|
|
31820
31815
|
stepLabels[step])) },
|
|
31821
31816
|
isConfirmationPage && isLoading && React__default["default"].createElement(Spinner, { label: translations.SUMMARY.PROCESS_BOOKING }),
|
|
31822
31817
|
currentStep === 0 && (React__default["default"].createElement(SharedTravelersForm, { formik: formik$1, translations: translations, travellersSettings: travellersSettings, countries: countries, travelersFirstStep: false, isUnavailable: false, useCompactForm: false, showAgentSelection: false })),
|
|
31823
|
-
currentStep === 1 && (React__default["default"].createElement(SharedSummary, { translations: translations, travelerFormValues: formik$1.values, isSubmitting: isSubmitting, skipPayment: !context.generatePaymentUrl, userValidated: userValidated, remarks: remarks, enableVoucher: false, allowOption: false, isOffer: false, onUserValidatedChange: setUserValidated, onRemarksChange: setRemarks, onSubmit: handleSummarySubmit, renderOptions: () => renderEditablePackagingEntrySummaryOptions(editablePackagingEntry, priceDetails
|
|
31818
|
+
currentStep === 1 && (React__default["default"].createElement(SharedSummary, { translations: translations, travelerFormValues: formik$1.values, isSubmitting: isSubmitting, skipPayment: !context.generatePaymentUrl, userValidated: userValidated, remarks: remarks, enableVoucher: false, allowOption: false, isOffer: false, onUserValidatedChange: setUserValidated, onRemarksChange: setRemarks, onSubmit: handleSummarySubmit, renderOptions: () => renderEditablePackagingEntrySummaryOptions(editablePackagingEntry, priceDetails), renderPreviousButton: () => (React__default["default"].createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: () => dispatch(setCurrentStep(0)), className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) })),
|
|
31824
31819
|
currentStep === 2 && (React__default["default"].createElement(SharedConfirmation, { bookingNumber: bookingNumber ?? editablePackagingEntry?.dossierNumber ?? '', isOption: false, isOffer: false, translations: translations.CONFIRMATION })),
|
|
31825
31820
|
currentStep === 3 && React__default["default"].createElement("div", null))),
|
|
31826
31821
|
React__default["default"].createElement("div", { className: "backdrop", id: "backdrop" }),
|
|
@@ -35973,20 +35968,20 @@ function ItineraryMapView({ destinations: propDestinations, adults = 2, dateFrom
|
|
|
35973
35968
|
const isStartEnd = dest.isStart || dest.isEnd;
|
|
35974
35969
|
let iconHtml;
|
|
35975
35970
|
if (isStartEnd) {
|
|
35976
|
-
iconHtml = `
|
|
35977
|
-
<div class="map-view__marker map-view__marker--plane">
|
|
35978
|
-
<svg viewBox="0 0 576 512" fill="currentColor" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
|
35979
|
-
<path d="M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10.1-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.3-15.8-20.6l49-196.3L112 288 68.8 377.6c-3 6.1-9.2 10.4-16 10.4l-2.8 0c-9.2 0-16-8.8-13.3-17.6L80 256L36.7 141.6C34 132.8 40.8 124 50 124l2.8 0c6.8 0 13 4.3 16 10.4L112 224l102.9 0-49-196.3C163.5 17.3 171.2 7 181.8 7l56.2 0c11.5 0 22.1 6 27.8 16.1L365.7 192l116.6 0z"/>
|
|
35980
|
-
</svg>
|
|
35971
|
+
iconHtml = `
|
|
35972
|
+
<div class="map-view__marker map-view__marker--plane">
|
|
35973
|
+
<svg viewBox="0 0 576 512" fill="currentColor" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
|
35974
|
+
<path d="M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10.1-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.3-15.8-20.6l49-196.3L112 288 68.8 377.6c-3 6.1-9.2 10.4-16 10.4l-2.8 0c-9.2 0-16-8.8-13.3-17.6L80 256L36.7 141.6C34 132.8 40.8 124 50 124l2.8 0c6.8 0 13 4.3 16 10.4L112 224l102.9 0-49-196.3C163.5 17.3 171.2 7 181.8 7l56.2 0c11.5 0 22.1 6 27.8 16.1L365.7 192l116.6 0z"/>
|
|
35975
|
+
</svg>
|
|
35981
35976
|
</div>`;
|
|
35982
35977
|
}
|
|
35983
35978
|
else {
|
|
35984
35979
|
stopIndex++;
|
|
35985
35980
|
const imgStyle = dest.imageUrl ? `style="background-image:url('${dest.imageUrl}')"` : '';
|
|
35986
|
-
iconHtml = `
|
|
35987
|
-
<div class="map-view__marker map-view__marker--stop" ${imgStyle}>
|
|
35988
|
-
${!dest.imageUrl ? `<span class="map-view__marker-number">${stopIndex}</span>` : ''}
|
|
35989
|
-
<span class="map-view__marker-badge">${stopIndex}</span>
|
|
35981
|
+
iconHtml = `
|
|
35982
|
+
<div class="map-view__marker map-view__marker--stop" ${imgStyle}>
|
|
35983
|
+
${!dest.imageUrl ? `<span class="map-view__marker-number">${stopIndex}</span>` : ''}
|
|
35984
|
+
<span class="map-view__marker-badge">${stopIndex}</span>
|
|
35990
35985
|
</div>`;
|
|
35991
35986
|
}
|
|
35992
35987
|
const icon = L.divIcon({
|
|
@@ -12,7 +12,6 @@ interface SharedSidebarProps {
|
|
|
12
12
|
returnFlightMetaData?: any;
|
|
13
13
|
basePrice?: number;
|
|
14
14
|
commission?: number;
|
|
15
|
-
showCommission?: boolean;
|
|
16
15
|
totalPrice?: number;
|
|
17
16
|
remainingAmountText?: string;
|
|
18
17
|
includedCosts?: any[];
|
|
@@ -30,7 +29,6 @@ interface SharedSidebarProps {
|
|
|
30
29
|
seperateExtraPricePerPaxType?: PricePerPaxType[];
|
|
31
30
|
translations: any;
|
|
32
31
|
agent?: number;
|
|
33
|
-
currencyCode?: string;
|
|
34
32
|
}
|
|
35
33
|
declare const SharedSidebar: React.FC<SharedSidebarProps>;
|
|
36
34
|
export default SharedSidebar;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any
|
|
1
|
+
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any) => any;
|
|
2
2
|
export declare const getImageSrcFromHtml: (html?: string | null) => string | undefined;
|
package/build/build-esm/index.js
CHANGED
|
@@ -21325,7 +21325,7 @@ const SidebarFlight = ({ title, flightMetaData, translations }) => {
|
|
|
21325
21325
|
React__default.createElement("div", { className: "pricing-summary__value" }, translations.SIDEBAR.LUGGAGE_INCLUDED)))));
|
|
21326
21326
|
};
|
|
21327
21327
|
|
|
21328
|
-
const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, headerComponent, travelerRooms, startDateText, endDateText, loaderComponent, departureFlightMetaData, returnFlightMetaData, accommodations, packagingAccommodations, isOnRequest, includedServiceTypes, basePrice, commission,
|
|
21328
|
+
const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, headerComponent, travelerRooms, startDateText, endDateText, loaderComponent, departureFlightMetaData, returnFlightMetaData, accommodations, packagingAccommodations, isOnRequest, includedServiceTypes, basePrice, commission, totalPrice, includedCosts, extraCosts, deposit, basePricePerPaxType, seperateExtraPricePerPaxType, isUnavailable, agent, footerComponent }) => {
|
|
21329
21329
|
if (!translations)
|
|
21330
21330
|
return null;
|
|
21331
21331
|
const [active, setActive] = useState(false);
|
|
@@ -21336,6 +21336,8 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21336
21336
|
const canShowPriceBreakdownSection = Boolean(basePrice && basePrice > 0) || !isEmpty$1(includedCosts) || !isEmpty$1(extraCosts);
|
|
21337
21337
|
const canShowTotalPriceSection = Boolean(totalPrice && totalPrice > 0);
|
|
21338
21338
|
const remainingAmount = Number(((totalPrice ?? 0) - (deposit ?? 0)).toFixed(2));
|
|
21339
|
+
// TODO: Determine currency code based on the data, for now default to EUR
|
|
21340
|
+
let currencyCode = 'EUR';
|
|
21339
21341
|
return (React__default.createElement("div", { className: buildClassName(['booking__sidebar', active && 'booking__sidebar--active']) },
|
|
21340
21342
|
headerComponent,
|
|
21341
21343
|
React__default.createElement("div", { className: "booking__sidebar-frame" },
|
|
@@ -21465,7 +21467,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21465
21467
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
21466
21468
|
React__default.createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
21467
21469
|
translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React__default.createElement("div", { className: "pricing-summary__group" },
|
|
21468
|
-
|
|
21470
|
+
agent && (React__default.createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
21469
21471
|
React__default.createElement("div", { className: "pricing-summary__property" },
|
|
21470
21472
|
React__default.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.COMMISSION)),
|
|
21471
21473
|
React__default.createElement("div", { className: "pricing-summary__value" },
|
|
@@ -21481,7 +21483,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21481
21483
|
};
|
|
21482
21484
|
|
|
21483
21485
|
const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
21484
|
-
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge
|
|
21486
|
+
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge } = useContext(SettingsContext);
|
|
21485
21487
|
const bookingAttributes = useSelector(selectBookingAttributes);
|
|
21486
21488
|
const selectFormRooms = useMemo(() => makeSelectFormRooms(maxChildAge), [maxChildAge]);
|
|
21487
21489
|
const rooms = useSelector(selectFormRooms);
|
|
@@ -21498,7 +21500,7 @@ const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
|
21498
21500
|
const isUnavailable = useSelector(selectIsUnavailable) || false;
|
|
21499
21501
|
const isLoading = isFetchingProductOptions || isFetchingPriceDetails;
|
|
21500
21502
|
const agent = useSelector(selectAgentAdressId);
|
|
21501
|
-
return (React__default.createElement(SharedSidebar, { productName: productName, thumbnailUrl: thumbnailUrl, isLoading: isLoading, startDateText: getDateText(bookingAttributes?.startDate), endDateText: bookingAttributes?.startDate !== bookingAttributes?.endDate ? getDateText(bookingAttributes?.endDate) : undefined, travelerRooms: travelerRooms, departureFlightMetaData: departureFlightMetaData, returnFlightMetaData: returnFlightMetaData, basePrice: useSelector(selectBasePrice), commission: useSelector(selectCommission),
|
|
21503
|
+
return (React__default.createElement(SharedSidebar, { productName: productName, thumbnailUrl: thumbnailUrl, isLoading: isLoading, startDateText: getDateText(bookingAttributes?.startDate), endDateText: bookingAttributes?.startDate !== bookingAttributes?.endDate ? getDateText(bookingAttributes?.endDate) : undefined, travelerRooms: travelerRooms, departureFlightMetaData: departureFlightMetaData, returnFlightMetaData: returnFlightMetaData, basePrice: useSelector(selectBasePrice), commission: useSelector(selectCommission), totalPrice: useSelector(selectTotalPrice), includedCosts: useSelector(selectSeparatePackagePriceDetails$1), extraCosts: useSelector(selectSeparateExtraPriceDetails), accommodations: accommodations, includedServiceTypes: includedServiceTypes, deposit: useSelector(selectDeposit), isOnRequest: useSelector(selectIsOnRequest), headerComponent: sidebarHeaderComponent ?? undefined, footerComponent: sidebarFooterComponent ?? undefined, loaderComponent: loaderComponent ?? undefined, isUnavailable: isUnavailable, basePricePerPaxType: showPricesPerPaxType ? useSelector(selectBasePricePerPaxType) : undefined, seperateExtraPricePerPaxType: showPricesPerPaxType ? useSelector(selectSeparateExtraPriceDetailsPerPaxType) : undefined, translations: translations, agent: agent }));
|
|
21502
21504
|
};
|
|
21503
21505
|
|
|
21504
21506
|
const SummaryPerPaxOptionGroup = ({ group }) => {
|
|
@@ -21680,7 +21682,7 @@ const Summary = () => {
|
|
|
21680
21682
|
}
|
|
21681
21683
|
else {
|
|
21682
21684
|
const location = window.location;
|
|
21683
|
-
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath
|
|
21685
|
+
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath}?${bookingQueryString}`;
|
|
21684
21686
|
}
|
|
21685
21687
|
}
|
|
21686
21688
|
}
|
|
@@ -22611,12 +22613,7 @@ const TravelersForm = () => {
|
|
|
22611
22613
|
navigate(`${!settings.skipBasePathInRouting ? settings.basePath : ''}${settings.summary.pathSuffix}?${bookingQueryString}`);
|
|
22612
22614
|
return;
|
|
22613
22615
|
}
|
|
22614
|
-
|
|
22615
|
-
dispatch(fetchPackage());
|
|
22616
|
-
}
|
|
22617
|
-
else {
|
|
22618
|
-
dispatch(fetchPriceDetails());
|
|
22619
|
-
}
|
|
22616
|
+
dispatch(fetchPackage());
|
|
22620
22617
|
if (settings.skipRouter)
|
|
22621
22618
|
dispatch(setCurrentStep$1(travelersFirstStep ? FLIGHT_OPTIONS_FORM_STEP : SUMMARY_STEP));
|
|
22622
22619
|
else
|
|
@@ -22627,8 +22624,6 @@ const TravelersForm = () => {
|
|
|
22627
22624
|
dispatch(fetchPriceDetails());
|
|
22628
22625
|
}, [dispatch]);
|
|
22629
22626
|
useEffect(() => {
|
|
22630
|
-
if (!travelersFirstStep)
|
|
22631
|
-
return;
|
|
22632
22627
|
if (!bookingAttributes?.rooms?.length)
|
|
22633
22628
|
return;
|
|
22634
22629
|
if (!hasMounted) {
|
|
@@ -22653,7 +22648,7 @@ const TravelersForm = () => {
|
|
|
22653
22648
|
}
|
|
22654
22649
|
};
|
|
22655
22650
|
fetchAll();
|
|
22656
|
-
}, [bookingAttributes?.rooms, dispatch, hasMounted
|
|
22651
|
+
}, [bookingAttributes?.rooms, dispatch, hasMounted]);
|
|
22657
22652
|
const roomsQuery = useMemo(() => formik.values.rooms
|
|
22658
22653
|
.map((room) => {
|
|
22659
22654
|
const adults = room.adults ? room.adults.length : 0;
|
|
@@ -31019,10 +31014,10 @@ const findAccommodationForDay = (nodes, currentDay) => {
|
|
|
31019
31014
|
};
|
|
31020
31015
|
const buildItineraryHtml = (itinerary, translations) => {
|
|
31021
31016
|
if (!itinerary) {
|
|
31022
|
-
return `
|
|
31023
|
-
<div class="itinerary-shell">
|
|
31024
|
-
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31025
|
-
</div>
|
|
31017
|
+
return `
|
|
31018
|
+
<div class="itinerary-shell">
|
|
31019
|
+
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31020
|
+
</div>
|
|
31026
31021
|
`;
|
|
31027
31022
|
}
|
|
31028
31023
|
const allNodes = itinerary.nodes ?? [];
|
|
@@ -31036,66 +31031,66 @@ const buildItineraryHtml = (itinerary, translations) => {
|
|
|
31036
31031
|
const hasAccommodationInCurrentNode = uniqueItems.some(isAccommodationItem);
|
|
31037
31032
|
const activeAccommodation = findAccommodationForDay(allNodes, startDay);
|
|
31038
31033
|
const accommodationBanner = !hasAccommodationInCurrentNode && activeAccommodation
|
|
31039
|
-
? `
|
|
31040
|
-
<div class="itinerary-node__accommodation-banner">
|
|
31041
|
-
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31042
|
-
</div>
|
|
31034
|
+
? `
|
|
31035
|
+
<div class="itinerary-node__accommodation-banner">
|
|
31036
|
+
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31037
|
+
</div>
|
|
31043
31038
|
`
|
|
31044
31039
|
: '';
|
|
31045
31040
|
const itemsHtml = hasItems
|
|
31046
31041
|
? uniqueItems
|
|
31047
|
-
.map((item) => `
|
|
31048
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31049
|
-
${item.contents ?? ''}
|
|
31050
|
-
</article>
|
|
31042
|
+
.map((item) => `
|
|
31043
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31044
|
+
${item.contents ?? ''}
|
|
31045
|
+
</article>
|
|
31051
31046
|
`)
|
|
31052
31047
|
.join('')
|
|
31053
31048
|
: `<div class="itinerary-node__empty">${translations.ITINERARY.NO_ITEMS}</div>`;
|
|
31054
|
-
return `
|
|
31055
|
-
<section class="itinerary-node">
|
|
31056
|
-
<header class="itinerary-node__header">
|
|
31057
|
-
|
|
31058
|
-
<div class="itinerary-node__day">
|
|
31059
|
-
<p class="itinerary-node__day-day">${day}</p>
|
|
31060
|
-
<p class="itinerary-node__day-month">${month}</p>
|
|
31061
|
-
</div>
|
|
31062
|
-
|
|
31063
|
-
<div>
|
|
31064
|
-
<h2 class="itinerary-node__title">${escapeHtml(node.title)}</h2>
|
|
31065
|
-
</div>
|
|
31066
|
-
</header>
|
|
31067
|
-
|
|
31068
|
-
<div class="itinerary-node__content">
|
|
31069
|
-
${accommodationBanner}
|
|
31070
|
-
${itemsHtml}
|
|
31071
|
-
</div>
|
|
31072
|
-
</section>
|
|
31049
|
+
return `
|
|
31050
|
+
<section class="itinerary-node">
|
|
31051
|
+
<header class="itinerary-node__header">
|
|
31052
|
+
|
|
31053
|
+
<div class="itinerary-node__day">
|
|
31054
|
+
<p class="itinerary-node__day-day">${day}</p>
|
|
31055
|
+
<p class="itinerary-node__day-month">${month}</p>
|
|
31056
|
+
</div>
|
|
31057
|
+
|
|
31058
|
+
<div>
|
|
31059
|
+
<h2 class="itinerary-node__title">${escapeHtml(node.title)}</h2>
|
|
31060
|
+
</div>
|
|
31061
|
+
</header>
|
|
31062
|
+
|
|
31063
|
+
<div class="itinerary-node__content">
|
|
31064
|
+
${accommodationBanner}
|
|
31065
|
+
${itemsHtml}
|
|
31066
|
+
</div>
|
|
31067
|
+
</section>
|
|
31073
31068
|
`;
|
|
31074
31069
|
})
|
|
31075
31070
|
.join('');
|
|
31076
31071
|
const defaultItemsHtml = itinerary.defaultItems && itinerary.defaultItems.length > 0
|
|
31077
|
-
? `
|
|
31078
|
-
<section class="itinerary-default-items">
|
|
31079
|
-
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31072
|
+
? `
|
|
31073
|
+
<section class="itinerary-default-items">
|
|
31074
|
+
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31080
31075
|
${getUniqueItems(itinerary.defaultItems)
|
|
31081
|
-
.map((item) => `
|
|
31082
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31083
|
-
${item.contents ?? ''}
|
|
31084
|
-
</article>
|
|
31076
|
+
.map((item) => `
|
|
31077
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31078
|
+
${item.contents ?? ''}
|
|
31079
|
+
</article>
|
|
31085
31080
|
`)
|
|
31086
|
-
.join('')}
|
|
31087
|
-
</section>
|
|
31081
|
+
.join('')}
|
|
31082
|
+
</section>
|
|
31088
31083
|
`
|
|
31089
31084
|
: '';
|
|
31090
|
-
return `
|
|
31091
|
-
<div class="itinerary-shell">
|
|
31092
|
-
${itinerary.title ? `<header class="itinerary-shell__header"><h1 class="itinerary-shell__title">${escapeHtml(itinerary.title)}</h1></header>` : ''}
|
|
31093
|
-
|
|
31094
|
-
<div class="itinerary-shell__content">
|
|
31095
|
-
${nodesHtml}
|
|
31096
|
-
${defaultItemsHtml}
|
|
31097
|
-
</div>
|
|
31098
|
-
</div>
|
|
31085
|
+
return `
|
|
31086
|
+
<div class="itinerary-shell">
|
|
31087
|
+
${itinerary.title ? `<header class="itinerary-shell__header"><h1 class="itinerary-shell__title">${escapeHtml(itinerary.title)}</h1></header>` : ''}
|
|
31088
|
+
|
|
31089
|
+
<div class="itinerary-shell__content">
|
|
31090
|
+
${nodesHtml}
|
|
31091
|
+
${defaultItemsHtml}
|
|
31092
|
+
</div>
|
|
31093
|
+
</div>
|
|
31099
31094
|
`;
|
|
31100
31095
|
};
|
|
31101
31096
|
const FullItinerary = ({ isLoading }) => {
|
|
@@ -31115,141 +31110,141 @@ const FullItinerary = ({ isLoading }) => {
|
|
|
31115
31110
|
}
|
|
31116
31111
|
const shadowRoot = host.shadowRoot ?? host.attachShadow({ mode: 'open' });
|
|
31117
31112
|
shadowRootRef.current = shadowRoot;
|
|
31118
|
-
shadowRoot.innerHTML = `
|
|
31119
|
-
<style>
|
|
31120
|
-
:host {
|
|
31121
|
-
all: initial;
|
|
31122
|
-
display: block;
|
|
31123
|
-
width: 100%;
|
|
31124
|
-
}
|
|
31125
|
-
|
|
31126
|
-
*,
|
|
31127
|
-
*::before,
|
|
31128
|
-
*::after {
|
|
31129
|
-
box-sizing: border-box;
|
|
31130
|
-
}
|
|
31131
|
-
|
|
31132
|
-
.itinerary-shell {
|
|
31133
|
-
width: 100%;
|
|
31134
|
-
margin: 0 auto;
|
|
31135
|
-
font-family: 'Outfit', sans-serif;
|
|
31136
|
-
color: #222;
|
|
31137
|
-
}
|
|
31138
|
-
|
|
31139
|
-
.itinerary-shell__header {
|
|
31140
|
-
margin-bottom: 24px;
|
|
31141
|
-
}
|
|
31142
|
-
|
|
31143
|
-
.itinerary-shell__title {
|
|
31144
|
-
margin: 0;
|
|
31145
|
-
font-size: 32px;
|
|
31146
|
-
line-height: 1.2;
|
|
31147
|
-
}
|
|
31148
|
-
|
|
31149
|
-
.itinerary-shell__content {
|
|
31150
|
-
display: grid;
|
|
31151
|
-
gap: 24px;
|
|
31152
|
-
}
|
|
31153
|
-
|
|
31154
|
-
.itinerary-node {
|
|
31155
|
-
border: 1px solid #e5e7eb;
|
|
31156
|
-
border-radius: 16px;
|
|
31157
|
-
overflow: hidden;
|
|
31158
|
-
background: #fff;
|
|
31159
|
-
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31160
|
-
}
|
|
31161
|
-
|
|
31162
|
-
.itinerary-node__header {
|
|
31163
|
-
display: flex;
|
|
31164
|
-
gap: 16px;
|
|
31165
|
-
align-items: center;
|
|
31166
|
-
border-bottom: 1px solid #eef0f2;
|
|
31167
|
-
background: #fafafa;
|
|
31168
|
-
}
|
|
31169
|
-
|
|
31170
|
-
.itinerary-node__day {
|
|
31171
|
-
flex: 50px 0 0;
|
|
31172
|
-
display: flex;
|
|
31173
|
-
flex-flow: column;
|
|
31174
|
-
align-items: center;
|
|
31175
|
-
justify-content: center;
|
|
31176
|
-
background: #1f9470;
|
|
31177
|
-
color: white;
|
|
31178
|
-
border: 1.5px solid var(--tide-booking-color-secondary);
|
|
31179
|
-
}
|
|
31180
|
-
|
|
31181
|
-
.itinerary-node__day-month {
|
|
31182
|
-
margin: 0px;
|
|
31183
|
-
}
|
|
31184
|
-
|
|
31185
|
-
.itinerary-node__day-day {
|
|
31186
|
-
margin: 0px;
|
|
31187
|
-
font-weight: var(--tide-booking-search-results-label-date-month-font-weight);
|
|
31188
|
-
color: var(--tide-booking-search-results-label-date-month-color);
|
|
31189
|
-
font-size: 24px;
|
|
31190
|
-
}
|
|
31191
|
-
|
|
31192
|
-
.itinerary-node__title {
|
|
31193
|
-
margin: 0;
|
|
31194
|
-
font-size: 22px;
|
|
31195
|
-
line-height: 1.25;
|
|
31196
|
-
}
|
|
31197
|
-
|
|
31198
|
-
.itinerary-node__content {
|
|
31199
|
-
display: grid;
|
|
31200
|
-
gap: 20px;
|
|
31201
|
-
padding: 20px;
|
|
31202
|
-
}
|
|
31203
|
-
|
|
31204
|
-
.itinerary-node__accommodation-banner {
|
|
31205
|
-
padding: 12px 16px;
|
|
31206
|
-
border: 1px solid #dbeafe;
|
|
31207
|
-
border-radius: 12px;
|
|
31208
|
-
background: #eff6ff;
|
|
31209
|
-
color: #1e3a8a;
|
|
31210
|
-
font-size: 14px;
|
|
31211
|
-
line-height: 1.4;
|
|
31212
|
-
}
|
|
31213
|
-
|
|
31214
|
-
.itinerary-item {
|
|
31215
|
-
display: block;
|
|
31216
|
-
border-radius: 12px;
|
|
31217
|
-
overflow: hidden;
|
|
31218
|
-
background: #fff;
|
|
31219
|
-
}
|
|
31220
|
-
|
|
31221
|
-
.itinerary-node__empty,
|
|
31222
|
-
.itinerary-empty {
|
|
31223
|
-
padding: 20px;
|
|
31224
|
-
border: 1px dashed #d1d5db;
|
|
31225
|
-
border-radius: 12px;
|
|
31226
|
-
color: #6b7280;
|
|
31227
|
-
background: #fafafa;
|
|
31228
|
-
}
|
|
31229
|
-
|
|
31230
|
-
.itinerary-default-items {
|
|
31231
|
-
border: 1px solid #e5e7eb;
|
|
31232
|
-
border-radius: 16px;
|
|
31233
|
-
padding: 20px;
|
|
31234
|
-
background: #fff;
|
|
31235
|
-
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31236
|
-
}
|
|
31237
|
-
|
|
31238
|
-
.itinerary-default-items__title {
|
|
31239
|
-
margin: 0 0 16px;
|
|
31240
|
-
font-size: 22px;
|
|
31241
|
-
}
|
|
31242
|
-
|
|
31243
|
-
@media (max-width: 768px) {
|
|
31244
|
-
.itinerary-shell {
|
|
31245
|
-
padding: 16px;
|
|
31246
|
-
}
|
|
31247
|
-
}
|
|
31248
|
-
|
|
31249
|
-
${itinerary?.styleSheetBody ?? ''}
|
|
31250
|
-
</style>
|
|
31251
|
-
|
|
31252
|
-
${html}
|
|
31113
|
+
shadowRoot.innerHTML = `
|
|
31114
|
+
<style>
|
|
31115
|
+
:host {
|
|
31116
|
+
all: initial;
|
|
31117
|
+
display: block;
|
|
31118
|
+
width: 100%;
|
|
31119
|
+
}
|
|
31120
|
+
|
|
31121
|
+
*,
|
|
31122
|
+
*::before,
|
|
31123
|
+
*::after {
|
|
31124
|
+
box-sizing: border-box;
|
|
31125
|
+
}
|
|
31126
|
+
|
|
31127
|
+
.itinerary-shell {
|
|
31128
|
+
width: 100%;
|
|
31129
|
+
margin: 0 auto;
|
|
31130
|
+
font-family: 'Outfit', sans-serif;
|
|
31131
|
+
color: #222;
|
|
31132
|
+
}
|
|
31133
|
+
|
|
31134
|
+
.itinerary-shell__header {
|
|
31135
|
+
margin-bottom: 24px;
|
|
31136
|
+
}
|
|
31137
|
+
|
|
31138
|
+
.itinerary-shell__title {
|
|
31139
|
+
margin: 0;
|
|
31140
|
+
font-size: 32px;
|
|
31141
|
+
line-height: 1.2;
|
|
31142
|
+
}
|
|
31143
|
+
|
|
31144
|
+
.itinerary-shell__content {
|
|
31145
|
+
display: grid;
|
|
31146
|
+
gap: 24px;
|
|
31147
|
+
}
|
|
31148
|
+
|
|
31149
|
+
.itinerary-node {
|
|
31150
|
+
border: 1px solid #e5e7eb;
|
|
31151
|
+
border-radius: 16px;
|
|
31152
|
+
overflow: hidden;
|
|
31153
|
+
background: #fff;
|
|
31154
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31155
|
+
}
|
|
31156
|
+
|
|
31157
|
+
.itinerary-node__header {
|
|
31158
|
+
display: flex;
|
|
31159
|
+
gap: 16px;
|
|
31160
|
+
align-items: center;
|
|
31161
|
+
border-bottom: 1px solid #eef0f2;
|
|
31162
|
+
background: #fafafa;
|
|
31163
|
+
}
|
|
31164
|
+
|
|
31165
|
+
.itinerary-node__day {
|
|
31166
|
+
flex: 50px 0 0;
|
|
31167
|
+
display: flex;
|
|
31168
|
+
flex-flow: column;
|
|
31169
|
+
align-items: center;
|
|
31170
|
+
justify-content: center;
|
|
31171
|
+
background: #1f9470;
|
|
31172
|
+
color: white;
|
|
31173
|
+
border: 1.5px solid var(--tide-booking-color-secondary);
|
|
31174
|
+
}
|
|
31175
|
+
|
|
31176
|
+
.itinerary-node__day-month {
|
|
31177
|
+
margin: 0px;
|
|
31178
|
+
}
|
|
31179
|
+
|
|
31180
|
+
.itinerary-node__day-day {
|
|
31181
|
+
margin: 0px;
|
|
31182
|
+
font-weight: var(--tide-booking-search-results-label-date-month-font-weight);
|
|
31183
|
+
color: var(--tide-booking-search-results-label-date-month-color);
|
|
31184
|
+
font-size: 24px;
|
|
31185
|
+
}
|
|
31186
|
+
|
|
31187
|
+
.itinerary-node__title {
|
|
31188
|
+
margin: 0;
|
|
31189
|
+
font-size: 22px;
|
|
31190
|
+
line-height: 1.25;
|
|
31191
|
+
}
|
|
31192
|
+
|
|
31193
|
+
.itinerary-node__content {
|
|
31194
|
+
display: grid;
|
|
31195
|
+
gap: 20px;
|
|
31196
|
+
padding: 20px;
|
|
31197
|
+
}
|
|
31198
|
+
|
|
31199
|
+
.itinerary-node__accommodation-banner {
|
|
31200
|
+
padding: 12px 16px;
|
|
31201
|
+
border: 1px solid #dbeafe;
|
|
31202
|
+
border-radius: 12px;
|
|
31203
|
+
background: #eff6ff;
|
|
31204
|
+
color: #1e3a8a;
|
|
31205
|
+
font-size: 14px;
|
|
31206
|
+
line-height: 1.4;
|
|
31207
|
+
}
|
|
31208
|
+
|
|
31209
|
+
.itinerary-item {
|
|
31210
|
+
display: block;
|
|
31211
|
+
border-radius: 12px;
|
|
31212
|
+
overflow: hidden;
|
|
31213
|
+
background: #fff;
|
|
31214
|
+
}
|
|
31215
|
+
|
|
31216
|
+
.itinerary-node__empty,
|
|
31217
|
+
.itinerary-empty {
|
|
31218
|
+
padding: 20px;
|
|
31219
|
+
border: 1px dashed #d1d5db;
|
|
31220
|
+
border-radius: 12px;
|
|
31221
|
+
color: #6b7280;
|
|
31222
|
+
background: #fafafa;
|
|
31223
|
+
}
|
|
31224
|
+
|
|
31225
|
+
.itinerary-default-items {
|
|
31226
|
+
border: 1px solid #e5e7eb;
|
|
31227
|
+
border-radius: 16px;
|
|
31228
|
+
padding: 20px;
|
|
31229
|
+
background: #fff;
|
|
31230
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
|
|
31231
|
+
}
|
|
31232
|
+
|
|
31233
|
+
.itinerary-default-items__title {
|
|
31234
|
+
margin: 0 0 16px;
|
|
31235
|
+
font-size: 22px;
|
|
31236
|
+
}
|
|
31237
|
+
|
|
31238
|
+
@media (max-width: 768px) {
|
|
31239
|
+
.itinerary-shell {
|
|
31240
|
+
padding: 16px;
|
|
31241
|
+
}
|
|
31242
|
+
}
|
|
31243
|
+
|
|
31244
|
+
${itinerary?.styleSheetBody ?? ''}
|
|
31245
|
+
</style>
|
|
31246
|
+
|
|
31247
|
+
${html}
|
|
31253
31248
|
`;
|
|
31254
31249
|
}, [html, itinerary?.styleSheetBody, isLoading]);
|
|
31255
31250
|
return (React__default.createElement(React__default.Fragment, null,
|
|
@@ -31353,7 +31348,7 @@ const DayByDayExcursions = () => {
|
|
|
31353
31348
|
})));
|
|
31354
31349
|
};
|
|
31355
31350
|
|
|
31356
|
-
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations
|
|
31351
|
+
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations) => {
|
|
31357
31352
|
const priceDetailsByProduct = groupBy(priceDetails?.details ?? [], (detail) => `${detail.productCode}|${detail.accommodationCode}`);
|
|
31358
31353
|
return (editablePackagingEntry?.lines ?? []).map((line) => {
|
|
31359
31354
|
const groupedPriceDetails = priceDetailsByProduct[`${line.productCode}|${line.accommodationCode}`] ?? [];
|
|
@@ -31377,7 +31372,7 @@ const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, pric
|
|
|
31377
31372
|
visiblePriceDetails.map((detail, index) => (React__default.createElement("li", { className: "list__item", key: `${line.guid}-price-${index}` },
|
|
31378
31373
|
detail.priceDescription,
|
|
31379
31374
|
": ",
|
|
31380
|
-
detail.total
|
|
31375
|
+
detail.total?.toLocaleString(undefined, { style: 'currency', currency: 'EUR' }))))),
|
|
31381
31376
|
React__default.createElement("p", null,
|
|
31382
31377
|
"(",
|
|
31383
31378
|
line.from === line.to ? (getDateText(line.from)) : (React__default.createElement(React__default.Fragment, null,
|
|
@@ -31497,7 +31492,7 @@ const WLSidebar = ({ activeSearchSeed, packagingAccoResult }) => {
|
|
|
31497
31492
|
const separateExtraPriceDetails = priceDetails?.details.filter((pd) => !pd.isInPackage && pd.isSeparate) ?? [];
|
|
31498
31493
|
const totalPrice = sum([basePrice, ...separateExtraPriceDetails.map((priceDetail) => priceDetail.price * priceDetail.amount)]);
|
|
31499
31494
|
const includedCosts = selectSeparatePackagePriceDetails(priceDetails?.details.filter((pd) => pd.isInPackage) ?? []);
|
|
31500
|
-
return (React__default.createElement(SharedSidebar, { productName: location ?? '', thumbnailUrl: accoImage ?? context.destinationImage?.url, translations: translations, travelerRooms: travelerRooms, startDateText: first(sortedLines)?.from && formatDate(new Date(first(sortedLines).from)), endDateText: last(sortedLines)?.to && formatDate(new Date(last(sortedLines).to)), isLoading: !editablePackagingEntry || !priceDetails, loaderComponent: React__default.createElement(Spinner, null), departureFlightMetaData: outboundFlightMetaData, returnFlightMetaData: returnFlightMetaData, includedServiceTypes: editablePackagingEntry.lines.map((line) => line.serviceType), packagingAccommodations: accommodationLines, basePrice: basePrice, commission: priceDetails?.commission, totalPrice: totalPrice, includedCosts: includedCosts, extraCosts: separateExtraPriceDetails, deposit: priceDetails?.deposit, isUnavailable: false, agent: context.agentId
|
|
31495
|
+
return (React__default.createElement(SharedSidebar, { productName: location ?? '', thumbnailUrl: accoImage ?? context.destinationImage?.url, translations: translations, travelerRooms: travelerRooms, startDateText: first(sortedLines)?.from && formatDate(new Date(first(sortedLines).from)), endDateText: last(sortedLines)?.to && formatDate(new Date(last(sortedLines).to)), isLoading: !editablePackagingEntry || !priceDetails, loaderComponent: React__default.createElement(Spinner, null), departureFlightMetaData: outboundFlightMetaData, returnFlightMetaData: returnFlightMetaData, includedServiceTypes: editablePackagingEntry.lines.map((line) => line.serviceType), packagingAccommodations: accommodationLines, basePrice: basePrice, commission: priceDetails?.commission, totalPrice: totalPrice, includedCosts: includedCosts, extraCosts: separateExtraPriceDetails, deposit: priceDetails?.deposit, isUnavailable: false, agent: context.agentId }));
|
|
31501
31496
|
};
|
|
31502
31497
|
|
|
31503
31498
|
const formatBirthDate = (birthDate) => {
|
|
@@ -31791,7 +31786,7 @@ const BookPackagingEntry = ({ activeSearchSeed, isLoading, isConfirmationPage })
|
|
|
31791
31786
|
stepLabels[step])) },
|
|
31792
31787
|
isConfirmationPage && isLoading && React__default.createElement(Spinner, { label: translations.SUMMARY.PROCESS_BOOKING }),
|
|
31793
31788
|
currentStep === 0 && (React__default.createElement(SharedTravelersForm, { formik: formik, translations: translations, travellersSettings: travellersSettings, countries: countries, travelersFirstStep: false, isUnavailable: false, useCompactForm: false, showAgentSelection: false })),
|
|
31794
|
-
currentStep === 1 && (React__default.createElement(SharedSummary, { translations: translations, travelerFormValues: formik.values, isSubmitting: isSubmitting, skipPayment: !context.generatePaymentUrl, userValidated: userValidated, remarks: remarks, enableVoucher: false, allowOption: false, isOffer: false, onUserValidatedChange: setUserValidated, onRemarksChange: setRemarks, onSubmit: handleSummarySubmit, renderOptions: () => renderEditablePackagingEntrySummaryOptions(editablePackagingEntry, priceDetails
|
|
31789
|
+
currentStep === 1 && (React__default.createElement(SharedSummary, { translations: translations, travelerFormValues: formik.values, isSubmitting: isSubmitting, skipPayment: !context.generatePaymentUrl, userValidated: userValidated, remarks: remarks, enableVoucher: false, allowOption: false, isOffer: false, onUserValidatedChange: setUserValidated, onRemarksChange: setRemarks, onSubmit: handleSummarySubmit, renderOptions: () => renderEditablePackagingEntrySummaryOptions(editablePackagingEntry, priceDetails), renderPreviousButton: () => (React__default.createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: () => dispatch(setCurrentStep(0)), className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) })),
|
|
31795
31790
|
currentStep === 2 && (React__default.createElement(SharedConfirmation, { bookingNumber: bookingNumber ?? editablePackagingEntry?.dossierNumber ?? '', isOption: false, isOffer: false, translations: translations.CONFIRMATION })),
|
|
31796
31791
|
currentStep === 3 && React__default.createElement("div", null))),
|
|
31797
31792
|
React__default.createElement("div", { className: "backdrop", id: "backdrop" }),
|
|
@@ -35944,20 +35939,20 @@ function ItineraryMapView({ destinations: propDestinations, adults = 2, dateFrom
|
|
|
35944
35939
|
const isStartEnd = dest.isStart || dest.isEnd;
|
|
35945
35940
|
let iconHtml;
|
|
35946
35941
|
if (isStartEnd) {
|
|
35947
|
-
iconHtml = `
|
|
35948
|
-
<div class="map-view__marker map-view__marker--plane">
|
|
35949
|
-
<svg viewBox="0 0 576 512" fill="currentColor" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
|
35950
|
-
<path d="M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10.1-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.3-15.8-20.6l49-196.3L112 288 68.8 377.6c-3 6.1-9.2 10.4-16 10.4l-2.8 0c-9.2 0-16-8.8-13.3-17.6L80 256L36.7 141.6C34 132.8 40.8 124 50 124l2.8 0c6.8 0 13 4.3 16 10.4L112 224l102.9 0-49-196.3C163.5 17.3 171.2 7 181.8 7l56.2 0c11.5 0 22.1 6 27.8 16.1L365.7 192l116.6 0z"/>
|
|
35951
|
-
</svg>
|
|
35942
|
+
iconHtml = `
|
|
35943
|
+
<div class="map-view__marker map-view__marker--plane">
|
|
35944
|
+
<svg viewBox="0 0 576 512" fill="currentColor" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
|
35945
|
+
<path d="M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10.1-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.3-15.8-20.6l49-196.3L112 288 68.8 377.6c-3 6.1-9.2 10.4-16 10.4l-2.8 0c-9.2 0-16-8.8-13.3-17.6L80 256L36.7 141.6C34 132.8 40.8 124 50 124l2.8 0c6.8 0 13 4.3 16 10.4L112 224l102.9 0-49-196.3C163.5 17.3 171.2 7 181.8 7l56.2 0c11.5 0 22.1 6 27.8 16.1L365.7 192l116.6 0z"/>
|
|
35946
|
+
</svg>
|
|
35952
35947
|
</div>`;
|
|
35953
35948
|
}
|
|
35954
35949
|
else {
|
|
35955
35950
|
stopIndex++;
|
|
35956
35951
|
const imgStyle = dest.imageUrl ? `style="background-image:url('${dest.imageUrl}')"` : '';
|
|
35957
|
-
iconHtml = `
|
|
35958
|
-
<div class="map-view__marker map-view__marker--stop" ${imgStyle}>
|
|
35959
|
-
${!dest.imageUrl ? `<span class="map-view__marker-number">${stopIndex}</span>` : ''}
|
|
35960
|
-
<span class="map-view__marker-badge">${stopIndex}</span>
|
|
35952
|
+
iconHtml = `
|
|
35953
|
+
<div class="map-view__marker map-view__marker--stop" ${imgStyle}>
|
|
35954
|
+
${!dest.imageUrl ? `<span class="map-view__marker-number">${stopIndex}</span>` : ''}
|
|
35955
|
+
<span class="map-view__marker-badge">${stopIndex}</span>
|
|
35961
35956
|
</div>`;
|
|
35962
35957
|
}
|
|
35963
35958
|
const icon = L.divIcon({
|
|
@@ -12,7 +12,6 @@ interface SharedSidebarProps {
|
|
|
12
12
|
returnFlightMetaData?: any;
|
|
13
13
|
basePrice?: number;
|
|
14
14
|
commission?: number;
|
|
15
|
-
showCommission?: boolean;
|
|
16
15
|
totalPrice?: number;
|
|
17
16
|
remainingAmountText?: string;
|
|
18
17
|
includedCosts?: any[];
|
|
@@ -30,7 +29,6 @@ interface SharedSidebarProps {
|
|
|
30
29
|
seperateExtraPricePerPaxType?: PricePerPaxType[];
|
|
31
30
|
translations: any;
|
|
32
31
|
agent?: number;
|
|
33
|
-
currencyCode?: string;
|
|
34
32
|
}
|
|
35
33
|
declare const SharedSidebar: React.FC<SharedSidebarProps>;
|
|
36
34
|
export default SharedSidebar;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any
|
|
1
|
+
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any) => any;
|
|
2
2
|
export declare const getImageSrcFromHtml: (html?: string | null) => string | undefined;
|
package/package.json
CHANGED