{"version":3,"file":"component---src-templates-single-review-js-646f4f50f0ac8a2d596e.js","mappings":"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","sources":["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","webpack://gatsby-starter-default/./src/components/Button/ButtonGroupMap.js","webpack://gatsby-starter-default/./src/components/carousel/ImageCaption.js","webpack://gatsby-starter-default/./src/components/carousel/ChevronArrows.js","webpack://gatsby-starter-default/./src/components/NuvoImage.js","webpack://gatsby-starter-default/./src/components/Button/ButtonGroup.js","webpack://gatsby-starter-default/./src/components/CTA/CTA.js","webpack://gatsby-starter-default/./node_modules/@fortawesome/pro-light-svg-icons/faChevronRight.js","webpack://gatsby-starter-default/./node_modules/@fortawesome/pro-light-svg-icons/faChevronLeft.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/CTA/GetStarted.js"],"sourcesContent":["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, Link } 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 PropTypes from \"prop-types\"\nimport { SharedStateProvider } from \"../components/SharedState/PageSharedState\"\nimport { sortReviewsByDate, getPostObj, pluralizeName } from \"../utils/utils\"\nimport ImageMeta from \"../components/ImageMeta\"\nimport NuvoImage from \"../components/NuvoImage\"\nimport MarkdownViewer from \"@components/MarkdownViewer\"\nimport {\n Image,\n Video,\n Transformation,\n CloudinaryContext,\n} from \"cloudinary-react\"\nimport { getStarted } from \"../cms/fields/getStarted\"\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 = addProceduresDoneArrayTo(\n allReviews\n )\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
\n

{pluralizeName(post.reviewerName)} Story

\n \n\n {post.reviewType !== \"Provider\" &&\n post.proceduresDone.length > 0 && (\n
\n
\n Learn More About\n
\n \n {relatedProcedures}\n \n {post.extraText && (\n \n )}\n
\n )}\n
\n
\n
\n {post.extraTextWithZebra && (\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 quoteWithInlinks\n extraText\n extraTextWithZebra\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","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 React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { getMonthYearFromStrings } from \"../../utils/utils\"\nimport MarkdownViewer from \"@components/MarkdownViewer\"\n\nvar classNames = require(\"classnames\")\n\nfunction ImageCaption(props) {\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 {props.reviewerName && (\n
\n {props.language === \"es\" ? \"Conoce a\" : \"Meet\"} {props.reviewerName}\n
\n )}\n {props.language === \"es\"\n ? props.procedureEs &&\n !props.hideProcedureNames && (\n
{props.procedureEs}
\n )\n : props.procedure &&\n !props.hideProcedureNames && (\n
\n \n
\n )}\n {props.monthYear && (\n
\n {getMonthYearFromStrings(props.monthYear.year, props.monthYear.month)}\n
\n )}\n
\n )\n}\n\nImageCaption.propTypes = {\n reviewerName: PropTypes.string,\n language: PropTypes.string,\n procedure: PropTypes.string,\n procedureEs: PropTypes.string,\n hideProcedureNames: PropTypes.bool,\n monthYear: PropTypes.object,\n}\n\nexport default ImageCaption\n","import React, { Component } from \"react\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faChevronLeft } from \"@fortawesome/pro-light-svg-icons/faChevronLeft\"\nimport { faChevronRight } from \"@fortawesome/pro-light-svg-icons/faChevronRight\"\n\nfunction focusSlide(targetID) {\n var comSlider = document.getElementById(targetID)\n comSlider.getElementsByClassName(\"slick-current\")[0].focus()\n return <>\n}\n\nfunction SamplePrevArrow(props) {\n const targetID = props.targetID\n const { style, onClick } = props\n return (\n {\n onClick()\n focusSlide(targetID)\n }}\n >\n \n \n )\n}\n\nfunction SampleNextArrow(props) {\n const targetID = props.targetID\n const { style, onClick } = props\n return (\n {\n onClick()\n focusSlide(targetID)\n }}\n >\n \n \n )\n}\n\nexport { SamplePrevArrow, SampleNextArrow }\n","import React, { useState } 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 const [isLoaded, setIsLoaded] = useState(false)\n if (!cloudinaryData) throw new Error(\"Error retrieving config.json\")\n\n var cloudinaryImages = cloudinaryData.images.resources\n let alt = \"\"\n // var caption = null // Possible Cloudinary field, but not in use\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 (cloudinaryImages[i].context) {\n alt = cloudinaryImages[i].context.custom.alt\n break\n }\n break\n }\n }\n\n if (!alt) {\n const nameSplit = props.publicId.split(\"BOMS/DEV/\")\n const imgName = nameSplit[1] ? nameSplit[1] : nameSplit[0]\n alt = toSentenceCase(imgName.replace(/[_-]/g, \" \"))\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 var quality = props.quality ?? \"auto:best\"\n\n var imageWrapperClasses = classNames(props.wrapperClassName, {\n \"image-meta__wrapper\": true,\n })\n\n var imageClasses = classNames(props.className, {\n \"image-meta__image\": useWrapper(width, height),\n })\n\n const handleLoaded = () => {\n setIsLoaded(true)\n }\n\n // data-ar-* width and height for debugging purposes only\n if (props.useAR && useWrapper(width, height)) {\n return (\n \n handleLoaded()}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n }}\n quality={quality}\n alt={alt}\n responsive\n {...props}\n className={imageClasses}\n >\n {props.children}\n \n \n )\n } else {\n return (\n handleLoaded()}\n quality={quality}\n alt={alt}\n responsive\n {...props}\n className={imageClasses}\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 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 { 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","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fal';\nvar iconName = 'chevron-right';\nvar width = 256;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f054';\nvar svgPathData = 'M17.525 36.465l-7.071 7.07c-4.686 4.686-4.686 12.284 0 16.971L205.947 256 10.454 451.494c-4.686 4.686-4.686 12.284 0 16.971l7.071 7.07c4.686 4.686 12.284 4.686 16.97 0l211.051-211.05c4.686-4.686 4.686-12.284 0-16.971L34.495 36.465c-4.686-4.687-12.284-4.687-16.97 0z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faChevronRight = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fal';\nvar iconName = 'chevron-left';\nvar width = 256;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f053';\nvar svgPathData = 'M238.475 475.535l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L50.053 256 245.546 60.506c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0L10.454 247.515c-4.686 4.686-4.686 12.284 0 16.971l211.051 211.05c4.686 4.686 12.284 4.686 16.97-.001z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faChevronLeft = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","// 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, { useEffect } 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\n// useEffect(() => {\n// console.log(props.isOpen)\n// console.log(props.isClosing)\n// },[props.isOpen, props.isClosing])\n \n\n return (\n
\n\n
\n
\n
\n
\n{props.isOpen && !props.isOpening && \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 window.addEventListener(\"resize\", 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 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"],"names":["classNames","require","props","title","charAt","last","procedure","monthYear","React","Link","className","to","toLowerCase","ImageMeta","cloudName","publicId","thumbnailPublicId","responsive","responsiveUseBreakpoints","noLazyload","Transformation","quality","fetchFormat","crop","height","ImageCaption","reviewerName","language","_Component","ReviewCarousel","_this","call","state","relatedReviews","slideID","id","_inheritsLoose","_proto","prototype","componentDidMount","this","noShuffle","shuffleArray","setState","render","settings","accessibility","adaptiveHeight","infinite","length","centerPadding","slidesToShow","swipeToSlide","focusOnSelect","draggable","rows","speed","nextArrow","SampleNextArrow","targetID","prevArrow","SamplePrevArrow","initialSlide","breakpoint","slides","map","review","SingleSlide","key","mainProcedureDone","procedureEs","mainProcedureDoneEs","reviewLanguage","Slider","Object","assign","style","width","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","i","proceduresDone","push","procedureDone","procedureName","getReviewProceduresNames","reviewPoolWithProceduresNamesArray","reviews","relatedProceduresDone","j","patientInfo","allProceduresJustNames","addProceduresDoneArrayTo","thisReviewProcedureNamesArray","allReviewsWithProcedureNamesArray","found","some","r","includes","getReviewsWithAnyMatchingProcedures","getRelatedReviews","sortReviewsByDate","relatedProcedures","buttonText","procedureShortName","Button","procedureUrl","href","hasOtherPatientReviews","hasOtherReferrerReviews","reviewCarouselHeading","backUrl","allUniquePagesJson","esCTAClass","SharedStateProvider","Layout","SEO","metaTitle","description","metaDescription","pathname","schemaPage","paddingBottom","goBack","marginTop","heading","youtubeVideoLength","subheading","TheaterVideo","videoUrl","youtube","playing","hasWatchVideo","buttonClass","NuvoImage","useAR","mainPhotoPublicId","pluralizeName","MarkdownViewer","markdown","quoteWithInlinks","quote","reviewType","ButtonGroup","alignLeft","noReverse","extraText","extraTextWithZebra","GetStarted","centerHeading","headingSideColumnIs","sideColumnIs","paragraph","dangerouslySetInnerHTML","html","makeHtml","blurb","__html","buttonUrl","ButtonGroupMap","buttons","buttonObj","button","appearance","controls","onlyButton","hyperlink","target","external","contained","minimal","destination","tel","nameClasses","procedureClasses","timeClasses","hideProcedureNames","getMonthYearFromStrings","year","month","focusSlide","document","getElementById","getElementsByClassName","focus","onClick","FontAwesomeIcon","icon","faChevronLeft","zIndex","faChevronRight","cloudinaryData","ImageComponent","Image","alt","children","useWrapper","_props$quality","isLoaded","setIsLoaded","useState","Error","cloudinaryImages","images","resources","public_id","context","custom","nameSplit","split","imgName","toSentenceCase","replace","arWidth","arHeight","imageWrapperClasses","wrapperClassName","imageClasses","handleLoaded","position","paddingTop","onLoad","top","left","visibility","_React$Component","isCenteredMobile","wrapperClass","buttonGroupClass","tight","isCentered","alignRight","reverse","count","CTA","ctaClasses","headingColumns","textColumns","buttonColumns","iconName","ligatures","unicode","svgPathData","exports","prefix","VideoButton","btnClass","iconOnly","textOnly","overVideo","sizzleButton","textAlign","role","toggleTheater","faPlay","HamburgerIconTheater","HamburgerIconTheaterSpanClass","open","isOpen","isClosing","cMenuClass","disabled","isOpening","undefined","sidebarClass","ResponsivePlayer","url","Overlay","updateWindowDimensions","bind","componentDidUpdate","documentElement","classList","remove","add","window","innerWidth","innerHeight","generateKeyframesStyle","modifier","radius","addEventListener","menuKeyframes","querySelector","$style","createElement","innerHTML","head","appendChild","componentWillUnmount","removeEventListener","iconClass","containerClasses","Video","compId","color","ext","form","escFunction","menu","pause","pauseButton","event","keyCode","setTimeout","display","prevState","childrenWithProps","child","asWrapper","type","tabIndex","containerClass","childrenWrapperClassName","slideButton","headingClasses","textClasses","centerText"],"sourceRoot":""}