{"version":3,"file":"component---src-templates-single-review-js-5aa73fff9b9f676c06d6.js","mappings":"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","sources":["webpack://gatsby-starter-default/./src/components/Button/ButtonGroupMap.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","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 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 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 } from \"../utils/utils\"\nimport ImageMeta from \"../components/ImageMeta\"\nimport NuvoImage from \"../components/NuvoImage\"\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 =\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

{post.reviewerName}'s Story

\n

\"{post.quote}\"

\n {relatedProcedures.length > 0 &&\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 {post.reviewerName}'s\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","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { getMonthYearFromStrings } from \"../../utils/utils\"\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\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
{props.procedure}
\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 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 (cloudinaryImages[i].context) {\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 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 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 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 const $style = document.createElement(\"style\")\n $style.innerHTML = menuKeyframes\n document.head.appendChild($style)\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 {}} // 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":["ButtonGroupMap","props","React","ButtonGroup","buttons","map","buttonObj","button","appearance","TheaterVideo","videoUrl","youtube","controls","playing","onlyButton","language","buttonClass","hyperlink","className","target","external","key","href","buttonText","Button","contained","minimal","destination","tel","classNames","require","title","charAt","last","procedure","monthYear","Link","to","toLowerCase","ImageMeta","cloudName","publicId","thumbnailPublicId","responsive","responsiveUseBreakpoints","noLazyload","Transformation","quality","fetchFormat","crop","height","ImageCaption","reviewerName","_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","review","SingleSlide","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","procedureShortName","procedureUrl","hasOtherPatientReviews","hasOtherReferrerReviews","reviewCarouselHeading","backUrl","allUniquePagesJson","esCTAClass","SharedStateProvider","Layout","SEO","lang","metaTitle","description","metaDescription","pathname","schemaPage","paddingBottom","goBack","marginTop","heading","youtubeVideoLength","subheading","hasWatchVideo","NuvoImage","useAR","mainPhotoPublicId","quote","reviewType","alignLeft","noReverse","GetStarted","centerHeading","headingSideColumnIs","sideColumnIs","paragraph","dangerouslySetInnerHTML","html","makeHtml","blurb","__html","buttonUrl","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","Error","cloudinaryImages","images","resources","public_id","context","custom","splitName","split","name","toSentenceCase","replace","arWidth","arHeight","imageWrapperClasses","wrapperClassName","imageClasses","position","paddingTop","top","left","_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","theater","ResponsivePlayer","url","Overlay","updateWindowDimensions","bind","componentDidUpdate","documentElement","classList","remove","add","window","innerWidth","innerHeight","generateKeyframesStyle","modifier","radius","addEventListener","menuKeyframes","$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":""}