{"version":3,"file":"component---src-templates-single-review-js-a0746fd4731883c2c0e4.js","mappings":"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","sources":["webpack://gatsby-starter-default/./src/components/Button/ButtonGroup.js","webpack://gatsby-starter-default/./src/components/Button/ButtonGroupMap.js","webpack://gatsby-starter-default/./src/components/CTA/CTA.js","webpack://gatsby-starter-default/./src/components/CTA/GetStarted.js","webpack://gatsby-starter-default/./src/components/NuvoImage.js","webpack://gatsby-starter-default/./src/components/Theater/VideoButton.js","webpack://gatsby-starter-default/./src/components/Theater/HamburgerIconTheater.js","webpack://gatsby-starter-default/./src/components/Theater/Video.js","webpack://gatsby-starter-default/./src/components/Theater/Overlay.js","webpack://gatsby-starter-default/./src/components/Theater/TheaterVideo.js","webpack://gatsby-starter-default/./src/components/carousel/SingleSlide.js","webpack://gatsby-starter-default/./src/components/carousel/ReviewCarousel.js","webpack://gatsby-starter-default/./src/templates/singleReview.js"],"sourcesContent":["import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nvar classNames = require(\"classnames\")\n\nclass ButtonGroup extends React.Component {\n constructor(props) {\n super(props)\n this.state = {}\n }\n\n render() {\n\n // Default centered on mobile\n let isCenteredMobile;\n this.props.isCenteredMobile ? isCenteredMobile = this.props.isCenteredMobile : isCenteredMobile = true\n\n var wrapperClass = classNames({\n \"button-group-wrapper\": true,\n \"is-centered-mobile\": isCenteredMobile,\n })\n\n var buttonGroupClass = classNames({\n \"button-group\": true,\n \"tight\": this.props.tight,\n \"is-centered\": this.props.isCentered,\n \"align-right\": this.props.alignRight,\n \"align-left\": this.props.alignLeft,\n \"reverse-buttons-mobile\": this.props.reverse\n })\n return (\n
\n \n {this.props.children}\n
\n \n )\n }\n}\n\nButtonGroup.propTypes = {\n isCentered: PropTypes.bool,\n isCenteredMobile: PropTypes.bool,\n tight: PropTypes.bool,\n alignLeft: PropTypes.bool,\n alignRight: PropTypes.bool,\n children: PropTypes.node,\n reverse: PropTypes.bool\n}\n\nexport default ButtonGroup\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport Button from \"@components/Button/Button\"\nimport ButtonGroup from \"@components/Button/ButtonGroup\"\nimport TheaterVideo from \"@components/Theater/TheaterVideo\"\n\nexport default function ButtonGroupMap(props) {\n return (\n \n {props.buttons &&\n props.buttons.map(buttonObj => {\n let button = buttonObj.button\n if (button.appearance === \"video\") {\n return (\n \n )\n } else if (props.hyperlink) {\n return (\n \n {button.buttonText}\n \n )\n } else {\n return (\n \n )\n }\n })}\n \n )\n}\n\nButtonGroupMap.propTypes = {\n buttons: PropTypes.arrayOf(\n PropTypes.shape({\n button: PropTypes.shape({\n buttonText: PropTypes.string,\n href: PropTypes.string,\n youtube: PropTypes.string,\n appearance: PropTypes.string.isRequired,\n destination: PropTypes.string\n })\n })\n )\n}\n","import { Link } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport React from \"react\"\nimport Button from \"@components/Button/Button\"\n// import { Image, Video, Transformation, CloudinaryContext } from 'cloudinary-react';\n\nvar classNames = require(\"classnames\")\n\nclass CTA extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n let ctaClasses = classNames(\"columns cta-columns\", this.props.className)\n\n return (\n
\n
\n
{this.props.headingColumns}
\n
\n
\n {this.props.textColumns}\n
\n
\n
\n {this.props.buttonColumns}\n
\n
\n
\n )\n }\n}\n\nCTA.propTypes = {\n headingColumns: PropTypes.element,\n textColumns: PropTypes.element,\n buttonColumns: PropTypes.element,\n sideColumnIs: PropTypes.number\n}\n\nexport default CTA\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\nimport Button from \"@components/Button/Button\"\nimport ButtonGroupMap from \"../Button/ButtonGroupMap\"\nimport CTA from \"./CTA\"\n// import { Image, Video, Transformation, CloudinaryContext } from 'cloudinary-react';\n\nvar classNames = require(\"classnames\")\n\nclass GetStarted extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n let buttonColumns\n // One or multiple buttons\n if (this.props.buttons) {\n buttonColumns = (\n
\n \n
\n )\n } else {\n buttonColumns = (\n
\n \n
\n )\n }\n\n // CSS classes\n let headingClasses = classNames(\"column\", {\n \"has-text-centered\": this.props.centerHeading\n })\n let textClasses = classNames(\"column\", {\n \"has-text-centered\": this.props.centerText\n })\n\n return (\n \n {this.props.subheading &&

