@qite/tide-booking-component 1.4.99 → 1.4.101

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.
@@ -12791,7 +12791,7 @@ PERFORMANCE OF THIS SOFTWARE.
12791
12791
  return ENDPOINT$8 + '/details/' + transactionId + '/alternate-flights';
12792
12792
  };
12793
12793
  var ENDPOINT_BOOKABLE_DATES = ENDPOINT$8 + '/bookable-dates';
12794
- var ENDPOINT_PRICE_DETAILS = ENDPOINT$8 + '/price-details';
12794
+ var ENDPOINT_PRICE_DETAILS$1 = ENDPOINT$8 + '/price-details';
12795
12795
  var ENDPOINT_BOOK = ENDPOINT$8 + '/book';
12796
12796
  var ENDPOINT_UPDATE = ENDPOINT$8 + '/update';
12797
12797
  var ENDPOINT_AGENTS = ENDPOINT$8 + '/agents';
@@ -12891,7 +12891,7 @@ PERFORMANCE OF THIS SOFTWARE.
12891
12891
  return post(url, apiKey, body, config.token, signal, true);
12892
12892
  };
12893
12893
  var priceDetails = function (config, request, signal, languageCode) {
12894
- var url = '' + config.host + ENDPOINT_PRICE_DETAILS;
12894
+ var url = '' + config.host + ENDPOINT_PRICE_DETAILS$1;
12895
12895
  var apiKey = config.apiKey;
12896
12896
  var body = JSON.stringify(request);
12897
12897
  return post(url, apiKey, body, config.token, signal, true, languageCode);
@@ -13417,10 +13417,11 @@ PERFORMANCE OF THIS SOFTWARE.
13417
13417
  var ENDPOINT = '/api/web/packaging';
13418
13418
  var ENDPOINT_START_TRANSACTION = ENDPOINT + '/start';
13419
13419
  var ENDPOINT_ACCOMMODATIONS = ENDPOINT + '/accommodations';
13420
+ var ENDPOINT_PRICE_DETAILS = ENDPOINT + '/price-details';
13421
+ var ENDPOINT_ITINERARY = ENDPOINT + '/itinerary';
13420
13422
  var ENDPOINT_ENTRY = function (magicLinkCode) {
13421
13423
  return ENDPOINT + '/entry/' + magicLinkCode;
13422
13424
  };
13423
- // MANUAL PACKAGING SEARCH
13424
13425
  var startTransaction = function (config, signal) {
13425
13426
  var apiKey = config.apiKey;
13426
13427
  var url = '' + config.host + ENDPOINT_START_TRANSACTION;
@@ -13437,6 +13438,18 @@ PERFORMANCE OF THIS SOFTWARE.
13437
13438
  var url = '' + config.host + ENDPOINT_ENTRY(magicLinkCode);
13438
13439
  return get(url, apiKey, config.token, signal, true);
13439
13440
  };
13441
+ var getPriceDetails = function (config, request, signal) {
13442
+ var url = '' + config.host + ENDPOINT_PRICE_DETAILS;
13443
+ var apiKey = config.apiKey;
13444
+ var body = JSON.stringify(request);
13445
+ return post(url, apiKey, body, config.token, signal, true);
13446
+ };
13447
+ var getItinerary = function (config, request, signal) {
13448
+ var url = '' + config.host + ENDPOINT_ITINERARY;
13449
+ var apiKey = config.apiKey;
13450
+ var body = JSON.stringify(request);
13451
+ return post(url, apiKey, body, config.token, signal, true);
13452
+ };
13440
13453
 
13441
13454
  exports.AllotmentType = AllotmentType;
13442
13455
  exports.ContactForm = ContactForm;
@@ -13489,9 +13502,11 @@ PERFORMANCE OF THIS SOFTWARE.
13489
13502
  exports.getEntryStatus = getEntryStatus;
13490
13503
  exports.getEntryTotals = getEntryTotals;
13491
13504
  exports.getInvoiceList = getInvoiceList;
13505
+ exports.getItinerary = getItinerary;
13492
13506
  exports.getLocations = getLocations;
13493
13507
  exports.getMolliePayment = getMolliePayment;
13494
13508
  exports.getPortal = getPortal;
13509
+ exports.getPriceDetails = getPriceDetails;
13495
13510
  exports.getPrintActions = getPrintActions;
13496
13511
  exports.getStyleSheet = getStyleSheet;
13497
13512
  exports.getTranslationDictionary = getTranslationDictionary;
@@ -33812,7 +33827,9 @@ var initialState$1 = {
33812
33827
  flyInIsOpen: false,
33813
33828
  editablePackagingEntry: null,
33814
33829
  transactionId: null,
33815
- accommodationFlyInStep: 'details'
33830
+ accommodationFlyInStep: 'details',
33831
+ priceDetails: null,
33832
+ itinerary: null
33816
33833
  };
33817
33834
  var searchResultsSlice = toolkit.createSlice({
33818
33835
  name: 'searchResults',
@@ -33905,6 +33922,12 @@ var searchResultsSlice = toolkit.createSlice({
33905
33922
  },
33906
33923
  setAccommodationFlyInStep: function (state, action) {
33907
33924
  state.accommodationFlyInStep = action.payload;
33925
+ },
33926
+ setPriceDetails: function (state, action) {
33927
+ state.priceDetails = action.payload;
33928
+ },
33929
+ setItinerary: function (state, action) {
33930
+ state.itinerary = action.payload;
33908
33931
  }
33909
33932
  }
33910
33933
  });
@@ -33929,7 +33952,9 @@ _a.resetSearchState;
33929
33952
  var setFlyInIsOpen = _a.setFlyInIsOpen,
33930
33953
  setEditablePackagingEntry = _a.setEditablePackagingEntry,
33931
33954
  setTransactionId = _a.setTransactionId,
33932
- setAccommodationFlyInStep = _a.setAccommodationFlyInStep;
33955
+ setAccommodationFlyInStep = _a.setAccommodationFlyInStep,
33956
+ setPriceDetails = _a.setPriceDetails,
33957
+ setItinerary = _a.setItinerary;
33933
33958
  var searchResultsReducer = searchResultsSlice.reducer;
33934
33959
 
33935
33960
  var ItemPicker = function (_a) {
@@ -35195,14 +35220,16 @@ var getSegmentTitle = function (segment) {
35195
35220
  var Itinerary = function (_a) {
35196
35221
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
35197
35222
  var isOpen = _a.isOpen,
35198
- handleSetIsOpen = _a.handleSetIsOpen;
35199
- _a.isLoading;
35200
- var onEditAccommodation = _a.onEditAccommodation;
35223
+ handleSetIsOpen = _a.handleSetIsOpen,
35224
+ isLoading = _a.isLoading,
35225
+ onEditAccommodation = _a.onEditAccommodation;
35201
35226
  var context = React.useContext(SearchResultsConfigurationContext);
35202
35227
  var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
35203
- var editablePackagingEntry = reactRedux.useSelector(function (state) {
35204
- return state.searchResults;
35205
- }).editablePackagingEntry;
35228
+ var _q = reactRedux.useSelector(function (state) {
35229
+ return state.searchResults;
35230
+ }),
35231
+ editablePackagingEntry = _q.editablePackagingEntry,
35232
+ priceDetails = _q.priceDetails;
35206
35233
  var packagingEntry =
35207
35234
  editablePackagingEntry !== null && editablePackagingEntry !== void 0
35208
35235
  ? editablePackagingEntry
@@ -35290,7 +35317,7 @@ var Itinerary = function (_a) {
35290
35317
  console.log('otherSegments', otherSegments);
35291
35318
  console.log('groupedOtherSegments', groupedOtherSegments);
35292
35319
  var numberOfPax = ((_p = packagingEntry.pax) === null || _p === void 0 ? void 0 : _p.length) || 1;
35293
- var totalPrice = packagingEntry.price || 0;
35320
+ var totalPrice = (priceDetails === null || priceDetails === void 0 ? void 0 : priceDetails.total) || packagingEntry.price || 0;
35294
35321
  var pricePerPerson = totalPrice / numberOfPax;
35295
35322
  return React__default['default'].createElement(
35296
35323
  'div',
@@ -35346,18 +35373,24 @@ var Itinerary = function (_a) {
35346
35373
  React__default['default'].createElement(
35347
35374
  'div',
35348
35375
  { className: 'search__filter__prices' },
35349
- React__default['default'].createElement(
35350
- 'div',
35351
- { className: 'search__filter__prices__wrapper' },
35352
- React__default['default'].createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$2(pricePerPerson, 'EUR')),
35353
- React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
35354
- React__default['default'].createElement(
35355
- 'p',
35356
- null,
35357
- React__default['default'].createElement('strong', null, '(', formatPrice$2(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
35358
- )
35359
- ),
35360
- React__default['default'].createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
35376
+ isLoading
35377
+ ? React__default['default'].createElement(Spinner, null)
35378
+ : React__default['default'].createElement(
35379
+ React__default['default'].Fragment,
35380
+ null,
35381
+ React__default['default'].createElement(
35382
+ 'div',
35383
+ { className: 'search__filter__prices__wrapper' },
35384
+ React__default['default'].createElement('h3', { className: 'search__filter__prices--amount' }, formatPrice$2(pricePerPerson, 'EUR')),
35385
+ React__default['default'].createElement('p', null, translations.SRP.PACKAGE_PRICE_PER_PERSON),
35386
+ React__default['default'].createElement(
35387
+ 'p',
35388
+ null,
35389
+ React__default['default'].createElement('strong', null, '(', formatPrice$2(totalPrice, 'EUR'), ' ', translations.SRP.TOTAL, ')')
35390
+ )
35391
+ ),
35392
+ React__default['default'].createElement('button', { className: 'cta' }, translations.QSM.CONFIRM)
35393
+ )
35361
35394
  ),
35362
35395
  React__default['default'].createElement(
35363
35396
  'div',
@@ -47236,14 +47269,6 @@ var getSelectedOptionsPerRoom = function (details) {
47236
47269
  };
47237
47270
  });
47238
47271
  };
47239
- var getRoomIndexFromLine = function (line) {
47240
- var _a, _b;
47241
- if (!((_a = line.pax) === null || _a === void 0 ? void 0 : _a.length)) return 0;
47242
- var firstPax = __spreadArray([], line.pax, true).sort(function (a, b) {
47243
- return a.order - b.order;
47244
- })[0];
47245
- return (_b = firstPax === null || firstPax === void 0 ? void 0 : firstPax.room) !== null && _b !== void 0 ? _b : 0;
47246
- };
47247
47272
  var getRequestRoomsFromPackagingSegments = function (entry, segments) {
47248
47273
  var _a;
47249
47274
  var accommodationLines = __spreadArray([], segments !== null && segments !== void 0 ? segments : [], true)
@@ -47309,6 +47334,118 @@ var getRequestRoomsFromPackagingSegments = function (entry, segments) {
47309
47334
  });
47310
47335
  };
47311
47336
 
47337
+ var formatNodeDate = function (date) {
47338
+ if (!date) return '';
47339
+ try {
47340
+ return new Intl.DateTimeFormat('nl-BE', {
47341
+ weekday: 'long',
47342
+ day: '2-digit',
47343
+ month: '2-digit',
47344
+ year: 'numeric'
47345
+ }).format(date);
47346
+ } catch (_a) {
47347
+ return '';
47348
+ }
47349
+ };
47350
+ var escapeHtml = function (value) {
47351
+ if (!value) return '';
47352
+ return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;');
47353
+ };
47354
+ var buildItineraryHtml = function (itinerary) {
47355
+ var _a;
47356
+ if (!itinerary) {
47357
+ return '\n <div class="itinerary-shell">\n <div class="itinerary-empty">Geen reisroute beschikbaar.</div>\n </div>\n ';
47358
+ }
47359
+ var nodesHtml = ((_a = itinerary.nodes) !== null && _a !== void 0 ? _a : [])
47360
+ .map(function (node) {
47361
+ var hasItems = Array.isArray(node.items) && node.items.length > 0;
47362
+ var itemsHtml = hasItems
47363
+ ? node.items
47364
+ .map(function (item) {
47365
+ var _a;
47366
+ return '\n <article class="itinerary-item" data-template="'
47367
+ .concat(escapeHtml(item.templateName), '">\n ')
47368
+ .concat((_a = item.contents) !== null && _a !== void 0 ? _a : '', '\n </article>\n ');
47369
+ })
47370
+ .join('')
47371
+ : '<div class="itinerary-node__empty">Geen items voor deze dag.</div>';
47372
+ return '\n <section class="itinerary-node">\n <header class="itinerary-node__header">\n <div class="itinerary-node__day">Dag '
47373
+ .concat(node.startDay)
47374
+ .concat(
47375
+ node.endDay > node.startDay ? ' - '.concat(node.endDay) : '',
47376
+ '</div>\n <div class="itinerary-node__meta">\n <h2 class="itinerary-node__title">'
47377
+ )
47378
+ .concat(escapeHtml(node.title), '</h2>\n <div class="itinerary-node__date">')
47379
+ .concat(
47380
+ escapeHtml(formatNodeDate(node.startDate)),
47381
+ '</div>\n </div>\n </header>\n\n <div class="itinerary-node__content">\n '
47382
+ )
47383
+ .concat(itemsHtml, '\n </div>\n </section>\n ');
47384
+ })
47385
+ .join('');
47386
+ var defaultItemsHtml =
47387
+ itinerary.defaultItems && itinerary.defaultItems.length > 0
47388
+ ? '\n <section class="itinerary-default-items">\n <h2 class="itinerary-default-items__title">Algemene info</h2>\n '.concat(
47389
+ itinerary.defaultItems
47390
+ .map(function (item) {
47391
+ var _a;
47392
+ return '\n <article class="itinerary-item" data-template="'
47393
+ .concat(escapeHtml(item.templateName), '">\n ')
47394
+ .concat((_a = item.contents) !== null && _a !== void 0 ? _a : '', '\n </article>\n ');
47395
+ })
47396
+ .join(''),
47397
+ '\n </section>\n '
47398
+ )
47399
+ : '';
47400
+ return '\n <div class="itinerary-shell">\n '
47401
+ .concat(
47402
+ itinerary.title
47403
+ ? '<header class="itinerary-shell__header"><h1 class="itinerary-shell__title">'.concat(escapeHtml(itinerary.title), '</h1></header>')
47404
+ : '',
47405
+ '\n\n <div class="itinerary-shell__content">\n '
47406
+ )
47407
+ .concat(nodesHtml, '\n ')
47408
+ .concat(defaultItemsHtml, '\n </div>\n </div>\n ');
47409
+ };
47410
+ var FullItinerary = function (_a) {
47411
+ var isLoading = _a.isLoading;
47412
+ if (isLoading) {
47413
+ return React__default['default'].createElement(Spinner, null);
47414
+ }
47415
+ var itinerary = reactRedux.useSelector(function (state) {
47416
+ return state.searchResults;
47417
+ }).itinerary;
47418
+ var hostRef = React.useRef(null);
47419
+ var shadowRootRef = React.useRef(null);
47420
+ var html = React.useMemo(
47421
+ function () {
47422
+ return buildItineraryHtml(itinerary);
47423
+ },
47424
+ [itinerary]
47425
+ );
47426
+ React.useEffect(
47427
+ function () {
47428
+ var _a;
47429
+ if (!hostRef.current) {
47430
+ return;
47431
+ }
47432
+ if (!shadowRootRef.current) {
47433
+ shadowRootRef.current = hostRef.current.attachShadow({ mode: 'open' });
47434
+ }
47435
+ var shadowRoot = shadowRootRef.current;
47436
+ shadowRoot.innerHTML =
47437
+ "\n <style>\n :host {\n all: initial;\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n .itinerary-shell {\n width: 100%;\n margin: 0 auto;\n font-family: 'Outfit', sans-serif;\n color: #222;\n }\n\n .itinerary-shell__header {\n margin-bottom: 24px;\n }\n\n .itinerary-shell__title {\n margin: 0;\n font-size: 32px;\n line-height: 1.2;\n }\n\n .itinerary-shell__content {\n display: grid;\n gap: 24px;\n }\n\n .itinerary-node {\n border: 1px solid #e5e7eb;\n border-radius: 16px;\n overflow: hidden;\n background: #fff;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);\n }\n\n .itinerary-node__header {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n padding: 20px 20px 16px;\n border-bottom: 1px solid #eef0f2;\n background: #fafafa;\n }\n\n .itinerary-node__day {\n flex: 0 0 auto;\n min-width: 72px;\n padding: 8px 12px;\n border-radius: 999px;\n font-size: 14px;\n font-weight: 700;\n line-height: 1;\n background: #111827;\n color: #fff;\n text-align: center;\n }\n\n .itinerary-node__meta {\n min-width: 0;\n }\n\n .itinerary-node__title {\n margin: 0;\n font-size: 22px;\n line-height: 1.25;\n }\n\n .itinerary-node__date {\n margin-top: 6px;\n font-size: 14px;\n color: #6b7280;\n }\n\n .itinerary-node__content {\n display: grid;\n gap: 20px;\n padding: 20px;\n }\n\n .itinerary-item {\n display: block;\n border-radius: 12px;\n overflow: hidden;\n background: #fff;\n }\n\n .itinerary-node__empty,\n .itinerary-empty {\n padding: 20px;\n border: 1px dashed #d1d5db;\n border-radius: 12px;\n color: #6b7280;\n background: #fafafa;\n }\n\n .itinerary-default-items {\n border: 1px solid #e5e7eb;\n border-radius: 16px;\n padding: 20px;\n background: #fff;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);\n }\n\n .itinerary-default-items__title {\n margin: 0 0 16px;\n font-size: 22px;\n }\n\n @media (max-width: 768px) {\n .itinerary-shell {\n padding: 16px;\n }\n\n .itinerary-node__header {\n flex-direction: column;\n }\n\n .itinerary-node__day {\n min-width: auto;\n }\n }\n\n "
47438
+ .concat(
47439
+ (_a = itinerary === null || itinerary === void 0 ? void 0 : itinerary.styleSheetBody) !== null && _a !== void 0 ? _a : '',
47440
+ '\n </style>\n\n '
47441
+ )
47442
+ .concat(html, '\n ');
47443
+ },
47444
+ [html, itinerary === null || itinerary === void 0 ? void 0 : itinerary.styleSheetBody]
47445
+ );
47446
+ return React__default['default'].createElement('div', { ref: hostRef });
47447
+ };
47448
+
47312
47449
  var SearchResultsContainer = function () {
47313
47450
  var _a, _b;
47314
47451
  var currentSearch = typeof window !== 'undefined' ? window.location.search : '';
@@ -47332,7 +47469,8 @@ var SearchResultsContainer = function () {
47332
47469
  packagingAccoSearchDetails = _c.packagingAccoSearchDetails,
47333
47470
  editablePackagingEntry = _c.editablePackagingEntry,
47334
47471
  transactionId = _c.transactionId,
47335
- accommodationFlyInStep = _c.accommodationFlyInStep;
47472
+ accommodationFlyInStep = _c.accommodationFlyInStep,
47473
+ itinerary = _c.itinerary;
47336
47474
  var isMobile = useMediaQuery('(max-width: 1200px)');
47337
47475
  var _d = React.useState(false),
47338
47476
  initialFiltersSet = _d[0],
@@ -47347,11 +47485,17 @@ var SearchResultsContainer = function () {
47347
47485
  detailsIsLoading = _g[0],
47348
47486
  setDetailsIsLoading = _g[1];
47349
47487
  var _h = React.useState(false),
47350
- itineraryOpen = _h[0],
47351
- setItineraryOpen = _h[1];
47352
- var _j = React.useState(null),
47353
- selectedAccommodationSeed = _j[0],
47354
- setSelectedAccommodationSeed = _j[1];
47488
+ pricesAreLoading = _h[0],
47489
+ setPricesAreLoading = _h[1];
47490
+ var _j = React.useState(false),
47491
+ itineraryIsLoading = _j[0],
47492
+ setItineraryIsLoading = _j[1];
47493
+ var _k = React.useState(false),
47494
+ itineraryOpen = _k[0],
47495
+ setItineraryOpen = _k[1];
47496
+ var _l = React.useState(null),
47497
+ selectedAccommodationSeed = _l[0],
47498
+ setSelectedAccommodationSeed = _l[1];
47355
47499
  var panelRef = React.useRef(null);
47356
47500
  var sortByTypes = [
47357
47501
  { direction: 'asc', label: 'default' },
@@ -47553,7 +47697,6 @@ var SearchResultsContainer = function () {
47553
47697
  };
47554
47698
  var handleConfirmHotelSwap = function () {
47555
47699
  var updatedEntry = swapHotelInPackagingEntry();
47556
- console.log('Updated entry after hotel swap', updatedEntry);
47557
47700
  if (!updatedEntry) return;
47558
47701
  dispatch(setEditablePackagingEntry(updatedEntry));
47559
47702
  handleFlyInToggle(false);
@@ -47570,18 +47713,17 @@ var SearchResultsContainer = function () {
47570
47713
  var selectedOptionsPerRoom = getSelectedOptionsPerRoom(details);
47571
47714
  if (!selectedOptionsPerRoom.length) return null;
47572
47715
  var selectedHotel = details[0];
47716
+ var roomIndex = 0;
47573
47717
  var updatedLines = sourceEntry.lines.map(function (line) {
47574
47718
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
47575
47719
  if (line.serviceType !== ACCOMMODATION_SERVICE_TYPE) {
47576
47720
  return line;
47577
47721
  }
47578
- // TODO: fix roomIndex
47579
- var roomIndex = getRoomIndexFromLine(line);
47580
- console.log('Processing line', line, 'with room index', roomIndex);
47581
47722
  var selectedRoom = selectedOptionsPerRoom.find(function (x) {
47582
47723
  return x.roomIndex === roomIndex;
47583
47724
  });
47584
47725
  var selectedOption = selectedRoom === null || selectedRoom === void 0 ? void 0 : selectedRoom.option;
47726
+ roomIndex++;
47585
47727
  if (!selectedOption) {
47586
47728
  return line;
47587
47729
  }
@@ -47675,7 +47817,6 @@ var SearchResultsContainer = function () {
47675
47817
  return [4 /*yield*/, build.search(config, searchRequest)];
47676
47818
  case 1:
47677
47819
  packageSearchResults = _b.sent();
47678
- console.log('Search results', packageSearchResults);
47679
47820
  enrichedFilters = enrichFiltersWithResults(packageSearchResults, context.filters, (_a = context.tags) !== null && _a !== void 0 ? _a : []);
47680
47821
  if (!initialFiltersSet) {
47681
47822
  dispatch(resetFilters(enrichedFilters));
@@ -47749,7 +47890,6 @@ var SearchResultsContainer = function () {
47749
47890
  searchRequest = buildPackagingAccommodationRequestFromSeed(seed, currentTransactionId);
47750
47891
  searchRequest.portalId = context.portalId;
47751
47892
  searchRequest.agentId = context.agentId;
47752
- console.log('Packaging accommodation search request', searchRequest);
47753
47893
  return [4 /*yield*/, build.searchPackagingAccommodations(config, searchRequest)];
47754
47894
  case 1:
47755
47895
  packageAccoSearchResults = _b.sent();
@@ -47790,7 +47930,6 @@ var SearchResultsContainer = function () {
47790
47930
  currentTransactionId =
47791
47931
  ((_a = context === null || context === void 0 ? void 0 : context.packagingEntry) === null || _a === void 0 ? void 0 : _a.transactionId) ||
47792
47932
  transactionId;
47793
- console.log('Current transaction ID', currentTransactionId);
47794
47933
  if (!!currentTransactionId) return [3 /*break*/, 2];
47795
47934
  dispatch(setIsLoading(true));
47796
47935
  return [4 /*yield*/, runStartTransaction()];
@@ -48036,7 +48175,6 @@ var SearchResultsContainer = function () {
48036
48175
  return [4 /*yield*/, build.searchPackagingAccommodations(config, detailSearchRequest)];
48037
48176
  case 2:
48038
48177
  packageAccoSearchDetails = _f.sent();
48039
- console.log('Packaging Acco Search details', packageAccoSearchDetails);
48040
48178
  dispatch(setPackagingAccoSearchDetails(packageAccoSearchDetails));
48041
48179
  setDetailsIsLoading(false);
48042
48180
  return [3 /*break*/, 4];
@@ -48131,6 +48269,79 @@ var SearchResultsContainer = function () {
48131
48269
  rooms: getRequestRoomsFromPackagingSegments(entry, sortedSegments)
48132
48270
  };
48133
48271
  };
48272
+ React.useEffect(
48273
+ function () {
48274
+ var fetchPriceDetails = function () {
48275
+ return __awaiter(void 0, void 0, void 0, function () {
48276
+ var config, priceDetails, err_6;
48277
+ return __generator(this, function (_a) {
48278
+ switch (_a.label) {
48279
+ case 0:
48280
+ if (!context || !editablePackagingEntry) return [2 /*return*/];
48281
+ setPricesAreLoading(true);
48282
+ _a.label = 1;
48283
+ case 1:
48284
+ _a.trys.push([1, 3, , 4]);
48285
+ config = {
48286
+ host: context.tideConnection.host,
48287
+ apiKey: context.tideConnection.apiKey
48288
+ };
48289
+ return [4 /*yield*/, build.getPriceDetails(config, editablePackagingEntry)];
48290
+ case 2:
48291
+ priceDetails = _a.sent();
48292
+ dispatch(setPriceDetails(priceDetails));
48293
+ setPricesAreLoading(false);
48294
+ return [3 /*break*/, 4];
48295
+ case 3:
48296
+ err_6 = _a.sent();
48297
+ console.error('Error fetching price details', err_6);
48298
+ setPricesAreLoading(false);
48299
+ return [3 /*break*/, 4];
48300
+ case 4:
48301
+ return [2 /*return*/];
48302
+ }
48303
+ });
48304
+ });
48305
+ };
48306
+ var fetchItinerary = function () {
48307
+ return __awaiter(void 0, void 0, void 0, function () {
48308
+ var config, itinerary_1, err_7;
48309
+ return __generator(this, function (_a) {
48310
+ switch (_a.label) {
48311
+ case 0:
48312
+ console.log('Fetching itinerary for entry', editablePackagingEntry);
48313
+ if (!context || !editablePackagingEntry) return [2 /*return*/];
48314
+ setItineraryIsLoading(true);
48315
+ _a.label = 1;
48316
+ case 1:
48317
+ _a.trys.push([1, 3, , 4]);
48318
+ config = {
48319
+ host: context.tideConnection.host,
48320
+ apiKey: context.tideConnection.apiKey
48321
+ };
48322
+ return [4 /*yield*/, build.getItinerary(config, editablePackagingEntry)];
48323
+ case 2:
48324
+ itinerary_1 = _a.sent();
48325
+ console.log('Fetched itinerary', itinerary_1);
48326
+ dispatch(setItinerary(itinerary_1));
48327
+ setItineraryIsLoading(false);
48328
+ return [3 /*break*/, 4];
48329
+ case 3:
48330
+ err_7 = _a.sent();
48331
+ console.error('Error fetching itinerary', err_7);
48332
+ setItineraryIsLoading(false);
48333
+ return [3 /*break*/, 4];
48334
+ case 4:
48335
+ return [2 /*return*/];
48336
+ }
48337
+ });
48338
+ });
48339
+ };
48340
+ fetchPriceDetails();
48341
+ fetchItinerary();
48342
+ },
48343
+ [editablePackagingEntry]
48344
+ );
48134
48345
  return React__default['default'].createElement(
48135
48346
  'div',
48136
48347
  { id: 'tide-booking', className: 'search__bg' },
@@ -48182,7 +48393,7 @@ var SearchResultsContainer = function () {
48182
48393
  handleSetIsOpen: function () {
48183
48394
  return setItineraryOpen(!itineraryOpen);
48184
48395
  },
48185
- isLoading: isLoading,
48396
+ isLoading: pricesAreLoading,
48186
48397
  onEditAccommodation: handleEditAccommodation
48187
48398
  }),
48188
48399
  React__default['default'].createElement(
@@ -48321,7 +48532,8 @@ var SearchResultsContainer = function () {
48321
48532
  }),
48322
48533
  context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
48323
48534
  context.packagingEntry &&
48324
- React__default['default'].createElement('span', null, 'TODO: Show Full Itinerary here')
48535
+ itinerary &&
48536
+ React__default['default'].createElement(FullItinerary, { isLoading: itineraryIsLoading })
48325
48537
  )
48326
48538
  ),
48327
48539
  React__default['default'].createElement(FlyIn, {
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface FullItineraryProps {
3
+ isLoading: boolean;
4
+ }
5
+ declare const FullItinerary: React.FC<FullItineraryProps>;
6
+ export default FullItinerary;
@@ -1,5 +1,12 @@
1
1
  import { AccommodationFlyInStep, ExtendedFlightSearchResponseItem, Filter, SortByType } from '../types';
2
- import { BookingPackage, BookingPackageItem, PackagingAccommodationResponse, PackagingEntry } from '@qite/tide-client/build/types';
2
+ import {
3
+ BookingPackage,
4
+ BookingPackageItem,
5
+ BookingPriceDetails,
6
+ ClientPortalItinerary,
7
+ PackagingAccommodationResponse,
8
+ PackagingEntry
9
+ } from '@qite/tide-client/build/types';
3
10
  export interface SearchResultsState {
4
11
  results: BookingPackageItem[];
5
12
  filteredResults: BookingPackageItem[];
@@ -20,6 +27,8 @@ export interface SearchResultsState {
20
27
  editablePackagingEntry: PackagingEntry | null;
21
28
  transactionId: string | null;
22
29
  accommodationFlyInStep: AccommodationFlyInStep;
30
+ priceDetails: BookingPriceDetails | null;
31
+ itinerary: ClientPortalItinerary | null;
23
32
  }
24
33
  export declare const setResults: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingPackageItem[], 'searchResults/setResults'>,
25
34
  setFilteredResults: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingPackageItem[], 'searchResults/setFilteredResults'>,
@@ -62,6 +71,8 @@ export declare const setResults: import('@reduxjs/toolkit').ActionCreatorWithPay
62
71
  setFlyInIsOpen: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'searchResults/setFlyInIsOpen'>,
63
72
  setEditablePackagingEntry: import('@reduxjs/toolkit').ActionCreatorWithPayload<PackagingEntry | null, 'searchResults/setEditablePackagingEntry'>,
64
73
  setTransactionId: import('@reduxjs/toolkit').ActionCreatorWithPayload<string | null, 'searchResults/setTransactionId'>,
65
- setAccommodationFlyInStep: import('@reduxjs/toolkit').ActionCreatorWithPayload<AccommodationFlyInStep, 'searchResults/setAccommodationFlyInStep'>;
74
+ setAccommodationFlyInStep: import('@reduxjs/toolkit').ActionCreatorWithPayload<AccommodationFlyInStep, 'searchResults/setAccommodationFlyInStep'>,
75
+ setPriceDetails: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingPriceDetails | null, 'searchResults/setPriceDetails'>,
76
+ setItinerary: import('@reduxjs/toolkit').ActionCreatorWithPayload<ClientPortalItinerary | null, 'searchResults/setItinerary'>;
66
77
  declare const _default: import('@reduxjs/toolkit').Reducer<SearchResultsState>;
67
78
  export default _default;