{"version":3,"file":"static/chunks/pages/tours/tour-gallery-acdd8edb0c509efe.js","mappings":"sFACA,CAAAA,OAAAC,QAAA,CAAAD,OAAAC,QAAA,MAAAC,IAAA,EACA,sBACA,WACA,OAAeC,EAAQ,MACvB,EACA,6hCCYAC,EAAAA,EAAUA,CAACC,GAAG,CAAC,CAACC,EAAAA,EAAUA,CAAC,EAE3B,IAAMC,EAAgBC,CAAAA,EAAAA,EAAAA,EAAAA,EAAOC,EAAAA,EAAMA,EAAAA,UAAAA,CAAAA,6EAiUnCC,CAAAA,EAAA,QAtSoB,SA6HXC,EAgBAA,EA5IP,IAAMA,EAASC,CAAAA,EAAAA,EAAAA,SAAAA,IACT,CAACC,EAAMC,EAAQ,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,IAClB,CAACC,EAAQC,EAAU,CAAGF,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC/B,CAACG,EAAaC,EAAe,CAAGJ,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,GACzC,CAACK,EAAWC,EAAa,CAAGN,CAAAA,EAAAA,EAAAA,QAAAA,EAAgB,EAAE,EAC9CO,EAAaC,CAAAA,EAAAA,EAAAA,CAAAA,EAAc,KAC3B,CAACC,EAASC,EAAW,CAAGV,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjC,CAACW,EAAcC,EAAgB,CAAGZ,CAAAA,EAAAA,EAAAA,QAAAA,EAAkB,IACpD,CAACa,EAASC,EAAW,CAAGd,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,GACjCe,EAAe,GACnBC,GAAS,GAAKA,EAAQX,EAAUY,MAAM,CAExCC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KASR,GARItB,EAAOuB,KAAK,CAACrB,IAAI,EACnBC,EACEqB,MAAMC,OAAO,CAACzB,EAAOuB,KAAK,CAACrB,IAAI,EAC3BF,EAAOuB,KAAK,CAACrB,IAAI,CAAC,EAAE,CACpBF,EAAOuB,KAAK,CAACrB,IAAI,EAIrBF,EAAOuB,KAAK,CAACH,KAAK,EAAIX,EAAUY,MAAM,CAAG,EAAG,CAC9CP,EAAW,IACX,IAAMM,EAAQM,OAAO1B,EAAOuB,KAAK,CAACH,KAAK,EACnCD,EAAaC,IACfZ,EAAeY,GACfd,EAAU,KAEVN,EAAOT,IAAI,CAAC,OAEhB,CACAuB,EAAW,GACb,EAAG,CAACd,EAAOuB,KAAK,CAACrB,IAAI,CAAEF,EAAOuB,KAAK,CAACH,KAAK,CAAEX,EAAUY,MAAM,CAAC,EAE5DC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,IAAMK,EAAa,UACjB,GAAKzB,GAELY,EAAW,IACX,GAAI,CACF,IAAMc,EAAW,MAAMC,MACrB,GAA0E3B,MAAAA,CAAvE4B,mEAAoD,qBAAwBC,MAAA,CAAL7B,EAAK,aAEjF,GAAI,CAAC0B,EAASI,EAAE,CAAE,CAChBC,QAAQC,KAAK,CAAC,8BACdpB,EAAW,IACX,MACF,CAEA,GAAM,CAAEqB,KAAAA,CAAI,CAAEC,QAAAA,CAAO,CAAE,CAAG,MAAMR,EAASS,IAAI,GAC7C,GAAID,GAAWD,EAAM,CACnB,IAAMG,EAAeH,EAAKI,GAAG,CAAC,GAAgB,EAC5C,GAAGC,CAAI,CACPC,KAAM,CACJC,cAAeF,EAAKG,GAAG,CAACC,KAAK,CAAC,0BAC1B,QACAJ,EAAKG,GAAG,CAACC,KAAK,CAAC,sBACf,QACA,SACN,CACF,IACAlC,EAAa4B,EACf,CACF,CAAE,MAAOJ,EAAO,CACdD,QAAQC,KAAK,CAAC,wBAAyBA,EACzC,QAAU,CACRpB,EAAW,GACb,EACF,EAEAa,GACF,EAAG,CAACzB,EAAK,EAET,IAAM2C,EAAY,IAChB,GAAI,CAAC1B,EAAaC,GAAQ,CACxBpB,EAAOT,IAAI,CAAC,QACZ,MACF,CAEAiB,EAAeY,GACfd,EAAU,IAEVN,EAAOT,IAAI,CAAC,4BAA0C6B,MAAAA,CAAdlB,EAAK,WAAe6B,MAAA,CAANX,GAAS0B,KAAAA,EAAW,CACxEC,QAAS,EACX,EACF,EAUMC,EAAkB,KACtBhC,EAAgB,IAEhB,IAAIiC,EAAiB,GACfC,EAAkBC,YAAY,KAC9BF,EAAiB,EAEnB/B,EADA+B,GAAkB,IAGlBG,cAAcF,EAElB,EAAG,IACL,EAEA,MACE,GAAAG,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACE,GAAAF,EAAAC,IAAA,EAACE,MAAAA,CAAIC,UAAU,uEACb,GAAAJ,EAAAC,IAAA,EAACE,MAAAA,CACCC,UAAU,4FACVC,QAAS,IAAM1D,EAAO2D,OAAO,CAAC,UAAe5B,MAAA,CAAL7B,cAExC,GAAAmD,EAAAO,GAAA,EAACC,IAAKA,CACJC,IAAK,wBACLC,IAAI,aACJC,MAAO,EACPC,OAAQ,KACR,0BAGHjE,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAQuB,KAAK,GAAbvB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAeoB,KAAK,GAAIL,GACvB,GAAAsC,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACE,GAAAF,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,aACf,GAAAJ,EAAAC,IAAA,EAACE,MAAAA,CAAIC,UAAU,uHACb,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,kDACf,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,yDACb,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,sCAEjB,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,gCAAuB,eACtC,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,8DACb,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,8DAMtBzD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAQuB,KAAK,GAAbvB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAeoB,KAAK,GACnB,GAAAiC,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACE,GAAAF,EAAAO,GAAA,EAACM,KAAAA,CAAGT,UAAU,yDAAiD,GAAqB1B,MAAA,CAAlBtB,MAAAA,EAAAA,KAAAA,EAAAA,EAAWY,MAAM,CAAC,mBACpF,GAAAgC,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,kCACZhD,EAAU8B,GAAG,CAAC,CAAC4B,EAAW/C,IACzB,GAAAiC,EAAAO,GAAA,EAACJ,MAAAA,CACCE,QAAS,IAAMb,EAAUzB,GAEzBqC,UAAU,4DAETU,UAAAA,EAAU1B,IAAI,CAACC,aAAa,CAC3B,GAAAW,EAAAO,GAAA,EAACC,IAAKA,CACJC,IAAKM,CAAAA,EAAAA,EAAAA,CAAAA,EAAiBD,EAAUxB,GAAG,EACnCoB,IAAKI,EAAUJ,GAAG,EAAII,EAAUE,IAAI,CACpCL,MAAO,IACPC,OAAQ,IACRR,UAAU,8CACVa,YAAY,OACZC,YAAY,sBAGd,GAAAlB,EAAAO,GAAA,EAACY,QAAAA,CACCC,YAAW,GACXC,SAAU,CAAC/D,EACXgE,SAAUhE,EACViE,MAAK,GACLC,KAAM,CAAClE,EACP8C,UAAU,8CACVK,IAAKgB,CAAAA,EAAAA,EAAAA,CAAAA,EAAiBX,EAAUxB,GAAG,EACnCe,QAASqB,GAAKA,EAAEC,cAAc,MAtB7B5D,SA8BdP,EACC,GAAAwC,EAAAC,IAAA,EAACE,MAAAA,CAAIC,UAAU,wDACb,GAAAJ,EAAAO,GAAA,EAACqB,EAAAA,CAAcA,CAAAA,CAACxB,UAAU,kCAC1B,GAAAJ,EAAAO,GAAA,EAACsB,OAAAA,CAAKzB,UAAU,sBAAa,kBAG/B,GAAAJ,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACG9C,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAWY,MAAM,IAAK,EACrB,GAAAgC,EAAAO,GAAA,EAACM,KAAAA,CAAGT,UAAU,yDAAiD,GAAqB1B,MAAA,CAAlBtB,MAAAA,EAAAA,KAAAA,EAAAA,EAAWY,MAAM,CAAC,qBAEpF,GAAAgC,EAAAO,GAAA,EAACM,KAAAA,CAAGT,UAAU,yDAAiD,GAAqB1B,MAAA,CAAlBtB,MAAAA,EAAAA,KAAAA,EAAAA,EAAWY,MAAM,CAAC,sBAGtF,GAAAgC,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,kCACZhD,EAAU8B,GAAG,CAAC,CAAC4B,EAAW/C,IACzB,GAAAiC,EAAAO,GAAA,EAACJ,MAAAA,CACCE,QAAS,IAAMb,EAAUzB,GAEzBqC,UAAU,4DAETU,UAAAA,EAAU1B,IAAI,CAACC,aAAa,CAC3B,GAAAW,EAAAO,GAAA,EAACC,IAAKA,CACJC,IAAKM,CAAAA,EAAAA,EAAAA,CAAAA,EAAiBD,EAAUxB,GAAG,EACnCoB,IAAKI,EAAUJ,GAAG,EAAII,EAAUE,IAAI,CACpCL,MAAO,IACPC,OAAQ,IACRR,UAAU,8CACVa,YAAY,OACZC,YAAY,sBAGd,GAAAlB,EAAAO,GAAA,EAACY,QAAAA,CACCC,YAAW,GACXC,SAAU,CAAC/D,EACXgE,SAAUhE,EACViE,MAAK,GACLC,KAAM,CAAClE,EACP8C,UAAU,8CACVK,IAAKgB,CAAAA,EAAAA,EAAAA,CAAAA,EAAiBX,EAAUxB,GAAG,EACnCe,QAASqB,GAAKA,EAAEC,cAAc,MAtB7B5D,YA+BhBf,GACC,GAAAgD,EAAAC,IAAA,EAACE,MAAAA,CAAIC,UAAU,uHACb,GAAAJ,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,gDACb,GAAAJ,EAAAO,GAAA,EAACuB,SAAAA,CAAOzB,QA7IC,KACjBpD,EAAU,IACVN,EAAOT,IAAI,CAAC,4BAAiCwC,MAAA,CAAL7B,GAAQ4C,KAAAA,EAAW,CACzDC,QAAS,EACX,GACA/B,EAAgB,GAClB,EAuIuCyC,UAAU,mCACrC,GAAAJ,EAAAO,GAAA,EAACC,IAAKA,CACJC,IAAK,yBACLC,IAAI,aACJC,MAAO,GACPC,OAAQ,SAId,GAAAZ,EAAAO,GAAA,EAACsB,OAAAA,CAAKzB,UAAU,2BAAmB,GACjChD,MAAAA,CADoCF,EAAc,EAAE,KAErDwB,MAAA,CADCtB,EAAUY,MAAM,IAElB,GAAAgC,EAAAO,GAAA,EAACJ,MAAAA,CAAIC,UAAU,mDACb,GAAAJ,EAAAO,GAAA,EAAChE,EAAAA,CACCwF,aAAc7E,EACd8E,aAAc,GACdC,cAAe,EACfT,KAAM,GACNU,WAAU,GACVC,cAAeC,GAAUjF,EAAeiF,EAAOlF,WAAW,WAEzDE,MAAAA,EAAAA,KAAAA,EAAAA,EAAW8B,GAAG,CAAC,CAAC4B,EAAW/C,IAC1B,GAAAiC,EAAAO,GAAA,EAAC8B,EAAAA,EAAWA,CAAAA,CAEVjC,UAAU,4CAETU,UAAAA,EAAU1B,IAAI,CAACC,aAAa,CAC3B,GAAAW,EAAAO,GAAA,EAACC,IAAKA,CACJC,IAAKM,CAAAA,EAAAA,EAAAA,CAAAA,EAAiBD,EAAUxB,GAAG,EACnCoB,IAAKI,EAAUJ,GAAG,EAAII,EAAUE,IAAI,CACpCL,MAAO,IACPC,OAAQ,IACRR,UAAU,wCACVkC,MAAO,CACL1E,QAASF,EAAe,EAAI,EAC5B6E,WAAY,0BACd,EACAC,SAAUzE,IAAAA,EACV0E,kBAAmB9C,IAGrB,GAAAK,EAAAO,GAAA,EAACY,QAAAA,CACCV,IAAKK,EAAUxB,GAAG,CAClBgC,SAAQ,GACRX,MAAO,IACPC,OAAQ,IACRR,UAAU,wCACViB,SAAQ,GACRE,MAAK,MAzBJxD,WAmCjB,GAAAiC,EAAAO,GAAA,EAACJ,MAAAA,UACC,GAAAH,EAAAO,GAAA,EAACmC,EAAAA,OAAUA,CAAAA,CAAAA,OAInB","sources":["webpack://_N_E/?9de4","webpack://_N_E/./pages/tours/tour-gallery.tsx","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/tours/tour-gallery\",\n function () {\n return require(\"private-next-pages/tours/tour-gallery.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/tours/tour-gallery\"])\n });\n }\n ","import { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport React, { useEffect, useState } from 'react';\nimport Link from 'next/link';\nimport SwiperCore, { Navigation } from 'swiper';\nimport { useMediaQuery } from '../../hooks/mediaQuery';\nimport {\n optimizeImageUrl,\n optimizeVideoUrl\n} from '../../utils/videoLinkOptimize';\nimport Newsletter from '../../layouts/Newsletter/Newsletter';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/css';\nimport 'swiper/css/navigation';\nimport 'swiper/css/pagination';\nimport styled from 'styled-components';\nimport { LoadingSpinner } from '../../shared-components/LoadingSpinner/LoadingSpinner';\n\nSwiperCore.use([Navigation]);\n\nconst StyledSwipper = styled(Swiper)`\n .swiper-button-prev,\n .swiper-button-next {\n top: 50%; /* Center the buttons vertically */\n transform: translateY(-50%);\n width: 40px; /* Reduce width */\n height: 40px; /* Reduce height */\n color: #757575;\n border: 1px solid #757575; /* Add border */\n border-radius: 50%; /* Make it circular */\n display: flex; /* Center the icon */\n align-items: center; /* Center the icon */\n justify-content: center; /* Center the icon */\n font-size: 14px; /* Adjust the font size for smaller arrow icons */\n\n &::after {\n display: contents;\n position: absolute;\n font-size: 1rem;\n transform: translate(-50%, -50%);\n border-style: solid;\n border-color: #fff;\n z-index: 50;\n }\n }\n`;\n\nconst TourGallery = () => {\n const router = useRouter();\n const [slug, setSlug] = useState();\n const [isOpen, setIsOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState(0);\n const [mediaData, setMediaData] = useState([]);\n const mediaQuery = useMediaQuery(640);\n const [loading, setLoading] = useState(true);\n const [imageLoading, setImageLoading] = useState(true);\n const [opacity, setOpacity] = useState(0);\n const isValidIndex = (index: number) =>\n index >= 0 && index < mediaData.length;\n\n useEffect(() => {\n if (router.query.slug) {\n setSlug(\n Array.isArray(router.query.slug)\n ? router.query.slug[0]\n : router.query.slug\n );\n }\n\n if (router.query.index && mediaData.length > 0) {\n setLoading(true);\n const index = Number(router.query.index);\n if (isValidIndex(index)) {\n setActiveIndex(index);\n setIsOpen(true);\n } else {\n router.push('/404');\n }\n }\n setLoading(false);\n }, [router.query.slug, router.query.index, mediaData.length]);\n\n useEffect(() => {\n const fetchMedia = async () => {\n if (!slug) return;\n\n setLoading(true);\n try {\n const response = await fetch(\n `${process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION}/products-images/${slug}?lang=en`\n );\n if (!response.ok) {\n console.error('Failed to fetch media data');\n setLoading(false);\n return;\n }\n\n const { data, success } = await response.json();\n if (success && data) {\n const enrichedData = data.map((item: any) => ({\n ...item,\n type: {\n resource_type: item.url.match(/\\.(jpg|jpeg|png|gif)$/i)\n ? 'image'\n : item.url.match(/\\.(mp4|webm|ogg)$/i)\n ? 'video'\n : 'unknown'\n }\n }));\n setMediaData(enrichedData);\n }\n } catch (error) {\n console.error('Error fetching media:', error);\n } finally {\n setLoading(false);\n }\n };\n\n fetchMedia();\n }, [slug]);\n\n const openModal = (index: number) => {\n if (!isValidIndex(index)) {\n router.push('/404');\n return;\n }\n\n setActiveIndex(index);\n setIsOpen(true);\n\n router.push(`/tours/tour-gallery?slug=${slug}&index=${index}`, undefined, {\n shallow: true\n });\n };\n\n const closeModal = () => {\n setIsOpen(false);\n router.push(`/tours/tour-gallery?slug=${slug}`, undefined, {\n shallow: true\n });\n setImageLoading(false);\n };\n\n const handleImageLoad = () => {\n setImageLoading(false);\n\n let currentOpacity = 0.2;\n const opacityInterval = setInterval(() => {\n if (currentOpacity < 1) {\n currentOpacity += 0.2;\n setOpacity(currentOpacity);\n } else {\n clearInterval(opacityInterval);\n }\n }, 400);\n };\n\n return (\n <>\n
\n router.replace(`/tours/${slug}`)}\n >\n \n Back to Product page\n
\n {router?.query?.index && imageLoading && (\n <>\n
\n
\n
\n
\n
\n
\n
Loading...
\n
\n
\n
\n
\n \n )}\n\n {router?.query?.index && (\n <>\n

{`${mediaData?.length} photos Total`}

\n
\n {mediaData.map((mediaItem, index) => (\n openModal(index)}\n key={index}\n className=\"rounded overflow-hidden shadow-lg cursor-pointer\"\n >\n {mediaItem.type.resource_type === 'image' ? (\n \n ) : (\n e.preventDefault()}\n />\n )}\n
\n ))}\n \n \n )}\n {loading ? (\n
\n \n Loading...\n
\n ) : (\n <>\n {mediaData?.length === 1 ? (\n

{`${mediaData?.length} photo in Total`}

\n ) : (\n

{`${mediaData?.length} photos in Total`}

\n )}\n\n
\n {mediaData.map((mediaItem, index) => (\n openModal(index)}\n key={index}\n className=\"rounded overflow-hidden shadow-lg cursor-pointer\"\n >\n {mediaItem.type.resource_type === 'image' ? (\n \n ) : (\n e.preventDefault()}\n />\n )}\n
\n ))}\n \n \n )}\n \n {isOpen && (\n
\n
\n \n
\n {`${activeIndex + 1}/${\n mediaData.length\n }`}\n
\n setActiveIndex(swiper.activeIndex)}\n >\n {mediaData?.map((mediaItem, index) => (\n \n {mediaItem.type.resource_type === 'image' ? (\n \n ) : (\n \n )}\n \n ))}\n \n
\n
\n )}\n\n
\n \n
\n \n );\n};\n\nexport default TourGallery;\n"],"names":["window","__NEXT_P","push","__webpack_require__","SwiperCore","use","Navigation","StyledSwipper","styled","Swiper","__webpack_exports__","router","useRouter","slug","setSlug","useState","isOpen","setIsOpen","activeIndex","setActiveIndex","mediaData","setMediaData","mediaQuery","useMediaQuery","loading","setLoading","imageLoading","setImageLoading","opacity","setOpacity","isValidIndex","index","length","useEffect","query","Array","isArray","Number","fetchMedia","response","fetch","process","concat","ok","console","error","data","success","json","enrichedData","map","item","type","resource_type","url","match","openModal","undefined","shallow","handleImageLoad","currentOpacity","opacityInterval","setInterval","clearInterval","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","jsxs","Fragment","div","className","onClick","replace","jsx","Image","src","alt","width","height","h1","mediaItem","optimizeImageUrl","name","placeholder","blurDataURL","video","playsInline","autoPlay","controls","muted","loop","optimizeVideoUrl","e","preventDefault","LoadingSpinner","span","button","initialSlide","spaceBetween","slidesPerView","navigation","onSlideChange","swiper","SwiperSlide","style","transition","priority","onLoadingComplete","Newsletter"],"sourceRoot":""}