{"version":3,"file":"static/chunks/989-8e8d5353d8975522.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/./utils/videoLinkOptimize.ts","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 { SetStateAction } from 'react';\nimport styled from 'styled-components';\n\ninterface IProps {\n currNav: string;\n setActiveNav: React.Dispatch>;\n navData: Record[];\n}\ninterface Props {\n isActive: boolean;\n isFirstOne: boolean;\n}\nconst NavMenu = styled.div`\n border-left: 1px solid '#C5C5C5';\n color: ${props => (props.isActive ? '#F15D5A' : '#333333')};\n border-left: ${props => (props.isFirstOne ? 'none' : '1px solid #C5C5C5')};\n font-weight: ${props => (props.isActive ? '600' : '400')};\n\n cursor: pointer;\n &:hover {\n /* box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.2); */\n /* border-radius: 5px; */\n transform: scale(1.1);\n transition: 0.3s ease;\n }\n`;\nconst FeaturedNavSection = ({ currNav, setActiveNav, navData }: IProps) => {\n return (\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';\n\nconst arr = [\n {\n filterClass: 'allThings',\n filterName: 'All Things To Do'\n },\n {\n filterClass: 'dayTours',\n filterName: 'Day Tours'\n },\n {\n filterClass: 'multiday',\n filterName: 'Multi Day Tours'\n },\n {\n filterClass: 'privateTours',\n filterName: 'Private Tours'\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 //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 fetchTourType({\n variables: {\n dayTours: true,\n\n multiday: true,\n airportTransfers: true\n }\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 === 'allThings') return 'All Things To Do';\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 };\n const dispLoading = () => {\n if (city !== 'All Cities' && cityFilterLoading) {\n return (\n \n \n \n \n \n \n );\n }\n if (tourFilterLoading) {\n return (\n \n \n \n \n \n \n );\n }\n };\n const displayProduct = () => {\n const filteredProduct = featuredExperienceData\n ? featuredExperienceData[activeNav]\n : featuredExp[activeNav];\n if (filteredProduct && filteredProduct?.length === 0) {\n return

{`Tours coming to ${city} soon`}

;\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 console.log('unique: ', uniquefilteredProduct);\n\n return uniquefilteredProduct\n ?.slice(0, showAll ? uniquefilteredProduct?.length : 6)\n .map((product: Record, index: number) => {\n return (\n 24\n ? PAGE_OPTIONS.MULTIDAY_TOUR_PAGE\n : PAGE_OPTIONS.DAY_TOUR_PAGED\n }\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 Things To Do';\n }\n if (activeNav === 'dayTours') {\n selectedNav = 'All Day Tours ';\n }\n if (activeNav === 'multiday') {\n selectedNav = 'All Multi Day Tours';\n }\n if (activeNav === 'privateTours') {\n selectedNav = 'Private Tours';\n }\n\n if (!showAll && !tourFilterLoading && !cityFilterLoading) {\n return (\n
\n {selectNum > 6 && (\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 > 6) {\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\n return (\n
\n \n \n \n
\n

\n Search city:\n

\n {\n if (cityToggle) return setCityToggle(!cityToggle);\n }}\n className=\"relative \"\n >\n setCityToggle(!cityToggle)}\n className={\n cityToggle\n ? `flex justify-between items-center ${\n selectedCity ? 'opacity-60' : 'opacity-100'\n } border-[1px] border-primary cursor-pointer rounded-[8px] sm:rounded-[10px] w-[100%] px-1 xsm:px-2 sm:px-5 lg:px-2 2xl:px-3 py-1 text-[12px] sm:text-[14px] md:text-[16.92px] text-[#333333] font-[400] min-w-[150px]`\n : `flex justify-between items-center ${\n selectedCity ? 'opacity-60' : 'opacity-100'\n } border-[1px] border-[#4F4F4F] cursor-pointer rounded-[8px] sm:rounded-[10px] w-[100%] px-1 xsm:px-2 sm:px-5 lg:px-2 2xl:px-3 py-1 text-[12px] sm:text-[14px] md:text-[16.92px] text-[#333333] font-[400] min-w-[150px]`\n }\n >\n {selectedCity ? selectedCity : city}\n \n {/* */}\n \n \n {cityToggle && (\n \n setCity('All Cities')}\n >\n All Cities\n
\n {sortedCities.map((opt: Record, index) => {\n return (\n {\n setCity(opt.label[0]);\n setCityToggle(false);\n }}\n >\n {opt.label}\n \n );\n })}\n \n )}\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","export function optimizeVideoUrl(videoUrl: string): string {\n // Build the Cloudinary transformation string\n const changeFormat =\n videoUrl.search('mp4') > -1 ? videoUrl.replace('mp4', 'mp4') : videoUrl;\n const newLink = changeFormat.split('/upload');\n\n // Generate the optimized video URL\n const optimizedUrl = `${newLink[0]}/upload/q_auto,w_500,${newLink[1]}`;\n\n // Return the optimized URL\n return optimizedUrl;\n}\nexport function optimizeImageUrl(url: string): string {\n //Build the Cloudinary transformation string\n\n /* const newLink = url.replace('jpeg', 'webp').split('/upload');\n\n // Generate the optimized video URL\n const optimizedUrl = `${newLink[0]}/upload/q_100,w_1000,${newLink[1]}`; */\n\n // Return the optimized URL\n return url;\n}\n"],"names":["FRAGMENT_AVAILABILITIES_GROUP","gql","FRAGMENT_ATTRACTIONS","FRAGMENT_OPTIONS","FRAGMENT_PRODUCT_ORDER","FRAGMENT_PRODUCT_REVIEW","NavMenu","styled","div","withConfig","props","isActive","isFirstOne","FeaturedNavSec","currNav","setActiveNav","navData","param","jsx_runtime","jsx","section","id","className","nav","map","navItem","index","filterClass","onClick","concat","filterName","CITIES_FILTER","FEATUREDEXPERIENCES","arr","FeaturedExperiences_FeaturedExperiences","featuredExp","citydropdown","selectedCity","privateTourPage","activeNav","useState","fexp_Ref","useRef","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","useEffect","variables","dayTours","multiday","airportTransfers","homePage","finalNavArray","flag","forEach","item","push","filter","name","sortedCities","Drop_Down_options","options","filteredCities","value","obj","label","sort","a","b","x","toUpperCase","y","dispLoading","role","jsxs","svg","aria-hidden","viewBox","fill","xmlns","path","d","ref","header","FeaturedNavSection","p","onMouseLeave","button","disabled","span","opt","displayProduct","filteredProduct","length","h3","uniquefilteredProduct","product","reduce","acc","curr","isdup","find","console","log","slice","TourCard","productType","Number","duration","PAGE_OPTIONS","MULTIDAY_TOUR_PAGE","DAY_TOUR_PAGED","showProduct","selectNum","current","scrollIntoView","behavior","block","h2","optimizeVideoUrl","videoUrl","changeFormat","search","replace","newLink","split","optimizedUrl","optimizeImageUrl","url"],"sourceRoot":""}