{"version":3,"file":"static/chunks/1974-7ca2774fb7e8162e.js","mappings":"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","sources":["webpack://_N_E/./api/fragments.ts","webpack://_N_E/./components/FeaturedExperiences/FeaturedNavSec.tsx","webpack://_N_E/./api/cityfilter.ts","webpack://_N_E/./api/featuredexperiences.ts","webpack://_N_E/./components/FeaturedExperiences/FeaturedExperiences.tsx","webpack://_N_E/"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { CARDMEDIAINTERFACE } from './commonInterfaces';\n\nconst FRAGMENT_AVAILABILITIES_GROUP = gql`\n fragment FragmentAvailabilitiesGroup on boat_availabilities_group {\n id\n name\n city_id\n availabilities {\n id\n pax\n startDate: start_date\n endDate: end_date\n juggle\n exclusion\n resources {\n id\n type\n resources\n seats\n }\n }\n }\n`;\n\nconst FRAGMENT_ATTRACTIONS = gql`\n fragment FragmentAttraction on boat_attractions {\n id\n name\n questions\n }\n`;\n\nconst FRAGMENT_OPTIONS = gql`\n fragment FragmentOption on boat_options {\n id\n start_time: start_time\n availabilities_groups: availabilities_groups {\n ...FragmentAvailabilitiesGroup\n }\n }\n`;\nconst FRAGMENT_PRODUCT = gql`\n fragment FragmentProduct on boat_products {\n id\n name\n productCode: reference\n active\n pickupBounds: pickup_bounds\n productType: product_type\n duration\n bookingCutoff: booking_cutoff\n cancelBefore: cancel_cutoff_before\n cancelAfter: cancel_cutoff_after\n price\n advertisedPrice: advertised_price\n quantity\n bookingInfo: booking_info\n customMsg: custom_msg\n options {\n ...FragmentOption\n }\n attractions: products_attractions {\n attraction {\n ...FragmentAttraction\n }\n }\n city {\n id\n name\n coordinates\n availabilitiesGroups: availabilities_groups {\n ...FragmentAvailabilitiesGroup\n }\n attractions {\n ...FragmentAttraction\n }\n }\n }\n ${FRAGMENT_OPTIONS}\n ${FRAGMENT_ATTRACTIONS}\n ${FRAGMENT_AVAILABILITIES_GROUP}\n`;\n\nconst FRAGMENT_VEHICLE_CORE = gql`\n fragment FragmentVehicleCore on boat_vehicles {\n id\n name\n capacity\n city: office\n }\n`;\n\nconst FRAGMENT_VEHICLE_REST = gql`\n fragment FragmentVehicleRest on boat_vehicles {\n makeModel: make_model\n plateNumber: plate_number\n vinNumber: vin_number\n insurance\n ownership\n year\n colour\n notes: maintenence\n }\n`;\n\nconst FRAGMENT_MEDIA = gql`\n fragment FragmentMedia on card_media {\n name\n alt: alternativeText\n url\n fragment: caption\n }\n`;\n\nconst FRAGMENT_PRODUCT_ORDER = gql`\n fragment FRAGMENT_PRODUCT_ORDER on Product {\n strapiID: id\n id: boat_id\n name\n slug\n price\n private\n cardSnippet: snippet\n cardMessage: card_message\n carousel: carousel_media {\n id\n name\n alt: alternativeText\n url\n fragment: caption\n type: provider_metadata\n }\n cardMedia: card_media {\n id\n name\n alternativeText\n url\n caption\n fragment: caption\n }\n reviews {\n id\n rating\n }\n duration\n slug\n cardSnippet: snippet\n cardMessage: card_message\n cardMedia: card_media {\n id\n name\n alternativeText\n url\n caption\n fragment: caption\n }\n }\n`;\nconst FRAGMENT_PRODUCT_REVIEW = gql`\n fragment FRAGMENT_PRODUCT_REVIEW on Product {\n strapiID: id\n boatID: boat_id\n name\n slug\n price\n cardSnippet: snippet\n cardMessage: card_message\n cardMedia: card_media {\n id\n name\n alternativeText\n url\n caption\n fragment: caption\n }\n reviews {\n id\n rating\n }\n duration\n slug\n cardSnippet: snippet\n cardMessage: card_message\n cardMedia: card_media {\n id\n name\n alternativeText\n url\n caption\n fragment: caption\n }\n }\n`;\ninterface FRAGMENT_PRODUCT_ORDER_INTERFACE {\n strapiID: string;\n id: string;\n name: string;\n slug: string;\n price: string;\n cardSnippet: string;\n cardMessage: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: [\n {\n id: string;\n rating: string;\n }\n ];\n duration: string;\n}\nexport {\n FRAGMENT_AVAILABILITIES_GROUP,\n FRAGMENT_ATTRACTIONS,\n FRAGMENT_VEHICLE_CORE,\n FRAGMENT_VEHICLE_REST,\n FRAGMENT_PRODUCT,\n FRAGMENT_OPTIONS,\n FRAGMENT_MEDIA,\n FRAGMENT_PRODUCT_ORDER,\n FRAGMENT_PRODUCT_REVIEW\n};\nexport type { FRAGMENT_PRODUCT_ORDER_INTERFACE };\n","import React, {\n SetStateAction,\n useRef,\n useState,\n useCallback,\n useEffect\n} from 'react';\nimport Image from 'next/image';\n\ninterface IProps {\n currNav: string;\n setActiveNav: React.Dispatch>;\n navData: Record[];\n}\n\nconst FeaturedNavSection = ({ currNav, setActiveNav, navData }: IProps) => {\n const [currentSlide, setCurrentSlide] = useState(0);\n const [isAtStart, setIsAtStart] = useState(true);\n const [isAtEnd, setIsAtEnd] = useState(false);\n const [showArrows, setShowArrows] = useState(false);\n const navContainerRef = useRef(null);\n\n // Function to check arrow visibility\n const checkArrowVisibility = useCallback(() => {\n const isSmallerScreen = window.innerWidth < 768;\n setShowArrows(isSmallerScreen);\n }, []);\n\n useEffect(() => {\n checkArrowVisibility();\n\n window.addEventListener('resize', checkArrowVisibility);\n\n return () => {\n window.removeEventListener('resize', checkArrowVisibility);\n };\n }, [checkArrowVisibility]);\n\n const scrollToSlide = (index: number) => {\n if (navContainerRef.current) {\n const container = navContainerRef.current;\n const navItems = Array.from(container.children);\n\n if (navItems[index]) {\n const targetItem = navItems[index] as HTMLElement;\n\n // Calculate precise scroll position\n const containerWidth = container.clientWidth;\n const itemWidth = targetItem.offsetWidth;\n const itemLeft = targetItem.offsetLeft;\n\n // Ensure the item is fully visible by adjusting scroll\n let scrollPosition = itemLeft - containerWidth / 2 + itemWidth / 2;\n\n // Prevent over-scrolling at start and end\n scrollPosition = Math.max(\n 0,\n Math.min(scrollPosition, container.scrollWidth - containerWidth)\n );\n\n container.scrollTo({\n left: scrollPosition,\n behavior: 'smooth'\n });\n\n // Update slide state\n setCurrentSlide(index);\n setIsAtStart(index === 0);\n setIsAtEnd(index === navData.length - 1);\n }\n }\n };\n\n const handleLeftArrowClick = () => {\n if (currentSlide > 0) {\n scrollToSlide(currentSlide - 1);\n }\n };\n\n const handleRightArrowClick = () => {\n if (currentSlide < navData.length - 1) {\n scrollToSlide(currentSlide + 1);\n }\n };\n\n return (\n
\n {showArrows && (\n \n \n
\n )}\n\n \n {navData.map((navItem: Record, index: number) => (\n {\n setActiveNav(`${navItem.filterClass}`);\n scrollToSlide(index);\n }}\n >\n \n \n \n {navItem.filterName}\n \n \n \n ))}\n \n\n {showArrows && (\n \n \n \n )}\n \n );\n};\n\nexport default FeaturedNavSection;\n","import { gql } from '@apollo/client';\nimport {\n FRAGMENT_PRODUCT_ORDER,\n FRAGMENT_PRODUCT_ORDER_INTERFACE\n} from './fragments';\n\nconst CITIES_FILTER = gql`\n query CITIES_FILTER($filter: JSON!) {\n cities(where: $filter) {\n name\n allThings: all_things_to_do {\n product {\n ...FRAGMENT_PRODUCT_ORDER\n }\n }\n dayTours: day_tours {\n product {\n ...FRAGMENT_PRODUCT_ORDER\n }\n }\n privateTours: airport_transfer {\n product {\n ...FRAGMENT_PRODUCT_ORDER\n }\n }\n multiday: multi_day_tours {\n product {\n ...FRAGMENT_PRODUCT_ORDER\n }\n }\n }\n citiesList: cities {\n id\n name\n slug\n }\n }\n ${FRAGMENT_PRODUCT_ORDER}\n`;\ninterface CITY_FILTER_INTERFACE {\n cities: [\n {\n name: string;\n allThings: {\n product: [FRAGMENT_PRODUCT_ORDER_INTERFACE];\n };\n dayTours: {\n product: [FRAGMENT_PRODUCT_ORDER_INTERFACE];\n };\n multiday: {\n product: [FRAGMENT_PRODUCT_ORDER_INTERFACE];\n };\n airportTransfers: {\n product: [FRAGMENT_PRODUCT_ORDER_INTERFACE];\n };\n }\n ];\n citiesList: [\n {\n id: string;\n name: string;\n slug: string;\n }\n ];\n}\nexport { CITIES_FILTER };\nexport type { CITY_FILTER_INTERFACE };\n","import { gql } from '@apollo/client';\nimport { CARDMEDIAINTERFACE } from './commonInterfaces';\n\nconst FEATUREDEXPERIENCES = gql`\n query FEATUREDEXPERIENCES(\n $dayTours: Boolean!\n $multiday: Boolean!\n $airportTransfers: Boolean!\n ) {\n homePage {\n header\n subheader\n allThings: all_things_to_do {\n product {\n id: boat_id\n name\n private\n slug\n duration\n price\n cardMessage: card_message\n cardSnippet: snippet\n carousel: card_media {\n url\n type: provider_metadata\n }\n\n reviews {\n id\n rating\n }\n }\n }\n dayTours: one_day_tours @include(if: $dayTours) {\n product {\n id: boat_id\n name\n slug\n duration\n private\n price\n cardMessage: card_message\n cardSnippet: snippet\n carousel: card_media {\n url\n type: provider_metadata\n }\n reviews {\n id\n rating\n }\n }\n }\n multiday: multi_day_tours @include(if: $multiday) {\n product {\n id: boat_id\n name\n slug\n duration\n private\n price\n cardMessage: card_message\n cardSnippet: snippet\n carousel: card_media {\n url\n type: provider_metadata\n }\n reviews {\n id\n rating\n }\n }\n }\n privateTours: airport_transfer @include(if: $airportTransfers) {\n product {\n id: boat_id\n name\n slug\n duration\n private\n price\n cardMessage: card_message\n cardSnippet: snippet\n carousel: card_media {\n url\n type: provider_metadata\n }\n reviews {\n id\n rating\n }\n }\n }\n }\n citiesDropdown: cities {\n id\n name\n slug\n card_media(limit: 1) {\n url\n }\n }\n\n totalProducts: productsConnection {\n aggregate {\n totalCount\n }\n }\n totalDayTours: productsConnection(where: { type: \"DAYTOUR\" }) {\n aggregate {\n count\n }\n }\n totalMultiDay: productsConnection(where: { type: \"MULTIDAY\" }) {\n aggregate {\n count\n }\n }\n totalAirportPickup: productsConnection(where: { type: \"AIRPORTPICKUP\" }) {\n aggregate {\n count\n }\n }\n }\n`;\ninterface FEATURED_EXPERIENCES_INTERFACE {\n homePage: {\n header: string;\n subheader: string;\n allThings: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n carousel: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n dayTours: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n multiday: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n airportTransfers: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n };\n citiesDropdown: [\n {\n id: string;\n name: string;\n slug: string;\n }\n ];\n\n totalProducts: {\n aggregate: {\n totalCount: number;\n };\n };\n totalDayTours: {\n aggregate: {\n count: number;\n };\n };\n totalMultiDay: {\n aggregate: {\n count: number;\n };\n };\n totalAirportPickup: {\n aggregate: {\n count: number;\n };\n };\n}\ninterface HOMEPAFE {\n header: string;\n subheader: string;\n allThings: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n carousel: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n dayTours: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n multiday: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n airportTransfers: [\n {\n product: {\n id: string;\n name: string;\n slug: string;\n duration: string;\n price: string;\n cardMessage: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n reviews: {\n id: string;\n rating: string;\n };\n };\n }\n ];\n}\nexport default FEATUREDEXPERIENCES;\nexport type { FEATURED_EXPERIENCES_INTERFACE, HOMEPAFE };\n","import { useState, useEffect, useRef } from 'react';\nimport FeaturedNavSection from './FeaturedNavSec';\nimport { useLazyQuery } from '@apollo/client';\nimport { CITIES_FILTER, CITY_FILTER_INTERFACE } from '../../api/cityfilter';\nimport FEATUREDEXPERIENCES, {\n FEATURED_EXPERIENCES_INTERFACE\n} from '../../api/featuredexperiences';\nimport { HOMEPAGEINTERFACE } from '../../api/homePage';\nimport TourCard from '../Tour/tourCard';\nimport { PAGE_OPTIONS } from '../Trust/Trustbar';\nimport { useRouter } from 'next/router';\nimport LandingPageTourCard from '../Tours/LandingPageTourCard';\nimport { ELandingPage, TourCardType } from '../../types/pages/landing-page';\nimport Image from 'next/image';\nimport { LoadingSpinner } from '../../shared-components/LoadingSpinner/LoadingSpinner';\n// import { ELandingPages } from './FeaturedNavSec';\n\nconst arr = [\n {\n filterClass: 'allThings',\n filterName: 'All Tours',\n activeIcon: '/all-tours-white.svg',\n inactiveIcon:\n 'https://res.cloudinary.com/see-sight-tours/image/upload/v1713248139/icons-website/h8fhrijhtbxorqla8urd.svg'\n },\n {\n filterClass: 'dayTours',\n filterName: 'Day Tours',\n activeIcon: '/day-tours-white.svg', // Fixed the typo here\n inactiveIcon: 'day-tours.svg'\n },\n // {\n // filterClass: 'multiday',\n // filterName: 'Multi Day Tours',\n // Icon: '/private-tour.png'\n // },\n {\n filterClass: 'privateTours',\n filterName: 'Private Tours',\n inactiveIcon: '/private-tour.png',\n activeIcon: '/private-tours-white.svg'\n }\n // {\n // filterClass: 'WalkingTour',\n // filterName: 'Walking Tours',\n // Icon: 'https://res.cloudinary.com/see-sight-tours/image/upload/v1721373531/icons-website/gray-walking-tour_lk1ree.svg'\n // },\n // {\n // filterClass: 'FoodWalkingTour',\n // filterName: 'Food Walking Tours',\n // Icon: 'https://res.cloudinary.com/see-sight-tours/image/upload/v1721373531/icons-website/gray-food-walking-tour_u8x8p5.svg'\n // },\n // {\n // filterClass: 'nightTour',\n // filterName: 'Night Tour',\n // Icon: 'https://res.cloudinary.com/see-sight-tours/image/upload/v1721373524/icons-website/gray-night-tour_dxqlma.svg'\n // },\n // {\n // filterClass: 'cruise',\n // filterName: 'Cruises',\n // Icon: 'https://res.cloudinary.com/see-sight-tours/image/upload/v1713248189/icons-website/rqyxrqouu55yjhkwjy0m.svg'\n // }\n];\n\ninterface IProps {\n featuredExp: any;\n citydropdown: any;\n selectedCity?: string | undefined;\n privateTourPage?: boolean;\n}\nconst FeaturedExperiences = ({\n featuredExp,\n citydropdown,\n selectedCity,\n privateTourPage\n}: IProps) => {\n const [activeNav, setActiveNav] = useState(\n privateTourPage ? 'privateTours' : 'allThings'\n );\n\n const fexp_Ref = useRef(null);\n const [city, setCity] = useState(selectedCity || 'All Cities');\n const [cityToggle, setCityToggle] = useState(false);\n const [navArray, setNavArray] = useState(arr);\n const [featuredExperienceData, setFeaturedExperienceData] = useState<\n FEATURED_EXPERIENCES_INTERFACE | HOMEPAGEINTERFACE | any\n >([]);\n const router = useRouter();\n const [showAll, setShowAll] = useState(\n router.pathname === '/[slug]' ? true : false\n );\n\n //FETCHING QUERIES\n //fetch day & multiday\n const [fetchTourType, { data: tourData, loading: tourFilterLoading, error }] =\n useLazyQuery(FEATUREDEXPERIENCES);\n\n //fetch by city\n const [\n cityFilteredTours,\n {\n data: { cities: [filteredCity] = [] } = {} as CITY_FILTER_INTERFACE,\n loading: cityFilterLoading,\n error: cityFitlerError\n }\n ] = useLazyQuery(CITIES_FILTER);\n\n //USEFFECTS()\n\n //useffect-1\n useEffect(() => {\n filteredCity && setFeaturedExperienceData(filteredCity);\n }, [filteredCity]);\n\n //useffect-2\n useEffect(() => {\n if (\n !privateTourPage &&\n activeNav !== 'allThings' &&\n city === 'All Cities'\n ) {\n try {\n const filters: Record = {\n dayTours: activeNav === 'dayTours',\n multiday: activeNav === 'multiday',\n airportTransfers: activeNav === 'privateTours'\n };\n\n fetchTourType({\n variables: filters\n });\n } catch (error) {}\n }\n }, [activeNav]);\n\n //useffect-3\n useEffect(() => {\n setFeaturedExperienceData(tourData?.homePage);\n }, [tourData]);\n\n //useffect-4\n useEffect(() => {\n const finalNavArray: Array> = [];\n let flag = true;\n arr.forEach(item => {\n finalNavArray.push(item);\n });\n\n if (city === 'All Cities') {\n setNavArray(arr);\n setFeaturedExperienceData(tourData?.homePage);\n } else {\n setNavArray(finalNavArray);\n finalNavArray?.forEach(item => {\n if (item.filterClass == activeNav) {\n flag = false;\n }\n });\n if (flag) {\n setActiveNav('allThings');\n }\n }\n }, [city, activeNav]);\n\n //usefffect-5\n useEffect(() => {\n if (!selectedCity) {\n cityFilteredTours({\n variables: {\n filter: {\n name: city\n }\n }\n });\n }\n }, [city, cityFilteredTours]);\n\n //FUNCTIONS\n const Drop_Down_options = () => {\n const options: Array> = [];\n const filteredCities = citydropdown ? citydropdown : [];\n filteredCities?.forEach((obj: Record) => {\n options.push({ value: [obj.name], label: [obj.name] });\n });\n\n return options.sort((a: any, b: any) => {\n const x = a.label[0].toUpperCase();\n const y = b.label[0].toUpperCase();\n return x === y ? 0 : x > y ? 1 : -1;\n });\n };\n const sortedCities = Drop_Down_options();\n const showActiveNav = () => {\n if (activeNav === 'allTours') return 'All Tours';\n else if (activeNav === 'dayTours') return 'Day Tours';\n // else if (activeNav === 'multiday') return 'Multi Day Tours';\n else if (activeNav === 'privateTours') return 'Private Tours';\n else if (activeNav === 'WalkingTours') return 'Walking Tours';\n else if (activeNav === 'FoodWalkingTours') return 'Food Walking Tours';\n else if (activeNav === 'nightTours') return 'Night Tours';\n else if (activeNav === 'cruises') return 'Cruises';\n };\n const dispLoading = () => {\n if (city !== 'All Cities' && cityFilterLoading) {\n return (\n \n \n \n );\n }\n if (tourFilterLoading) {\n return (\n \n \n \n );\n }\n };\n const displayProduct = () => {\n const filteredProduct = featuredExperienceData\n ? featuredExperienceData[activeNav]\n : featuredExp[activeNav];\n\n // If there are no private tours and the activeNav is 'privateTours'\n if (filteredProduct && filteredProduct?.length === 0) {\n return (\n

