{"version":3,"file":"static/chunks/pages/faq-538dfeaa8d4255b8.js","mappings":"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","sources":["webpack://_N_E/?d9f8","webpack://_N_E/./components/Contact/Faqs.tsx","webpack://_N_E/./api/newsletterSubscriptionMutation.ts","webpack://_N_E/./utils/getUserName.js","webpack://_N_E/./layouts/Newsletter/Newsletter.tsx","webpack://_N_E/./utils/faqSchema.js","webpack://_N_E/./pages/faq.tsx","webpack://_N_E/./utils/trip-sheppered-text.js","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/faq\",\n function () {\n return require(\"private-next-pages/faq.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/faq\"])\n });\n }\n ","import Image from 'next/image';\nimport { useState } from 'react';\nimport styled from 'styled-components';\ninterface IProps {\n header: string;\n subHeader: string;\n content: any;\n faqRef?: any;\n contact?: boolean | undefined;\n}\nconst ContentStyle = styled.p`\n animation: slowDown 500ms linear forwards;\n @keyframes slowDown {\n 0% {\n transform: scaleY(0);\n }\n 80% {\n transform: scaleY(1.1);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n`;\n\nconst Faqs = ({ header, subHeader, content, faqRef, contact }: IProps) => {\n const [toggleFaq, setToggleFaq] = useState(\n content.map(() => false)\n );\n const handleToggleFaq = (index: number) => {\n setToggleFaq(prev =>\n prev.map((value, i) => (i === index ? !value : false))\n );\n };\n return (\n
\n \n {header}\n \n \n {subHeader}\n \n {content.map((section: Record, index: number) => (\n \n
\n

\n {Object.keys(section)[0]}\n

\n handleToggleFaq(index)}\n className=\"hover:cursor-pointer transition-transform duration-500\"\n >\n \n
\n
\n\n {toggleFaq[index] && (\n \n {Object.values(section)[0]}\n \n )}\n \n ))}\n \n );\n};\n\nexport default Faqs;\n","import { gql } from '@apollo/client';\n\nconst SUBSCRIBE_TO_NEWSLETTER = gql`\n mutation SubscribeToNewsletter($status: String, $email: String) {\n insert_boatnew_news_letter_subscribers(\n objects: { status: $status, email: $email }\n ) {\n affected_rows\n }\n }\n`;\nexport default SUBSCRIBE_TO_NEWSLETTER;\n","export function extractUserName(email) {\n const parts = email.split('@');\n const username = parts[0];\n const cleanUsername = username.replace(/[^a-zA-Z]/g, '');\n return cleanUsername;\n}\n","import React, { useEffect, useState } from 'react';\nimport { toast } from 'react-toastify';\nimport styled from 'styled-components';\nimport 'react-toastify/dist/ReactToastify.css';\nimport { useMutation } from '@apollo/client';\nimport SUBSCRIBE_TO_NEWSLETTER from '../../api/newsletterSubscriptionMutation';\nimport { extractUserName } from '../../utils/getUserName';\nimport { useAuthContext } from '../../utils/context/authContext';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport { SocialMediaIcons } from '../../shared-components/SocialMediaIcons';\n\nconst Newsletter = ({}) => {\n const { user }: any = useAuthContext();\n const [email, setEmail] = useState('');\n const [subscribeToNewsletter] = useMutation(SUBSCRIBE_TO_NEWSLETTER);\n useEffect(() => {\n setEmail(user !== null && user.emailVerified ? user.email : '');\n }, [user]);\n\n const handleSubmit = async (event: React.FormEvent) => {\n const username = extractUserName(email);\n\n event.preventDefault();\n event.stopPropagation();\n try {\n const { data } = await subscribeToNewsletter({\n variables: {\n email: email,\n status: 'Subscribed'\n }\n });\n if (data.insert_boatnew_news_letter_subscribers.affected_rows > 0) {\n const emailData = {\n userName: username,\n email: email\n };\n await fetch('/api/subscription_mail', {\n method: 'POST',\n body: JSON.stringify(emailData)\n });\n toast.success('Successfully subscribed to our Newsletters!');\n setEmail('');\n } else {\n toast.error('Subscription failed. Please try again later.');\n setEmail('');\n }\n } catch (error) {\n if (\n error instanceof Error &&\n error.toString().includes('Uniqueness violation')\n ) {\n toast.error(\n 'This email is already subscribed. Please use a different email.'\n );\n } else {\n toast.error('An error occurred. Please try again later.');\n }\n }\n };\n\n const NewsletterHeading = styled.h2`\n font-weight: 600;\n text-align: center;\n color: #333333;\n `;\n const SeparatorLine = styled.div`\n height: 1px;\n background: rgba(5, 7, 60, 0.6);\n border: 1px rgba(19, 19, 19, 0.6);\n `;\n const Newsletter = styled.p`\n font-weight: 400;\n text-align: center;\n `;\n const router = useRouter();\n return (\n <>\n \n
\n {/* \n
\n \n
\n
\n COMING SOON\n
\n
*/}\n
\n

\n Newsletter\n

\n \n Subscribe to our newsletter!\n \n \n
\n
\n \n Signup to our newsletter and we will make sure to let you know\n whenever we have news!\n \n
\n\n
\n
\n setEmail(e.target.value)}\n maxLength={50}\n minLength={2}\n value={email}\n />\n \n Subscribe\n \n
\n
\n \n \n \n );\n};\n\nexport default Newsletter;\n","const faqPageSchema = {\n '@context': 'https://schema.org',\n '@type': 'FAQPage',\n mainEntity: [\n {\n '@type': 'Question',\n name: 'What is the refund or cancellation policy for day tours?',\n acceptedAnswer: {\n '@type': 'Answer',\n text: 'Full refunds will be issued to guests that provide notice of cancellation via e-mail or telephone at least 24 hours prior to departure time for all day tours. Cancellations made with less notice than the time frames listed above will be subject to a $50 per person cancellation fee.'\n }\n },\n {\n '@type': 'Question',\n name: 'Can we customize a tour or replace an attraction?',\n acceptedAnswer: {\n '@type': 'Answer',\n text: 'Should you wish to customize a tour, we are happy to offer a Private Tour option. Private tours are fully customizable and designed around what you want to see and do. The base price for a private tour includes: personal guide/driver, transportation, parking fees, light snacks and non-alcoholic beverages, and a full driving tour of the area with commentary. Attractions and meals are optional - any activities or meals you would like to do would be at an additional cost. If there is an attraction included in your tour that you are not interested in, please let your guide know. In this instance, you will be given free time to spend at that attraction while the other guests in your group participate.'\n }\n },\n {\n '@type': 'Question',\n name: 'Do you have car seats available?',\n acceptedAnswer: {\n '@type': 'Answer',\n text: \"Trip Shepperd Tours does not provide car seats for children. By law, children less than 8 years of age can sit on an adult's lap and be buckled in during the tour. Should you wish to bring a car seat with you we ask that you let us know in advance so we can be prepared. Please note, if you do choose to bring a car seat with you, it is your responsibility to install and uninstall the seat at each stop on the tour.\"\n }\n },\n {\n '@type': 'Question',\n name: 'Is the tour price in Canadian or US dollars?',\n acceptedAnswer: {\n '@type': 'Answer',\n text: 'The tour price should default to your local currency based on your location. You may select a different currency than the default from the dropdown menu if you choose.'\n }\n },\n {\n '@type': 'Question',\n name: 'Is there anything not included in the price of the tour?',\n acceptedAnswer: {\n '@type': 'Answer',\n text: 'Prices listed for the tours are inclusive of all taxes and fees. If you select a tour that does not include meals, we may recommend bringing extra cash to purchase food at stops or bringing snacks with you. Souvenirs and other items you may purchase on your tour are also not included in the price of your tour. Gratuities are optional and always appreciated.'\n }\n },\n {\n '@type': 'Question',\n name: 'When will the guide pick me up for my tour?',\n acceptedAnswer: {\n '@type': 'Answer',\n text: 'We will email or call you 1-3 days prior to your tour to confirm a specific pick up time. If you do not have access to phone or email, please be ready and waiting in the hotel lobby half an hour before your tour start time.'\n }\n }\n ]\n};\n\nexport default faqPageSchema;\n","import Head from 'next/head';\nimport React from 'react';\nimport PageHero from '../layouts/PageHero';\nimport faqSchema from '../utils/faqSchema';\nimport { FAQ_PAGE, FAQ_PAGE_INTERFACE } from '../api/faqPage';\nimport client from '../apollo-client';\nimport Faqs from '../components/Contact/Faqs';\nimport Adventure from '../components/Reviews/Adventure';\nimport Newsletter from '../layouts/Newsletter/Newsletter';\nimport FEATUREDEXPERIENCES, {\n FEATURED_EXPERIENCES_INTERFACE,\n HOMEPAFE\n} from '../api/featuredexperiences';\nimport { CITIES, CITIES_PAGE_INTERFACE } from '../api/citiesPage';\nimport {\n DAYTOURS_PAGE,\n DAYTOURS_PAGE_INTERFACE,\n DAY_TOUR_INTERFACE\n} from '../api/dayToursPage';\nimport { CARDMEDIAINTERFACE } from '../api/commonInterfaces';\nimport FeaturedExperiences from '../components/FeaturedExperiences/FeaturedExperiences';\nimport { replaceTripshepherdWithSeeSight } from '../utils/trip-sheppered-text';\ninterface FAQPAGE {\n faqs: FAQ_PAGE_INTERFACE;\n featuredExp: HOMEPAFE;\n headData: {\n title: string;\n metaDescription: string;\n };\n citydropdown: [\n {\n id: string;\n name: string;\n slug: string;\n }\n ];\n cities: [\n {\n city: {\n id: string;\n name: string;\n slug: string;\n cardSnippet: string;\n cardMedia: [CARDMEDIAINTERFACE];\n };\n }\n ];\n dayTour: DAY_TOUR_INTERFACE;\n}\n//\nconst faq = ({\n faqs: { faqPage },\n featuredExp,\n citydropdown,\n headData\n}: FAQPAGE) => {\n return (\n <>\n \n \n \n \n {replaceTripshepherdWithSeeSight(headData.title)}\n\n \n \n \n \n \n
\n \n
\n \n \n \n \n );\n};\nexport async function getStaticProps() {\n const { data: faqs, error } = await client.query({\n query: FAQ_PAGE\n });\n const { data } = await client.query({\n query: FEATUREDEXPERIENCES,\n variables: {\n dayTours: true,\n multiday: true,\n airportTransfers: false\n }\n });\n const { data: citiesData } = await client.query(\n CITIES\n );\n\n const { data: { dayTour } = {} } =\n await client.query({\n query: DAYTOURS_PAGE\n });\n return {\n props: {\n faqs: JSON.parse(replaceTripshepherdWithSeeSight(JSON.stringify(faqs))),\n featuredExp: JSON.parse(\n replaceTripshepherdWithSeeSight(JSON.stringify(data.homePage))\n ),\n citydropdown: JSON.parse(\n replaceTripshepherdWithSeeSight(JSON.stringify(data.citiesDropdown))\n ),\n cities: JSON.parse(\n replaceTripshepherdWithSeeSight(\n JSON.stringify(citiesData.citiesPage.featured)\n )\n ),\n dayTour: JSON.parse(\n replaceTripshepherdWithSeeSight(JSON.stringify(dayTour))\n ),\n headData: {\n title: faqs.faqPage.pageTitle,\n meta: faqs.faqPage.metaDescription\n }\n }\n };\n}\nexport default faq;\n","function replaceText(inputString) {\n // Replace \"https://www.seesight-tours.com\" with \"https://www.tripshepherd.com\"\n const replacedString1 = inputString?.replace(\n /https:\\/\\/www\\.seesight-tours\\.com/g,\n 'https://www.tripshepherd.com'\n );\n\n // Replace \"See Sight Tours\", \"seesight\", and \"see sight\" with \"Trip Shepperd\"\n const replacedString2 = replacedString1?.replace(\n /See Sight Tours|See Sight Tour|Seesight Tours|Trip Shepperd/gi,\n 'Tripshepherd'\n );\n\n return replacedString2;\n}\nexport function replaceTripShepherd(inputString) {\n // Replace \"https://www.seesight-tours.com\" with \"http://trip-shepperd.com\"\n // const replacedString1 = inputString.replace(\n // /https:\\/\\/www\\.seesight-tours\\.com/g,\n // 'http://trip-shepperd.com'\n // );\n\n // Replace \"See Sight Tours\", \"seesight\", and \"see sight\" with \"Trip Shepperd\"\n const replacedString2 = inputString?.replace(\n /Tripshepherd/gi,\n 'See Sight Tours'\n );\n\n return replacedString2;\n}\n\nexport function replaceCanonical(inputString) {\n // Replace \"https://www.seesight-tours.com\" with \"http://trip-shepperd.com\"\n if (!inputString) {\n return;\n }\n const replacedString1 = inputString?.replace(\n /https:\\/\\/www\\.seesight-tours\\.com/g,\n 'https://www.trip-shepperd.com'\n );\n\n return replacedString1;\n}\nexport function replaceTripshepherdWithSeeSight(input) {\n // Check if the input is null or undefined\n if (input == null) return input;\n\n // Regex to detect any Firebase storage URL referencing tripshepherd-prod\n // (e.g. https://firebasestorage.googleapis.com/v0/b/tripshepherd-prod.firebasestorage.app/o/... )\n // We want to skip these entirely, leaving them untouched.\n const firebaseTripshepherdProdRegex = new RegExp(\n 'https?:\\\\/\\\\/firebasestorage\\\\.googleapis\\\\.com\\\\/v0\\\\/b\\\\/tripshepherd-prod\\\\.firebasestorage\\\\.app\\\\/o\\\\/[^\\\\s]*',\n 'gi'\n );\n\n // Regex to detect general URLs anywhere else\n const urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n\n if (typeof input === 'string') {\n // Step 1: Protect any link containing \"tripshepherd-prod\" by replacing it with a placeholder\n const placeholders = [];\n let protectedString = input.replace(\n firebaseTripshepherdProdRegex,\n match => {\n placeholders.push(match);\n return '__FIREBASE_TS_PROD__'; // unique placeholder\n }\n );\n\n // Step 2: Perform normal replacements on everything else\n protectedString = protectedString\n .replace(urlRegex, url => {\n // For any URL that wasn't matched above, replace \"tripshepherd\" with \"seesight-tours\"\n return url.replace(/tripshepherd/gi, 'seesight-tours');\n })\n .replace(/Trip Shepperd/g, 'See Sight Tours') // Replace text\n .replace(/Tripshepherd/g, 'See Sight Tours') // Replace text\n .replace(/TripShepherd/g, 'seesight-tours') // Replace text\n .replace(/tripshepherd/g, 'seesight-tours') // Replace text\n .replace(/Formerly See Sight Tours/g, 'Powered By Tripshepherd'); // Replace text\n\n // Step 3: Restore the untouched \"tripshepherd-prod\" Firebase links\n let placeholderIndex = 0;\n protectedString = protectedString.replace(/__FIREBASE_TS_PROD__/g, () => {\n return placeholders[placeholderIndex++];\n });\n\n return protectedString;\n }\n\n // If it's an array, apply the function recursively\n if (Array.isArray(input)) {\n return input.map(item => replaceTripshepherdWithSeeSight(item));\n }\n\n // If it's an object, apply the function recursively to each field\n if (typeof input === 'object') {\n const newObj = {};\n for (const key in input) {\n if (Object.prototype.hasOwnProperty.call(input, key)) {\n newObj[key] = replaceTripshepherdWithSeeSight(input[key]);\n }\n }\n return newObj;\n }\n\n // Return the input if it's neither a string, object, nor array\n return input;\n}\n\nexport default replaceText;\n"],"names":["window","__NEXT_P","push","__webpack_require__","ContentStyle","styled","p","withConfig","__webpack_exports__","Z","header","subHeader","content","faqRef","contact","param","toggleFaq","setToggleFaq","useState","map","handleToggleFaq","prev","value","i","index","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","jsxs","div","id","ref","className","jsx","h2","h4","concat","section","Object","keys","onClick","Image","src","width","height","alt","values","SUBSCRIBE_TO_NEWSLETTER","gql","Newsletter_Newsletter","user","useAuthContext","email","setEmail","subscribeToNewsletter","useMutation","useEffect","emailVerified","handleSubmit","event","username","extractUserName","parts","split","cleanUsername","replace","preventDefault","stopPropagation","data","variables","status","insert_boatnew_news_letter_subscribers","affected_rows","fetch","method","body","JSON","stringify","userName","toast","success","error","Error","toString","includes","NewsletterHeading","SeparatorLine","Newsletter","useRouter","jsx_runtime","Fragment","form","onSubmit","input","placeholder","name","required","type","onChange","e","target","maxLength","minLength","button","data-mdb-ripple","data-mdb-ripple-color","faqSchema","mainEntity","acceptedAnswer","text","pages_faq","faqs","faqPage","featuredExp","citydropdown","headData","Head","meta","replaceTripshepherdWithSeeSight","title","script","dangerouslySetInnerHTML","__html","link","href","rel","PageHero","trustworthy","video","toLocaleUpperCase","snippet","media","heroMedia","url","Faqs","sectionSubheader","sectionContent","FeaturedExperiences","Adventure","firebaseTripshepherdProdRegex","placeholders","protectedString","match","placeholderIndex","Array","isArray","item","newObj","key","prototype","hasOwnProperty","call"],"sourceRoot":""}