@qite/tide-booking-component 1.4.58 → 1.4.60

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.
Files changed (44) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +3 -3
  3. package/build/build-cjs/index.js +280 -73
  4. package/build/build-cjs/src/booking-wizard/features/price-details/price-details-slice.d.ts +1 -278
  5. package/build/build-cjs/src/booking-wizard/features/price-details/selectors.d.ts +392 -0
  6. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-util.d.ts +1 -0
  7. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar.d.ts +3 -0
  8. package/build/build-cjs/src/booking-wizard/types.d.ts +13 -0
  9. package/build/build-cjs/src/shared/utils/localization-util.d.ts +2 -0
  10. package/build/build-esm/index.js +265 -74
  11. package/build/build-esm/src/booking-wizard/features/price-details/price-details-slice.d.ts +1 -278
  12. package/build/build-esm/src/booking-wizard/features/price-details/selectors.d.ts +392 -0
  13. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-util.d.ts +1 -0
  14. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar.d.ts +3 -0
  15. package/build/build-esm/src/booking-wizard/types.d.ts +13 -0
  16. package/build/build-esm/src/shared/utils/localization-util.d.ts +2 -0
  17. package/package.json +2 -1
  18. package/src/booking-wizard/features/price-details/price-details-slice.ts +3 -44
  19. package/src/booking-wizard/features/price-details/selectors.ts +117 -0
  20. package/src/booking-wizard/features/sidebar/index.tsx +6 -3
  21. package/src/booking-wizard/features/sidebar/sidebar-util.ts +13 -0
  22. package/src/booking-wizard/features/sidebar/sidebar.tsx +46 -3
  23. package/src/booking-wizard/types.ts +15 -0
  24. package/src/content/login/login-component.tsx +2 -1
  25. package/src/content/login/reset-password-component.tsx +2 -1
  26. package/src/qsm/components/QSMContainer/qsm-container.tsx +1 -1
  27. package/src/shared/components/flyin.tsx +8 -2
  28. package/src/shared/translations/ar-SA.json +2 -0
  29. package/src/shared/translations/da-DK.json +2 -0
  30. package/src/shared/translations/de-DE.json +2 -0
  31. package/src/shared/translations/en-GB.json +2 -0
  32. package/src/shared/translations/es-ES.json +2 -0
  33. package/src/shared/translations/fr-BE.json +2 -0
  34. package/src/shared/translations/fr-FR.json +2 -0
  35. package/src/shared/translations/is-IS.json +2 -0
  36. package/src/shared/translations/it-IT.json +2 -0
  37. package/src/shared/translations/ja-JP.json +2 -0
  38. package/src/shared/translations/nl-BE.json +2 -0
  39. package/src/shared/translations/nl-NL.json +2 -0
  40. package/src/shared/translations/no-NO.json +2 -0
  41. package/src/shared/translations/pl-PL.json +2 -0
  42. package/src/shared/translations/pt-PT.json +2 -0
  43. package/src/shared/translations/sv-SE.json +2 -0
  44. package/styles/components/_pricing-summary.scss +9 -0
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v20.10.0
package/README.md CHANGED
@@ -5,8 +5,8 @@ This is the unified Tide Booking component.
5
5
  ## Setup
6
6
 
7
7
  - Use Node version 20
8
- - Install node modules with "npm i"
9
- - Install node modules with "npm i" in the playground directory
8
+ - Install node modules with "npm ci"
9
+ - Install node modules with "npm ci" in the playground directory
10
10
  - Start playground with "npm start"
11
11
 
12
12
  ## Remarks
@@ -18,7 +18,7 @@ If using the playground, after installing its node modules, execute the followin
18
18
 
19
19
  When using booking-wizard in a gatsby v5 website do following steps
20
20
 
21
- - Use react v18 and react-router-dom@6
21
+ - Use react v20 and react-router-dom@6
22
22
  - Import only @runtime (otherwise signalr-no-query gives an error an window)
23
23
  - Surround <BookingWizard> with a <BrowserRouter basename={basePath}> to handle the internal routing
24
24
  - Set 'skipBasePathInRouting' to true in the settings to avoid duplicate basepaths in the internal routing.
