@qite/tide-booking-component 1.4.110 → 1.4.111
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 +2316 -1555
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form.d.ts +1 -2
- package/build/build-cjs/src/search-results/components/book-packaging-entry/index.d.ts +1 -0
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +3 -1
- package/build/build-cjs/src/search-results/types.d.ts +3 -0
- package/build/build-cjs/src/shared/booking/shared-confirmation.d.ts +25 -0
- package/build/build-cjs/src/shared/booking/summary.d.ts +43 -0
- package/build/build-cjs/src/shared/booking/travelers-form.d.ts +93 -0
- package/build/build-cjs/src/shared/utils/booking-summary.d.ts +1 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +6 -0
- package/build/build-esm/index.js +2213 -1453
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form.d.ts +1 -2
- package/build/build-esm/src/search-results/components/book-packaging-entry/index.d.ts +1 -0
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +3 -1
- package/build/build-esm/src/search-results/types.d.ts +3 -0
- package/build/build-esm/src/shared/booking/shared-confirmation.d.ts +25 -0
- package/build/build-esm/src/shared/booking/summary.d.ts +43 -0
- package/build/build-esm/src/shared/booking/travelers-form.d.ts +93 -0
- package/build/build-esm/src/shared/utils/booking-summary.d.ts +1 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +6 -0
- package/package.json +2 -2
- package/src/booking-wizard/components/step-indicator.tsx +1 -1
- package/src/booking-wizard/components/step-route.tsx +1 -1
- package/src/booking-wizard/features/confirmation/confirmation.tsx +11 -55
- package/src/booking-wizard/features/sidebar/index.tsx +1 -1
- package/src/booking-wizard/features/summary/summary.tsx +1 -1
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +84 -1010
- package/src/search-results/components/book-packaging-entry/index.tsx +192 -11
- package/src/search-results/components/book-packaging-entry/wl-sidebar.tsx +1 -4
- package/src/search-results/components/group-tour/group-tour-card.tsx +1 -1
- package/src/search-results/components/group-tour/group-tour-results.tsx +1 -1
- package/src/search-results/components/search-results-container/search-results-container.tsx +42 -14
- package/src/search-results/store/search-results-slice.ts +8 -2
- package/src/search-results/types.ts +4 -0
- package/src/shared/booking/shared-confirmation.tsx +105 -0
- package/src/shared/booking/summary.tsx +380 -0
- package/src/shared/booking/travelers-form.tsx +870 -0
- package/src/shared/components/flyin/flyin.tsx +8 -9
- package/src/shared/components/flyin/packaging-flights-flyin.tsx +4 -4
- package/src/shared/utils/booking-summary.tsx +46 -0
- package/src/shared/utils/tide-api-utils.ts +2 -2
- package/styles/components/_dropdown.scss +5 -0
- package/styles/components/_flyin.scss +43 -0
- package/styles/components/_search.scss +5 -0
- /package/build/build-cjs/src/shared/booking/{BookingPanel.d.ts → booking-panel.d.ts} +0 -0
- /package/build/build-cjs/src/shared/booking/{Sidebar.d.ts → shared-sidebar.d.ts} +0 -0
- /package/build/build-cjs/src/shared/booking/{StepIndicators.d.ts → step-indicators.d.ts} +0 -0
- /package/build/build-esm/src/shared/booking/{BookingPanel.d.ts → booking-panel.d.ts} +0 -0
- /package/build/build-esm/src/shared/booking/{Sidebar.d.ts → shared-sidebar.d.ts} +0 -0
- /package/build/build-esm/src/shared/booking/{StepIndicators.d.ts → step-indicators.d.ts} +0 -0
- /package/src/shared/booking/{BookingPanel.tsx → booking-panel.tsx} +0 -0
- /package/src/shared/booking/{Sidebar.tsx → shared-sidebar.tsx} +0 -0
- /package/src/shared/booking/{StepIndicators.tsx → step-indicators.tsx} +0 -0
|
@@ -127,11 +127,10 @@ const FlyIn: React.FC<FlyInProps> = ({
|
|
|
127
127
|
|
|
128
128
|
return (
|
|
129
129
|
<div
|
|
130
|
-
className={`flyin ${isOpen ? 'flyin--active' : ''} ${className} ${
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
} ${flyInType === 'excursion-results' || flyInType === 'excursion-details' ? 'flyin--medium' : ''}`}>
|
|
130
|
+
className={`flyin ${isOpen ? 'flyin--active' : ''} ${className} ${isPackageEditFlow || flyInType === 'acco-results' ? 'flyin--large' : ''} ${
|
|
131
|
+
flyInType === 'excursion-results' || flyInType === 'excursion-details' ? 'flyin--medium' : ''
|
|
132
|
+
}
|
|
133
|
+
${flyInType === 'flight-outward-results' || flyInType === 'flight-return-results' ? 'flyin--flight' : ''}`}>
|
|
135
134
|
<div className={`flyin__panel ${isOpen ? 'flyin__panel--active' : ''}`} ref={panelRef}>
|
|
136
135
|
<div className="flyin__content">
|
|
137
136
|
<div className="flyin__content-title-row">
|
|
@@ -179,6 +178,10 @@ const FlyIn: React.FC<FlyInProps> = ({
|
|
|
179
178
|
/>
|
|
180
179
|
<div className="search__results__wrapper">
|
|
181
180
|
<div className="search__result-row">
|
|
181
|
+
<div className="cta cta--filter" onClick={() => toggleFilters && toggleFilters()}>
|
|
182
|
+
<Icon name="ui-filter" className="mobile-filters-button__icon" height={16} />
|
|
183
|
+
{translations.SRP.FILTERS}
|
|
184
|
+
</div>
|
|
182
185
|
<span className="search__result-row-text">
|
|
183
186
|
{!isLoading && (
|
|
184
187
|
<>
|
|
@@ -187,10 +190,6 @@ const FlyIn: React.FC<FlyInProps> = ({
|
|
|
187
190
|
</>
|
|
188
191
|
)}
|
|
189
192
|
</span>
|
|
190
|
-
<div className="cta cta--filter" onClick={() => toggleFilters && toggleFilters()}>
|
|
191
|
-
<Icon name="ui-filter" className="mobile-filters-button__icon" height={16} />
|
|
192
|
-
{translations.SRP.FILTERS}
|
|
193
|
-
</div>
|
|
194
193
|
{sortByTypes && sortByTypes.length > 0 && (
|
|
195
194
|
<div className="search__result-row-filter">
|
|
196
195
|
<ItemPicker
|
|
@@ -98,14 +98,14 @@ const PackageingFlightsFlyIn: React.FC<FlightsFlyInProps> = ({ isOpen, setIsOpen
|
|
|
98
98
|
/>
|
|
99
99
|
<div className="search__results__wrapper">
|
|
100
100
|
<div className="search__result-row">
|
|
101
|
-
<span className="search__result-row-text">
|
|
102
|
-
{uniqueOutwardFlights?.length && uniqueOutwardFlights.length}
|
|
103
|
-
{translations.FLIGHTS_FORM.FLIGHTS_FOUND_2} {translations.FLIGHTS_FORM.FLIGHTS_FOUND_3}
|
|
104
|
-
</span>
|
|
105
101
|
<div className="cta cta--filter" onClick={() => toggleFilters && toggleFilters()}>
|
|
106
102
|
<Icon name="ui-filter" className="mobile-filters-button__icon" height={16} />
|
|
107
103
|
{translations.SRP.FILTERS}
|
|
108
104
|
</div>
|
|
105
|
+
<span className="search__result-row-text">
|
|
106
|
+
{uniqueOutwardFlights?.length && uniqueOutwardFlights.length}
|
|
107
|
+
{translations.FLIGHTS_FORM.FLIGHTS_FOUND_2} {translations.FLIGHTS_FORM.FLIGHTS_FOUND_3}
|
|
108
|
+
</span>
|
|
109
109
|
{sortByTypes && sortByTypes.length > 0 && (
|
|
110
110
|
<div className="search__result-row-filter">
|
|
111
111
|
<ItemPicker
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { compact, groupBy, isEmpty } from 'lodash';
|
|
3
|
+
import { getDateText } from '../../booking-wizard/features/sidebar/sidebar-util';
|
|
4
|
+
|
|
5
|
+
export const renderEditablePackagingEntrySummaryOptions = (editablePackagingEntry: any, priceDetails: any, translations: any) => {
|
|
6
|
+
const priceDetailsByProduct = groupBy(priceDetails?.details ?? [], (detail: any) => `${detail.productCode}|${detail.accommodationCode}`);
|
|
7
|
+
|
|
8
|
+
return (editablePackagingEntry?.lines ?? []).map((line: any) => {
|
|
9
|
+
const groupedPriceDetails = priceDetailsByProduct[`${line.productCode}|${line.accommodationCode}`] ?? [];
|
|
10
|
+
const visiblePriceDetails = groupedPriceDetails.filter((detail: any) => detail.showPrice || detail.isSeparate);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<li key={line.guid}>
|
|
14
|
+
<h6>{line.productName}</h6>
|
|
15
|
+
<ul>
|
|
16
|
+
<li className="list__item">{compact([line.accommodationName, line.regimeName]).join(', ')}</li>
|
|
17
|
+
|
|
18
|
+
{line.flightInformation?.flightLines?.map((flightLine: any, index: number) => (
|
|
19
|
+
<li className="list__item" key={`${line.guid}-${index}`}>
|
|
20
|
+
{flightLine.departureAirportCode} {flightLine.departureTime?.slice(0, 5)} > {flightLine.arrivalAirportCode}{' '}
|
|
21
|
+
{flightLine.arrivalTime?.slice(0, 5)} ({flightLine.operatingFlightNumber || `${flightLine.airlineCode}${flightLine.flightNumber}`})
|
|
22
|
+
</li>
|
|
23
|
+
))}
|
|
24
|
+
|
|
25
|
+
{!isEmpty(visiblePriceDetails) &&
|
|
26
|
+
visiblePriceDetails.map((detail: any, index: number) => (
|
|
27
|
+
<li className="list__item" key={`${line.guid}-price-${index}`}>
|
|
28
|
+
{detail.priceDescription}: {detail.total?.toLocaleString(undefined, { style: 'currency', currency: 'EUR' })}
|
|
29
|
+
</li>
|
|
30
|
+
))}
|
|
31
|
+
</ul>
|
|
32
|
+
<p>
|
|
33
|
+
(
|
|
34
|
+
{line.from === line.to ? (
|
|
35
|
+
getDateText(line.from)
|
|
36
|
+
) : (
|
|
37
|
+
<>
|
|
38
|
+
{getDateText(line.from)} > {getDateText(line.to)}
|
|
39
|
+
</>
|
|
40
|
+
)}
|
|
41
|
+
)
|
|
42
|
+
</p>
|
|
43
|
+
</li>
|
|
44
|
+
);
|
|
45
|
+
});
|
|
46
|
+
};
|
|
@@ -11,8 +11,8 @@ export const tideConnection = {
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export function buildTideClientConfig(settings?: ApiSettingsState): TideClientConfig {
|
|
14
|
-
const HOST = settings?.apiUrl ||
|
|
15
|
-
const API_KEY = settings?.apiKey ||
|
|
14
|
+
const HOST = settings?.apiUrl || tideConnection.host;
|
|
15
|
+
const API_KEY = settings?.apiKey || tideConnection.apiKey;
|
|
16
16
|
const token = selectAgentToken();
|
|
17
17
|
|
|
18
18
|
if (isNil(HOST)) {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
border-left: 1.5px solid;
|
|
14
14
|
border-color: var(--tide-booking-dropdown-arrow-color);
|
|
15
15
|
transform: rotate(-45deg) translateY(-50%);
|
|
16
|
+
pointer-events: none;
|
|
16
17
|
@include transitionEasing($duration: 0.2s);
|
|
17
18
|
}
|
|
18
19
|
|
|
@@ -61,6 +62,10 @@
|
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
}
|
|
65
|
+
|
|
66
|
+
&:hover {
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
}
|
|
64
69
|
}
|
|
65
70
|
|
|
66
71
|
&--small {
|
|
@@ -52,6 +52,29 @@
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
&--flight {
|
|
56
|
+
.flyin__panel {
|
|
57
|
+
@include mixins.media-sm {
|
|
58
|
+
width: 100%;
|
|
59
|
+
max-width: 1200px;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.flyin__content {
|
|
64
|
+
gap: 30px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.search__results__cards {
|
|
68
|
+
@include mixins.media-md {
|
|
69
|
+
grid-template-columns: repeat(1, 1fr);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@include mixins.media-lg {
|
|
73
|
+
grid-template-columns: repeat(1, 1fr);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
55
78
|
&__panel {
|
|
56
79
|
background: var(--tide-booking-gray-xlight);
|
|
57
80
|
height: 100%;
|
|
@@ -570,6 +593,26 @@
|
|
|
570
593
|
align-content: flex-start;
|
|
571
594
|
}
|
|
572
595
|
}
|
|
596
|
+
|
|
597
|
+
.cta--filter {
|
|
598
|
+
@include mixins.media-lg {
|
|
599
|
+
display: none;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
.search__result {
|
|
604
|
+
&-row {
|
|
605
|
+
justify-content: flex-start;
|
|
606
|
+
gap: 15px;
|
|
607
|
+
flex-wrap: wrap;
|
|
608
|
+
|
|
609
|
+
&-filter {
|
|
610
|
+
@include mixins.media-xs {
|
|
611
|
+
margin-left: auto;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
573
616
|
}
|
|
574
617
|
|
|
575
618
|
&__button {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|