{`Private tours are currently unavailable in ${selectedCity}`}

\n );\n }\n\n // Prevent null & duplicate items\n const uniquefilteredProduct = filteredProduct\n ?.filter((item: Record) => item.product !== null)\n .reduce((acc: Record, curr: Record) => {\n const isdup = acc.find((item: any) => {\n if (item.product.id) return item.product.id === curr.product.id;\n });\n if (!isdup) {\n return acc.concat([curr]);\n } else {\n return acc;\n }\n }, []);\n\n // Map the old product structure to the new TourCardType structure\n const mappedProducts = uniquefilteredProduct?.map((item: any) => {\n const product = item.product;\n\n // Calculate average rating from reviews\n let totalAvg = 0;\n let total = 0;\n if (product?.reviews) {\n product.reviews.forEach((review: any) => {\n total += Number(review?.rating);\n });\n totalAvg = Number((total / product?.reviews?.length).toFixed(1));\n }\n\n return {\n city: '',\n country: '',\n avg_rating: totalAvg,\n carousel: product.carousel?.map((carouselItem: any) => ({\n alt: product.name,\n image:\n carouselItem.type.resource_type === 'image'\n ? carouselItem.url\n : undefined,\n video:\n carouselItem.type.resource_type === 'video'\n ? carouselItem.url\n : undefined\n })),\n duration: Number(product.duration) * 60 || 0, // Convert duration to minutes\n highlight: product.cardMessage || '',\n name: product.name || '',\n objectID: product.id || '',\n private: product.private || false,\n reviews_count: product.reviews?.length || 0,\n slug: product.slug || '',\n snippet: product.cardSnippet || '',\n price: product.price?.toString() || ''\n } as TourCardType;\n });\n\n return mappedProducts\n ?.slice(0, showAll ? mappedProducts?.length : 8)\n .map((tourCard: TourCardType, index: number) => {\n return (\n \n );\n });\n };\n const showProduct = () => {\n let selectedNav = '';\n const selectNum = featuredExperienceData\n ? //@ts-ignore\n featuredExperienceData[activeNav]?.length\n : featuredExp[activeNav]?.length;\n if (activeNav === 'allThings') {\n selectedNav = 'All Tours';\n }\n if (activeNav === 'dayTours') {\n selectedNav = 'Day Tours ';\n }\n // if (activeNav === 'multiday') {\n // selectedNav = 'All Multi Day Tours';\n // }\n if (activeNav === 'privateTours') {\n selectedNav = 'Private Tours';\n }\n // if (activeNav === 'WalkingTourday') {\n // selectedNav = 'Walking Tours';\n // }\n // if (activeNav === 'FoodWalkingTour') {\n // selectedNav = 'Food Walking Tours';\n // }\n // if (activeNav === 'nightTour') {\n // selectedNav = 'Night Tour';\n // }\n // if (activeNav === 'cruise') {\n // selectedNav = 'Cruises';\n // }\n\n if (!showAll && !tourFilterLoading && !cityFilterLoading) {\n return (\n
\n {selectNum > 8 && (\n setShowAll(true)}\n className=\"cursor-pointer flex items-center\"\n >\n {/*

{`See ${selectedNav} (${selectNum})`}

*/}\n {router.pathname !== '/[slug]' && (\n

\n See More\n

\n )}\n
\n )}\n \n );\n }\n if (showAll && !tourFilterLoading && !cityFilterLoading && selectNum > 8) {\n return (\n
\n {\n setShowAll(false);\n fexp_Ref.current?.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }}\n className=\"cursor-pointer\"\n >\n {router.pathname !== '/[slug]' && (\n

\n Show Less\n

\n )}\n
\n \n );\n }\n };\n return (\n
\n \n \n \n\n \n {cityFilterLoading && dispLoading()}\n {tourFilterLoading && dispLoading()}\n
\n {displayProduct()}\n
\n \n {showProduct()}\n
\n );\n};\n\nexport default FeaturedExperiences;\n"],"names":["FRAGMENT_AVAILABILITIES_GROUP","gql","FRAGMENT_ATTRACTIONS","FRAGMENT_OPTIONS","FRAGMENT_PRODUCT_ORDER","FRAGMENT_PRODUCT_REVIEW","FeaturedNavSec","currNav","setActiveNav","navData","param","currentSlide","setCurrentSlide","useState","isAtStart","setIsAtStart","isAtEnd","setIsAtEnd","showArrows","setShowArrows","navContainerRef","useRef","checkArrowVisibility","useCallback","isSmallerScreen","window","innerWidth","useEffect","addEventListener","removeEventListener","scrollToSlide","current","container","navItems","Array","from","children","index","targetItem","containerWidth","clientWidth","itemWidth","offsetWidth","itemLeft","offsetLeft","scrollPosition","Math","max","min","scrollWidth","scrollTo","left","behavior","length","jsx_runtime","jsxs","div","className","jsx","onClick","Image","src","alt","width","height","priority","ref","map","navItem","concat","filterClass","activeIcon","inactiveIcon","filterName","span","CITIES_FILTER","FEATUREDEXPERIENCES","arr","FeaturedExperiences_FeaturedExperiences","featuredExp","citydropdown","selectedCity","privateTourPage","activeNav","fexp_Ref","city","setCity","cityToggle","setCityToggle","navArray","setNavArray","featuredExperienceData","setFeaturedExperienceData","router","useRouter","showAll","setShowAll","pathname","fetchTourType","data","tourData","loading","tourFilterLoading","error","useLazyQuery","cityFilteredTours","cities","filteredCity","cityFilterLoading","cityFitlerError","variables","dayTours","multiday","airportTransfers","homePage","finalNavArray","flag","forEach","item","push","filter","name","Drop_Down_options","options","filteredCities","value","obj","label","sort","a","b","x","toUpperCase","y","dispLoading","role","LoadingSpinner","section","id","header","FeaturedNavSection","displayProduct","filteredProduct","h3","uniquefilteredProduct","product","reduce","acc","curr","isdup","find","mappedProducts","totalAvg","total","reviews","Number","review","rating","toFixed","country","avg_rating","carousel","image","carouselItem","type","resource_type","url","undefined","video","duration","highlight","cardMessage","objectID","private","reviews_count","slug","snippet","cardSnippet","price","toString","slice","tourCard","LandingPageTourCard","showProduct","selectNum","scrollIntoView","block","h2"],"sourceRoot":""}