{this.props.subheading}

}\n

{this.props.heading}

\n \n }\n textColumns={
{this.props.paragraph}
}\n buttonColumns={buttonColumns}\n />\n )\n }\n}\n\nGetStarted.propTypes = {\n className: PropTypes.string,\n centerHeading: PropTypes.bool,\n heading: PropTypes.string,\n subheading: PropTypes.string,\n centerText: PropTypes.bool,\n paragraph: PropTypes.element,\n buttons: PropTypes.array,\n buttonUrl: PropTypes.string,\n buttonText: PropTypes.string,\n sideColumnIs: PropTypes.number,\n headingSideColumnIs: PropTypes.number\n}\n\nexport default GetStarted\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport { Image } from \"cloudinary-react\"\nconst cloudinaryData = require(\"../../config.json\")\nimport { toSentenceCase } from \"../utils/utils\"\n\nconst NuvoImage = props => {\n if (!cloudinaryData) throw new Error(\"Error retrieving config.json\")\n\n const cloudinaryImages = cloudinaryData.images.resources\n let alt = \"\"\n\n let width, height\n\n if (!props.publicId) {\n throw new Error(props.publicId + \" not found!\")\n }\n\n for (let i = 0; i < cloudinaryImages.length; i++) {\n if (props.publicId === cloudinaryImages[i].public_id) {\n if (props.useAR) {\n width = cloudinaryImages[i].width\n height = cloudinaryImages[i].height\n if (!cloudinaryImages[i].width || !cloudinaryImages[i].height)\n throw new Error(\n props.publicId + \" is missing width or height data from Cloudinary.\"\n )\n }\n if (\n cloudinaryImages[i].context &&\n cloudinaryImages[i].context.custom.alt\n ) {\n alt = cloudinaryImages[i].context.custom.alt\n break\n } else {\n const splitName = props.publicId.split(\"/DEV/\") //split cloudinary prefix\n const name = splitName[1] || splitName[0]\n alt = toSentenceCase(name.replace(/[/_-]/g, \" \"))\n }\n break\n }\n }\n\n // custom height and width if not working, or not from cloudinary\n if (props.arWidth && props.arHeight) {\n width = props.arWidth\n height = props.arHeight\n }\n\n const quality = props.quality ?? \"auto:best\"\n\n const imageWrapperClasses = classNames(props.wrapperClassName, {\n \"image-meta__wrapper\": true\n })\n\n const imageClasses = classNames(props.className, {\n \"image-meta__image\": useWrapper(width, height)\n })\n\n // data-ar-* width and height for debugging purposes only\n if (props.useAR && useWrapper(width, height)) {\n return (\n \n \n {props.children}\n \n \n )\n } else {\n return (\n \n {props.children}\n \n )\n }\n}\n\nNuvoImage.propTypes = {\n publicId: PropTypes.string.isRequired,\n children: PropTypes.element,\n className: PropTypes.string\n}\n\nexport default NuvoImage\n\n// Base Image Component\nfunction ImageComponent(props) {\n return (\n \n {props.children}\n \n )\n}\n\nImageComponent.propTypes = {\n alt: PropTypes.string,\n quality: PropTypes.number,\n className: PropTypes.string,\n children: PropTypes.element\n}\n\n// Helper functions\n\nfunction useWrapper(width, height) {\n if (width && height) {\n return true\n }\n return false\n}\n","// import { Link } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport React from \"react\"\n// import { Image, Video, Transformation, CloudinaryContext } from 'cloudinary-react';\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faPlay } from \"@fortawesome/pro-solid-svg-icons/faPlay\"\n\nvar classNames = require(\"classnames\")\n\nclass VideoButton extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n var btnClass = classNames(this.props.buttonClass, {\n \"standard-button\": !(this.props.iconOnly || this.props.textOnly),\n \"button-video\": true,\n \"video-button\": this.props.overVideo === false ? false : true,\n \"icon-only\": this.props.iconOnly,\n \"z-1\": this.props.overVideo,\n \"sizzle-button-under\": this.props.sizzleButton,\n minimal: this.props.minimal ? this.props.minimal : false,\n \"btn-left\": this.props.textAlign === \"left\",\n \"btn-right\": this.props.textAlign === \"right\",\n \"btn-center\": this.props.textAlign === \"center\"\n })\n\n let buttonText\n\n if (this.props.buttonText) {\n buttonText = this.props.buttonText\n } else if (this.props.language === \"es\") {\n buttonText = \"Ver Video\"\n } else {\n buttonText = \"Watch Video\"\n }\n\n if (this.props.textOnly) {\n return (\n \n {buttonText}\n \n )\n }\n\n return (\n \n \n {!this.props.iconOnly && buttonText}\n \n )\n }\n}\n\nVideoButton.propTypes = {\n minimal: PropTypes.bool,\n textAlign: PropTypes.string,\n href: PropTypes.string,\n buttonText: PropTypes.string,\n overVideo: PropTypes.bool,\n toggleTheater: PropTypes.func\n}\n\nexport default VideoButton\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nvar classNames = require(\"classnames\")\n\nclass HamburgerIconTheater extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n var HamburgerIconTheaterSpanClass = classNames({\n open: this.props.isOpen && !this.props.isClosing,\n })\n\n var cMenuClass = classNames({\n \"c-menu-theater\": true,\n \"c-menu-theater--open\": this.props.isOpen,\n disabled: this.props.isOpening || this.props.isClosing,\n })\n\n return (\n \n \n \n \n )\n }\n}\nHamburgerIconTheater.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n toggleTheater: PropTypes.func,\n}\nexport default HamburgerIconTheater\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport VideoButton from \"./VideoButton\"\nimport HamburgerIconTheater from \"./HamburgerIconTheater.js\"\nimport ResponsivePlayer from \"../ResponsivePlayer.js\"\n\nvar classNames = require(\"classnames\")\n\n/* Due to various restrictions, ReactPlayer is not guaranteed to function properly on mobile devices. The YouTube player \ndocumentation, for example, explains that certain mobile browsers require user interaction before playing: */\n\nconst Video = props => {\n var sidebarClass = classNames({\n theater: true,\n \"theater--closed\": !props.isOpen,\n \"theater--open\": props.isOpen,\n \"theater--closing\": props.isClosing,\n })\n\n return (\n
\n{props.isOpen && !props.isOpening && \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n}\n
\n )\n}\nVideo.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n videoUrl: PropTypes.string,\n controls: PropTypes.bool,\n playing: PropTypes.bool,\n}\n\nexport default Video\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport Video from \"./Video\"\nimport HamburgerIconTheater from \"./HamburgerIconTheater.js\"\n\nvar classNames = require(\"classnames\")\n\nclass Overlay extends React.Component {\n constructor(props) {\n super(props)\n this.state = { width: 0, height: 0 }\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this)\n }\n\n componentDidUpdate() {\n if (this.props.isClosing) {\n document.documentElement.classList.remove(\"theater-is-open\")\n } else if (this.props.isOpen) {\n document.documentElement.classList.add(\"theater-is-open\")\n }\n }\n\n updateWindowDimensions() {\n this.setState({ width: window.innerWidth, height: window.innerHeight })\n }\n\n // Generates keyframe style tag to be document.head.appendChild'ed;\n generateKeyframesStyle(width, height, modifier) {\n let radius = 5000\n if (width > height) {\n radius = width\n } else if (width < height) {\n radius = height\n } else {\n radius = width\n }\n\n // 2 is too low\n if (!modifier) {\n modifier = 3\n }\n\n radius = radius * modifier\n\n return `\n @keyframes menuAnimOpenBottomLeft {\n 0% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: 0;\n height: 0;\n border-radius: 50%;\n }\n 100% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: ${radius}px;\n height: ${radius}px;\n border-radius: 50%;\n }\n }\n @keyframes menuAnimCloseBottomLeft {\n 0% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: ${radius}px;\n height: ${radius}px;\n border-radius: 50%;\n }\n 100% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: 0;\n height: 0;\n border-radius: 50%;\n }\n }`\n }\n\n componentDidMount() {\n this.updateWindowDimensions()\n const menuKeyframes = this.generateKeyframesStyle(\n window.innerWidth,\n window.innerHeight\n )\n // TO-DO: Check if animation style already exists from a previous video component, if so, do not add another identical style tag to document head\n if (!document.querySelector(\"#theater-overlay\")) {\n const $style = document.createElement(\"style\")\n $style.id = \"theater-overlay\"\n $style.innerHTML = menuKeyframes\n document.head.appendChild($style)\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions)\n }\n\n render() {\n let iconColor = \"#6d6e6f\"\n let iconClass = classNames({\n \"theater-icon\": true,\n open: this.props.isOpen\n })\n // if (this.props.atTopOfPage) {\n // iconColor = \"white\"\n // }\n\n let containerClasses = classNames(this.props.className, {\n \"theater-container\": true\n })\n\n return (\n
\n \n {this.props.isOpen && (\n \n )}\n
\n )\n }\n}\nOverlay.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n toggleTheater: PropTypes.func,\n videoUrl: PropTypes.string,\n controls: PropTypes.bool,\n playing: PropTypes.bool\n}\n\nexport default Overlay\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport VideoButton from \"./VideoButton\"\nimport Overlay from \"./Overlay\"\nclass TheaterVideo extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n form: \"two-lines\",\n position: \"right\",\n isOpen: false,\n isOpening: false,\n isClosing: false\n }\n this.toggleTheater = this.toggleTheater.bind(this)\n this.escFunction = this.escFunction.bind(this)\n }\n componentDidMount() {\n var menu = document.getElementById(\"mainNav\")\n var pause = document.getElementById(\"sizzlePause\")\n this.menu = menu\n this.pauseButton = pause\n\n document.addEventListener(\"keydown\", this.escFunction, false)\n }\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.escFunction, false)\n }\n\n escFunction(event) {\n if (event.keyCode === 27 && this.state.isOpen) {\n this.toggleTheater()\n }\n }\n\n toggleTheater() {\n //todo\n\n if (this.state.isOpen) {\n if (this.pauseButton) {\n setTimeout(() => {\n this.pauseButton.style.display = \"block\"\n }, 450)\n }\n\n this.setState(\n prevState => ({\n ...prevState,\n isClosing: !prevState.isClosing,\n playing: false\n }),\n function () {\n setTimeout(() => {\n this.setState(prevState => ({\n ...prevState,\n isOpen: !prevState.isOpen,\n isClosing: !prevState.isClosing\n }))\n this.menu.style.zIndex = \"100\"\n }, 450)\n }\n )\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n } else if (!this.state.isOpen) {\n this.menu.style.zIndex = \"0\"\n if (this.pauseButton) {\n this.pauseButton.style.display = \"none\"\n }\n this.setState(prevState => ({\n ...prevState,\n isOpen: !prevState.isOpen,\n isOpening: !prevState.isOpening\n }))\n setTimeout(() => {\n this.setState(prevState => ({\n ...prevState,\n isOpening: !prevState.isOpening,\n playing: true\n }))\n }, 450)\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n }\n }\n\n render() {\n const childrenWithProps = React.Children.map(this.props.children, child =>\n React.cloneElement(child, { onClick: this.toggleTheater })\n )\n\n var hasWatchVideo = true\n var onlyButton = false\n var asWrapper = this.props.asWrapper\n var overVideo = false\n var controls = true\n var playing = true\n var sizzleButton = false\n\n if (this.props.hasWatchVideo === false) {\n hasWatchVideo = false\n }\n if (this.props.onlyButton === true) {\n onlyButton = true\n } else {\n if (this.props.overVideo === true) {\n overVideo = true\n }\n }\n if (this.props.controls === false) {\n controls = false\n }\n if (this.props.playing === false) {\n playing = false\n }\n if (this.props.sizzleButton === true) {\n sizzleButton = true\n }\n\n if (asWrapper) {\n return (\n this.toggleTheater()}\n >\n {}} // remove toggleTheater here to cancel double clicks\n isOpen={this.state.isOpen}\n isClosing={this.state.isClosing}\n isOpening={this.state.isOpening}\n videoUrl={this.props.videoUrl}\n controls={controls}\n playing={playing}\n className={this.props.containerClass}\n />\n \n {this.props.children}\n \n \n )\n }\n\n return (\n <>\n \n {hasWatchVideo && !onlyButton && (\n
\n \n {this.props.children}\n
\n )}\n {onlyButton && sizzleButton && (\n \n \n \n )}\n {onlyButton && !sizzleButton && this.props.slideButton && (\n
\n \n
\n )}\n {onlyButton && !sizzleButton && !this.props.slideButton && (\n \n )}\n {!hasWatchVideo && childrenWithProps}\n \n )\n }\n}\n\nTheaterVideo.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n videoUrl: PropTypes.string.isRequired,\n controls: PropTypes.bool,\n playing: PropTypes.bool,\n overVideo: PropTypes.bool,\n hasWatchVideo: PropTypes.bool,\n onlyButton: PropTypes.bool,\n sizzleButton: PropTypes.bool\n}\n\nexport default TheaterVideo\n","import React from \"react\"\nimport ImageMeta from \"../ImageMeta\"\n\nimport { Transformation } from \"cloudinary-react\"\nimport { Link } from \"gatsby\"\nimport { getMonthYearFromStrings } from \"../../utils/utils\"\n\nimport ImageCaption from \"./ImageCaption\"\n\nvar classNames = require(\"classnames\")\n\nfunction SingleSlide(props) {\n let title = props.title\n if (title.charAt(0) !== \"/\") title = \"/\" + title\n\n let nameClasses = classNames(\"image-caption staff fixed-facewall-name\", {\n last: !props.procedure && !props.monthYear,\n })\n let procedureClasses = classNames(\n \"image-caption staff fixed-facewall-procedure\",\n {\n last: !props.monthYear,\n }\n )\n let timeClasses = classNames(\"image-caption staff fixed-facewall-time\", {\n last: true,\n })\n return (\n
\n \n \n \n \n \n \n
\n )\n}\n\nexport default SingleSlide\n","import React, { Component } from \"react\"\nimport Slider from \"react-slick\"\nimport PropTypes from \"prop-types\"\nimport { shuffleArray, getMonthYearFromStrings } from \"../../utils/utils\"\nimport ImageMeta from \"../ImageMeta\"\nimport {\n Image,\n Video,\n Transformation,\n CloudinaryContext,\n} from \"cloudinary-react\"\nimport { Link, StaticQuery, graphql } from \"gatsby\"\n\nimport { SamplePrevArrow, SampleNextArrow } from \"./ChevronArrows\"\n\nimport SingleSlide from \"./SingleSlide\"\n\nclass ReviewCarousel extends Component {\n constructor(props) {\n super(props)\n this.state = {\n relatedReviews: props.relatedReviews,\n slideID: props.id,\n }\n }\n\n // Shuffle on mount, shuffling in render causes multiple shuffles\n componentDidMount() {\n if (this.props.noShuffle === false) {\n let relatedReviews = this.state.relatedReviews\n shuffleArray(relatedReviews)\n this.setState({\n relatedReviews: relatedReviews,\n })\n }\n }\n\n render() {\n const settings = {\n className: \"desktop-slider-375x375\",\n accessibility: true,\n adaptiveHeight: true,\n infinite: this.props.relatedReviews.length <= 3 ? false : true,\n centerPadding: \"0px\",\n slidesToShow: 5,\n swipeToSlide: true,\n focusOnSelect: false,\n draggable: false,\n rows: 1,\n speed: 500,\n nextArrow: ,\n prevArrow: ,\n initialSlide: 0,\n responsive: [\n {\n breakpoint: 1125,\n settings: {\n slidesToShow: this.props.relatedReviews.length < 3 ? 2 : 3,\n infinite: true,\n className:\n this.props.relatedReviews.length < 3\n ? \"desktop-slider-375x375 slide-count-2\"\n : \"desktop-slider-375x375\",\n },\n },\n {\n breakpoint: 750,\n settings: {\n slidesToShow: 2,\n infinite: true,\n },\n },\n {\n breakpoint: 375,\n settings: {\n slidesToShow: 1,\n infinite: true,\n },\n },\n ],\n }\n\n const sliderStyle = {\n width: \"auto\",\n height: \"auto\",\n margin: \"0px auto\",\n }\n\n const sliderCopy = {\n carouselName: \"Hear From Our Patients\",\n carouselTime: \"December 2019\",\n carouselLanguage: \"ENG\",\n carouselTypeTextTitle: \"Patients\",\n }\n\n var slides = this.state.relatedReviews.map((review) => {\n return (\n \n )\n })\n\n return (\n
\n {this.state.relatedReviews.length > 0 && (\n \n {slides}\n \n )}\n
\n )\n }\n}\n\nReviewCarousel.propTypes = {\n relatedReviews: PropTypes.array,\n}\n\nexport default ReviewCarousel\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport Layout from \"../components/layout\"\nimport TheaterVideo from \"@components/Theater/TheaterVideo\"\nimport Button from \"@components/Button/Button\"\nimport ButtonGroup from \"@components/Button/ButtonGroup\"\nimport GetStarted from \"../components/CTA/GetStarted\"\nimport ReviewCarousel from \"../components/carousel/ReviewCarousel\"\nimport SEO from \"../components/seo\"\nimport { SharedStateProvider } from \"../components/SharedState/PageSharedState\"\nimport { sortReviewsByDate, getPostObj, pluralizeName } from \"../utils/utils\"\nimport NuvoImage from \"../components/NuvoImage\"\nvar classNames = require(\"classnames\")\n\nfunction createHtml(html) {\n return { __html: html }\n}\nvar showdown = require(\"showdown\")\nconst converter = new showdown.Converter()\n\nconst SingleReview = ({ data, pageContext, location }) => {\n var post\n var language\n let postObj = getPostObj(\n pageContext,\n data.singleReview.nodes[0],\n data.singleReviewEs.nodes[0]\n )\n post = data.singleReview.nodes[0]\n language = postObj.language\n\n const getStartedData = data.allTemplateSettingsJson.nodes[0].getStarted\n const getStartedDataEs =\n data.allTemplateSettingsJson.nodes[0].getStartedSpanish\n\n var reviewTitle = post.title\n const reviewPool = data.relatedReviews.nodes\n var referrerPool = data.relatedReviewsProviders.nodes\n\n var relatedReviews = getRelatedReviews(post, reviewPool)\n\n relatedReviews = sortReviewsByDate(relatedReviews)\n referrerPool = sortReviewsByDate(referrerPool)\n\n function getRelatedReviews(singleReview, allReviews) {\n var thisReviewProcedures = getReviewProceduresNames(singleReview)\n\n // Get an array of the patient's procedures\n function getReviewProceduresNames(review) {\n var thisReviewProcedures = []\n\n for (let i = 0; i < review.proceduresDone.length; i++) {\n thisReviewProcedures.push(\n review.proceduresDone[i].procedureDone.procedureName\n )\n }\n return thisReviewProcedures\n }\n\n var reviewPoolWithProceduresNamesArray =\n addProceduresDoneArrayTo(allReviews)\n\n // Add array of procedures done names to all review objects\n function addProceduresDoneArrayTo(reviews) {\n var reviewPoolWithProceduresNamesArray = []\n // Make an array of just the names of the procedures done\n for (let i = 0; i < reviews.length; i++) {\n let relatedProceduresDone = []\n for (let j = 0; j < reviews[i].proceduresDone.length; j++) {\n relatedProceduresDone.push(\n reviews[i].proceduresDone[j].procedureDone.procedureName\n )\n }\n let patientInfo = reviews[i]\n patientInfo.allProceduresJustNames = relatedProceduresDone\n reviewPoolWithProceduresNamesArray.push(patientInfo)\n }\n return reviewPoolWithProceduresNamesArray\n }\n\n var relatedReviews = getReviewsWithAnyMatchingProcedures(\n thisReviewProcedures,\n reviewPoolWithProceduresNamesArray\n )\n\n // Compare patients to see if any of their procedures done match, if so, add to array and return it\n function getReviewsWithAnyMatchingProcedures(\n thisReviewProcedureNamesArray,\n allReviewsWithProcedureNamesArray\n ) {\n let relatedReviews = []\n // Compares the single review's procedures done names with all the reviews' procedures done names, then pushes matches into another array\n let found = false\n\n for (let i = 0; i < allReviewsWithProcedureNamesArray.length; i++) {\n if (reviewTitle !== allReviewsWithProcedureNamesArray[i].title) {\n found = false\n\n found = thisReviewProcedureNamesArray.some(r =>\n allReviewsWithProcedureNamesArray[\n i\n ].allProceduresJustNames.includes(r)\n )\n if (found === true) {\n relatedReviews.push(allReviewsWithProcedureNamesArray[i])\n continue\n }\n }\n }\n return relatedReviews\n }\n\n return relatedReviews\n }\n\n var relatedProcedures = post.proceduresDone.map((procedure, i) => {\n let buttonText = procedure.procedureDone.procedureName\n\n // Full-Arch\n // Impacted Teeth\n // Cleft Treatment\n // DO\n // Jaw Surgery\n // TMJ Disorders\n // Extractions\n // Wisdom Teeth\n\n if (procedure.procedureDone.procedureShortName) {\n buttonText = procedure.procedureDone.procedureShortName\n }\n\n return (\n \n )\n })\n\n var showOtherReviews = function () {\n if (post.reviewType === \"Patient\") {\n return hasOtherPatientReviews()\n } else if (post.reviewType === \"Provider\") {\n return hasOtherReferrerReviews()\n }\n }\n\n var hasOtherPatientReviews = function () {\n if (relatedReviews.length > 0) {\n return true\n } else {\n return false\n }\n }\n var hasOtherReferrerReviews = function () {\n if (referrerPool.length > 0) {\n return true\n } else {\n return false\n }\n }\n\n var reviewCarouselHeading = classNames({\n \"review-carousel-heading\": true\n })\n\n var backUrl = \"/\" + data.allUniquePagesJson.nodes[0].title\n\n const esCTAClass =\n language === \"es\" ? \"patient-review-cta-es\" : \"patient-review-cta\"\n\n return (\n \n \n \n \n \n
\n
\n
\n

