@hotelcard/ui 0.0.18 → 0.0.20
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/dist/index.cjs +654 -503
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +0 -502
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +818 -96
- package/dist/index.d.ts +818 -96
- package/dist/index.js +654 -501
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -49,8 +49,6 @@ __export(index_exports, {
|
|
|
49
49
|
ExperienceFilter: () => ExperienceFilter,
|
|
50
50
|
FAQ: () => FAQ,
|
|
51
51
|
FilterCheckboxItem: () => FilterCheckboxItem,
|
|
52
|
-
FilterModal: () => FilterModal,
|
|
53
|
-
FilterPanel: () => FilterPanel,
|
|
54
52
|
GuestContent: () => GuestContent,
|
|
55
53
|
HeartIcon: () => HeartIcon3,
|
|
56
54
|
HotelCard: () => HotelCard,
|
|
@@ -151,7 +149,8 @@ var de_default = {
|
|
|
151
149
|
"rating-very-good": "Sehr gut",
|
|
152
150
|
"rating-good": "Gut",
|
|
153
151
|
"rating-fair": "Ansprechend",
|
|
154
|
-
"rating-none": "Keine Bewertung"
|
|
152
|
+
"rating-none": "Keine Bewertung",
|
|
153
|
+
clear: "L\xF6schen"
|
|
155
154
|
},
|
|
156
155
|
product: {
|
|
157
156
|
"6m": "6-Monatsabo",
|
|
@@ -204,7 +203,7 @@ var de_default = {
|
|
|
204
203
|
"most-popular": "Beliebt",
|
|
205
204
|
"newest-hotels": "Neueste",
|
|
206
205
|
relevance: "Relevanz",
|
|
207
|
-
selected: "
|
|
206
|
+
selected: "Ausgew\xE4hlt:",
|
|
208
207
|
"clear-all": "Alles l\xF6schen",
|
|
209
208
|
options: "Leistungen",
|
|
210
209
|
"hotellerie-suisse": "Klassifikation HotellerieSuisse",
|
|
@@ -215,6 +214,162 @@ var de_default = {
|
|
|
215
214
|
},
|
|
216
215
|
headline: {
|
|
217
216
|
"no-results": "Zurzeit entsprechen keine Aufenthalte Ihrer Suche"
|
|
217
|
+
},
|
|
218
|
+
meta_title: "Hotels suchen - HotelCard",
|
|
219
|
+
meta_description: "Suchen Sie nach Hotels nach Stadt, Region oder Hotelname",
|
|
220
|
+
title: "Suche",
|
|
221
|
+
loading: "Hotels werden geladen...",
|
|
222
|
+
retry: "Erneut versuchen",
|
|
223
|
+
close_map: "Karte schlie\xDFen",
|
|
224
|
+
seo: {
|
|
225
|
+
default_title: "Hoteldeals suchen - HotelCard",
|
|
226
|
+
location_title: "Hotels in {{location}}",
|
|
227
|
+
region_title: "Hotels in {{region}}",
|
|
228
|
+
experience_title: "{{experience}} Hotels",
|
|
229
|
+
default_description: "Entdecken Sie {{count}} Hotels mit exklusiven HotelCard-Rabatten.",
|
|
230
|
+
location_description: "Finden Sie {{count}} Hotels in {{location}} mit exklusiven Rabatten von bis zu 50%."
|
|
231
|
+
},
|
|
232
|
+
modal: {
|
|
233
|
+
close_search: "Suche schlie\xDFen",
|
|
234
|
+
placeholder_anywhere: "\xDCberall",
|
|
235
|
+
recent_searches: "Letzte Suchen",
|
|
236
|
+
remove_recent: "Aus letzten Suchen entfernen",
|
|
237
|
+
all_destinations: "Alle Reiseziele"
|
|
238
|
+
},
|
|
239
|
+
map: {
|
|
240
|
+
open_search: "Suche \xF6ffnen",
|
|
241
|
+
open_filters: "Filter \xF6ffnen",
|
|
242
|
+
switch_to_list: "Zur Listenansicht wechseln",
|
|
243
|
+
zoom_in: "Vergr\xF6\xDFern",
|
|
244
|
+
zoom_out: "Verkleinern",
|
|
245
|
+
no_location_data: "Keine Hotels mit Standortdaten verf\xFCgbar",
|
|
246
|
+
hotels_missing_coordinates: "{{count}} Hotels gefunden, aber Koordinaten fehlen",
|
|
247
|
+
no_hotels_in_area: "Keine Hotels in diesem Gebiet gefunden"
|
|
248
|
+
},
|
|
249
|
+
view: {
|
|
250
|
+
list: "Liste"
|
|
251
|
+
},
|
|
252
|
+
breadcrumb: {
|
|
253
|
+
properties_found: "{{count}} Unterk\xFCnfte gefunden",
|
|
254
|
+
properties_found_location: "{{location}}: {{count}} Unterk\xFCnfte gefunden"
|
|
255
|
+
},
|
|
256
|
+
aria: {
|
|
257
|
+
search_results_breadcrumb: "Suchergebnisse",
|
|
258
|
+
close: "Schlie\xDFen",
|
|
259
|
+
previous_image: "Vorheriges Bild",
|
|
260
|
+
next_image: "N\xE4chstes Bild",
|
|
261
|
+
add_to_favorites: "Zu Favoriten hinzuf\xFCgen",
|
|
262
|
+
remove_from_favorites: "Aus Favoriten entfernen",
|
|
263
|
+
list_view: "Zur Listenansicht wechseln",
|
|
264
|
+
map_view: "Zur Kartenansicht wechseln"
|
|
265
|
+
},
|
|
266
|
+
breadcrumb_nav: {
|
|
267
|
+
home: "Startseite"
|
|
268
|
+
},
|
|
269
|
+
guest_selector: {
|
|
270
|
+
decrease_adults: "Erwachsene verringern",
|
|
271
|
+
increase_adults: "Erwachsene erh\xF6hen",
|
|
272
|
+
decrease_children: "Kinder verringern",
|
|
273
|
+
increase_children: "Kinder erh\xF6hen",
|
|
274
|
+
decrease_infants: "Kleinkinder verringern",
|
|
275
|
+
increase_infants: "Kleinkinder erh\xF6hen",
|
|
276
|
+
toggle_infants: "Haustiere umschalten"
|
|
277
|
+
},
|
|
278
|
+
search_form: {
|
|
279
|
+
location_placeholder: "Hotels, St\xE4dte, Regionen suchen...",
|
|
280
|
+
distance_any: "- km",
|
|
281
|
+
distance_5: "+ 5 km",
|
|
282
|
+
distance_10: "+ 10 km",
|
|
283
|
+
distance_20: "+ 20 km",
|
|
284
|
+
distance_30: "+ 30 km",
|
|
285
|
+
distance_50: "+ 50 km",
|
|
286
|
+
searching: "Suche l\xE4uft...",
|
|
287
|
+
reset_filters: "Filter zur\xFCcksetzen"
|
|
288
|
+
},
|
|
289
|
+
dropdown: {
|
|
290
|
+
hotels: "Hotels",
|
|
291
|
+
cities: "St\xE4dte",
|
|
292
|
+
regions: "Regionen",
|
|
293
|
+
countries: "L\xE4nder",
|
|
294
|
+
"no-results": "Keine Ergebnisse gefunden"
|
|
295
|
+
},
|
|
296
|
+
filters: {
|
|
297
|
+
show_filters: "Filter anzeigen",
|
|
298
|
+
open_filters: "Filter \xF6ffnen",
|
|
299
|
+
filter_by: "Filtern nach:",
|
|
300
|
+
hotel_rating: "Hotelbewertung",
|
|
301
|
+
show_results: "{{count}} Ergebnisse anzeigen",
|
|
302
|
+
apply_filters: "Filter anwenden",
|
|
303
|
+
close_filters: "Filter schlie\xDFen",
|
|
304
|
+
view_in_map: "Auf der Karte anzeigen",
|
|
305
|
+
popular_filters: "Beliebte Filter",
|
|
306
|
+
destinations: "Reiseziele",
|
|
307
|
+
options_title: "Optionen",
|
|
308
|
+
options: {
|
|
309
|
+
instant_booking: "Sofort buchbar",
|
|
310
|
+
pets_allowed: "Haustiere erlaubt",
|
|
311
|
+
free_cancellation: "Kostenlose Stornierung"
|
|
312
|
+
},
|
|
313
|
+
category: {
|
|
314
|
+
footer_prefix: "Hotelklassifikation gem\xE4ss "
|
|
315
|
+
},
|
|
316
|
+
show_less: "Weniger anzeigen",
|
|
317
|
+
selected: "Ausgew\xE4hlt",
|
|
318
|
+
clear_all: "Alle l\xF6schen"
|
|
319
|
+
},
|
|
320
|
+
date_selector: {
|
|
321
|
+
apply: "Anwenden",
|
|
322
|
+
months_selected: "{{count}} Monate"
|
|
323
|
+
},
|
|
324
|
+
star_rating: {
|
|
325
|
+
"5_stars": "5 Sterne",
|
|
326
|
+
"4_stars": "4 Sterne",
|
|
327
|
+
"3_stars": "3 Sterne",
|
|
328
|
+
"2_stars": "2 Sterne",
|
|
329
|
+
not_classified: "Nicht klassifiziert",
|
|
330
|
+
swiss_lodge: "Swiss Lodge"
|
|
331
|
+
},
|
|
332
|
+
results: {
|
|
333
|
+
hotels_found: "{{count}} Hotels gefunden",
|
|
334
|
+
load_more: "Mehr laden",
|
|
335
|
+
loading: "Laden...",
|
|
336
|
+
end_of_results: "Sie haben das Ende der Ergebnisse erreicht",
|
|
337
|
+
no_results: "Keine Hotels gefunden",
|
|
338
|
+
try_different_search: "Versuchen Sie, Ihre Suchkriterien anzupassen",
|
|
339
|
+
unavailable_banner_title: "Weitere Hotels, die Sie interessieren k\xF6nnten",
|
|
340
|
+
unavailable_banner_description: "Diese Hotels haben derzeit keine Verf\xFCgbarkeit, die Ihren Suchkriterien entspricht."
|
|
341
|
+
},
|
|
342
|
+
no_results: {
|
|
343
|
+
title: "Derzeit sind keine Unterk\xFCnfte verf\xFCgbar, die Ihren Suchkriterien entsprechen.",
|
|
344
|
+
subtitle: "Versuchen Sie, Ihre Suchkriterien anzupassen oder die Filter zur\xFCckzusetzen",
|
|
345
|
+
description: "Entdecken Sie verschiedene Reiseziele, \xE4ndern Sie Ihre Reisedaten oder entfernen Sie einige Filter.",
|
|
346
|
+
description_with_filters: "Entdecken Sie verschiedene Reiseziele, \xE4ndern Sie Ihre Reisedaten oder entfernen Sie einige Filter.",
|
|
347
|
+
clear_filters: "Filter zur\xFCcksetzen"
|
|
348
|
+
},
|
|
349
|
+
errors: {
|
|
350
|
+
search_failed: "Suche fehlgeschlagen",
|
|
351
|
+
load_more_failed: "Weitere Hotels konnten nicht geladen werden"
|
|
352
|
+
},
|
|
353
|
+
error: {
|
|
354
|
+
title: "Etwas ist schiefgelaufen",
|
|
355
|
+
description: "Die Hotels konnten nicht geladen werden. Bitte versuchen Sie es erneut.",
|
|
356
|
+
retry: "Erneut versuchen"
|
|
357
|
+
},
|
|
358
|
+
pagination: {
|
|
359
|
+
label: "Seitennavigation",
|
|
360
|
+
previous: "Vorherige Seite",
|
|
361
|
+
previous_short: "Zur\xFCck",
|
|
362
|
+
next: "N\xE4chste Seite",
|
|
363
|
+
next_short: "Weiter",
|
|
364
|
+
page: "Seite {{page}}"
|
|
365
|
+
},
|
|
366
|
+
hotel_card: {
|
|
367
|
+
rating: "Bewertung",
|
|
368
|
+
price_from: "pro Zimmer & Nacht ab",
|
|
369
|
+
not_available: "Nicht verf\xFCgbar f\xFCr Ihre Suchkriterien"
|
|
370
|
+
},
|
|
371
|
+
badges: {
|
|
372
|
+
new: "Neu"
|
|
218
373
|
}
|
|
219
374
|
};
|
|
220
375
|
|
|
@@ -277,7 +432,8 @@ var en_default = {
|
|
|
277
432
|
"rating-very-good": "Very good",
|
|
278
433
|
"rating-good": "Good",
|
|
279
434
|
"rating-fair": "Fair",
|
|
280
|
-
"rating-none": "No rating"
|
|
435
|
+
"rating-none": "No rating",
|
|
436
|
+
clear: "Clear"
|
|
281
437
|
},
|
|
282
438
|
product: {
|
|
283
439
|
"6m": "6-month subscription",
|
|
@@ -330,7 +486,7 @@ var en_default = {
|
|
|
330
486
|
"most-popular": "Most popular",
|
|
331
487
|
"newest-hotels": "Newest",
|
|
332
488
|
relevance: "Relevance",
|
|
333
|
-
selected: "Selected",
|
|
489
|
+
selected: "Selected:",
|
|
334
490
|
"clear-all": "Clear all",
|
|
335
491
|
options: "Options",
|
|
336
492
|
"hotellerie-suisse": "Classification HotellerieSuisse",
|
|
@@ -341,7 +497,163 @@ var en_default = {
|
|
|
341
497
|
},
|
|
342
498
|
headline: {
|
|
343
499
|
"no-results": "No stays match your search right now"
|
|
344
|
-
}
|
|
500
|
+
},
|
|
501
|
+
meta_title: "Search Hotels - HotelCard",
|
|
502
|
+
meta_description: "Search for hotels by city, region, or hotel name",
|
|
503
|
+
title: "Search",
|
|
504
|
+
loading: "Loading hotels...",
|
|
505
|
+
retry: "Retry",
|
|
506
|
+
close_map: "Close map",
|
|
507
|
+
seo: {
|
|
508
|
+
default_title: "Search Hotel Deals - HotelCard",
|
|
509
|
+
location_title: "Hotels in {{location}}",
|
|
510
|
+
region_title: "Hotels in {{region}}",
|
|
511
|
+
experience_title: "{{experience}} Hotels",
|
|
512
|
+
default_description: "Discover {{count}} hotels with exclusive HotelCard discounts.",
|
|
513
|
+
location_description: "Find {{count}} hotels in {{location}} with exclusive discounts up to 50% off."
|
|
514
|
+
},
|
|
515
|
+
modal: {
|
|
516
|
+
close_search: "Close search",
|
|
517
|
+
placeholder_anywhere: "Anywhere",
|
|
518
|
+
recent_searches: "Recent searches",
|
|
519
|
+
remove_recent: "Remove from recent searches",
|
|
520
|
+
all_destinations: "All destinations"
|
|
521
|
+
},
|
|
522
|
+
map: {
|
|
523
|
+
open_search: "Open search",
|
|
524
|
+
open_filters: "Open filters",
|
|
525
|
+
switch_to_list: "Switch to list view",
|
|
526
|
+
zoom_in: "Zoom in",
|
|
527
|
+
zoom_out: "Zoom out",
|
|
528
|
+
no_location_data: "No hotels with location data available",
|
|
529
|
+
hotels_missing_coordinates: "{{count}} hotels found but missing coordinates",
|
|
530
|
+
no_hotels_in_area: "No hotels found in this area"
|
|
531
|
+
},
|
|
532
|
+
view: {
|
|
533
|
+
list: "List"
|
|
534
|
+
},
|
|
535
|
+
breadcrumb: {
|
|
536
|
+
properties_found: "{{count}} properties found",
|
|
537
|
+
properties_found_location: "{{location}}: {{count}} properties found"
|
|
538
|
+
},
|
|
539
|
+
aria: {
|
|
540
|
+
search_results_breadcrumb: "Search results",
|
|
541
|
+
close: "Close",
|
|
542
|
+
previous_image: "Previous image",
|
|
543
|
+
next_image: "Next image",
|
|
544
|
+
add_to_favorites: "Add to favorites",
|
|
545
|
+
remove_from_favorites: "Remove from favorites",
|
|
546
|
+
list_view: "Switch to list view",
|
|
547
|
+
map_view: "Switch to map view"
|
|
548
|
+
},
|
|
549
|
+
breadcrumb_nav: {
|
|
550
|
+
home: "Home"
|
|
551
|
+
},
|
|
552
|
+
guest_selector: {
|
|
553
|
+
adults_description: "Ages 13 or above",
|
|
554
|
+
children_description: "Ages 2-12",
|
|
555
|
+
infants_description: "Under 2",
|
|
556
|
+
decrease_adults: "Decrease adults",
|
|
557
|
+
increase_adults: "Increase adults",
|
|
558
|
+
decrease_children: "Decrease children",
|
|
559
|
+
increase_children: "Increase children",
|
|
560
|
+
decrease_infants: "Decrease infants",
|
|
561
|
+
increase_infants: "Increase infants",
|
|
562
|
+
toggle_infants: "Toggle pet"
|
|
563
|
+
},
|
|
564
|
+
search_form: {
|
|
565
|
+
location_placeholder: "Search for hotels, cities, regions...",
|
|
566
|
+
distance_any: "- km",
|
|
567
|
+
distance_5: "+ 5 km",
|
|
568
|
+
distance_10: "+ 10 km",
|
|
569
|
+
distance_20: "+ 20 km",
|
|
570
|
+
distance_30: "+ 30 km",
|
|
571
|
+
distance_50: "+ 50 km",
|
|
572
|
+
searching: "Searching...",
|
|
573
|
+
reset_filters: "Reset"
|
|
574
|
+
},
|
|
575
|
+
dropdown: {
|
|
576
|
+
hotels: "Hotels",
|
|
577
|
+
cities: "Cities",
|
|
578
|
+
regions: "Regions",
|
|
579
|
+
countries: "Countries",
|
|
580
|
+
"no-results": "No results found"
|
|
581
|
+
},
|
|
582
|
+
filters: {
|
|
583
|
+
show_filters: "Show filters",
|
|
584
|
+
open_filters: "Open filters",
|
|
585
|
+
filter_by: "Filter by:",
|
|
586
|
+
hotel_rating: "Hotel rating",
|
|
587
|
+
show_results: "Show {{count}} results",
|
|
588
|
+
apply_filters: "Apply filters",
|
|
589
|
+
close_filters: "Close filters",
|
|
590
|
+
view_in_map: "View in a Map",
|
|
591
|
+
popular_filters: "Popular filters",
|
|
592
|
+
show_less: "Show less",
|
|
593
|
+
selected: "Selected",
|
|
594
|
+
clear_all: "Clear all",
|
|
595
|
+
options: {
|
|
596
|
+
instant_booking: "Immediately bookable",
|
|
597
|
+
pets_allowed: "Pets allowed",
|
|
598
|
+
free_cancellation: "Free cancellation"
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
date_selector: {
|
|
602
|
+
apply: "Apply",
|
|
603
|
+
months_selected: "{{count}} months"
|
|
604
|
+
},
|
|
605
|
+
star_rating: {
|
|
606
|
+
"5_stars": "5 stars",
|
|
607
|
+
"4_stars": "4 stars",
|
|
608
|
+
"3_stars": "3 stars",
|
|
609
|
+
"2_stars": "2 stars",
|
|
610
|
+
not_classified: "Not classified",
|
|
611
|
+
swiss_lodge: "Swiss Lodge"
|
|
612
|
+
},
|
|
613
|
+
results: {
|
|
614
|
+
hotels_found: "{{count}} hotels found",
|
|
615
|
+
load_more: "Load more",
|
|
616
|
+
loading: "Loading...",
|
|
617
|
+
end_of_results: "You've reached the end of results",
|
|
618
|
+
no_results: "No hotels found",
|
|
619
|
+
try_different_search: "Try adjusting your search criteria",
|
|
620
|
+
unavailable_banner_title: "More hotels that might interest you",
|
|
621
|
+
unavailable_banner_description: "These hotels don't currently have availability matching your search criteria."
|
|
622
|
+
},
|
|
623
|
+
errors: {
|
|
624
|
+
search_failed: "Search failed",
|
|
625
|
+
load_more_failed: "Failed to load more hotels"
|
|
626
|
+
},
|
|
627
|
+
error: {
|
|
628
|
+
title: "Something went wrong",
|
|
629
|
+
description: "We couldn't load the hotels. Please try again.",
|
|
630
|
+
retry: "Try again"
|
|
631
|
+
},
|
|
632
|
+
no_results: {
|
|
633
|
+
title: "No stays match your search right now.",
|
|
634
|
+
description: "Explore different destinations, change your dates, or remove some filters.",
|
|
635
|
+
description_with_filters: "Explore different destinations, change your dates, or remove some filters.",
|
|
636
|
+
clear_filters: "Clear all filters"
|
|
637
|
+
},
|
|
638
|
+
pagination: {
|
|
639
|
+
label: "Pagination",
|
|
640
|
+
previous: "Previous page",
|
|
641
|
+
previous_short: "Previous",
|
|
642
|
+
next: "Next page",
|
|
643
|
+
next_short: "Next",
|
|
644
|
+
page: "Page {{page}}"
|
|
645
|
+
},
|
|
646
|
+
hotel_card: {
|
|
647
|
+
rating: "Rating",
|
|
648
|
+
price_from: "per room & night from",
|
|
649
|
+
not_available: "Not available for your search criteria"
|
|
650
|
+
},
|
|
651
|
+
badges: {
|
|
652
|
+
new: "New"
|
|
653
|
+
},
|
|
654
|
+
clear_location: "Clear location",
|
|
655
|
+
clear_date: "Clear date",
|
|
656
|
+
clear_guests: "Clear guests"
|
|
345
657
|
};
|
|
346
658
|
|
|
347
659
|
// src/locales/fr.json
|
|
@@ -403,7 +715,8 @@ var fr_default = {
|
|
|
403
715
|
"rating-very-good": "Tr\xE8s bien",
|
|
404
716
|
"rating-good": "Bien",
|
|
405
717
|
"rating-fair": "Moyen",
|
|
406
|
-
"rating-none": "Aucune notation"
|
|
718
|
+
"rating-none": "Aucune notation",
|
|
719
|
+
clear: "Effacer"
|
|
407
720
|
},
|
|
408
721
|
product: {
|
|
409
722
|
"6m": "Abonnement de 6 mois",
|
|
@@ -456,7 +769,7 @@ var fr_default = {
|
|
|
456
769
|
"most-popular": "Plus populaires",
|
|
457
770
|
"newest-hotels": "Plus r\xE9cents",
|
|
458
771
|
relevance: "Pertinence",
|
|
459
|
-
selected: "
|
|
772
|
+
selected: "S\xE9lectionn\xE9:",
|
|
460
773
|
"clear-all": "Tout effacer",
|
|
461
774
|
options: "Services",
|
|
462
775
|
"hotellerie-suisse": "Classification HotellerieSuisse",
|
|
@@ -467,6 +780,162 @@ var fr_default = {
|
|
|
467
780
|
},
|
|
468
781
|
headline: {
|
|
469
782
|
"no-results": "Aucun s\xE9jour ne correspond \xE0 votre recherche pour le moment"
|
|
783
|
+
},
|
|
784
|
+
meta_title: "Rechercher des h\xF4tels - HotelCard",
|
|
785
|
+
meta_description: "Recherchez des h\xF4tels par ville, r\xE9gion ou nom d'h\xF4tel",
|
|
786
|
+
title: "Recherche",
|
|
787
|
+
loading: "Chargement des h\xF4tels...",
|
|
788
|
+
retry: "R\xE9essayer",
|
|
789
|
+
close_map: "Fermer la carte",
|
|
790
|
+
seo: {
|
|
791
|
+
default_title: "Rechercher des offres d'h\xF4tels - HotelCard",
|
|
792
|
+
location_title: "H\xF4tels \xE0 {{location}}",
|
|
793
|
+
region_title: "H\xF4tels en {{region}}",
|
|
794
|
+
experience_title: "H\xF4tels {{experience}}",
|
|
795
|
+
default_description: "D\xE9couvrez {{count}} h\xF4tels avec des r\xE9ductions exclusives HotelCard.",
|
|
796
|
+
location_description: "Trouvez {{count}} h\xF4tels \xE0 {{location}} avec des r\xE9ductions exclusives jusqu'\xE0 50%."
|
|
797
|
+
},
|
|
798
|
+
modal: {
|
|
799
|
+
close_search: "Fermer la recherche",
|
|
800
|
+
placeholder_anywhere: "Partout",
|
|
801
|
+
recent_searches: "Recherches r\xE9centes",
|
|
802
|
+
remove_recent: "Supprimer des recherches r\xE9centes",
|
|
803
|
+
all_destinations: "Toutes les destinations"
|
|
804
|
+
},
|
|
805
|
+
map: {
|
|
806
|
+
open_search: "Ouvrir la recherche",
|
|
807
|
+
open_filters: "Ouvrir les filtres",
|
|
808
|
+
switch_to_list: "Passer \xE0 la vue liste",
|
|
809
|
+
zoom_in: "Agrandir",
|
|
810
|
+
zoom_out: "R\xE9duire",
|
|
811
|
+
no_location_data: "Aucun h\xF4tel avec donn\xE9es de localisation",
|
|
812
|
+
hotels_missing_coordinates: "{{count}} h\xF4tels trouv\xE9s mais coordonn\xE9es manquantes",
|
|
813
|
+
no_hotels_in_area: "Aucun h\xF4tel trouv\xE9 dans cette zone"
|
|
814
|
+
},
|
|
815
|
+
view: {
|
|
816
|
+
list: "Liste"
|
|
817
|
+
},
|
|
818
|
+
breadcrumb: {
|
|
819
|
+
properties_found: "{{count}} h\xE9bergements trouv\xE9s",
|
|
820
|
+
properties_found_location: "{{location}}: {{count}} h\xE9bergements trouv\xE9s"
|
|
821
|
+
},
|
|
822
|
+
aria: {
|
|
823
|
+
search_results_breadcrumb: "R\xE9sultats de la recherche",
|
|
824
|
+
close: "Fermer",
|
|
825
|
+
previous_image: "Image pr\xE9c\xE9dente",
|
|
826
|
+
next_image: "Image suivante",
|
|
827
|
+
add_to_favorites: "Ajouter aux favoris",
|
|
828
|
+
remove_from_favorites: "Retirer des favoris",
|
|
829
|
+
list_view: "Passer \xE0 la vue liste",
|
|
830
|
+
map_view: "Passer \xE0 la vue carte"
|
|
831
|
+
},
|
|
832
|
+
breadcrumb_nav: {
|
|
833
|
+
home: "Accueil"
|
|
834
|
+
},
|
|
835
|
+
guest_selector: {
|
|
836
|
+
decrease_adults: "Diminuer les adultes",
|
|
837
|
+
increase_adults: "Augmenter les adultes",
|
|
838
|
+
decrease_children: "Diminuer les enfants",
|
|
839
|
+
increase_children: "Augmenter les enfants",
|
|
840
|
+
decrease_infants: "Diminuer les b\xE9b\xE9s",
|
|
841
|
+
increase_infants: "Augmenter les b\xE9b\xE9s",
|
|
842
|
+
toggle_infants: "Basculer les animaux"
|
|
843
|
+
},
|
|
844
|
+
search_form: {
|
|
845
|
+
location_placeholder: "Rechercher des h\xF4tels, villes, r\xE9gions...",
|
|
846
|
+
distance_any: "- km",
|
|
847
|
+
distance_5: "+ 5 km",
|
|
848
|
+
distance_10: "+ 10 km",
|
|
849
|
+
distance_20: "+ 20 km",
|
|
850
|
+
distance_30: "+ 30 km",
|
|
851
|
+
distance_50: "+ 50 km",
|
|
852
|
+
searching: "Recherche en cours...",
|
|
853
|
+
reset_filters: "R\xE9initialiser les filtres"
|
|
854
|
+
},
|
|
855
|
+
dropdown: {
|
|
856
|
+
hotels: "H\xF4tels",
|
|
857
|
+
cities: "Villes",
|
|
858
|
+
regions: "R\xE9gions",
|
|
859
|
+
countries: "Pays",
|
|
860
|
+
"no-results": "Aucun r\xE9sultat trouv\xE9"
|
|
861
|
+
},
|
|
862
|
+
filters: {
|
|
863
|
+
show_filters: "Afficher les filtres",
|
|
864
|
+
open_filters: "Ouvrir les filtres",
|
|
865
|
+
filter_by: "Filtrer par:",
|
|
866
|
+
hotel_rating: "Classement de l'h\xF4tel",
|
|
867
|
+
show_results: "Afficher {{count}} r\xE9sultats",
|
|
868
|
+
apply_filters: "Appliquer les filtres",
|
|
869
|
+
close_filters: "Fermer les filtres",
|
|
870
|
+
view_in_map: "Voir sur la carte",
|
|
871
|
+
popular_filters: "Filtres populaires",
|
|
872
|
+
destinations: "Destinations",
|
|
873
|
+
options_title: "Options",
|
|
874
|
+
options: {
|
|
875
|
+
instant_booking: "R\xE9servation imm\xE9diate",
|
|
876
|
+
pets_allowed: "Animaux accept\xE9s",
|
|
877
|
+
free_cancellation: "Annulation gratuite"
|
|
878
|
+
},
|
|
879
|
+
category: {
|
|
880
|
+
footer_prefix: "Classification h\xF4teli\xE8re selon "
|
|
881
|
+
},
|
|
882
|
+
show_less: "Afficher moins",
|
|
883
|
+
selected: "S\xE9lectionn\xE9",
|
|
884
|
+
clear_all: "Tout effacer"
|
|
885
|
+
},
|
|
886
|
+
date_selector: {
|
|
887
|
+
apply: "Appliquer",
|
|
888
|
+
months_selected: "{{count}} mois"
|
|
889
|
+
},
|
|
890
|
+
star_rating: {
|
|
891
|
+
"5_stars": "5 \xE9toiles",
|
|
892
|
+
"4_stars": "4 \xE9toiles",
|
|
893
|
+
"3_stars": "3 \xE9toiles",
|
|
894
|
+
"2_stars": "2 \xE9toiles",
|
|
895
|
+
not_classified: "Non class\xE9",
|
|
896
|
+
swiss_lodge: "Swiss Lodge"
|
|
897
|
+
},
|
|
898
|
+
results: {
|
|
899
|
+
hotels_found: "{{count}} h\xF4tels trouv\xE9s",
|
|
900
|
+
load_more: "Charger plus",
|
|
901
|
+
loading: "Chargement...",
|
|
902
|
+
end_of_results: "Vous avez atteint la fin des r\xE9sultats",
|
|
903
|
+
no_results: "Aucun h\xF4tel trouv\xE9",
|
|
904
|
+
try_different_search: "Essayez d'ajuster vos crit\xE8res de recherche",
|
|
905
|
+
unavailable_banner_title: "D'autres h\xF4tels qui pourraient vous int\xE9resser",
|
|
906
|
+
unavailable_banner_description: "Ces h\xF4tels n'ont actuellement pas de disponibilit\xE9 correspondant \xE0 vos crit\xE8res de recherche."
|
|
907
|
+
},
|
|
908
|
+
no_results: {
|
|
909
|
+
title: "Aucun h\xE9bergement ne correspond \xE0 votre recherche pour le moment.",
|
|
910
|
+
subtitle: "Essayez d'ajuster vos crit\xE8res de recherche ou r\xE9initialisez les filtres",
|
|
911
|
+
description: "Explorez diff\xE9rentes destinations, modifiez vos dates ou supprimez certains filtres.",
|
|
912
|
+
description_with_filters: "Explorez diff\xE9rentes destinations, modifiez vos dates ou supprimez certains filtres.",
|
|
913
|
+
clear_filters: "R\xE9initialiser les filtres"
|
|
914
|
+
},
|
|
915
|
+
errors: {
|
|
916
|
+
search_failed: "La recherche a \xE9chou\xE9",
|
|
917
|
+
load_more_failed: "Impossible de charger plus d'h\xF4tels"
|
|
918
|
+
},
|
|
919
|
+
error: {
|
|
920
|
+
title: "Une erreur s'est produite",
|
|
921
|
+
description: "Les h\xF4tels n'ont pas pu \xEAtre charg\xE9s. Veuillez r\xE9essayer.",
|
|
922
|
+
retry: "R\xE9essayer"
|
|
923
|
+
},
|
|
924
|
+
pagination: {
|
|
925
|
+
label: "Pagination",
|
|
926
|
+
previous: "Page pr\xE9c\xE9dente",
|
|
927
|
+
previous_short: "Pr\xE9c\xE9dent",
|
|
928
|
+
next: "Page suivante",
|
|
929
|
+
next_short: "Suivant",
|
|
930
|
+
page: "Page {{page}}"
|
|
931
|
+
},
|
|
932
|
+
hotel_card: {
|
|
933
|
+
rating: "Note",
|
|
934
|
+
price_from: "par chambre & nuit d\xE8s",
|
|
935
|
+
not_available: "Non disponible selon vos crit\xE8res de recherche"
|
|
936
|
+
},
|
|
937
|
+
badges: {
|
|
938
|
+
new: "Nouveau"
|
|
470
939
|
}
|
|
471
940
|
};
|
|
472
941
|
|
|
@@ -529,7 +998,8 @@ var it_default = {
|
|
|
529
998
|
"rating-very-good": "Ottimo",
|
|
530
999
|
"rating-good": "Buono",
|
|
531
1000
|
"rating-fair": "Sufficiente",
|
|
532
|
-
"rating-none": "Nessun voto"
|
|
1001
|
+
"rating-none": "Nessun voto",
|
|
1002
|
+
clear: "Cancella"
|
|
533
1003
|
},
|
|
534
1004
|
product: {
|
|
535
1005
|
"6m": "Abbonamento di 6 mesi",
|
|
@@ -582,7 +1052,7 @@ var it_default = {
|
|
|
582
1052
|
"most-popular": "Pi\xF9 popolari",
|
|
583
1053
|
"newest-hotels": "Pi\xF9 recenti",
|
|
584
1054
|
relevance: "Rilevanza",
|
|
585
|
-
selected: "
|
|
1055
|
+
selected: "Selezionato:",
|
|
586
1056
|
"clear-all": "Cancella tutto",
|
|
587
1057
|
options: "Servizi",
|
|
588
1058
|
"hotellerie-suisse": "Classificazione HotellerieSuisse",
|
|
@@ -593,6 +1063,162 @@ var it_default = {
|
|
|
593
1063
|
},
|
|
594
1064
|
headline: {
|
|
595
1065
|
"no-results": "Al momento nessun soggiorno corrisponde alla tua ricerca"
|
|
1066
|
+
},
|
|
1067
|
+
meta_title: "Cerca Hotel - HotelCard",
|
|
1068
|
+
meta_description: "Cerca hotel per citt\xE0, regione o nome dell'hotel",
|
|
1069
|
+
title: "Ricerca",
|
|
1070
|
+
loading: "Caricamento hotel...",
|
|
1071
|
+
retry: "Riprova",
|
|
1072
|
+
close_map: "Chiudi mappa",
|
|
1073
|
+
seo: {
|
|
1074
|
+
default_title: "Cerca offerte hotel - HotelCard",
|
|
1075
|
+
location_title: "Hotel a {{location}}",
|
|
1076
|
+
region_title: "Hotel in {{region}}",
|
|
1077
|
+
experience_title: "Hotel {{experience}}",
|
|
1078
|
+
default_description: "Scopri {{count}} hotel con sconti esclusivi HotelCard.",
|
|
1079
|
+
location_description: "Trova {{count}} hotel a {{location}} con sconti esclusivi fino al 50%."
|
|
1080
|
+
},
|
|
1081
|
+
modal: {
|
|
1082
|
+
close_search: "Chiudi ricerca",
|
|
1083
|
+
placeholder_anywhere: "Ovunque",
|
|
1084
|
+
recent_searches: "Ricerche recenti",
|
|
1085
|
+
remove_recent: "Rimuovi dalle ricerche recenti",
|
|
1086
|
+
all_destinations: "Tutte le destinazioni"
|
|
1087
|
+
},
|
|
1088
|
+
map: {
|
|
1089
|
+
open_search: "Apri ricerca",
|
|
1090
|
+
open_filters: "Apri filtri",
|
|
1091
|
+
switch_to_list: "Passa alla vista elenco",
|
|
1092
|
+
zoom_in: "Ingrandisci",
|
|
1093
|
+
zoom_out: "Riduci",
|
|
1094
|
+
no_location_data: "Nessun hotel con dati di posizione",
|
|
1095
|
+
hotels_missing_coordinates: "{{count}} hotel trovati ma coordinate mancanti",
|
|
1096
|
+
no_hotels_in_area: "Nessun hotel trovato in questa zona"
|
|
1097
|
+
},
|
|
1098
|
+
view: {
|
|
1099
|
+
list: "Lista"
|
|
1100
|
+
},
|
|
1101
|
+
breadcrumb: {
|
|
1102
|
+
properties_found: "{{count}} strutture trovate",
|
|
1103
|
+
properties_found_location: "{{location}}: {{count}} strutture trovate"
|
|
1104
|
+
},
|
|
1105
|
+
aria: {
|
|
1106
|
+
search_results_breadcrumb: "Risultati della ricerca",
|
|
1107
|
+
close: "Chiudi",
|
|
1108
|
+
previous_image: "Immagine precedente",
|
|
1109
|
+
next_image: "Immagine successiva",
|
|
1110
|
+
add_to_favorites: "Aggiungi ai preferiti",
|
|
1111
|
+
remove_from_favorites: "Rimuovi dai preferiti",
|
|
1112
|
+
list_view: "Passa alla vista elenco",
|
|
1113
|
+
map_view: "Passa alla vista mappa"
|
|
1114
|
+
},
|
|
1115
|
+
breadcrumb_nav: {
|
|
1116
|
+
home: "Home"
|
|
1117
|
+
},
|
|
1118
|
+
guest_selector: {
|
|
1119
|
+
decrease_adults: "Diminuisci adulti",
|
|
1120
|
+
increase_adults: "Aumenta adulti",
|
|
1121
|
+
decrease_children: "Diminuisci bambini",
|
|
1122
|
+
increase_children: "Aumenta bambini",
|
|
1123
|
+
decrease_infants: "Diminuisci neonati",
|
|
1124
|
+
increase_infants: "Aumenta neonati",
|
|
1125
|
+
toggle_infants: "Attiva/disattiva animali"
|
|
1126
|
+
},
|
|
1127
|
+
search_form: {
|
|
1128
|
+
location_placeholder: "Cerca hotel, citt\xE0, regioni...",
|
|
1129
|
+
distance_any: "- km",
|
|
1130
|
+
distance_5: "+ 5 km",
|
|
1131
|
+
distance_10: "+ 10 km",
|
|
1132
|
+
distance_20: "+ 20 km",
|
|
1133
|
+
distance_30: "+ 30 km",
|
|
1134
|
+
distance_50: "+ 50 km",
|
|
1135
|
+
searching: "Ricerca in corso...",
|
|
1136
|
+
reset_filters: "Ripristina filtri"
|
|
1137
|
+
},
|
|
1138
|
+
dropdown: {
|
|
1139
|
+
hotels: "Hotel",
|
|
1140
|
+
cities: "Citt\xE0",
|
|
1141
|
+
regions: "Regioni",
|
|
1142
|
+
countries: "Paesi",
|
|
1143
|
+
"no-results": "Nessun risultato trovato"
|
|
1144
|
+
},
|
|
1145
|
+
filters: {
|
|
1146
|
+
show_filters: "Mostra filtri",
|
|
1147
|
+
open_filters: "Apri filtri",
|
|
1148
|
+
filter_by: "Filtra per:",
|
|
1149
|
+
hotel_rating: "Categoria hotel",
|
|
1150
|
+
show_results: "Mostra {{count}} risultati",
|
|
1151
|
+
apply_filters: "Applica filtri",
|
|
1152
|
+
close_filters: "Chiudi filtri",
|
|
1153
|
+
view_in_map: "Visualizza sulla mappa",
|
|
1154
|
+
popular_filters: "Filtri popolari",
|
|
1155
|
+
destinations: "Destinazioni",
|
|
1156
|
+
options_title: "Opzioni",
|
|
1157
|
+
options: {
|
|
1158
|
+
instant_booking: "Prenotazione immediata",
|
|
1159
|
+
pets_allowed: "Animali ammessi",
|
|
1160
|
+
free_cancellation: "Cancellazione gratuita"
|
|
1161
|
+
},
|
|
1162
|
+
category: {
|
|
1163
|
+
footer_prefix: "Classificazione alberghiera secondo "
|
|
1164
|
+
},
|
|
1165
|
+
show_less: "Mostra meno",
|
|
1166
|
+
selected: "Selezionato",
|
|
1167
|
+
clear_all: "Cancella tutto"
|
|
1168
|
+
},
|
|
1169
|
+
date_selector: {
|
|
1170
|
+
apply: "Applica",
|
|
1171
|
+
months_selected: "{{count}} mesi"
|
|
1172
|
+
},
|
|
1173
|
+
star_rating: {
|
|
1174
|
+
"5_stars": "5 stelle",
|
|
1175
|
+
"4_stars": "4 stelle",
|
|
1176
|
+
"3_stars": "3 stelle",
|
|
1177
|
+
"2_stars": "2 stelle",
|
|
1178
|
+
not_classified: "Non classificato",
|
|
1179
|
+
swiss_lodge: "Swiss Lodge"
|
|
1180
|
+
},
|
|
1181
|
+
results: {
|
|
1182
|
+
hotels_found: "{{count}} hotel trovati",
|
|
1183
|
+
load_more: "Carica altri",
|
|
1184
|
+
loading: "Caricamento...",
|
|
1185
|
+
end_of_results: "Hai raggiunto la fine dei risultati",
|
|
1186
|
+
no_results: "Nessun hotel trovato",
|
|
1187
|
+
try_different_search: "Prova a modificare i criteri di ricerca",
|
|
1188
|
+
unavailable_banner_title: "Altri hotel che potrebbero interessarti",
|
|
1189
|
+
unavailable_banner_description: "Questi hotel non hanno attualmente disponibilit\xE0 corrispondente ai tuoi criteri di ricerca."
|
|
1190
|
+
},
|
|
1191
|
+
no_results: {
|
|
1192
|
+
title: "Al momento non ci sono alloggi che corrispondono ai criteri di ricerca.",
|
|
1193
|
+
subtitle: "Prova a modificare i criteri di ricerca o ripristina i filtri",
|
|
1194
|
+
description: "Esplora diverse destinazioni, modifica le date o rimuovi alcuni filtri.",
|
|
1195
|
+
description_with_filters: "Esplora diverse destinazioni, modifica le date o rimuovi alcuni filtri.",
|
|
1196
|
+
clear_filters: "Ripristina filtri"
|
|
1197
|
+
},
|
|
1198
|
+
errors: {
|
|
1199
|
+
search_failed: "Ricerca fallita",
|
|
1200
|
+
load_more_failed: "Impossibile caricare altri hotel"
|
|
1201
|
+
},
|
|
1202
|
+
error: {
|
|
1203
|
+
title: "Qualcosa \xE8 andato storto",
|
|
1204
|
+
description: "Non \xE8 stato possibile caricare gli hotel. Riprova.",
|
|
1205
|
+
retry: "Riprova"
|
|
1206
|
+
},
|
|
1207
|
+
pagination: {
|
|
1208
|
+
label: "Paginazione",
|
|
1209
|
+
previous: "Pagina precedente",
|
|
1210
|
+
previous_short: "Precedente",
|
|
1211
|
+
next: "Pagina successiva",
|
|
1212
|
+
next_short: "Successivo",
|
|
1213
|
+
page: "Pagina {{page}}"
|
|
1214
|
+
},
|
|
1215
|
+
hotel_card: {
|
|
1216
|
+
rating: "Valutazione",
|
|
1217
|
+
price_from: "per camera e notte da",
|
|
1218
|
+
not_available: "Non disponibile per i tuoi criteri di ricerca"
|
|
1219
|
+
},
|
|
1220
|
+
badges: {
|
|
1221
|
+
new: "Nuovo"
|
|
596
1222
|
}
|
|
597
1223
|
};
|
|
598
1224
|
|
|
@@ -3850,482 +4476,9 @@ var SelectedFiltersRow = ({
|
|
|
3850
4476
|
] }) });
|
|
3851
4477
|
};
|
|
3852
4478
|
|
|
3853
|
-
// src/components/Filters/FilterPanel.tsx
|
|
3854
|
-
var import_react19 = require("react");
|
|
3855
|
-
|
|
3856
|
-
// src/components/Filters/FilterPanel.module.css
|
|
3857
|
-
var FilterPanel_default = {};
|
|
3858
|
-
|
|
3859
|
-
// src/components/Filters/FilterPanel.tsx
|
|
3860
|
-
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
3861
|
-
var DISCOUNT_OPTIONS = [
|
|
3862
|
-
{ value: "50", label: "50%" },
|
|
3863
|
-
{ value: "30", label: "30%" },
|
|
3864
|
-
{ value: "10", label: "10%" }
|
|
3865
|
-
];
|
|
3866
|
-
var OPTIONS_FILTER = [
|
|
3867
|
-
{ value: "instant_booking", labelKey: "filter.instant-booking" }
|
|
3868
|
-
];
|
|
3869
|
-
var FilterPanel = ({
|
|
3870
|
-
onFilterChange,
|
|
3871
|
-
className = "",
|
|
3872
|
-
isLoading = false,
|
|
3873
|
-
priceHistogram,
|
|
3874
|
-
minPrice = 50,
|
|
3875
|
-
maxPrice = 500,
|
|
3876
|
-
regions = [],
|
|
3877
|
-
discountCounts = {},
|
|
3878
|
-
optionsCounts = {},
|
|
3879
|
-
categoryCounts = {},
|
|
3880
|
-
themes = [],
|
|
3881
|
-
mealsCounts = {},
|
|
3882
|
-
reviewsCounts = {},
|
|
3883
|
-
transportCounts = {},
|
|
3884
|
-
wellnessCounts = {},
|
|
3885
|
-
servicesCounts = {},
|
|
3886
|
-
filterOptions,
|
|
3887
|
-
selectedDiscounts: externalDiscounts,
|
|
3888
|
-
selectedOptions: externalOptions,
|
|
3889
|
-
selectedExperiences: externalExperiences,
|
|
3890
|
-
selectedRegions: externalRegions,
|
|
3891
|
-
selectedCategories: externalCategories,
|
|
3892
|
-
selectedMeals: externalMeals,
|
|
3893
|
-
selectedReviews: externalReviews,
|
|
3894
|
-
selectedTransport: externalTransport,
|
|
3895
|
-
selectedWellness: externalWellness,
|
|
3896
|
-
selectedServices: externalServices,
|
|
3897
|
-
selectedPriceRange: externalPriceRange
|
|
3898
|
-
}) => {
|
|
3899
|
-
const { t, currency } = useUIContext();
|
|
3900
|
-
const hasInitialLoadRef = (0, import_react19.useRef)(false);
|
|
3901
|
-
if (!hasInitialLoadRef.current) {
|
|
3902
|
-
if (regions.length > 0 || priceHistogram && priceHistogram.length > 0 || Object.keys(discountCounts).length > 0 || Object.keys(categoryCounts).length > 0) {
|
|
3903
|
-
hasInitialLoadRef.current = true;
|
|
3904
|
-
}
|
|
3905
|
-
}
|
|
3906
|
-
const [priceMin, setPriceMin] = (0, import_react19.useState)(externalPriceRange?.min ?? minPrice);
|
|
3907
|
-
const [priceMax, setPriceMax] = (0, import_react19.useState)(externalPriceRange?.max ?? maxPrice);
|
|
3908
|
-
const [selectedRegions, setSelectedRegions] = (0, import_react19.useState)(externalRegions ?? []);
|
|
3909
|
-
const [selectedDiscounts, setSelectedDiscounts] = (0, import_react19.useState)(externalDiscounts ?? []);
|
|
3910
|
-
const [selectedOptions, setSelectedOptions] = (0, import_react19.useState)(externalOptions ?? []);
|
|
3911
|
-
const [selectedCategories, setSelectedCategories] = (0, import_react19.useState)(externalCategories ?? []);
|
|
3912
|
-
const [selectedExperiences, setSelectedExperiences] = (0, import_react19.useState)(externalExperiences ?? []);
|
|
3913
|
-
const [selectedMeals, setSelectedMeals] = (0, import_react19.useState)(externalMeals ?? []);
|
|
3914
|
-
const [selectedReviews, setSelectedReviews] = (0, import_react19.useState)(externalReviews ?? []);
|
|
3915
|
-
const [selectedTransport, setSelectedTransport] = (0, import_react19.useState)(externalTransport ?? []);
|
|
3916
|
-
const [selectedWellness, setSelectedWellness] = (0, import_react19.useState)(externalWellness ?? []);
|
|
3917
|
-
const [selectedServices, setSelectedServices] = (0, import_react19.useState)(externalServices ?? []);
|
|
3918
|
-
(0, import_react19.useEffect)(() => {
|
|
3919
|
-
if (externalPriceRange) {
|
|
3920
|
-
setPriceMin(externalPriceRange.min);
|
|
3921
|
-
setPriceMax(externalPriceRange.max);
|
|
3922
|
-
} else {
|
|
3923
|
-
setPriceMin(minPrice);
|
|
3924
|
-
setPriceMax(maxPrice);
|
|
3925
|
-
}
|
|
3926
|
-
}, [externalPriceRange, minPrice, maxPrice]);
|
|
3927
|
-
(0, import_react19.useEffect)(() => {
|
|
3928
|
-
if (externalDiscounts !== void 0) setSelectedDiscounts(externalDiscounts);
|
|
3929
|
-
}, [externalDiscounts]);
|
|
3930
|
-
(0, import_react19.useEffect)(() => {
|
|
3931
|
-
if (externalOptions !== void 0) setSelectedOptions(externalOptions);
|
|
3932
|
-
}, [externalOptions]);
|
|
3933
|
-
(0, import_react19.useEffect)(() => {
|
|
3934
|
-
if (externalExperiences !== void 0) setSelectedExperiences(externalExperiences);
|
|
3935
|
-
}, [externalExperiences]);
|
|
3936
|
-
(0, import_react19.useEffect)(() => {
|
|
3937
|
-
if (externalRegions !== void 0) setSelectedRegions(externalRegions);
|
|
3938
|
-
}, [externalRegions]);
|
|
3939
|
-
(0, import_react19.useEffect)(() => {
|
|
3940
|
-
if (externalCategories !== void 0) setSelectedCategories(externalCategories);
|
|
3941
|
-
}, [externalCategories]);
|
|
3942
|
-
(0, import_react19.useEffect)(() => {
|
|
3943
|
-
if (externalMeals !== void 0) setSelectedMeals(externalMeals);
|
|
3944
|
-
}, [externalMeals]);
|
|
3945
|
-
(0, import_react19.useEffect)(() => {
|
|
3946
|
-
if (externalReviews !== void 0) setSelectedReviews(externalReviews);
|
|
3947
|
-
}, [externalReviews]);
|
|
3948
|
-
(0, import_react19.useEffect)(() => {
|
|
3949
|
-
if (externalTransport !== void 0) setSelectedTransport(externalTransport);
|
|
3950
|
-
}, [externalTransport]);
|
|
3951
|
-
(0, import_react19.useEffect)(() => {
|
|
3952
|
-
if (externalWellness !== void 0) setSelectedWellness(externalWellness);
|
|
3953
|
-
}, [externalWellness]);
|
|
3954
|
-
(0, import_react19.useEffect)(() => {
|
|
3955
|
-
if (externalServices !== void 0) setSelectedServices(externalServices);
|
|
3956
|
-
}, [externalServices]);
|
|
3957
|
-
const handlePriceChange = (value) => {
|
|
3958
|
-
setPriceMin(value.min);
|
|
3959
|
-
setPriceMax(value.max);
|
|
3960
|
-
};
|
|
3961
|
-
const handlePriceSearch = (0, import_react19.useCallback)(async (range) => {
|
|
3962
|
-
await onFilterChange?.({ priceRange: range });
|
|
3963
|
-
}, [onFilterChange]);
|
|
3964
|
-
const debouncedFetch = useDebounce(handlePriceSearch, 500);
|
|
3965
|
-
const handlePriceApply = (range) => {
|
|
3966
|
-
debouncedFetch(range);
|
|
3967
|
-
};
|
|
3968
|
-
const handleDiscountToggle = (discountValue) => {
|
|
3969
|
-
setSelectedDiscounts((prev) => {
|
|
3970
|
-
const newDiscounts = prev.includes(discountValue) ? prev.filter((d) => d !== discountValue) : [...prev, discountValue];
|
|
3971
|
-
onFilterChange?.({ discounts: newDiscounts });
|
|
3972
|
-
return newDiscounts;
|
|
3973
|
-
});
|
|
3974
|
-
};
|
|
3975
|
-
const handleOptionToggle = (optionValue) => {
|
|
3976
|
-
setSelectedOptions((prev) => {
|
|
3977
|
-
const newOptions = prev.includes(optionValue) ? prev.filter((o) => o !== optionValue) : [...prev, optionValue];
|
|
3978
|
-
onFilterChange?.({ options: newOptions });
|
|
3979
|
-
return newOptions;
|
|
3980
|
-
});
|
|
3981
|
-
};
|
|
3982
|
-
const handleServicesChange = (values) => {
|
|
3983
|
-
setSelectedServices(values);
|
|
3984
|
-
onFilterChange?.({ services: values });
|
|
3985
|
-
};
|
|
3986
|
-
const handleRegionsChange = (values) => {
|
|
3987
|
-
setSelectedRegions(values);
|
|
3988
|
-
onFilterChange?.({ regions: values });
|
|
3989
|
-
};
|
|
3990
|
-
const handleExperienceChange = (values) => {
|
|
3991
|
-
setSelectedExperiences(values);
|
|
3992
|
-
onFilterChange?.({ experiences: values });
|
|
3993
|
-
};
|
|
3994
|
-
const handleCategoriesChange = (values) => {
|
|
3995
|
-
setSelectedCategories(values);
|
|
3996
|
-
onFilterChange?.({ categories: values });
|
|
3997
|
-
};
|
|
3998
|
-
const handleMealsChange = (values) => {
|
|
3999
|
-
setSelectedMeals(values);
|
|
4000
|
-
onFilterChange?.({ meals: values });
|
|
4001
|
-
};
|
|
4002
|
-
const handleReviewsChange = (values) => {
|
|
4003
|
-
setSelectedReviews(values);
|
|
4004
|
-
onFilterChange?.({ ratings: values });
|
|
4005
|
-
};
|
|
4006
|
-
const handleTransportChange = (values) => {
|
|
4007
|
-
setSelectedTransport(values);
|
|
4008
|
-
onFilterChange?.({ transport: values });
|
|
4009
|
-
};
|
|
4010
|
-
const handleWellnessChange = (values) => {
|
|
4011
|
-
setSelectedWellness(values);
|
|
4012
|
-
onFilterChange?.({ wellness: values });
|
|
4013
|
-
};
|
|
4014
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("aside", { className: `${FilterPanel_default.filterPanel} ${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: FilterPanel_default.content, children: [
|
|
4015
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4016
|
-
CollapsibleFilterSection,
|
|
4017
|
-
{
|
|
4018
|
-
title: t("filter.destination", "Destination"),
|
|
4019
|
-
defaultExpanded: true,
|
|
4020
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4021
|
-
RegionsFilter,
|
|
4022
|
-
{
|
|
4023
|
-
regions,
|
|
4024
|
-
selected: selectedRegions,
|
|
4025
|
-
onChange: handleRegionsChange
|
|
4026
|
-
}
|
|
4027
|
-
)
|
|
4028
|
-
}
|
|
4029
|
-
),
|
|
4030
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4031
|
-
CollapsibleFilterSection,
|
|
4032
|
-
{
|
|
4033
|
-
title: t("filter.experience", "Experience"),
|
|
4034
|
-
defaultExpanded: selectedExperiences.length > 0,
|
|
4035
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4036
|
-
ExperienceFilter,
|
|
4037
|
-
{
|
|
4038
|
-
selected: selectedExperiences,
|
|
4039
|
-
themes,
|
|
4040
|
-
onChange: handleExperienceChange
|
|
4041
|
-
}
|
|
4042
|
-
)
|
|
4043
|
-
}
|
|
4044
|
-
),
|
|
4045
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4046
|
-
CollapsibleFilterSection,
|
|
4047
|
-
{
|
|
4048
|
-
title: t("filter.price", "Price"),
|
|
4049
|
-
defaultExpanded: true,
|
|
4050
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4051
|
-
PriceRangeFilter,
|
|
4052
|
-
{
|
|
4053
|
-
minPrice,
|
|
4054
|
-
maxPrice,
|
|
4055
|
-
value: { min: priceMin, max: priceMax },
|
|
4056
|
-
onChange: handlePriceChange,
|
|
4057
|
-
onApply: handlePriceApply,
|
|
4058
|
-
histogram: priceHistogram,
|
|
4059
|
-
currency
|
|
4060
|
-
}
|
|
4061
|
-
)
|
|
4062
|
-
}
|
|
4063
|
-
),
|
|
4064
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4065
|
-
CollapsibleFilterSection,
|
|
4066
|
-
{
|
|
4067
|
-
title: t("filter.discount", "Discount"),
|
|
4068
|
-
defaultExpanded: true,
|
|
4069
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: FilterPanel_default.discountList, children: DISCOUNT_OPTIONS.map((option) => {
|
|
4070
|
-
const count = discountCounts[option.value];
|
|
4071
|
-
const isDisabled = count === 0 && !selectedDiscounts.includes(option.value);
|
|
4072
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4073
|
-
FilterCheckboxItem,
|
|
4074
|
-
{
|
|
4075
|
-
id: `discount-${option.value}`,
|
|
4076
|
-
label: option.label,
|
|
4077
|
-
count,
|
|
4078
|
-
checked: selectedDiscounts.includes(option.value),
|
|
4079
|
-
disabled: isDisabled,
|
|
4080
|
-
onChange: () => handleDiscountToggle(option.value)
|
|
4081
|
-
},
|
|
4082
|
-
option.value
|
|
4083
|
-
);
|
|
4084
|
-
}) })
|
|
4085
|
-
}
|
|
4086
|
-
),
|
|
4087
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4088
|
-
CollapsibleFilterSection,
|
|
4089
|
-
{
|
|
4090
|
-
title: t("filter.options", "Options"),
|
|
4091
|
-
defaultExpanded: selectedOptions.length > 0 || selectedServices.length > 0,
|
|
4092
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: FilterPanel_default.discountList, children: [
|
|
4093
|
-
OPTIONS_FILTER.map((option) => {
|
|
4094
|
-
const count = optionsCounts[option.value];
|
|
4095
|
-
const isDisabled = count === 0 && !selectedOptions.includes(option.value);
|
|
4096
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4097
|
-
FilterCheckboxItem,
|
|
4098
|
-
{
|
|
4099
|
-
id: `option-${option.value}`,
|
|
4100
|
-
label: t(option.labelKey, "Instantly bookable"),
|
|
4101
|
-
count,
|
|
4102
|
-
checked: selectedOptions.includes(option.value),
|
|
4103
|
-
disabled: isDisabled,
|
|
4104
|
-
onChange: () => handleOptionToggle(option.value)
|
|
4105
|
-
},
|
|
4106
|
-
option.value
|
|
4107
|
-
);
|
|
4108
|
-
}),
|
|
4109
|
-
filterOptions?.services?.map((option) => {
|
|
4110
|
-
const count = servicesCounts[option.key];
|
|
4111
|
-
const isDisabled = count === 0 && !selectedServices.includes(option.key);
|
|
4112
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4113
|
-
FilterCheckboxItem,
|
|
4114
|
-
{
|
|
4115
|
-
id: `service-${option.key}`,
|
|
4116
|
-
label: option.name,
|
|
4117
|
-
count,
|
|
4118
|
-
checked: selectedServices.includes(option.key),
|
|
4119
|
-
disabled: isDisabled,
|
|
4120
|
-
onChange: () => handleServicesChange(
|
|
4121
|
-
selectedServices.includes(option.key) ? selectedServices.filter((v) => v !== option.key) : [...selectedServices, option.key]
|
|
4122
|
-
)
|
|
4123
|
-
},
|
|
4124
|
-
option.key
|
|
4125
|
-
);
|
|
4126
|
-
})
|
|
4127
|
-
] })
|
|
4128
|
-
}
|
|
4129
|
-
),
|
|
4130
|
-
filterOptions?.meals && filterOptions.meals.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4131
|
-
CollapsibleFilterSection,
|
|
4132
|
-
{
|
|
4133
|
-
title: t("filter.meals", "Meals"),
|
|
4134
|
-
defaultExpanded: selectedMeals.length > 0,
|
|
4135
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4136
|
-
MealsFilter,
|
|
4137
|
-
{
|
|
4138
|
-
selected: selectedMeals,
|
|
4139
|
-
counts: mealsCounts,
|
|
4140
|
-
options: filterOptions.meals,
|
|
4141
|
-
onChange: handleMealsChange
|
|
4142
|
-
}
|
|
4143
|
-
)
|
|
4144
|
-
}
|
|
4145
|
-
),
|
|
4146
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4147
|
-
CollapsibleFilterSection,
|
|
4148
|
-
{
|
|
4149
|
-
title: t("filter.hotel-category", "Hotel category"),
|
|
4150
|
-
defaultExpanded: true,
|
|
4151
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4152
|
-
HotelCategoryFilter,
|
|
4153
|
-
{
|
|
4154
|
-
selected: selectedCategories,
|
|
4155
|
-
counts: categoryCounts,
|
|
4156
|
-
onChange: handleCategoriesChange
|
|
4157
|
-
}
|
|
4158
|
-
)
|
|
4159
|
-
}
|
|
4160
|
-
),
|
|
4161
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4162
|
-
CollapsibleFilterSection,
|
|
4163
|
-
{
|
|
4164
|
-
title: t("filter.reviews", "Reviews"),
|
|
4165
|
-
defaultExpanded: selectedReviews.length > 0,
|
|
4166
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4167
|
-
ReviewsFilter,
|
|
4168
|
-
{
|
|
4169
|
-
selected: selectedReviews,
|
|
4170
|
-
counts: reviewsCounts,
|
|
4171
|
-
onChange: handleReviewsChange
|
|
4172
|
-
}
|
|
4173
|
-
)
|
|
4174
|
-
}
|
|
4175
|
-
),
|
|
4176
|
-
filterOptions?.transport && filterOptions.transport.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4177
|
-
CollapsibleFilterSection,
|
|
4178
|
-
{
|
|
4179
|
-
title: t("filter.mobility", "Mobility"),
|
|
4180
|
-
defaultExpanded: selectedTransport.length > 0,
|
|
4181
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4182
|
-
TransportFilter,
|
|
4183
|
-
{
|
|
4184
|
-
selected: selectedTransport,
|
|
4185
|
-
counts: transportCounts,
|
|
4186
|
-
options: filterOptions.transport,
|
|
4187
|
-
onChange: handleTransportChange
|
|
4188
|
-
}
|
|
4189
|
-
)
|
|
4190
|
-
}
|
|
4191
|
-
),
|
|
4192
|
-
filterOptions?.wellness && filterOptions.wellness.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4193
|
-
CollapsibleFilterSection,
|
|
4194
|
-
{
|
|
4195
|
-
title: t("filter.wellness-spa", "Wellness & Spa"),
|
|
4196
|
-
defaultExpanded: selectedWellness.length > 0,
|
|
4197
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4198
|
-
WellnessFilter,
|
|
4199
|
-
{
|
|
4200
|
-
selected: selectedWellness,
|
|
4201
|
-
counts: wellnessCounts,
|
|
4202
|
-
options: filterOptions.wellness,
|
|
4203
|
-
onChange: handleWellnessChange
|
|
4204
|
-
}
|
|
4205
|
-
)
|
|
4206
|
-
}
|
|
4207
|
-
)
|
|
4208
|
-
] }) });
|
|
4209
|
-
};
|
|
4210
|
-
|
|
4211
|
-
// src/components/Filters/FilterModal.tsx
|
|
4212
|
-
var import_react20 = require("react");
|
|
4213
|
-
|
|
4214
|
-
// src/components/Filters/FilterModal.module.css
|
|
4215
|
-
var FilterModal_default = {};
|
|
4216
|
-
|
|
4217
|
-
// src/components/Filters/FilterModal.tsx
|
|
4218
|
-
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4219
|
-
var CloseIcon3 = () => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "15", height: "15", viewBox: "0 0 15 15", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", { d: "M0.275391 1.59961C-0.0917969 1.23242 -0.0917969 0.638672 0.275391 0.275391C0.642578 -0.0878906 1.23633 -0.0917969 1.59961 0.275391L7.49805 6.17383L13.3965 0.275391C13.7637 -0.0917969 14.3574 -0.0917969 14.7207 0.275391C15.084 0.642578 15.0879 1.23633 14.7207 1.59961L8.82226 7.49805L14.7207 13.3965C15.0879 13.7637 15.0879 14.3574 14.7207 14.7207C14.3535 15.084 13.7598 15.0879 13.3965 14.7207L7.49805 8.82226L1.59961 14.7207C1.23242 15.0879 0.638672 15.0879 0.275391 14.7207C-0.0878906 14.3535 -0.0917969 13.7598 0.275391 13.3965L6.17383 7.49805L0.275391 1.59961Z", fill: "#1F2937" }) });
|
|
4220
|
-
var FilterModal = ({
|
|
4221
|
-
isOpen,
|
|
4222
|
-
onClose,
|
|
4223
|
-
resultCount = 0,
|
|
4224
|
-
selectedFilters = [],
|
|
4225
|
-
onRemoveFilter,
|
|
4226
|
-
onClearAllFilters,
|
|
4227
|
-
onFilterChange,
|
|
4228
|
-
selectedDiscounts = [],
|
|
4229
|
-
selectedOptions = [],
|
|
4230
|
-
selectedCategories = [],
|
|
4231
|
-
selectedExperiences = [],
|
|
4232
|
-
selectedRegions = [],
|
|
4233
|
-
selectedMeals = [],
|
|
4234
|
-
selectedWellness = [],
|
|
4235
|
-
selectedServices = [],
|
|
4236
|
-
selectedTransport = [],
|
|
4237
|
-
selectedReviews = [],
|
|
4238
|
-
selectedPriceRange,
|
|
4239
|
-
minPrice = 0,
|
|
4240
|
-
maxPrice = 500,
|
|
4241
|
-
regions = [],
|
|
4242
|
-
...filterPanelProps
|
|
4243
|
-
}) => {
|
|
4244
|
-
const { t } = useUIContext();
|
|
4245
|
-
const hasSelectedFilters = selectedFilters.length > 0;
|
|
4246
|
-
(0, import_react20.useEffect)(() => {
|
|
4247
|
-
if (isOpen) {
|
|
4248
|
-
document.body.style.overflow = "hidden";
|
|
4249
|
-
return () => {
|
|
4250
|
-
document.body.style.overflow = "";
|
|
4251
|
-
};
|
|
4252
|
-
}
|
|
4253
|
-
}, [isOpen]);
|
|
4254
|
-
if (!isOpen) return null;
|
|
4255
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: FilterModal_default.overlay, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: FilterModal_default.modal, children: [
|
|
4256
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: FilterModal_default.header, children: [
|
|
4257
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h2", { className: FilterModal_default.title, children: t("filter.filters", "Filters") }),
|
|
4258
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4259
|
-
Button,
|
|
4260
|
-
{
|
|
4261
|
-
variant: "secondary",
|
|
4262
|
-
size: "small",
|
|
4263
|
-
iconOnly: true,
|
|
4264
|
-
onClick: onClose,
|
|
4265
|
-
"aria-label": t("filter.close", "Close"),
|
|
4266
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CloseIcon3, {})
|
|
4267
|
-
}
|
|
4268
|
-
)
|
|
4269
|
-
] }),
|
|
4270
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: FilterModal_default.content, children: [
|
|
4271
|
-
selectedFilters.length > 0 && onRemoveFilter && onClearAllFilters && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: FilterModal_default.selectedFilters, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4272
|
-
SelectedFiltersRow,
|
|
4273
|
-
{
|
|
4274
|
-
filters: selectedFilters,
|
|
4275
|
-
onRemove: onRemoveFilter,
|
|
4276
|
-
onClearAll: onClearAllFilters
|
|
4277
|
-
}
|
|
4278
|
-
) }),
|
|
4279
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4280
|
-
FilterPanel,
|
|
4281
|
-
{
|
|
4282
|
-
...filterPanelProps,
|
|
4283
|
-
onFilterChange,
|
|
4284
|
-
selectedDiscounts,
|
|
4285
|
-
selectedOptions,
|
|
4286
|
-
selectedCategories,
|
|
4287
|
-
selectedExperiences,
|
|
4288
|
-
selectedRegions,
|
|
4289
|
-
selectedMeals,
|
|
4290
|
-
selectedWellness,
|
|
4291
|
-
selectedServices,
|
|
4292
|
-
selectedTransport,
|
|
4293
|
-
selectedReviews,
|
|
4294
|
-
selectedPriceRange,
|
|
4295
|
-
minPrice,
|
|
4296
|
-
maxPrice,
|
|
4297
|
-
regions,
|
|
4298
|
-
className: FilterModal_default.filterPanel
|
|
4299
|
-
}
|
|
4300
|
-
)
|
|
4301
|
-
] }),
|
|
4302
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: FilterModal_default.footer, children: [
|
|
4303
|
-
onClearAllFilters && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4304
|
-
Button,
|
|
4305
|
-
{
|
|
4306
|
-
variant: "link",
|
|
4307
|
-
className: FilterModal_default.footerLink,
|
|
4308
|
-
onClick: onClearAllFilters,
|
|
4309
|
-
disabled: !hasSelectedFilters,
|
|
4310
|
-
children: t("filter.clear-all", "Clear all")
|
|
4311
|
-
}
|
|
4312
|
-
),
|
|
4313
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4314
|
-
Button,
|
|
4315
|
-
{
|
|
4316
|
-
variant: "primary",
|
|
4317
|
-
size: "medium",
|
|
4318
|
-
onClick: onClose,
|
|
4319
|
-
children: t("filter.show-results", "Show {count} results").replace("{count}", String(resultCount))
|
|
4320
|
-
}
|
|
4321
|
-
)
|
|
4322
|
-
] })
|
|
4323
|
-
] }) });
|
|
4324
|
-
};
|
|
4325
|
-
|
|
4326
4479
|
// src/components/icons/HeartIcon.tsx
|
|
4327
|
-
var
|
|
4328
|
-
var HeartIcon3 = ({ filled = false, className = "", size = 24 }) => /* @__PURE__ */ (0,
|
|
4480
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4481
|
+
var HeartIcon3 = ({ filled = false, className = "", size = 24 }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4329
4482
|
"svg",
|
|
4330
4483
|
{
|
|
4331
4484
|
width: size,
|
|
@@ -4337,14 +4490,14 @@ var HeartIcon3 = ({ filled = false, className = "", size = 24 }) => /* @__PURE__
|
|
|
4337
4490
|
strokeWidth: 2,
|
|
4338
4491
|
strokeLinecap: "round",
|
|
4339
4492
|
strokeLinejoin: "round",
|
|
4340
|
-
children: /* @__PURE__ */ (0,
|
|
4493
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })
|
|
4341
4494
|
}
|
|
4342
4495
|
);
|
|
4343
4496
|
HeartIcon3.displayName = "HeartIcon";
|
|
4344
4497
|
|
|
4345
4498
|
// src/components/icons/StarIcon.tsx
|
|
4346
|
-
var
|
|
4347
|
-
var StarIcon4 = ({ filled = true, className = "", size = 9 }) => /* @__PURE__ */ (0,
|
|
4499
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4500
|
+
var StarIcon4 = ({ filled = true, className = "", size = 9 }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
4348
4501
|
"svg",
|
|
4349
4502
|
{
|
|
4350
4503
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -4354,22 +4507,22 @@ var StarIcon4 = ({ filled = true, className = "", size = 9 }) => /* @__PURE__ */
|
|
|
4354
4507
|
fill: "none",
|
|
4355
4508
|
className,
|
|
4356
4509
|
children: [
|
|
4357
|
-
/* @__PURE__ */ (0,
|
|
4510
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("g", { clipPath: "url(#clip0_star_icon)", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4358
4511
|
"path",
|
|
4359
4512
|
{
|
|
4360
4513
|
d: "M4.80018 0.366577C4.93104 0.366577 5.05173 0.440968 5.11135 0.557659L6.18011 2.66102L8.50521 3.03152C8.63462 3.05194 8.74222 3.14383 8.78294 3.26927C8.82365 3.39472 8.79021 3.53183 8.6986 3.62518L7.03366 5.29533L7.40155 7.6277C7.42191 7.75752 7.3681 7.88879 7.26195 7.9661C7.15581 8.04341 7.01476 8.05508 6.89843 7.99528L4.80018 6.92463L2.70192 7.99528C2.58559 8.05508 2.44454 8.04341 2.33839 7.9661C2.23225 7.88879 2.17844 7.75898 2.1988 7.6277L2.56523 5.29533L0.901751 3.62518C0.808689 3.53183 0.776699 3.39472 0.817413 3.26927C0.858128 3.14383 0.964277 3.05194 1.09515 3.03152L3.42024 2.66102L4.49045 0.557659C4.55007 0.440968 4.67076 0.366577 4.80163 0.366577H4.80018Z",
|
|
4361
4514
|
fill: filled ? "#1F2937" : "#D1D5DB"
|
|
4362
4515
|
}
|
|
4363
4516
|
) }),
|
|
4364
|
-
/* @__PURE__ */ (0,
|
|
4517
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("clipPath", { id: "clip0_star_icon", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
|
|
4365
4518
|
]
|
|
4366
4519
|
}
|
|
4367
4520
|
);
|
|
4368
4521
|
StarIcon4.displayName = "StarIcon";
|
|
4369
4522
|
|
|
4370
4523
|
// src/components/icons/ChevronLeftIcon.tsx
|
|
4371
|
-
var
|
|
4372
|
-
var ChevronLeftIcon = ({ className = "", size = 20 }) => /* @__PURE__ */ (0,
|
|
4524
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4525
|
+
var ChevronLeftIcon = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4373
4526
|
"svg",
|
|
4374
4527
|
{
|
|
4375
4528
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -4382,14 +4535,14 @@ var ChevronLeftIcon = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, imp
|
|
|
4382
4535
|
strokeLinecap: "round",
|
|
4383
4536
|
strokeLinejoin: "round",
|
|
4384
4537
|
className,
|
|
4385
|
-
children: /* @__PURE__ */ (0,
|
|
4538
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("polyline", { points: "15 18 9 12 15 6" })
|
|
4386
4539
|
}
|
|
4387
4540
|
);
|
|
4388
4541
|
ChevronLeftIcon.displayName = "ChevronLeftIcon";
|
|
4389
4542
|
|
|
4390
4543
|
// src/components/icons/ChevronRightIcon.tsx
|
|
4391
|
-
var
|
|
4392
|
-
var ChevronRightIcon2 = ({ className = "", size = 20 }) => /* @__PURE__ */ (0,
|
|
4544
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
4545
|
+
var ChevronRightIcon2 = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4393
4546
|
"svg",
|
|
4394
4547
|
{
|
|
4395
4548
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -4402,14 +4555,14 @@ var ChevronRightIcon2 = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, i
|
|
|
4402
4555
|
strokeLinecap: "round",
|
|
4403
4556
|
strokeLinejoin: "round",
|
|
4404
4557
|
className,
|
|
4405
|
-
children: /* @__PURE__ */ (0,
|
|
4558
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("polyline", { points: "9 18 15 12 9 6" })
|
|
4406
4559
|
}
|
|
4407
4560
|
);
|
|
4408
4561
|
ChevronRightIcon2.displayName = "ChevronRightIcon";
|
|
4409
4562
|
|
|
4410
4563
|
// src/components/icons/PinIcon.tsx
|
|
4411
|
-
var
|
|
4412
|
-
var PinIcon2 = ({ className = "", size = 16 }) => /* @__PURE__ */ (0,
|
|
4564
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
4565
|
+
var PinIcon2 = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
4413
4566
|
"svg",
|
|
4414
4567
|
{
|
|
4415
4568
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -4419,7 +4572,7 @@ var PinIcon2 = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx
|
|
|
4419
4572
|
fill: "none",
|
|
4420
4573
|
className,
|
|
4421
4574
|
children: [
|
|
4422
|
-
/* @__PURE__ */ (0,
|
|
4575
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4423
4576
|
"path",
|
|
4424
4577
|
{
|
|
4425
4578
|
fillRule: "evenodd",
|
|
@@ -4428,7 +4581,7 @@ var PinIcon2 = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx
|
|
|
4428
4581
|
fill: "currentColor"
|
|
4429
4582
|
}
|
|
4430
4583
|
),
|
|
4431
|
-
/* @__PURE__ */ (0,
|
|
4584
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4432
4585
|
"path",
|
|
4433
4586
|
{
|
|
4434
4587
|
fillRule: "evenodd",
|
|
@@ -4492,8 +4645,6 @@ var calculateDiscount = (originalPrice, discountedPrice) => {
|
|
|
4492
4645
|
ExperienceFilter,
|
|
4493
4646
|
FAQ,
|
|
4494
4647
|
FilterCheckboxItem,
|
|
4495
|
-
FilterModal,
|
|
4496
|
-
FilterPanel,
|
|
4497
4648
|
GuestContent,
|
|
4498
4649
|
HeartIcon,
|
|
4499
4650
|
HotelCard,
|