@qite/tide-booking-component 1.4.127 → 1.4.128
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 +211 -206
- package/build/build-cjs/src/shared/booking/shared-sidebar.d.ts +2 -0
- package/build/build-cjs/src/shared/utils/booking-summary.d.ts +1 -1
- package/build/build-esm/index.js +211 -206
- package/build/build-esm/src/shared/booking/shared-sidebar.d.ts +2 -0
- 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, totalPrice, includedCosts, extraCosts, deposit, basePricePerPaxType, seperateExtraPricePerPaxType, isUnavailable, agent, footerComponent }) => {
|
|
21357
|
+
const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, headerComponent, travelerRooms, startDateText, endDateText, loaderComponent, departureFlightMetaData, returnFlightMetaData, accommodations, packagingAccommodations, isOnRequest, includedServiceTypes, basePrice, commission, showCommission, totalPrice, includedCosts, extraCosts, deposit, basePricePerPaxType, seperateExtraPricePerPaxType, isUnavailable, agent, footerComponent, currencyCode = 'EUR' }) => {
|
|
21358
21358
|
if (!translations)
|
|
21359
21359
|
return null;
|
|
21360
21360
|
const [active, setActive] = React.useState(false);
|
|
@@ -21365,8 +21365,6 @@ 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';
|
|
21370
21368
|
return (React__default["default"].createElement("div", { className: buildClassName(['booking__sidebar', active && 'booking__sidebar--active']) },
|
|
21371
21369
|
headerComponent,
|
|
21372
21370
|
React__default["default"].createElement("div", { className: "booking__sidebar-frame" },
|
|
@@ -21496,7 +21494,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21496
21494
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
21497
21495
|
React__default["default"].createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
21498
21496
|
translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React__default["default"].createElement("div", { className: "pricing-summary__group" },
|
|
21499
|
-
agent && (React__default["default"].createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
21497
|
+
(agent && showCommission) && (React__default["default"].createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
21500
21498
|
React__default["default"].createElement("div", { className: "pricing-summary__property" },
|
|
21501
21499
|
React__default["default"].createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.COMMISSION)),
|
|
21502
21500
|
React__default["default"].createElement("div", { className: "pricing-summary__value" },
|
|
@@ -21512,7 +21510,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21512
21510
|
};
|
|
21513
21511
|
|
|
21514
21512
|
const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
21515
|
-
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge } = React.useContext(SettingsContext);
|
|
21513
|
+
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge, showCommission } = React.useContext(SettingsContext);
|
|
21516
21514
|
const bookingAttributes = reactRedux.useSelector(selectBookingAttributes);
|
|
21517
21515
|
const selectFormRooms = React.useMemo(() => makeSelectFormRooms(maxChildAge), [maxChildAge]);
|
|
21518
21516
|
const rooms = reactRedux.useSelector(selectFormRooms);
|
|
@@ -21529,7 +21527,7 @@ const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
|
21529
21527
|
const isUnavailable = reactRedux.useSelector(selectIsUnavailable) || false;
|
|
21530
21528
|
const isLoading = isFetchingProductOptions || isFetchingPriceDetails;
|
|
21531
21529
|
const agent = reactRedux.useSelector(selectAgentAdressId);
|
|
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 }));
|
|
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), showCommission: showCommission, 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, currencyCode: reactRedux.useSelector(selectCurrencyCode) }));
|
|
21533
21531
|
};
|
|
21534
21532
|
|
|
21535
21533
|
const SummaryPerPaxOptionGroup = ({ group }) => {
|
|
@@ -21711,7 +21709,7 @@ const Summary = () => {
|
|
|
21711
21709
|
}
|
|
21712
21710
|
else {
|
|
21713
21711
|
const location = window.location;
|
|
21714
|
-
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath}?${bookingQueryString}`;
|
|
21712
|
+
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath ?? location.pathname}?${bookingQueryString}`;
|
|
21715
21713
|
}
|
|
21716
21714
|
}
|
|
21717
21715
|
}
|
|
@@ -22642,7 +22640,12 @@ const TravelersForm = () => {
|
|
|
22642
22640
|
navigate(`${!settings.skipBasePathInRouting ? settings.basePath : ''}${settings.summary.pathSuffix}?${bookingQueryString}`);
|
|
22643
22641
|
return;
|
|
22644
22642
|
}
|
|
22645
|
-
|
|
22643
|
+
if (travelersFirstStep) {
|
|
22644
|
+
dispatch(fetchPackage());
|
|
22645
|
+
}
|
|
22646
|
+
else {
|
|
22647
|
+
dispatch(fetchPriceDetails());
|
|
22648
|
+
}
|
|
22646
22649
|
if (settings.skipRouter)
|
|
22647
22650
|
dispatch(setCurrentStep$1(travelersFirstStep ? FLIGHT_OPTIONS_FORM_STEP : SUMMARY_STEP));
|
|
22648
22651
|
else
|
|
@@ -22653,6 +22656,8 @@ const TravelersForm = () => {
|
|
|
22653
22656
|
dispatch(fetchPriceDetails());
|
|
22654
22657
|
}, [dispatch]);
|
|
22655
22658
|
React.useEffect(() => {
|
|
22659
|
+
if (!travelersFirstStep)
|
|
22660
|
+
return;
|
|
22656
22661
|
if (!bookingAttributes?.rooms?.length)
|
|
22657
22662
|
return;
|
|
22658
22663
|
if (!hasMounted) {
|
|
@@ -22677,7 +22682,7 @@ const TravelersForm = () => {
|
|
|
22677
22682
|
}
|
|
22678
22683
|
};
|
|
22679
22684
|
fetchAll();
|
|
22680
|
-
}, [bookingAttributes?.rooms, dispatch, hasMounted]);
|
|
22685
|
+
}, [bookingAttributes?.rooms, dispatch, hasMounted, travelersFirstStep]);
|
|
22681
22686
|
const roomsQuery = React.useMemo(() => formik$1.values.rooms
|
|
22682
22687
|
.map((room) => {
|
|
22683
22688
|
const adults = room.adults ? room.adults.length : 0;
|
|
@@ -31043,10 +31048,10 @@ const findAccommodationForDay = (nodes, currentDay) => {
|
|
|
31043
31048
|
};
|
|
31044
31049
|
const buildItineraryHtml = (itinerary, translations) => {
|
|
31045
31050
|
if (!itinerary) {
|
|
31046
|
-
return `
|
|
31047
|
-
<div class="itinerary-shell">
|
|
31048
|
-
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31049
|
-
</div>
|
|
31051
|
+
return `
|
|
31052
|
+
<div class="itinerary-shell">
|
|
31053
|
+
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31054
|
+
</div>
|
|
31050
31055
|
`;
|
|
31051
31056
|
}
|
|
31052
31057
|
const allNodes = itinerary.nodes ?? [];
|
|
@@ -31060,66 +31065,66 @@ const buildItineraryHtml = (itinerary, translations) => {
|
|
|
31060
31065
|
const hasAccommodationInCurrentNode = uniqueItems.some(isAccommodationItem);
|
|
31061
31066
|
const activeAccommodation = findAccommodationForDay(allNodes, startDay);
|
|
31062
31067
|
const accommodationBanner = !hasAccommodationInCurrentNode && activeAccommodation
|
|
31063
|
-
? `
|
|
31064
|
-
<div class="itinerary-node__accommodation-banner">
|
|
31065
|
-
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31066
|
-
</div>
|
|
31068
|
+
? `
|
|
31069
|
+
<div class="itinerary-node__accommodation-banner">
|
|
31070
|
+
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31071
|
+
</div>
|
|
31067
31072
|
`
|
|
31068
31073
|
: '';
|
|
31069
31074
|
const itemsHtml = hasItems
|
|
31070
31075
|
? uniqueItems
|
|
31071
|
-
.map((item) => `
|
|
31072
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31073
|
-
${item.contents ?? ''}
|
|
31074
|
-
</article>
|
|
31076
|
+
.map((item) => `
|
|
31077
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31078
|
+
${item.contents ?? ''}
|
|
31079
|
+
</article>
|
|
31075
31080
|
`)
|
|
31076
31081
|
.join('')
|
|
31077
31082
|
: `<div class="itinerary-node__empty">${translations.ITINERARY.NO_ITEMS}</div>`;
|
|
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>
|
|
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>
|
|
31097
31102
|
`;
|
|
31098
31103
|
})
|
|
31099
31104
|
.join('');
|
|
31100
31105
|
const defaultItemsHtml = itinerary.defaultItems && itinerary.defaultItems.length > 0
|
|
31101
|
-
? `
|
|
31102
|
-
<section class="itinerary-default-items">
|
|
31103
|
-
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31106
|
+
? `
|
|
31107
|
+
<section class="itinerary-default-items">
|
|
31108
|
+
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31104
31109
|
${getUniqueItems(itinerary.defaultItems)
|
|
31105
|
-
.map((item) => `
|
|
31106
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31107
|
-
${item.contents ?? ''}
|
|
31108
|
-
</article>
|
|
31110
|
+
.map((item) => `
|
|
31111
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31112
|
+
${item.contents ?? ''}
|
|
31113
|
+
</article>
|
|
31109
31114
|
`)
|
|
31110
|
-
.join('')}
|
|
31111
|
-
</section>
|
|
31115
|
+
.join('')}
|
|
31116
|
+
</section>
|
|
31112
31117
|
`
|
|
31113
31118
|
: '';
|
|
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>
|
|
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>
|
|
31123
31128
|
`;
|
|
31124
31129
|
};
|
|
31125
31130
|
const FullItinerary = ({ isLoading }) => {
|
|
@@ -31139,141 +31144,141 @@ const FullItinerary = ({ isLoading }) => {
|
|
|
31139
31144
|
}
|
|
31140
31145
|
const shadowRoot = host.shadowRoot ?? host.attachShadow({ mode: 'open' });
|
|
31141
31146
|
shadowRootRef.current = shadowRoot;
|
|
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}
|
|
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}
|
|
31277
31282
|
`;
|
|
31278
31283
|
}, [html, itinerary?.styleSheetBody, isLoading]);
|
|
31279
31284
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -31377,7 +31382,7 @@ const DayByDayExcursions = () => {
|
|
|
31377
31382
|
})));
|
|
31378
31383
|
};
|
|
31379
31384
|
|
|
31380
|
-
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations) => {
|
|
31385
|
+
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations, currencyCode) => {
|
|
31381
31386
|
const priceDetailsByProduct = lodash.groupBy(priceDetails?.details ?? [], (detail) => `${detail.productCode}|${detail.accommodationCode}`);
|
|
31382
31387
|
return (editablePackagingEntry?.lines ?? []).map((line) => {
|
|
31383
31388
|
const groupedPriceDetails = priceDetailsByProduct[`${line.productCode}|${line.accommodationCode}`] ?? [];
|
|
@@ -31401,7 +31406,7 @@ const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, pric
|
|
|
31401
31406
|
visiblePriceDetails.map((detail, index) => (React__default["default"].createElement("li", { className: "list__item", key: `${line.guid}-price-${index}` },
|
|
31402
31407
|
detail.priceDescription,
|
|
31403
31408
|
": ",
|
|
31404
|
-
detail.total
|
|
31409
|
+
detail.total !== undefined && detail.total !== null ? formatPrice$3(detail.total, currencyCode ?? 'EUR') : '')))),
|
|
31405
31410
|
React__default["default"].createElement("p", null,
|
|
31406
31411
|
"(",
|
|
31407
31412
|
line.from === line.to ? (getDateText(line.from)) : (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -31521,7 +31526,7 @@ const WLSidebar = ({ activeSearchSeed, packagingAccoResult }) => {
|
|
|
31521
31526
|
const separateExtraPriceDetails = priceDetails?.details.filter((pd) => !pd.isInPackage && pd.isSeparate) ?? [];
|
|
31522
31527
|
const totalPrice = lodash.sum([basePrice, ...separateExtraPriceDetails.map((priceDetail) => priceDetail.price * priceDetail.amount)]);
|
|
31523
31528
|
const includedCosts = selectSeparatePackagePriceDetails(priceDetails?.details.filter((pd) => pd.isInPackage) ?? []);
|
|
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 }));
|
|
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, currencyCode: packagingAccoResult?.currencyCode }));
|
|
31525
31530
|
};
|
|
31526
31531
|
|
|
31527
31532
|
const formatBirthDate = (birthDate) => {
|
|
@@ -31815,7 +31820,7 @@ const BookPackagingEntry = ({ activeSearchSeed, isLoading, isConfirmationPage })
|
|
|
31815
31820
|
stepLabels[step])) },
|
|
31816
31821
|
isConfirmationPage && isLoading && React__default["default"].createElement(Spinner, { label: translations.SUMMARY.PROCESS_BOOKING }),
|
|
31817
31822
|
currentStep === 0 && (React__default["default"].createElement(SharedTravelersForm, { formik: formik$1, translations: translations, travellersSettings: travellersSettings, countries: countries, travelersFirstStep: false, isUnavailable: false, useCompactForm: false, showAgentSelection: false })),
|
|
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)) })),
|
|
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, translations, selectedPackagingAccoResult?.currencyCode), renderPreviousButton: () => (React__default["default"].createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: () => dispatch(setCurrentStep(0)), className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) })),
|
|
31819
31824
|
currentStep === 2 && (React__default["default"].createElement(SharedConfirmation, { bookingNumber: bookingNumber ?? editablePackagingEntry?.dossierNumber ?? '', isOption: false, isOffer: false, translations: translations.CONFIRMATION })),
|
|
31820
31825
|
currentStep === 3 && React__default["default"].createElement("div", null))),
|
|
31821
31826
|
React__default["default"].createElement("div", { className: "backdrop", id: "backdrop" }),
|
|
@@ -35968,20 +35973,20 @@ function ItineraryMapView({ destinations: propDestinations, adults = 2, dateFrom
|
|
|
35968
35973
|
const isStartEnd = dest.isStart || dest.isEnd;
|
|
35969
35974
|
let iconHtml;
|
|
35970
35975
|
if (isStartEnd) {
|
|
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>
|
|
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>
|
|
35976
35981
|
</div>`;
|
|
35977
35982
|
}
|
|
35978
35983
|
else {
|
|
35979
35984
|
stopIndex++;
|
|
35980
35985
|
const imgStyle = dest.imageUrl ? `style="background-image:url('${dest.imageUrl}')"` : '';
|
|
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>
|
|
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>
|
|
35985
35990
|
</div>`;
|
|
35986
35991
|
}
|
|
35987
35992
|
const icon = L.divIcon({
|
|
@@ -12,6 +12,7 @@ interface SharedSidebarProps {
|
|
|
12
12
|
returnFlightMetaData?: any;
|
|
13
13
|
basePrice?: number;
|
|
14
14
|
commission?: number;
|
|
15
|
+
showCommission?: boolean;
|
|
15
16
|
totalPrice?: number;
|
|
16
17
|
remainingAmountText?: string;
|
|
17
18
|
includedCosts?: any[];
|
|
@@ -29,6 +30,7 @@ interface SharedSidebarProps {
|
|
|
29
30
|
seperateExtraPricePerPaxType?: PricePerPaxType[];
|
|
30
31
|
translations: any;
|
|
31
32
|
agent?: number;
|
|
33
|
+
currencyCode?: string;
|
|
32
34
|
}
|
|
33
35
|
declare const SharedSidebar: React.FC<SharedSidebarProps>;
|
|
34
36
|
export default SharedSidebar;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any) => any;
|
|
1
|
+
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any, currencyCode?: string) => 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, totalPrice, includedCosts, extraCosts, deposit, basePricePerPaxType, seperateExtraPricePerPaxType, isUnavailable, agent, footerComponent }) => {
|
|
21328
|
+
const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, headerComponent, travelerRooms, startDateText, endDateText, loaderComponent, departureFlightMetaData, returnFlightMetaData, accommodations, packagingAccommodations, isOnRequest, includedServiceTypes, basePrice, commission, showCommission, totalPrice, includedCosts, extraCosts, deposit, basePricePerPaxType, seperateExtraPricePerPaxType, isUnavailable, agent, footerComponent, currencyCode = 'EUR' }) => {
|
|
21329
21329
|
if (!translations)
|
|
21330
21330
|
return null;
|
|
21331
21331
|
const [active, setActive] = useState(false);
|
|
@@ -21336,8 +21336,6 @@ 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';
|
|
21341
21339
|
return (React__default.createElement("div", { className: buildClassName(['booking__sidebar', active && 'booking__sidebar--active']) },
|
|
21342
21340
|
headerComponent,
|
|
21343
21341
|
React__default.createElement("div", { className: "booking__sidebar-frame" },
|
|
@@ -21467,7 +21465,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21467
21465
|
translations.SIDEBAR.DEPOSIT_TEXT4,
|
|
21468
21466
|
React__default.createElement("strong", null, translations.SIDEBAR.DEPOSIT_TEXT5),
|
|
21469
21467
|
translations.SIDEBAR.DEPOSIT_TEXT6))))) : (React__default.createElement("div", { className: "pricing-summary__group" },
|
|
21470
|
-
agent && (React__default.createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
21468
|
+
(agent && showCommission) && (React__default.createElement("div", { className: "pricing-summary__row pricing-summary__row--total-price" },
|
|
21471
21469
|
React__default.createElement("div", { className: "pricing-summary__property" },
|
|
21472
21470
|
React__default.createElement("h6", { className: "pricing-summary__title" }, translations.SIDEBAR.COMMISSION)),
|
|
21473
21471
|
React__default.createElement("div", { className: "pricing-summary__value" },
|
|
@@ -21483,7 +21481,7 @@ const SharedSidebar = ({ productName, thumbnailUrl, isLoading, translations, hea
|
|
|
21483
21481
|
};
|
|
21484
21482
|
|
|
21485
21483
|
const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
21486
|
-
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge } = useContext(SettingsContext);
|
|
21484
|
+
const { sidebarHeaderComponent, sidebarFooterComponent, loaderComponent, showPricesPerPaxType, maxChildAge, showCommission } = useContext(SettingsContext);
|
|
21487
21485
|
const bookingAttributes = useSelector(selectBookingAttributes);
|
|
21488
21486
|
const selectFormRooms = useMemo(() => makeSelectFormRooms(maxChildAge), [maxChildAge]);
|
|
21489
21487
|
const rooms = useSelector(selectFormRooms);
|
|
@@ -21500,7 +21498,7 @@ const SidebarContainer = ({ productName, thumbnailUrl }) => {
|
|
|
21500
21498
|
const isUnavailable = useSelector(selectIsUnavailable) || false;
|
|
21501
21499
|
const isLoading = isFetchingProductOptions || isFetchingPriceDetails;
|
|
21502
21500
|
const agent = useSelector(selectAgentAdressId);
|
|
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 }));
|
|
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), showCommission: showCommission, 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, currencyCode: useSelector(selectCurrencyCode) }));
|
|
21504
21502
|
};
|
|
21505
21503
|
|
|
21506
21504
|
const SummaryPerPaxOptionGroup = ({ group }) => {
|
|
@@ -21682,7 +21680,7 @@ const Summary = () => {
|
|
|
21682
21680
|
}
|
|
21683
21681
|
else {
|
|
21684
21682
|
const location = window.location;
|
|
21685
|
-
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath}?${bookingQueryString}`;
|
|
21683
|
+
bookRequest.payload.redirectUrl = `${location.protocol}//${location.host}${settings.basePath ?? location.pathname}?${bookingQueryString}`;
|
|
21686
21684
|
}
|
|
21687
21685
|
}
|
|
21688
21686
|
}
|
|
@@ -22613,7 +22611,12 @@ const TravelersForm = () => {
|
|
|
22613
22611
|
navigate(`${!settings.skipBasePathInRouting ? settings.basePath : ''}${settings.summary.pathSuffix}?${bookingQueryString}`);
|
|
22614
22612
|
return;
|
|
22615
22613
|
}
|
|
22616
|
-
|
|
22614
|
+
if (travelersFirstStep) {
|
|
22615
|
+
dispatch(fetchPackage());
|
|
22616
|
+
}
|
|
22617
|
+
else {
|
|
22618
|
+
dispatch(fetchPriceDetails());
|
|
22619
|
+
}
|
|
22617
22620
|
if (settings.skipRouter)
|
|
22618
22621
|
dispatch(setCurrentStep$1(travelersFirstStep ? FLIGHT_OPTIONS_FORM_STEP : SUMMARY_STEP));
|
|
22619
22622
|
else
|
|
@@ -22624,6 +22627,8 @@ const TravelersForm = () => {
|
|
|
22624
22627
|
dispatch(fetchPriceDetails());
|
|
22625
22628
|
}, [dispatch]);
|
|
22626
22629
|
useEffect(() => {
|
|
22630
|
+
if (!travelersFirstStep)
|
|
22631
|
+
return;
|
|
22627
22632
|
if (!bookingAttributes?.rooms?.length)
|
|
22628
22633
|
return;
|
|
22629
22634
|
if (!hasMounted) {
|
|
@@ -22648,7 +22653,7 @@ const TravelersForm = () => {
|
|
|
22648
22653
|
}
|
|
22649
22654
|
};
|
|
22650
22655
|
fetchAll();
|
|
22651
|
-
}, [bookingAttributes?.rooms, dispatch, hasMounted]);
|
|
22656
|
+
}, [bookingAttributes?.rooms, dispatch, hasMounted, travelersFirstStep]);
|
|
22652
22657
|
const roomsQuery = useMemo(() => formik.values.rooms
|
|
22653
22658
|
.map((room) => {
|
|
22654
22659
|
const adults = room.adults ? room.adults.length : 0;
|
|
@@ -31014,10 +31019,10 @@ const findAccommodationForDay = (nodes, currentDay) => {
|
|
|
31014
31019
|
};
|
|
31015
31020
|
const buildItineraryHtml = (itinerary, translations) => {
|
|
31016
31021
|
if (!itinerary) {
|
|
31017
|
-
return `
|
|
31018
|
-
<div class="itinerary-shell">
|
|
31019
|
-
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31020
|
-
</div>
|
|
31022
|
+
return `
|
|
31023
|
+
<div class="itinerary-shell">
|
|
31024
|
+
<div class="itinerary-empty">Geen reisroute beschikbaar.</div>
|
|
31025
|
+
</div>
|
|
31021
31026
|
`;
|
|
31022
31027
|
}
|
|
31023
31028
|
const allNodes = itinerary.nodes ?? [];
|
|
@@ -31031,66 +31036,66 @@ const buildItineraryHtml = (itinerary, translations) => {
|
|
|
31031
31036
|
const hasAccommodationInCurrentNode = uniqueItems.some(isAccommodationItem);
|
|
31032
31037
|
const activeAccommodation = findAccommodationForDay(allNodes, startDay);
|
|
31033
31038
|
const accommodationBanner = !hasAccommodationInCurrentNode && activeAccommodation
|
|
31034
|
-
? `
|
|
31035
|
-
<div class="itinerary-node__accommodation-banner">
|
|
31036
|
-
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31037
|
-
</div>
|
|
31039
|
+
? `
|
|
31040
|
+
<div class="itinerary-node__accommodation-banner">
|
|
31041
|
+
Accommodatie voor deze dag: <strong>${escapeHtml(getAccommodationName(activeAccommodation))}</strong>
|
|
31042
|
+
</div>
|
|
31038
31043
|
`
|
|
31039
31044
|
: '';
|
|
31040
31045
|
const itemsHtml = hasItems
|
|
31041
31046
|
? uniqueItems
|
|
31042
|
-
.map((item) => `
|
|
31043
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31044
|
-
${item.contents ?? ''}
|
|
31045
|
-
</article>
|
|
31047
|
+
.map((item) => `
|
|
31048
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31049
|
+
${item.contents ?? ''}
|
|
31050
|
+
</article>
|
|
31046
31051
|
`)
|
|
31047
31052
|
.join('')
|
|
31048
31053
|
: `<div class="itinerary-node__empty">${translations.ITINERARY.NO_ITEMS}</div>`;
|
|
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>
|
|
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>
|
|
31068
31073
|
`;
|
|
31069
31074
|
})
|
|
31070
31075
|
.join('');
|
|
31071
31076
|
const defaultItemsHtml = itinerary.defaultItems && itinerary.defaultItems.length > 0
|
|
31072
|
-
? `
|
|
31073
|
-
<section class="itinerary-default-items">
|
|
31074
|
-
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31077
|
+
? `
|
|
31078
|
+
<section class="itinerary-default-items">
|
|
31079
|
+
<h2 class="itinerary-default-items__title">Algemene info</h2>
|
|
31075
31080
|
${getUniqueItems(itinerary.defaultItems)
|
|
31076
|
-
.map((item) => `
|
|
31077
|
-
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31078
|
-
${item.contents ?? ''}
|
|
31079
|
-
</article>
|
|
31081
|
+
.map((item) => `
|
|
31082
|
+
<article class="itinerary-item" data-template="${escapeHtml(item.templateName)}">
|
|
31083
|
+
${item.contents ?? ''}
|
|
31084
|
+
</article>
|
|
31080
31085
|
`)
|
|
31081
|
-
.join('')}
|
|
31082
|
-
</section>
|
|
31086
|
+
.join('')}
|
|
31087
|
+
</section>
|
|
31083
31088
|
`
|
|
31084
31089
|
: '';
|
|
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>
|
|
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>
|
|
31094
31099
|
`;
|
|
31095
31100
|
};
|
|
31096
31101
|
const FullItinerary = ({ isLoading }) => {
|
|
@@ -31110,141 +31115,141 @@ const FullItinerary = ({ isLoading }) => {
|
|
|
31110
31115
|
}
|
|
31111
31116
|
const shadowRoot = host.shadowRoot ?? host.attachShadow({ mode: 'open' });
|
|
31112
31117
|
shadowRootRef.current = shadowRoot;
|
|
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}
|
|
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}
|
|
31248
31253
|
`;
|
|
31249
31254
|
}, [html, itinerary?.styleSheetBody, isLoading]);
|
|
31250
31255
|
return (React__default.createElement(React__default.Fragment, null,
|
|
@@ -31348,7 +31353,7 @@ const DayByDayExcursions = () => {
|
|
|
31348
31353
|
})));
|
|
31349
31354
|
};
|
|
31350
31355
|
|
|
31351
|
-
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations) => {
|
|
31356
|
+
const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, priceDetails, translations, currencyCode) => {
|
|
31352
31357
|
const priceDetailsByProduct = groupBy(priceDetails?.details ?? [], (detail) => `${detail.productCode}|${detail.accommodationCode}`);
|
|
31353
31358
|
return (editablePackagingEntry?.lines ?? []).map((line) => {
|
|
31354
31359
|
const groupedPriceDetails = priceDetailsByProduct[`${line.productCode}|${line.accommodationCode}`] ?? [];
|
|
@@ -31372,7 +31377,7 @@ const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry, pric
|
|
|
31372
31377
|
visiblePriceDetails.map((detail, index) => (React__default.createElement("li", { className: "list__item", key: `${line.guid}-price-${index}` },
|
|
31373
31378
|
detail.priceDescription,
|
|
31374
31379
|
": ",
|
|
31375
|
-
detail.total
|
|
31380
|
+
detail.total !== undefined && detail.total !== null ? formatPrice$3(detail.total, currencyCode ?? 'EUR') : '')))),
|
|
31376
31381
|
React__default.createElement("p", null,
|
|
31377
31382
|
"(",
|
|
31378
31383
|
line.from === line.to ? (getDateText(line.from)) : (React__default.createElement(React__default.Fragment, null,
|
|
@@ -31492,7 +31497,7 @@ const WLSidebar = ({ activeSearchSeed, packagingAccoResult }) => {
|
|
|
31492
31497
|
const separateExtraPriceDetails = priceDetails?.details.filter((pd) => !pd.isInPackage && pd.isSeparate) ?? [];
|
|
31493
31498
|
const totalPrice = sum([basePrice, ...separateExtraPriceDetails.map((priceDetail) => priceDetail.price * priceDetail.amount)]);
|
|
31494
31499
|
const includedCosts = selectSeparatePackagePriceDetails(priceDetails?.details.filter((pd) => pd.isInPackage) ?? []);
|
|
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 }));
|
|
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, currencyCode: packagingAccoResult?.currencyCode }));
|
|
31496
31501
|
};
|
|
31497
31502
|
|
|
31498
31503
|
const formatBirthDate = (birthDate) => {
|
|
@@ -31786,7 +31791,7 @@ const BookPackagingEntry = ({ activeSearchSeed, isLoading, isConfirmationPage })
|
|
|
31786
31791
|
stepLabels[step])) },
|
|
31787
31792
|
isConfirmationPage && isLoading && React__default.createElement(Spinner, { label: translations.SUMMARY.PROCESS_BOOKING }),
|
|
31788
31793
|
currentStep === 0 && (React__default.createElement(SharedTravelersForm, { formik: formik, translations: translations, travellersSettings: travellersSettings, countries: countries, travelersFirstStep: false, isUnavailable: false, useCompactForm: false, showAgentSelection: false })),
|
|
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)) })),
|
|
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, translations, selectedPackagingAccoResult?.currencyCode), renderPreviousButton: () => (React__default.createElement("button", { type: "button", title: translations.STEPS.PREVIOUS, onClick: () => dispatch(setCurrentStep(0)), className: "cta cta--secondary" }, translations.STEPS.PREVIOUS)) })),
|
|
31790
31795
|
currentStep === 2 && (React__default.createElement(SharedConfirmation, { bookingNumber: bookingNumber ?? editablePackagingEntry?.dossierNumber ?? '', isOption: false, isOffer: false, translations: translations.CONFIRMATION })),
|
|
31791
31796
|
currentStep === 3 && React__default.createElement("div", null))),
|
|
31792
31797
|
React__default.createElement("div", { className: "backdrop", id: "backdrop" }),
|
|
@@ -35939,20 +35944,20 @@ function ItineraryMapView({ destinations: propDestinations, adults = 2, dateFrom
|
|
|
35939
35944
|
const isStartEnd = dest.isStart || dest.isEnd;
|
|
35940
35945
|
let iconHtml;
|
|
35941
35946
|
if (isStartEnd) {
|
|
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>
|
|
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>
|
|
35947
35952
|
</div>`;
|
|
35948
35953
|
}
|
|
35949
35954
|
else {
|
|
35950
35955
|
stopIndex++;
|
|
35951
35956
|
const imgStyle = dest.imageUrl ? `style="background-image:url('${dest.imageUrl}')"` : '';
|
|
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>
|
|
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>
|
|
35956
35961
|
</div>`;
|
|
35957
35962
|
}
|
|
35958
35963
|
const icon = L.divIcon({
|
|
@@ -12,6 +12,7 @@ interface SharedSidebarProps {
|
|
|
12
12
|
returnFlightMetaData?: any;
|
|
13
13
|
basePrice?: number;
|
|
14
14
|
commission?: number;
|
|
15
|
+
showCommission?: boolean;
|
|
15
16
|
totalPrice?: number;
|
|
16
17
|
remainingAmountText?: string;
|
|
17
18
|
includedCosts?: any[];
|
|
@@ -29,6 +30,7 @@ interface SharedSidebarProps {
|
|
|
29
30
|
seperateExtraPricePerPaxType?: PricePerPaxType[];
|
|
30
31
|
translations: any;
|
|
31
32
|
agent?: number;
|
|
33
|
+
currencyCode?: string;
|
|
32
34
|
}
|
|
33
35
|
declare const SharedSidebar: React.FC<SharedSidebarProps>;
|
|
34
36
|
export default SharedSidebar;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any) => any;
|
|
1
|
+
export declare const renderEditablePackagingEntrySummaryOptions: (editablePackagingEntry: any, priceDetails: any, translations: any, currencyCode?: string) => any;
|
|
2
2
|
export declare const getImageSrcFromHtml: (html?: string | null) => string | undefined;
|
package/package.json
CHANGED