@@ -347,6 +347,8 @@ var SIDEBAR$f = {
347
347
  TRAVELERS_ADULT: 'بالغ',
348
348
  TRAVELERS_CHILDREN: 'أطفال',
349
349
  TRAVELERS_CHILD: 'طفل',
350
+ TRAVELERS_INFANTS: 'رضع',
351
+ TRAVELERS_INFANT: 'رضيع',
350
352
  DEPARTURE: 'رحلة الذهاب',
351
353
  DEPARTURE_SINGLE: 'التاريخ',
352
354
  ARRIVAL: 'رحلة العودة',
@@ -742,6 +744,8 @@ var SIDEBAR$e = {
742
744
  TRAVELERS_ADULT: 'voksen',
743
745
  TRAVELERS_CHILDREN: 'børn',
744
746
  TRAVELERS_CHILD: 'barn',
747
+ TRAVELERS_INFANTS: 'babyer',
748
+ TRAVELERS_INFANT: 'baby',
745
749
  DEPARTURE: 'Udgående',
746
750
  DEPARTURE_SINGLE: 'Dato',
747
751
  ARRIVAL: 'Retur',
@@ -1137,6 +1141,8 @@ var SIDEBAR$d = {
1137
1141
  TRAVELERS_ADULT: 'Erwachsener',
1138
1142
  TRAVELERS_CHILDREN: 'Kinder',
1139
1143
  TRAVELERS_CHILD: 'Kind',
1144
+ TRAVELERS_INFANTS: 'Babys',
1145
+ TRAVELERS_INFANT: 'Baby',
1140
1146
  DEPARTURE: 'Hinflug',
1141
1147
  DEPARTURE_SINGLE: 'Datum',
1142
1148
  ARRIVAL: 'Rückflug',
@@ -1533,6 +1539,8 @@ var SIDEBAR$c = {
1533
1539
  TRAVELERS_ADULT: 'adult',
1534
1540
  TRAVELERS_CHILDREN: 'children',
1535
1541
  TRAVELERS_CHILD: 'child',
1542
+ TRAVELERS_INFANTS: 'babies',
1543
+ TRAVELERS_INFANT: 'baby',
1536
1544
  DEPARTURE: 'Outbound',
1537
1545
  DEPARTURE_SINGLE: 'Date',
1538
1546
  ARRIVAL: 'Return',
@@ -1932,6 +1940,8 @@ var SIDEBAR$b = {
1932
1940
  TRAVELERS_ADULT: 'adulto',
1933
1941
  TRAVELERS_CHILDREN: 'niños',
1934
1942
  TRAVELERS_CHILD: 'niño',
1943
+ TRAVELERS_INFANTS: 'bebés',
1944
+ TRAVELERS_INFANT: 'bebé',
1935
1945
  DEPARTURE: 'Ida',
1936
1946
  DEPARTURE_SINGLE: 'Fecha',
1937
1947
  ARRIVAL: 'Vuelta',
@@ -2328,6 +2338,8 @@ var SIDEBAR$a = {
2328
2338
  TRAVELERS_ADULT: 'adulte',
2329
2339
  TRAVELERS_CHILDREN: 'enfants',
2330
2340
  TRAVELERS_CHILD: 'enfant',
2341
+ TRAVELERS_INFANTS: 'bébés',
2342
+ TRAVELERS_INFANT: 'bébé',
2331
2343
  DEPARTURE: 'Aller',
2332
2344
  DEPARTURE_SINGLE: 'Date',
2333
2345
  ARRIVAL: 'Retour',
@@ -2728,6 +2740,8 @@ var SIDEBAR$9 = {
2728
2740
  TRAVELERS_ADULT: 'adulte',
2729
2741
  TRAVELERS_CHILDREN: 'enfants',
2730
2742
  TRAVELERS_CHILD: 'enfant',
2743
+ TRAVELERS_INFANTS: 'bébés',
2744
+ TRAVELERS_INFANT: 'bébé',
2731
2745
  DEPARTURE: 'Aller',
2732
2746
  DEPARTURE_SINGLE: 'Date',
2733
2747
  ARRIVAL: 'Retour',
@@ -3123,6 +3137,8 @@ var SIDEBAR$8 = {
3123
3137
  TRAVELERS_ADULT: 'fullorðinn',
3124
3138
  TRAVELERS_CHILDREN: 'börn',
3125
3139
  TRAVELERS_CHILD: 'barn',
3140
+ TRAVELERS_INFANTS: 'ungabörn',
3141
+ TRAVELERS_INFANT: 'ungabarn',
3126
3142
  DEPARTURE: 'Brottför',
3127
3143
  DEPARTURE_SINGLE: 'Dagsetning',
3128
3144
  ARRIVAL: 'Komið',
@@ -3518,6 +3534,8 @@ var SIDEBAR$7 = {
3518
3534
  TRAVELERS_ADULT: 'adulto',
3519
3535
  TRAVELERS_CHILDREN: 'bambini',
3520
3536
  TRAVELERS_CHILD: 'bambino',
3537
+ TRAVELERS_INFANTS: 'neonati',
3538
+ TRAVELERS_INFANT: 'neonato',
3521
3539
  DEPARTURE: 'Andata',
3522
3540
  DEPARTURE_SINGLE: 'Data',
3523
3541
  ARRIVAL: 'Ritorno',
@@ -3914,6 +3932,8 @@ var SIDEBAR$6 = {
3914
3932
  TRAVELERS_ADULT: 'volwassene',
3915
3933
  TRAVELERS_CHILDREN: 'kinderen',
3916
3934
  TRAVELERS_CHILD: 'kind',
3935
+ TRAVELERS_INFANTS: "baby's",
3936
+ TRAVELERS_INFANT: 'baby',
3917
3937
  DEPARTURE: 'Heenreis',
3918
3938
  DEPARTURE_SINGLE: 'Datum',
3919
3939
  ARRIVAL: 'Terugreis',
@@ -4314,6 +4334,8 @@ var SIDEBAR$5 = {
4314
4334
  TRAVELERS_ADULT: 'volwassene',
4315
4335
  TRAVELERS_CHILDREN: 'kinderen',
4316
4336
  TRAVELERS_CHILD: 'kind',
4337
+ TRAVELERS_INFANTS: "baby's",
4338
+ TRAVELERS_INFANT: 'baby',
4317
4339
  DEPARTURE: 'Heenreis',
4318
4340
  DEPARTURE_SINGLE: 'Datum',
4319
4341
  ARRIVAL: 'Terugreis',
@@ -4710,6 +4732,8 @@ var SIDEBAR$4 = {
4710
4732
  TRAVELERS_ADULT: 'voksen',
4711
4733
  TRAVELERS_CHILDREN: 'barn',
4712
4734
  TRAVELERS_CHILD: 'barn',
4735
+ TRAVELERS_INFANTS: 'babyer',
4736
+ TRAVELERS_INFANT: 'baby',
4713
4737
  DEPARTURE: 'Utreise',
4714
4738
  DEPARTURE_SINGLE: 'Dato',
4715
4739
  ARRIVAL: 'Retur',
@@ -5106,6 +5130,8 @@ var SIDEBAR$3 = {
5106
5130
  TRAVELERS_ADULT: 'dorosły',
5107
5131
  TRAVELERS_CHILDREN: 'dzieci',
5108
5132
  TRAVELERS_CHILD: 'dziecko',
5133
+ TRAVELERS_INFANTS: 'niemowlęta',
5134
+ TRAVELERS_INFANT: 'niemowlę',
5109
5135
  DEPARTURE: 'Wylot',
5110
5136
  DEPARTURE_SINGLE: 'Data',
5111
5137
  ARRIVAL: 'Powrót',
@@ -5502,6 +5528,8 @@ var SIDEBAR$2 = {
5502
5528
  TRAVELERS_ADULT: 'adulto',
5503
5529
  TRAVELERS_CHILDREN: 'crianças',
5504
5530
  TRAVELERS_CHILD: 'criança',
5531
+ TRAVELERS_INFANTS: 'bebés',
5532
+ TRAVELERS_INFANT: 'bebé',
5505
5533
  DEPARTURE: 'Ida',
5506
5534
  DEPARTURE_SINGLE: 'Data',
5507
5535
  ARRIVAL: 'Regresso',
@@ -5898,6 +5926,8 @@ var SIDEBAR$1 = {
5898
5926
  TRAVELERS_ADULT: 'vuxen',
5899
5927
  TRAVELERS_CHILDREN: 'barn',
5900
5928
  TRAVELERS_CHILD: 'barn',
5929
+ TRAVELERS_INFANTS: 'spädbarn',
5930
+ TRAVELERS_INFANT: 'spädbarn',
5901
5931
  DEPARTURE: 'Utresa',
5902
5932
  DEPARTURE_SINGLE: 'Datum',
5903
5933
  ARRIVAL: 'Retur',
@@ -6294,6 +6324,8 @@ var SIDEBAR = {
6294
6324
  TRAVELERS_ADULT: '大人',
6295
6325
  TRAVELERS_CHILDREN: '子供',
6296
6326
  TRAVELERS_CHILD: '子供',
6327
+ TRAVELERS_INFANTS: '乳児',
6328
+ TRAVELERS_INFANT: '乳児',
6297
6329
  DEPARTURE: '往路',
6298
6330
  DEPARTURE_SINGLE: '日付',
6299
6331
  ARRIVAL: '復路',
@@ -17593,67 +17625,12 @@ var priceDetailsSlice = toolkit.createSlice({
17593
17625
  });
17594
17626
  }
17595
17627
  });
17596
- var selectPriceDetails = function (state) {
17597
- return state.priceDetails.priceDetails;
17598
- };
17599
- var selectPackagePriceDetails = toolkit.createSelector(selectPriceDetails, function (priceDetails) {
17600
- return priceDetails.filter(function (priceDetail) {
17601
- return priceDetail.isInPackage;
17602
- });
17603
- });
17604
- var selectSeparatePackagePriceDetails = toolkit.createSelector(selectPackagePriceDetails, function (pricedetails) {
17605
- var result = [];
17606
- var filteredPriceDetails = pricedetails.filter(function (priceDetail) {
17607
- return priceDetail.isSeparate;
17608
- });
17609
- filteredPriceDetails.forEach(function (priceDetail) {
17610
- var priceDetailToMerge = result.find(function (x) {
17611
- return x.productCode === priceDetail.productCode && x.accommodationCode === priceDetail.accommodationCode && x.productType === priceDetail.productType;
17612
- });
17613
- if (priceDetailToMerge) {
17614
- priceDetailToMerge.total += priceDetail.total;
17615
- priceDetailToMerge.price += priceDetail.price;
17616
- } else {
17617
- result.push(Object.assign({}, priceDetail));
17618
- }
17619
- });
17620
- return result;
17621
- });
17622
- var selectBasePrice = toolkit.createSelector(selectPackagePriceDetails, function (priceDetails) {
17623
- return lodash.sum(
17624
- priceDetails.map(function (priceDetail) {
17625
- return priceDetail.price * priceDetail.amount;
17626
- })
17627
- );
17628
- });
17629
- var selectSeparateExtraPriceDetails = toolkit.createSelector(selectPriceDetails, function (priceDetails) {
17630
- return priceDetails.filter(function (priceDetail) {
17631
- return !priceDetail.isInPackage && priceDetail.isSeparate;
17632
- });
17633
- });
17634
- var selectTotalPrice = toolkit.createSelector(selectBasePrice, selectSeparateExtraPriceDetails, function (basePrice, separatePriceDetails) {
17635
- return lodash.sum(
17636
- __spreadArray(
17637
- [basePrice],
17638
- separatePriceDetails.map(function (priceDetail) {
17639
- return priceDetail.price * priceDetail.amount;
17640
- }),
17641
- true
17642
- )
17643
- );
17644
- });
17645
- var selectDeposit = function (state) {
17646
- return state.priceDetails.deposit;
17647
- };
17648
- var selectIsFetchingPriceDetails = function (state) {
17649
- return state.priceDetails.isBusy;
17650
- };
17651
- var selectNotifications = function (state) {
17652
- return state.priceDetails.notifications;
17653
- };
17654
17628
  var setFetchingPriceDetails = priceDetailsSlice.actions.setFetchingPriceDetails;
17655
17629
  var resetPriceDetails = ((_a$4 = priceDetailsSlice.actions), _a$4.resetPriceDetails),
17656
17630
  setNotifications = _a$4.setNotifications;
17631
+ var selectNotifications = function (state) {
17632
+ return state.priceDetails.notifications;
17633
+ };
17657
17634
  var priceDetailsReducer = priceDetailsSlice.reducer;
17658
17635
 
17659
17636
  var selectHasMounted = function (state) {
@@ -20867,6 +20844,18 @@ var parseFlightLineDateTime = function (date, time) {
20867
20844
  return undefined;
20868
20845
  }
20869
20846
  };
20847
+ var getPaxTypeTranslation = function (translations, paxType, numberOfPax) {
20848
+ switch (paxType) {
20849
+ case 'ADULT':
20850
+ return numberOfPax === 1 ? translations.SIDEBAR.TRAVELERS_ADULT : translations.SIDEBAR.TRAVELERS_ADULTS;
20851
+ case 'CHILD':
20852
+ return numberOfPax === 1 ? translations.SIDEBAR.TRAVELERS_CHILD : translations.SIDEBAR.TRAVELERS_CHILDREN;
20853
+ case 'INFANT':
20854
+ return numberOfPax === 1 ? translations.SIDEBAR.TRAVELERS_INFANT : translations.SIDEBAR.TRAVELERS_INFANTS;
20855
+ default:
20856
+ return '';
20857
+ }
20858
+ };
20870
20859
 
20871
20860
  var FlightOptionFlight = function (_a) {
20872
20861
  var details = _a.details,
@@ -24227,6 +24216,129 @@ var RoomOptionsForm = function () {
24227
24216
  );
24228
24217
  };
24229
24218
 
24219
+ var selectPriceDetails = function (state) {
24220
+ return state.priceDetails.priceDetails;
24221
+ };
24222
+ var selectPackagePriceDetails = toolkit.createSelector(selectPriceDetails, function (priceDetails) {
24223
+ return priceDetails.filter(function (priceDetail) {
24224
+ return priceDetail.isInPackage;
24225
+ });
24226
+ });
24227
+ var selectSeparatePackagePriceDetails = toolkit.createSelector(selectPackagePriceDetails, function (pricedetails) {
24228
+ var result = [];
24229
+ var filteredPriceDetails = pricedetails.filter(function (priceDetail) {
24230
+ return priceDetail.isSeparate;
24231
+ });
24232
+ filteredPriceDetails.forEach(function (priceDetail) {
24233
+ var priceDetailToMerge = result.find(function (x) {
24234
+ return x.productCode === priceDetail.productCode && x.accommodationCode === priceDetail.accommodationCode && x.productType === priceDetail.productType;
24235
+ });
24236
+ if (priceDetailToMerge) {
24237
+ priceDetailToMerge.total += priceDetail.total;
24238
+ priceDetailToMerge.price += priceDetail.price;
24239
+ } else {
24240
+ result.push(Object.assign({}, priceDetail));
24241
+ }
24242
+ });
24243
+ return result;
24244
+ });
24245
+ var selectBasePrice = toolkit.createSelector(selectPackagePriceDetails, function (priceDetails) {
24246
+ return lodash.sum(
24247
+ priceDetails.map(function (priceDetail) {
24248
+ return priceDetail.price * priceDetail.amount;
24249
+ })
24250
+ );
24251
+ });
24252
+ var selectSeparateExtraPriceDetails = toolkit.createSelector(selectPriceDetails, function (priceDetails) {
24253
+ return priceDetails.filter(function (priceDetail) {
24254
+ return !priceDetail.isInPackage && priceDetail.isSeparate;
24255
+ });
24256
+ });
24257
+ var selectTotalPrice = toolkit.createSelector(selectBasePrice, selectSeparateExtraPriceDetails, function (basePrice, separatePriceDetails) {
24258
+ return lodash.sum(
24259
+ __spreadArray(
24260
+ [basePrice],
24261
+ separatePriceDetails.map(function (priceDetail) {
24262
+ return priceDetail.price * priceDetail.amount;
24263
+ }),
24264
+ true
24265
+ )
24266
+ );
24267
+ });
24268
+ // Shared function to aggregate price and details per paxType
24269
+ var aggregatePricePerPaxType = function (priceDetails, requestRooms) {
24270
+ if (!requestRooms || lodash.isEmpty(requestRooms)) return [];
24271
+ if (!priceDetails || lodash.isEmpty(priceDetails)) return [];
24272
+ // Compute paxType by age: >=2 INFANT, >=11 CHILD, else ADULT
24273
+ var paxTypeToPaxIds = {};
24274
+ requestRooms.forEach(function (room) {
24275
+ room.pax.forEach(function (pax) {
24276
+ var paxType = 'ADULT';
24277
+ if (typeof pax.age === 'number') {
24278
+ if (pax.age <= 11) {
24279
+ paxType = 'CHILD';
24280
+ } else if (pax.age <= 2) {
24281
+ paxType = 'INFANT';
24282
+ }
24283
+ }
24284
+ if (!paxTypeToPaxIds[paxType]) paxTypeToPaxIds[paxType] = new Set();
24285
+ paxTypeToPaxIds[paxType].add(pax.id);
24286
+ });
24287
+ });
24288
+ var result = [];
24289
+ Object.keys(paxTypeToPaxIds).forEach(function (paxType) {
24290
+ var paxIds = Array.from(paxTypeToPaxIds[paxType]);
24291
+ var pricePerPaxType = 0;
24292
+ var detailsMap = {};
24293
+ priceDetails.forEach(function (detail) {
24294
+ if (!detail.showPrice || !detail.pricePerPax) return;
24295
+ detail.pricePerPax.forEach(function (ppp) {
24296
+ if (paxIds.includes(ppp.paxId)) {
24297
+ pricePerPaxType += ppp.price;
24298
+ var descKey = detail.priceDescription || '';
24299
+ if (!detailsMap[descKey]) {
24300
+ detailsMap[descKey] = {
24301
+ numberOfPax: 1,
24302
+ description: detail.priceDescription || '',
24303
+ price: ppp.price,
24304
+ paxIds: [ppp.paxId]
24305
+ };
24306
+ } else {
24307
+ detailsMap[descKey].price += ppp.price;
24308
+ if (!detailsMap[descKey].paxIds.includes(ppp.paxId)) {
24309
+ detailsMap[descKey].paxIds.push(ppp.paxId);
24310
+ detailsMap[descKey].numberOfPax += 1;
24311
+ }
24312
+ }
24313
+ }
24314
+ });
24315
+ });
24316
+ result.push({
24317
+ paxType: paxType,
24318
+ pricePerPaxType: pricePerPaxType,
24319
+ numberOfPax: paxIds.length,
24320
+ details: Object.values(detailsMap)
24321
+ });
24322
+ });
24323
+ return result;
24324
+ };
24325
+ var selectBasePricePerPaxType = toolkit.createSelector(selectPackagePriceDetails, selectRequestRooms, function (priceDetails, requestRooms) {
24326
+ return aggregatePricePerPaxType(priceDetails, requestRooms);
24327
+ });
24328
+ var selectSeparateExtraPriceDetailsPerPaxType = toolkit.createSelector(
24329
+ selectSeparateExtraPriceDetails,
24330
+ selectRequestRooms,
24331
+ function (priceDetails, requestRooms) {
24332
+ return aggregatePricePerPaxType(priceDetails, requestRooms);
24333
+ }
24334
+ );
24335
+ var selectDeposit = function (state) {
24336
+ return state.priceDetails.deposit;
24337
+ };
24338
+ var selectIsFetchingPriceDetails = function (state) {
24339
+ return state.priceDetails.isBusy;
24340
+ };
24341
+
24230
24342
  var ProductCard = function (_a) {
24231
24343
  var productName = _a.productName,
24232
24344
  thumbnailUrl = _a.thumbnailUrl,
@@ -24341,7 +24453,9 @@ var Sidebar = function (_a) {
24341
24453
  headerComponent = _a.headerComponent,
24342
24454
  footerComponent = _a.footerComponent,
24343
24455
  loaderComponent = _a.loaderComponent,
24344
- isUnavailable = _a.isUnavailable;
24456
+ isUnavailable = _a.isUnavailable,
24457
+ basePricePerPaxType = _a.basePricePerPaxType,
24458
+ seperateExtraPricePerPaxType = _a.seperateExtraPricePerPaxType;
24345
24459
  var _b = React.useState(false),
24346
24460
  active = _b[0],
24347
24461
  setActive = _b[1];
@@ -24491,7 +24605,51 @@ var Sidebar = function (_a) {
24491
24605
  React__default['default'].createElement('h6', { className: 'pricing-summary__title' }, translations.SIDEBAR.BASE_PRICE)
24492
24606
  ),
24493
24607
  React__default['default'].createElement('div', { className: 'pricing-summary__value' }, formatPrice(basePrice, currencyCode))
24494
- )
24608
+ ),
24609
+ basePricePerPaxType &&
24610
+ basePricePerPaxType.map(function (ppt, index) {
24611
+ return React__default['default'].createElement(
24612
+ React__default['default'].Fragment,
24613
+ { key: ''.concat(ppt.paxType, '-').concat(index) },
24614
+ React__default['default'].createElement(
24615
+ 'div',
24616
+ { className: 'pricing-summary__row' },
24617
+ React__default['default'].createElement(
24618
+ 'div',
24619
+ { className: 'pricing-summary__property' },
24620
+ ppt.numberOfPax,
24621
+ ' ',
24622
+ getPaxTypeTranslation(translations, ppt.paxType, ppt.numberOfPax)
24623
+ ),
24624
+ React__default['default'].createElement(
24625
+ 'div',
24626
+ { className: 'pricing-summary__value' },
24627
+ formatPrice(ppt.pricePerPaxType, currencyCode)
24628
+ )
24629
+ ),
24630
+ ppt.details.map(function (detail, dIndex) {
24631
+ return React__default['default'].createElement(
24632
+ 'div',
24633
+ {
24634
+ className: 'pricing-summary__row pricing-summary__row--sub',
24635
+ key: ''.concat(ppt.paxType, '-').concat(index, '-').concat(dIndex)
24636
+ },
24637
+ React__default['default'].createElement(
24638
+ 'div',
24639
+ { className: 'pricing-summary__property' },
24640
+ detail.numberOfPax,
24641
+ 'x ',
24642
+ detail.description
24643
+ ),
24644
+ React__default['default'].createElement(
24645
+ 'div',
24646
+ { className: 'pricing-summary__value' },
24647
+ formatPrice(detail.price / detail.numberOfPax, currencyCode)
24648
+ )
24649
+ );
24650
+ })
24651
+ );
24652
+ })
24495
24653
  ),
24496
24654
  !lodash.isEmpty(includedCosts) &&
24497
24655
  React__default['default'].createElement(
@@ -24556,10 +24714,54 @@ var Sidebar = function (_a) {
24556
24714
  { className: 'pricing-summary__row' },
24557
24715
  React__default['default'].createElement(
24558
24716
  'div',
24559
- { className: 'price-summary__property' },
24717
+ { className: 'pricing-summary__property' },
24560
24718
  (_a = priceDetail.accommodationName) !== null && _a !== void 0 ? _a : priceDetail.accommodationCode
24561
24719
  )
24562
- )
24720
+ ),
24721
+ seperateExtraPricePerPaxType &&
24722
+ seperateExtraPricePerPaxType.map(function (ppt, index) {
24723
+ return React__default['default'].createElement(
24724
+ React__default['default'].Fragment,
24725
+ { key: ''.concat(ppt.paxType, '-').concat(index) },
24726
+ React__default['default'].createElement(
24727
+ 'div',
24728
+ { className: 'pricing-summary__row' },
24729
+ React__default['default'].createElement(
24730
+ 'div',
24731
+ { className: 'pricing-summary__property' },
24732
+ ppt.numberOfPax,
24733
+ ' ',
24734
+ getPaxTypeTranslation(translations, ppt.paxType, ppt.numberOfPax)
24735
+ ),
24736
+ React__default['default'].createElement(
24737
+ 'div',
24738
+ { className: 'pricing-summary__value' },
24739
+ formatPrice(ppt.pricePerPaxType, currencyCode)
24740
+ )
24741
+ ),
24742
+ ppt.details.map(function (detail, dIndex) {
24743
+ return React__default['default'].createElement(
24744
+ 'div',
24745
+ {
24746
+ className: 'pricing-summary__row pricing-summary__row--sub',
24747
+ key: ''.concat(ppt.paxType, '-').concat(index, '-').concat(dIndex)
24748
+ },
24749
+ React__default['default'].createElement(
24750
+ 'div',
24751
+ { className: 'pricing-summary__property' },
24752
+ detail.numberOfPax,
24753
+ 'x ',
24754
+ detail.description
24755
+ ),
24756
+ React__default['default'].createElement(
24757
+ 'div',
24758
+ { className: 'pricing-summary__value' },
24759
+ formatPrice(detail.price / detail.numberOfPax, currencyCode)
24760
+ )
24761
+ );
24762
+ })
24763
+ );
24764
+ })
24563
24765
  );
24564
24766
  })
24565
24767
  )
@@ -24676,7 +24878,8 @@ var SidebarContainer = function (_a) {
24676
24878
  var _f = React.useContext(SettingsContext),
24677
24879
  sidebarHeaderComponent = _f.sidebarHeaderComponent,
24678
24880
  sidebarFooterComponent = _f.sidebarFooterComponent,
24679
- loaderComponent = _f.loaderComponent;
24881
+ loaderComponent = _f.loaderComponent,
24882
+ showPricesPerPaxType = _f.showPricesPerPaxType;
24680
24883
  var bookingAttributes = reactRedux.useSelector(selectBookingAttributes);
24681
24884
  var rooms = reactRedux.useSelector(selectFormRooms);
24682
24885
  var travelerRooms = getTravelersText(rooms);
@@ -24724,7 +24927,9 @@ var SidebarContainer = function (_a) {
24724
24927
  headerComponent: sidebarHeaderComponent !== null && sidebarHeaderComponent !== void 0 ? sidebarHeaderComponent : undefined,
24725
24928
  footerComponent: sidebarFooterComponent !== null && sidebarFooterComponent !== void 0 ? sidebarFooterComponent : undefined,
24726
24929
  loaderComponent: loaderComponent !== null && loaderComponent !== void 0 ? loaderComponent : undefined,
24727
- isUnavailable: isUnavailable
24930
+ isUnavailable: isUnavailable,
24931
+ basePricePerPaxType: showPricesPerPaxType ? reactRedux.useSelector(selectBasePricePerPaxType) : undefined,
24932
+ seperateExtraPricePerPaxType: showPricesPerPaxType ? reactRedux.useSelector(selectSeparateExtraPriceDetailsPerPaxType) : undefined
24728
24933
  });
24729
24934
  };
24730
24935
 
@@ -33062,7 +33267,9 @@ var QSMContainer = function () {
33062
33267
  fieldConfig: openJawReturnDestinationField,
33063
33268
  showReverse: openJawReturnDestinationField.showReverse
33064
33269
  }),
33065
- qsmType == 'hotel' && destination && React__default['default'].createElement(SearchInputGroup, { fieldConfig: destination }),
33270
+ (qsmType == 'hotel' || qsmType == 'hotel-flight') &&
33271
+ destination &&
33272
+ React__default['default'].createElement(SearchInputGroup, { fieldConfig: destination }),
33066
33273
  React__default['default'].createElement(Dates, { value: dateRange, onChange: handleDateChange }),
33067
33274
  askTravelers && React__default['default'].createElement(TravelInputGroup, null),
33068
33275
  React__default['default'].createElement(
@@ -37042,7 +37249,6 @@ var FlyIn = function (_a) {
37042
37249
  'div',
37043
37250
  { className: 'flyin__content-cards' },
37044
37251
  uniqueOutwardFlights.map(function (flightOption, index) {
37045
- var _a;
37046
37252
  var firstSegment = lodash.first(flightOption.outward.segments);
37047
37253
  if (!firstSegment) return null;
37048
37254
  var diff = getOutwardPriceDiff(firstSegment.metaData.fareCode);
@@ -37228,9 +37434,9 @@ var FlyIn = function (_a) {
37228
37434
  },
37229
37435
  React__default['default'].createElement(
37230
37436
  'div',
37231
- { className: 'cta cta--selected' },
37437
+ { className: 'cta '.concat(selectedOutwardFareCode === firstSegment.metaData.fareCode ? 'cta--selected' : '') },
37232
37438
  ' ',
37233
- selectedOutwardFareCode === ((_a = firstSegment.metaData) === null || _a === void 0 ? void 0 : _a.fareCode) ? 'Selected' : 'Select'
37439
+ selectedOutwardFareCode === firstSegment.metaData.fareCode ? 'Selected' : 'Select'
37234
37440
  )
37235
37441
  )
37236
37442
  );
@@ -37334,7 +37540,6 @@ var FlyIn = function (_a) {
37334
37540
  'div',
37335
37541
  { className: 'flyin__content-cards' },
37336
37542
  uniqueReturnFlights.map(function (flightOption, index) {
37337
- var _a;
37338
37543
  var firstSegment = lodash.first(flightOption.return.segments);
37339
37544
  if (!firstSegment) return null;
37340
37545
  var diff = getReturnPriceDiff(firstSegment.metaData.fareCode);
@@ -37520,9 +37725,9 @@ var FlyIn = function (_a) {
37520
37725
  },
37521
37726
  React__default['default'].createElement(
37522
37727
  'div',
37523
- { className: 'cta cta--selected' },
37728
+ { className: 'cta '.concat(selectedReturnFareCode === firstSegment.metaData.fareCode ? 'cta--selected' : '') },
37524
37729
  ' ',
37525
- selectedOutwardFareCode === ((_a = firstSegment.metaData) === null || _a === void 0 ? void 0 : _a.fareCode) ? 'Selected' : 'Select'
37730
+ selectedReturnFareCode === firstSegment.metaData.fareCode ? 'Selected' : 'Select'
37526
37731
  )
37527
37732
  )
37528
37733
  );
@@ -44053,12 +44258,13 @@ var LoginComponent = function (_a) {
44053
44258
  });
44054
44259
  }
44055
44260
  });
44056
- var handleForgotPasswordClick = function () {
44261
+ var handleForgotPasswordClick = function (e) {
44057
44262
  return __awaiter(void 0, void 0, void 0, function () {
44058
44263
  var errors;
44059
44264
  return __generator(this, function (_a) {
44060
44265
  switch (_a.label) {
44061
44266
  case 0:
44267
+ e.preventDefault();
44062
44268
  formik$1.setTouched({ username: true }, true);
44063
44269
  return [4 /*yield*/, formik$1.validateForm()];
44064
44270
  case 1:
@@ -44292,12 +44498,13 @@ var ResetPasswordComponent = function (_a) {
44292
44498
  setErrors(validationErrors);
44293
44499
  return Object.keys(validationErrors).length === 0;
44294
44500
  };
44295
- var handleResetPassword = function () {
44501
+ var handleResetPassword = function (e) {
44296
44502
  return __awaiter(void 0, void 0, void 0, function () {
44297
44503
  var isValid, response;
44298
44504
  return __generator(this, function (_b) {
44299
44505
  switch (_b.label) {
44300
44506
  case 0:
44507
+ e.preventDefault();
44301
44508
  setSubmitted(true);
44302
44509
  setTouched({ password: true, repeatPassword: true });
44303
44510
  isValid = validate();