{post.heading}

\n
\n
\n {language === \"es\" ? \"Revisión de Video\" : \"Video Review\"}\n
\n \n {post.youtubeVideoLength}\n \n {post.reviewLanguage}\n
\n

{post.subheading}

\n \n
\n
\n
\n\n {post.youtube && (\n
\n
\n
\n \n \n \n
\n
\n
\n )}\n\n {language !== \"es\" && (\n
\n
\n
\n

{pluralizeName(post.reviewerName)} Story

\n

\"{post.quote}\"

\n {relatedProcedures.length >= 1 &&\n post.reviewType !== \"Provider\" && (\n
\n
\n Learn More About\n
\n \n {relatedProcedures}\n \n
\n )}\n
\n
\n
\n )}\n\n {showOtherReviews() && language !== \"es\" && (\n <>\n
\n
\n
\n

\n Watch Other Reviews Like {pluralizeName(post.reviewerName)}\n

\n
\n
\n \n \n \n \n )}\n \n \n }\n buttonText={\n language === \"es\"\n ? getStartedDataEs.buttonText\n : getStartedData.buttonText\n }\n buttonUrl={\n language === \"es\" ? getStartedDataEs.href : getStartedData.href\n }\n />\n
\n
\n )\n}\n\nexport default SingleReview\n\nexport const query = graphql`\n query ($id: String!, $title: String!) {\n allUniquePagesJson(filter: { template: { eq: \"patient-stories\" } }) {\n nodes {\n title\n }\n }\n allTemplateSettingsJson(filter: { templateType: { eq: \"single-review\" } }) {\n nodes {\n getStarted {\n blurb\n buttonText\n heading\n href\n subheading\n }\n getStartedSpanish {\n blurb\n buttonText\n heading\n href\n subheading\n }\n }\n }\n singleReview: allReviewsJson(filter: { id: { eq: $id } }) {\n nodes {\n id\n title\n metaTitle\n metaDescription\n schemaPage\n mainProcedureDone\n proceduresDone {\n procedureDone {\n procedureName\n procedureUrl\n otherProcedure\n procedureShortName\n }\n }\n heading\n quote\n reviewLanguage\n reviewType\n reviewerName\n subheading\n thumbnailPublicId\n mainPhotoPublicId\n youtube\n youtubeVideoLength\n }\n }\n singleReviewEs: allSpanishReviewsJson(filter: { id: { eq: $id } }) {\n nodes {\n id\n title\n metaTitle\n metaDescription\n schemaPage\n mainProcedureDone\n proceduresDone {\n procedureDone {\n procedureName\n procedureUrl\n otherProcedure\n procedureShortName\n }\n }\n heading\n quote\n reviewLanguage\n reviewType\n reviewerName\n subheading\n thumbnailPublicId\n mainPhotoPublicId\n youtube\n youtubeVideoLength\n }\n }\n relatedReviews: allReviewsJson(\n filter: {\n reviewType: { eq: \"Patient\" }\n reviewLanguage: { eq: \"ENG\" }\n title: { ne: $title }\n }\n ) {\n nodes {\n thumbnailPublicId\n title\n reviewerName\n reviewType\n mainProcedureDone\n monthYear {\n month\n year\n }\n proceduresDone {\n procedureDone {\n procedureName\n procedureUrl\n }\n }\n }\n }\n relatedReviewsProviders: allReviewsJson(\n filter: {\n reviewType: { eq: \"Provider\" }\n reviewLanguage: { eq: \"ENG\" }\n title: { ne: $title }\n }\n ) {\n nodes {\n thumbnailPublicId\n title\n reviewerName\n reviewType\n mainProcedureDone\n monthYear {\n month\n year\n }\n proceduresDone {\n procedureDone {\n procedureName\n procedureUrl\n }\n }\n }\n }\n }\n`\n"],"names":["classNames","require","ButtonGroup","_React$Component","props","_this","call","state","_inheritsLoose","prototype","render","isCenteredMobile","this","wrapperClass","buttonGroupClass","tight","isCentered","alignRight","alignLeft","reverse","React","className","count","children","ButtonGroupMap","buttons","map","buttonObj","button","appearance","TheaterVideo","videoUrl","youtube","controls","playing","onlyButton","language","buttonClass","hyperlink","target","external","key","href","buttonText","Button","contained","minimal","destination","tel","CTA","ctaClasses","headingColumns","sideColumnIs","textColumns","buttonColumns","GetStarted","buttonUrl","headingClasses","centerHeading","textClasses","centerText","headingSideColumnIs","subheading","heading","paragraph","cloudinaryData","ImageComponent","Image","Object","assign","quality","alt","responsive","useWrapper","width","height","_props$quality","Error","cloudinaryImages","images","resources","publicId","i","length","public_id","useAR","context","custom","splitName","split","name","toSentenceCase","replace","arWidth","arHeight","imageWrapperClasses","wrapperClassName","imageClasses","style","position","paddingTop","top","left","VideoButton","btnClass","iconOnly","textOnly","overVideo","sizzleButton","textAlign","role","onClick","toggleTheater","FontAwesomeIcon","icon","faPlay","HamburgerIconTheater","HamburgerIconTheaterSpanClass","open","isOpen","isClosing","cMenuClass","disabled","isOpening","undefined","sidebarClass","theater","ResponsivePlayer","url","Overlay","updateWindowDimensions","bind","_proto","componentDidUpdate","document","documentElement","classList","remove","add","setState","window","innerWidth","innerHeight","generateKeyframesStyle","modifier","radius","componentDidMount","menuKeyframes","querySelector","$style","createElement","id","innerHTML","head","appendChild","componentWillUnmount","removeEventListener","iconClass","containerClasses","Video","compId","color","ext","form","escFunction","menu","getElementById","pause","pauseButton","addEventListener","event","keyCode","setTimeout","display","prevState","zIndex","childrenWithProps","child","hasWatchVideo","asWrapper","type","tabIndex","containerClass","childrenWrapperClassName","slideButton","title","charAt","last","procedure","monthYear","Link","to","toLowerCase","ImageMeta","cloudName","thumbnailPublicId","responsiveUseBreakpoints","noLazyload","Transformation","fetchFormat","crop","ImageCaption","reviewerName","_Component","ReviewCarousel","relatedReviews","slideID","noShuffle","shuffleArray","settings","accessibility","adaptiveHeight","infinite","centerPadding","slidesToShow","swipeToSlide","focusOnSelect","draggable","rows","speed","nextArrow","SampleNextArrow","targetID","prevArrow","SamplePrevArrow","initialSlide","breakpoint","slides","review","SingleSlide","mainProcedureDone","procedureEs","mainProcedureDoneEs","reviewLanguage","Slider","margin","Component","converter","Converter","_ref","data","pageContext","location","post","postObj","getPostObj","singleReview","nodes","singleReviewEs","getStartedData","allTemplateSettingsJson","getStarted","getStartedDataEs","getStartedSpanish","reviewTitle","reviewPool","referrerPool","relatedReviewsProviders","allReviews","thisReviewProcedures","proceduresDone","push","procedureDone","procedureName","getReviewProceduresNames","reviewPoolWithProceduresNamesArray","reviews","relatedProceduresDone","j","patientInfo","allProceduresJustNames","addProceduresDoneArrayTo","thisReviewProcedureNamesArray","allReviewsWithProcedureNamesArray","found","some","r","includes","getReviewsWithAnyMatchingProcedures","getRelatedReviews","sortReviewsByDate","relatedProcedures","procedureShortName","procedureUrl","hasOtherPatientReviews","hasOtherReferrerReviews","reviewCarouselHeading","backUrl","allUniquePagesJson","esCTAClass","SharedStateProvider","Layout","SEO","metaTitle","description","metaDescription","pathname","schemaPage","paddingBottom","goBack","marginTop","youtubeVideoLength","NuvoImage","mainPhotoPublicId","pluralizeName","quote","reviewType","noReverse","dangerouslySetInnerHTML","html","makeHtml","blurb","__html"],"sourceRoot":""}