@qite/tide-booking-component 1.4.105 → 1.4.106

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.
@@ -663,6 +663,10 @@ var SRP$f = {
663
663
  TRAVEL_GROUP: 'مجموعة المسافرين',
664
664
  EXCURSION: 'رحلة'
665
665
  };
666
+ var ITINERARY$f = {
667
+ DAY: 'اليوم',
668
+ NO_ITEMS: 'لا توجد عناصر لهذا اليوم.'
669
+ };
666
670
  var arJson = {
667
671
  STEPS: STEPS$f,
668
672
  INPUT: INPUT$f,
@@ -681,7 +685,8 @@ var arJson = {
681
685
  NAVBAR: NAVBAR$f,
682
686
  LOGIN: LOGIN$f,
683
687
  QSM: QSM$g,
684
- SRP: SRP$f
688
+ SRP: SRP$f,
689
+ ITINERARY: ITINERARY$f
685
690
  };
686
691
 
687
692
  var STEPS$e = {
@@ -1071,6 +1076,10 @@ var SRP$e = {
1071
1076
  TRAVEL_GROUP: 'Rejseselskab',
1072
1077
  EXCURSION: 'Udflugt'
1073
1078
  };
1079
+ var ITINERARY$e = {
1080
+ DAY: 'Dag',
1081
+ NO_ITEMS: 'Ingen elementer for denne dag.'
1082
+ };
1074
1083
  var daJson = {
1075
1084
  STEPS: STEPS$e,
1076
1085
  INPUT: INPUT$e,
@@ -1089,7 +1098,8 @@ var daJson = {
1089
1098
  NAVBAR: NAVBAR$e,
1090
1099
  LOGIN: LOGIN$e,
1091
1100
  QSM: QSM$f,
1092
- SRP: SRP$e
1101
+ SRP: SRP$e,
1102
+ ITINERARY: ITINERARY$e
1093
1103
  };
1094
1104
 
1095
1105
  var STEPS$d = {
@@ -1480,6 +1490,10 @@ var SRP$d = {
1480
1490
  TRAVEL_GROUP: 'Reisegruppe',
1481
1491
  EXCURSION: 'Ausflug'
1482
1492
  };
1493
+ var ITINERARY$d = {
1494
+ DAY: 'Tag',
1495
+ NO_ITEMS: 'Keine Elemente für diesen Tag.'
1496
+ };
1483
1497
  var deJson = {
1484
1498
  STEPS: STEPS$d,
1485
1499
  INPUT: INPUT$d,
@@ -1498,7 +1512,8 @@ var deJson = {
1498
1512
  NAVBAR: NAVBAR$d,
1499
1513
  LOGIN: LOGIN$d,
1500
1514
  QSM: QSM$e,
1501
- SRP: SRP$d
1515
+ SRP: SRP$d,
1516
+ ITINERARY: ITINERARY$d
1502
1517
  };
1503
1518
 
1504
1519
  var STEPS$c = {
@@ -1892,6 +1907,10 @@ var SRP$c = {
1892
1907
  TRAVEL_GROUP: 'Travel group',
1893
1908
  EXCURSION: 'Excursion'
1894
1909
  };
1910
+ var ITINERARY$c = {
1911
+ DAY: 'Day',
1912
+ NO_ITEMS: 'No items for this day.'
1913
+ };
1895
1914
  var enJson = {
1896
1915
  STEPS: STEPS$c,
1897
1916
  INPUT: INPUT$c,
@@ -1910,7 +1929,8 @@ var enJson = {
1910
1929
  NAVBAR: NAVBAR$c,
1911
1930
  LOGIN: LOGIN$c,
1912
1931
  QSM: QSM$d,
1913
- SRP: SRP$c
1932
+ SRP: SRP$c,
1933
+ ITINERARY: ITINERARY$c
1914
1934
  };
1915
1935
 
1916
1936
  var STEPS$b = {
@@ -2301,6 +2321,10 @@ var SRP$b = {
2301
2321
  TRAVEL_GROUP: 'Grupo de viaje',
2302
2322
  EXCURSION: 'Excursión'
2303
2323
  };
2324
+ var ITINERARY$b = {
2325
+ DAY: 'Día',
2326
+ NO_ITEMS: 'No hay elementos para este día.'
2327
+ };
2304
2328
  var esJson = {
2305
2329
  STEPS: STEPS$b,
2306
2330
  INPUT: INPUT$b,
@@ -2319,7 +2343,8 @@ var esJson = {
2319
2343
  NAVBAR: NAVBAR$b,
2320
2344
  LOGIN: LOGIN$b,
2321
2345
  QSM: QSM$c,
2322
- SRP: SRP$b
2346
+ SRP: SRP$b,
2347
+ ITINERARY: ITINERARY$b
2323
2348
  };
2324
2349
 
2325
2350
  var STEPS$a = {
@@ -2714,6 +2739,10 @@ var SRP$a = {
2714
2739
  TRAVEL_GROUP: 'Groupe de voyageurs',
2715
2740
  EXCURSION: 'Excursion'
2716
2741
  };
2742
+ var ITINERARY$a = {
2743
+ DAY: 'Jour',
2744
+ NO_ITEMS: 'Aucun élément pour ce jour.'
2745
+ };
2717
2746
  var frBeJson = {
2718
2747
  STEPS: STEPS$a,
2719
2748
  INPUT: INPUT$a,
@@ -2732,7 +2761,8 @@ var frBeJson = {
2732
2761
  NAVBAR: NAVBAR$a,
2733
2762
  LOGIN: LOGIN$a,
2734
2763
  QSM: QSM$b,
2735
- SRP: SRP$a
2764
+ SRP: SRP$a,
2765
+ ITINERARY: ITINERARY$a
2736
2766
  };
2737
2767
 
2738
2768
  var STEPS$9 = {
@@ -3122,6 +3152,10 @@ var SRP$9 = {
3122
3152
  TRAVEL_GROUP: 'Groupe de voyageurs',
3123
3153
  EXCURSION: 'Excursion'
3124
3154
  };
3155
+ var ITINERARY$9 = {
3156
+ DAY: 'Jour',
3157
+ NO_ITEMS: 'Aucun élément pour ce jour.'
3158
+ };
3125
3159
  var frFrJson = {
3126
3160
  STEPS: STEPS$9,
3127
3161
  INPUT: INPUT$9,
@@ -3140,7 +3174,8 @@ var frFrJson = {
3140
3174
  NAVBAR: NAVBAR$9,
3141
3175
  LOGIN: LOGIN$9,
3142
3176
  QSM: QSM$a,
3143
- SRP: SRP$9
3177
+ SRP: SRP$9,
3178
+ ITINERARY: ITINERARY$9
3144
3179
  };
3145
3180
 
3146
3181
  var STEPS$8 = {
@@ -3530,6 +3565,10 @@ var SRP$8 = {
3530
3565
  TRAVEL_GROUP: 'Ferðahópur',
3531
3566
  EXCURSION: 'Útflutningur'
3532
3567
  };
3568
+ var ITINERARY$8 = {
3569
+ DAY: 'Dagur',
3570
+ NO_ITEMS: 'Engar upplýsingar fyrir þennan dag.'
3571
+ };
3533
3572
  var isJson = {
3534
3573
  STEPS: STEPS$8,
3535
3574
  INPUT: INPUT$8,
@@ -3548,7 +3587,8 @@ var isJson = {
3548
3587
  NAVBAR: NAVBAR$8,
3549
3588
  LOGIN: LOGIN$8,
3550
3589
  QSM: QSM$9,
3551
- SRP: SRP$8
3590
+ SRP: SRP$8,
3591
+ ITINERARY: ITINERARY$8
3552
3592
  };
3553
3593
 
3554
3594
  var STEPS$7 = {
@@ -3939,6 +3979,10 @@ var SRP$7 = {
3939
3979
  TRAVEL_GROUP: 'Gruppo di viaggio',
3940
3980
  EXCURSION: 'Escursione'
3941
3981
  };
3982
+ var ITINERARY$7 = {
3983
+ DAY: 'Giorno',
3984
+ NO_ITEMS: 'Nessun elemento per questo giorno.'
3985
+ };
3942
3986
  var itJson = {
3943
3987
  STEPS: STEPS$7,
3944
3988
  INPUT: INPUT$7,
@@ -3957,7 +4001,8 @@ var itJson = {
3957
4001
  NAVBAR: NAVBAR$7,
3958
4002
  LOGIN: LOGIN$7,
3959
4003
  QSM: QSM$8,
3960
- SRP: SRP$7
4004
+ SRP: SRP$7,
4005
+ ITINERARY: ITINERARY$7
3961
4006
  };
3962
4007
 
3963
4008
  var STEPS$6 = {
@@ -4352,6 +4397,10 @@ var SRP$6 = {
4352
4397
  TRAVEL_GROUP: 'Reisgezelschap',
4353
4398
  EXCURSION: 'Excursie'
4354
4399
  };
4400
+ var ITINERARY$6 = {
4401
+ DAY: 'Dag',
4402
+ NO_ITEMS: 'Geen elementen voor deze dag.'
4403
+ };
4355
4404
  var nlBeJson = {
4356
4405
  STEPS: STEPS$6,
4357
4406
  INPUT: INPUT$6,
@@ -4370,7 +4419,8 @@ var nlBeJson = {
4370
4419
  NAVBAR: NAVBAR$6,
4371
4420
  LOGIN: LOGIN$6,
4372
4421
  QSM: QSM$7,
4373
- SRP: SRP$6
4422
+ SRP: SRP$6,
4423
+ ITINERARY: ITINERARY$6
4374
4424
  };
4375
4425
 
4376
4426
  var STEPS$5 = {
@@ -4761,6 +4811,10 @@ var SRP$5 = {
4761
4811
  TRAVEL_GROUP: 'Reisgezelschap',
4762
4812
  EXCURSION: 'Excursie'
4763
4813
  };
4814
+ var ITINERARY$5 = {
4815
+ DAY: 'Dag',
4816
+ NO_ITEMS: 'Geen elementen voor deze dag.'
4817
+ };
4764
4818
  var nlNlJson = {
4765
4819
  STEPS: STEPS$5,
4766
4820
  INPUT: INPUT$5,
@@ -4779,7 +4833,8 @@ var nlNlJson = {
4779
4833
  NAVBAR: NAVBAR$5,
4780
4834
  LOGIN: LOGIN$5,
4781
4835
  QSM: QSM$6,
4782
- SRP: SRP$5
4836
+ SRP: SRP$5,
4837
+ ITINERARY: ITINERARY$5
4783
4838
  };
4784
4839
 
4785
4840
  var STEPS$4 = {
@@ -5170,6 +5225,10 @@ var SRP$4 = {
5170
5225
  TRAVEL_GROUP: 'Reisefølge',
5171
5226
  EXCURSION: 'Utflukt'
5172
5227
  };
5228
+ var ITINERARY$4 = {
5229
+ DAY: 'Dag',
5230
+ NO_ITEMS: 'Ingen elementer for denne dagen.'
5231
+ };
5173
5232
  var noJson = {
5174
5233
  STEPS: STEPS$4,
5175
5234
  INPUT: INPUT$4,
@@ -5188,7 +5247,8 @@ var noJson = {
5188
5247
  NAVBAR: NAVBAR$4,
5189
5248
  LOGIN: LOGIN$4,
5190
5249
  QSM: QSM$5,
5191
- SRP: SRP$4
5250
+ SRP: SRP$4,
5251
+ ITINERARY: ITINERARY$4
5192
5252
  };
5193
5253
 
5194
5254
  var STEPS$3 = {
@@ -5579,6 +5639,10 @@ var SRP$3 = {
5579
5639
  TRAVEL_GROUP: 'Grupa podróżnych',
5580
5640
  EXCURSION: 'Wycieczka'
5581
5641
  };
5642
+ var ITINERARY$3 = {
5643
+ DAY: 'Dzień',
5644
+ NO_ITEMS: 'Brak elementów dla tego dnia.'
5645
+ };
5582
5646
  var plJson = {
5583
5647
  STEPS: STEPS$3,
5584
5648
  INPUT: INPUT$3,
@@ -5597,7 +5661,8 @@ var plJson = {
5597
5661
  NAVBAR: NAVBAR$3,
5598
5662
  LOGIN: LOGIN$3,
5599
5663
  QSM: QSM$4,
5600
- SRP: SRP$3
5664
+ SRP: SRP$3,
5665
+ ITINERARY: ITINERARY$3
5601
5666
  };
5602
5667
 
5603
5668
  var STEPS$2 = {
@@ -5988,6 +6053,10 @@ var SRP$2 = {
5988
6053
  TRAVEL_GROUP: 'Grupo de viajantes',
5989
6054
  EXCURSION: 'Excursão'
5990
6055
  };
6056
+ var ITINERARY$2 = {
6057
+ DAY: 'Dia',
6058
+ NO_ITEMS: 'Nenhum item para este dia.'
6059
+ };
5991
6060
  var ptJson = {
5992
6061
  STEPS: STEPS$2,
5993
6062
  INPUT: INPUT$2,
@@ -6006,7 +6075,8 @@ var ptJson = {
6006
6075
  NAVBAR: NAVBAR$2,
6007
6076
  LOGIN: LOGIN$2,
6008
6077
  QSM: QSM$3,
6009
- SRP: SRP$2
6078
+ SRP: SRP$2,
6079
+ ITINERARY: ITINERARY$2
6010
6080
  };
6011
6081
 
6012
6082
  var STEPS$1 = {
@@ -6397,6 +6467,10 @@ var SRP$1 = {
6397
6467
  TRAVEL_GROUP: 'Resesällskap',
6398
6468
  EXCURSION: 'Utflykt'
6399
6469
  };
6470
+ var ITINERARY$1 = {
6471
+ DAY: 'Dag',
6472
+ NO_ITEMS: 'Inga element för denna dag.'
6473
+ };
6400
6474
  var svJson = {
6401
6475
  STEPS: STEPS$1,
6402
6476
  INPUT: INPUT$1,
@@ -6415,7 +6489,8 @@ var svJson = {
6415
6489
  NAVBAR: NAVBAR$1,
6416
6490
  LOGIN: LOGIN$1,
6417
6491
  QSM: QSM$2,
6418
- SRP: SRP$1
6492
+ SRP: SRP$1,
6493
+ ITINERARY: ITINERARY$1
6419
6494
  };
6420
6495
 
6421
6496
  var STEPS = {
@@ -6804,6 +6879,10 @@ var SRP = {
6804
6879
  TRAVEL_GROUP: '旅行グループ',
6805
6880
  EXCURSION: 'エクスカーション'
6806
6881
  };
6882
+ var ITINERARY = {
6883
+ DAY: '日',
6884
+ NO_ITEMS: 'この日のアイテムはありません。'
6885
+ };
6807
6886
  var jaJson = {
6808
6887
  STEPS: STEPS,
6809
6888
  INPUT: INPUT,
@@ -6822,7 +6901,8 @@ var jaJson = {
6822
6901
  NAVBAR: NAVBAR,
6823
6902
  LOGIN: LOGIN,
6824
6903
  QSM: QSM$1,
6825
- SRP: SRP
6904
+ SRP: SRP,
6905
+ ITINERARY: ITINERARY
6826
6906
  };
6827
6907
 
6828
6908
  var DepartureRange;
@@ -35280,6 +35360,21 @@ var getSegmentTitle = function (segment) {
35280
35360
  var _a;
35281
35361
  return (_a = segment.productName) !== null && _a !== void 0 ? _a : segment.accommodationName;
35282
35362
  };
35363
+ var SERVICE_TYPE_PRIORITY = {
35364
+ 7: 0, // Flight
35365
+ 13: 1, // Transfer
35366
+ 3: 2, // Hotel
35367
+ 4: 3 // Excursion
35368
+ };
35369
+ var getServiceTypePriority = function (serviceType) {
35370
+ var _a;
35371
+ return (_a = SERVICE_TYPE_PRIORITY[serviceType !== null && serviceType !== void 0 ? serviceType : -1]) !== null && _a !== void 0 ? _a : 2;
35372
+ };
35373
+ var getDateOnlyTime = function (date) {
35374
+ if (!date) return 0;
35375
+ var parsedDate = new Date(date);
35376
+ return new Date(parsedDate.getFullYear(), parsedDate.getMonth(), parsedDate.getDate()).getTime();
35377
+ };
35283
35378
  var Itinerary = function (_a) {
35284
35379
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
35285
35380
  var isOpen = _a.isOpen,
@@ -35308,14 +35403,17 @@ var Itinerary = function (_a) {
35308
35403
  true
35309
35404
  ).sort(function (a, b) {
35310
35405
  var _a, _b;
35311
- var orderA = (_a = a.order) !== null && _a !== void 0 ? _a : Infinity;
35312
- var orderB = (_b = b.order) !== null && _b !== void 0 ? _b : Infinity;
35313
- // First sort by order
35314
- if (orderA !== orderB) {
35315
- return orderA - orderB;
35316
- }
35317
- // Fallback to date
35318
- return new Date(a.from).getTime() - new Date(b.from).getTime();
35406
+ var dateA = getDateOnlyTime(a.from);
35407
+ var dateB = getDateOnlyTime(b.from);
35408
+ if (dateA !== dateB) {
35409
+ return dateA - dateB;
35410
+ }
35411
+ var priorityA = getServiceTypePriority(a.serviceType);
35412
+ var priorityB = getServiceTypePriority(b.serviceType);
35413
+ if (priorityA !== priorityB) {
35414
+ return priorityA - priorityB;
35415
+ }
35416
+ return ((_a = a.order) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.order) !== null && _b !== void 0 ? _b : Infinity);
35319
35417
  });
35320
35418
  },
35321
35419
  [packagingEntry]
@@ -48366,33 +48464,98 @@ var getRequestRoomsFromPackagingSegments = function (entry, segments) {
48366
48464
  });
48367
48465
  };
48368
48466
 
48369
- var formatNodeDate = function (date) {
48370
- if (!date) return '';
48371
- try {
48372
- return new Intl.DateTimeFormat('nl-BE', {
48373
- weekday: 'long',
48374
- day: '2-digit',
48375
- month: '2-digit',
48376
- year: 'numeric'
48377
- }).format(date);
48378
- } catch (_a) {
48379
- return '';
48380
- }
48381
- };
48382
48467
  var escapeHtml = function (value) {
48383
48468
  if (!value) return '';
48384
48469
  return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;');
48385
48470
  };
48386
- var buildItineraryHtml = function (itinerary) {
48471
+ var getNodeDayRange = function (node) {
48472
+ var _a, _b;
48473
+ var startDay = Number((_a = node.startDay) !== null && _a !== void 0 ? _a : 0);
48474
+ var endDay = Number((_b = node.endDay) !== null && _b !== void 0 ? _b : startDay);
48475
+ return { startDay: startDay, endDay: endDay };
48476
+ };
48477
+ var getItemDuration = function (item) {
48478
+ var _a;
48479
+ var duration = Number((_a = item.productDuration) !== null && _a !== void 0 ? _a : 0);
48480
+ return Number.isFinite(duration) && duration > 0 ? duration : 0;
48481
+ };
48482
+ var isAccommodationItem = function (item) {
48483
+ var _a;
48484
+ return getItemDuration(item) > 1 && ((_a = item.templateName) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('hotel'));
48485
+ };
48486
+ var getAccommodationName = function (item) {
48487
+ return item.title || 'Onbekende accommodatie';
48488
+ };
48489
+ var getItemDeduplicationKey = function (item) {
48490
+ var _a;
48491
+ (_a = item.templateName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
48492
+ // if (templateName === 'hotel') {
48493
+ // return [item.templateName, item.productCode, item.accommodationCode, item.regimeCode].filter(Boolean).join('|');
48494
+ // }
48495
+ // if (templateName === 'excursion') {
48496
+ // return [item.templateName, item.productCode].filter(Boolean).join('|');
48497
+ // }
48498
+ return [item.templateName, item.productCode, item.title].filter(Boolean).join('|');
48499
+ };
48500
+ var getUniqueItems = function (items) {
48501
+ if (items === void 0) {
48502
+ items = [];
48503
+ }
48504
+ var seen = new Set();
48505
+ return items.filter(function (item) {
48506
+ var key = getItemDeduplicationKey(item) || item.itemGuid;
48507
+ if (seen.has(key)) {
48508
+ return false;
48509
+ }
48510
+ seen.add(key);
48511
+ return true;
48512
+ });
48513
+ };
48514
+ var findAccommodationForDay = function (nodes, currentDay) {
48515
+ var _a;
48516
+ for (var _i = 0, _b = nodes !== null && nodes !== void 0 ? nodes : []; _i < _b.length; _i++) {
48517
+ var node = _b[_i];
48518
+ var startDay = getNodeDayRange(node).startDay;
48519
+ var uniqueItems = getUniqueItems((_a = node.items) !== null && _a !== void 0 ? _a : []);
48520
+ for (var _c = 0, uniqueItems_1 = uniqueItems; _c < uniqueItems_1.length; _c++) {
48521
+ var item = uniqueItems_1[_c];
48522
+ if (!isAccommodationItem(item)) {
48523
+ continue;
48524
+ }
48525
+ var duration = getItemDuration(item);
48526
+ var accommodationEndDay = startDay + duration - 1;
48527
+ if (currentDay >= startDay && currentDay <= accommodationEndDay) {
48528
+ return item;
48529
+ }
48530
+ }
48531
+ }
48532
+ return null;
48533
+ };
48534
+ var buildItineraryHtml = function (itinerary, translations) {
48387
48535
  var _a;
48388
48536
  if (!itinerary) {
48389
48537
  return '\n <div class="itinerary-shell">\n <div class="itinerary-empty">Geen reisroute beschikbaar.</div>\n </div>\n ';
48390
48538
  }
48391
- var nodesHtml = ((_a = itinerary.nodes) !== null && _a !== void 0 ? _a : [])
48539
+ var allNodes = (_a = itinerary.nodes) !== null && _a !== void 0 ? _a : [];
48540
+ var nodesHtml = allNodes
48392
48541
  .map(function (node) {
48393
- var hasItems = Array.isArray(node.items) && node.items.length > 0;
48542
+ var _a;
48543
+ var startDay = getNodeDayRange(node).startDay;
48544
+ var day = node.startDate ? format$1(node.startDate, 'd') : null;
48545
+ var month = node.startDate ? format$1(node.startDate, 'MMM') : null;
48546
+ var uniqueItems = getUniqueItems((_a = node.items) !== null && _a !== void 0 ? _a : []);
48547
+ var hasItems = uniqueItems.length > 0;
48548
+ var hasAccommodationInCurrentNode = uniqueItems.some(isAccommodationItem);
48549
+ var activeAccommodation = findAccommodationForDay(allNodes, startDay);
48550
+ var accommodationBanner =
48551
+ !hasAccommodationInCurrentNode && activeAccommodation
48552
+ ? '\n <div class="itinerary-node__accommodation-banner">\n Accommodatie voor deze dag: <strong>'.concat(
48553
+ escapeHtml(getAccommodationName(activeAccommodation)),
48554
+ '</strong>\n </div>\n '
48555
+ )
48556
+ : '';
48394
48557
  var itemsHtml = hasItems
48395
- ? node.items
48558
+ ? uniqueItems
48396
48559
  .map(function (item) {
48397
48560
  var _a;
48398
48561
  return '\n <article class="itinerary-item" data-template="'
@@ -48400,25 +48563,19 @@ var buildItineraryHtml = function (itinerary) {
48400
48563
  .concat((_a = item.contents) !== null && _a !== void 0 ? _a : '', '\n </article>\n ');
48401
48564
  })
48402
48565
  .join('')
48403
- : '<div class="itinerary-node__empty">Geen items voor deze dag.</div>';
48404
- return '\n <section class="itinerary-node">\n <header class="itinerary-node__header">\n <div class="itinerary-node__day">Dag '
48405
- .concat(node.startDay)
48406
- .concat(
48407
- node.endDay > node.startDay ? ' - '.concat(node.endDay) : '',
48408
- '</div>\n <div class="itinerary-node__meta">\n <h2 class="itinerary-node__title">'
48409
- )
48410
- .concat(escapeHtml(node.title), '</h2>\n <div class="itinerary-node__date">')
48411
- .concat(
48412
- escapeHtml(formatNodeDate(node.startDate)),
48413
- '</div>\n </div>\n </header>\n\n <div class="itinerary-node__content">\n '
48414
- )
48566
+ : '<div class="itinerary-node__empty">'.concat(translations.ITINERARY.NO_ITEMS, '</div>');
48567
+ return '\n <section class="itinerary-node">\n <header class="itinerary-node__header">\n \n <div class="itinerary-node__day">\n <p class="itinerary-node__day-day">'
48568
+ .concat(day, '</p>\n <p class="itinerary-node__day-month">')
48569
+ .concat(month, '</p>\n </div>\n\n <div>\n <h2 class="itinerary-node__title">')
48570
+ .concat(escapeHtml(node.title), '</h2>\n </div>\n </header>\n\n <div class="itinerary-node__content">\n ')
48571
+ .concat(accommodationBanner, '\n ')
48415
48572
  .concat(itemsHtml, '\n </div>\n </section>\n ');
48416
48573
  })
48417
48574
  .join('');
48418
48575
  var defaultItemsHtml =
48419
48576
  itinerary.defaultItems && itinerary.defaultItems.length > 0
48420
48577
  ? '\n <section class="itinerary-default-items">\n <h2 class="itinerary-default-items__title">Algemene info</h2>\n '.concat(
48421
- itinerary.defaultItems
48578
+ getUniqueItems(itinerary.defaultItems)
48422
48579
  .map(function (item) {
48423
48580
  var _a;
48424
48581
  return '\n <article class="itinerary-item" data-template="'
@@ -48440,42 +48597,49 @@ var buildItineraryHtml = function (itinerary) {
48440
48597
  .concat(defaultItemsHtml, '\n </div>\n </div>\n ');
48441
48598
  };
48442
48599
  var FullItinerary = function (_a) {
48600
+ var _b;
48443
48601
  var isLoading = _a.isLoading;
48444
- if (isLoading) {
48445
- return React__default.createElement(Spinner, null);
48446
- }
48447
48602
  var itinerary = useSelector(function (state) {
48448
48603
  return state.searchResults;
48449
48604
  }).itinerary;
48605
+ var context = useContext(SearchResultsConfigurationContext);
48606
+ var translations = getTranslations((_b = context === null || context === void 0 ? void 0 : context.languageCode) !== null && _b !== void 0 ? _b : 'en-GB');
48450
48607
  var hostRef = useRef(null);
48451
48608
  var shadowRootRef = useRef(null);
48452
48609
  var html = useMemo(
48453
48610
  function () {
48454
- return buildItineraryHtml(itinerary);
48611
+ return buildItineraryHtml(itinerary, translations);
48455
48612
  },
48456
- [itinerary]
48613
+ [itinerary, translations]
48457
48614
  );
48458
48615
  useEffect(
48459
48616
  function () {
48460
- var _a;
48461
- if (!hostRef.current) {
48617
+ var _a, _b;
48618
+ if (isLoading) {
48462
48619
  return;
48463
48620
  }
48464
- if (!shadowRootRef.current) {
48465
- shadowRootRef.current = hostRef.current.attachShadow({ mode: 'open' });
48621
+ var host = hostRef.current;
48622
+ if (!host) {
48623
+ return;
48466
48624
  }
48467
- var shadowRoot = shadowRootRef.current;
48625
+ var shadowRoot = (_a = host.shadowRoot) !== null && _a !== void 0 ? _a : host.attachShadow({ mode: 'open' });
48626
+ shadowRootRef.current = shadowRoot;
48468
48627
  shadowRoot.innerHTML =
48469
- "\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 "
48628
+ "\n <style>\n :host {\n all: initial;\n display: block;\n width: 100%;\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: center;\n border-bottom: 1px solid #eef0f2;\n background: #fafafa;\n }\n\n .itinerary-node__day {\n flex: 50px 0 0;\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n background: #1f9470;\n color: white;\n border: 1.5px solid var(--tide-booking-color-secondary);\n }\n\n .itinerary-node__day-month {\n margin: 0px;\n }\n\n .itinerary-node__day-day {\n margin: 0px;\n font-weight: var(--tide-booking-search-results-label-date-month-font-weight);\n color: var(--tide-booking-search-results-label-date-month-color);\n font-size: 24px;\n }\n\n .itinerary-node__title {\n margin: 0;\n font-size: 22px;\n line-height: 1.25;\n }\n\n .itinerary-node__content {\n display: grid;\n gap: 20px;\n padding: 20px;\n }\n\n .itinerary-node__accommodation-banner {\n padding: 12px 16px;\n border: 1px solid #dbeafe;\n border-radius: 12px;\n background: #eff6ff;\n color: #1e3a8a;\n font-size: 14px;\n line-height: 1.4;\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\n "
48470
48629
  .concat(
48471
- (_a = itinerary === null || itinerary === void 0 ? void 0 : itinerary.styleSheetBody) !== null && _a !== void 0 ? _a : '',
48630
+ (_b = itinerary === null || itinerary === void 0 ? void 0 : itinerary.styleSheetBody) !== null && _b !== void 0 ? _b : '',
48472
48631
  '\n </style>\n\n '
48473
48632
  )
48474
48633
  .concat(html, '\n ');
48475
48634
  },
48476
- [html, itinerary === null || itinerary === void 0 ? void 0 : itinerary.styleSheetBody]
48635
+ [html, itinerary === null || itinerary === void 0 ? void 0 : itinerary.styleSheetBody, isLoading]
48636
+ );
48637
+ return React__default.createElement(
48638
+ React__default.Fragment,
48639
+ null,
48640
+ isLoading && React__default.createElement(Spinner, null),
48641
+ React__default.createElement('div', { ref: hostRef, style: { display: isLoading ? 'none' : 'block' } })
48477
48642
  );
48478
- return React__default.createElement('div', { ref: hostRef });
48479
48643
  };
48480
48644
 
48481
48645
  var getExcursionContentWithUpdatedPrice = function (contents, totalPrice, currencyCode) {
@@ -48719,9 +48883,9 @@ var SearchResultsContainer = function () {
48719
48883
  packagingAccoSearchDetails = _c.packagingAccoSearchDetails,
48720
48884
  editablePackagingEntry = _c.editablePackagingEntry,
48721
48885
  transactionId = _c.transactionId,
48722
- flyInType = _c.flyInType,
48723
- itinerary = _c.itinerary,
48724
- packagingFlightResults = _c.packagingFlightResults,
48886
+ flyInType = _c.flyInType;
48887
+ _c.itinerary;
48888
+ var packagingFlightResults = _c.packagingFlightResults,
48725
48889
  confirmedExcursionsByDay = _c.confirmedExcursionsByDay;
48726
48890
  var isMobile = useMediaQuery('(max-width: 1200px)');
48727
48891
  var _d = useState(false),
@@ -49903,7 +50067,6 @@ var SearchResultsContainer = function () {
49903
50067
  : '',
49904
50068
  language: (_d = context.languageCode) !== null && _d !== void 0 ? _d : 'en-GB'
49905
50069
  });
49906
- console.log('Built nextEntry', nextEntry);
49907
50070
  if (!nextEntry) return;
49908
50071
  dispatch(setEditablePackagingEntry(nextEntry));
49909
50072
  if (selectedCombinationFlight) {
@@ -50549,7 +50712,6 @@ var SearchResultsContainer = function () {
50549
50712
  ),
50550
50713
  context.searchConfiguration.qsmType === build.PortalQsmType.AccommodationAndFlight &&
50551
50714
  context.packagingEntry &&
50552
- itinerary &&
50553
50715
  React__default.createElement(FullItinerary, { isLoading: itineraryIsLoading })
50554
50716
  )
50555
50717
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qite/tide-booking-component",
3
- "version": "1.4.105",
3
+ "version": "1.4.106",
4
4
  "description": "React Booking wizard & Booking product component for Tide",
5
5
  "main": "build/build-cjs/index.js",
6
6
  "types": "build/build-cjs/src/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "devDependencies": {
30
30
  "@jsonurl/jsonurl": "^1.1.4",
31
31
  "@popperjs/core": "^2.10.2",
32
- "@qite/tide-client": "^1.1.166",
32
+ "@qite/tide-client": "^1.1.167",
33
33
  "@reduxjs/toolkit": "^2.8.2",
34
34
  "@rollup/plugin-commonjs": "^19.0.1",
35
35
  "@rollup/plugin-json": "^4.1.0",