{"version":3,"file":"static/js/1238.7a587d4a.chunk.js","mappings":"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","sources":["shared/modal/testimonial-modal.jsx","shared/testimonial-container/testimonial-container-component.jsx","shared/_svgs/small/Play.js","shared/youtube-embed/YouTubeEmbed.jsx"],"sourcesContent":["import React from \"react\"\nimport OutsideClickTrigger from \"../../booking/components/common/OutsideClickTrigger\"\nimport PropTypes from \"prop-types\"\nimport Svg from \"../../shared/_svgs/svg\"\n\nexport default function TestimonialModal({ modalOpen, modalRichtext, modalQuote, closeHandler, tooltip }) {\n  return (\n    <div className=\"overlay overlay--modal overlay--fixed is-active\">\n      <div className=\"modal\">\n        <OutsideClickTrigger\n          onOutsideClick={() => {\n            closeHandler()\n          }}\n        >\n          <React.Fragment>\n            <button\n              className=\"button button--icon js--close-modal\"\n              onClick={() => {\n                closeHandler()\n              }}\n            >\n              <span className=\"icon\">\n                <svg className=\"svg-icon svg-icon--close-new\">\n                  <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-close-new\">\n                    &nbsp;\n                  </use>\n                </svg>\n              </span>\n            </button>\n            <div className=\"modal__content__inner\">\n              <div className=\"modal__top\">\n                <div className=\"a--left\">\n                  {modalRichtext ? <div className=\"rich-text\"> {modalRichtext} </div> : null}\n                  {modalQuote ? (\n                    <div className=\"quote\">\n                      <Svg iconName=\"quote\" fillColor=\"white\"></Svg> {modalQuote}{\" \"}\n                    </div>\n                  ) : null}\n                </div>\n              </div>\n            </div>\n          </React.Fragment>\n        </OutsideClickTrigger>\n      </div>\n    </div>\n  )\n}\n\nTestimonialModal.propTypes = {\n  modalOpen: PropTypes.bool,\n  modalRichtext: PropTypes.array,\n  ModalQuote: PropTypes.string,\n  closeHandler: PropTypes.func,\n}\n","import React, { useState } from \"react\"\nimport Slider from \"react-slick\"\nimport ReactHTMLParser from \"react-html-parser\"\nimport YoutubeEmbed from \"../youtube-embed/YouTubeEmbed\"\nimport Svg from \"../../shared/_svgs/svg\"\nimport \"./_testimonial-container.scss\"\nimport TestimonialModal from \"../modal/testimonial-modal\"\n\nexport default function TestimonialContainerComponent({ testimonialContent, headline }) {\n  const [overlayRichtext, setOverlayRichtext] = useState(\"\")\n  const [overlayQuote, setOverlayQuote] = useState(\"\")\n  const [toggleOverlay, setToggleOverlay] = useState(false)\n\n  const handleOverlay = () => {\n    setToggleOverlay(!toggleOverlay)\n  }\n\n  var settings = {\n    dots: true,\n    arrows: true,\n    infinite: false,\n    slidesToShow: 1,\n    slidesToScroll: 1,\n    swipe: true,\n    variableWidth: false,\n    accessibility: true,\n    responsive: [\n      {\n        breakpoint: 768,\n        settings: {\n          arrows: false,\n          centerMode: true,\n          centerPadding: \"4%\",\n        },\n      },\n    ],\n  }\n\n  const htmlTestimonialContent =\n    testimonialContent.length > 0\n      ? testimonialContent.map((t) => {\n          return (\n            <TestimonialItem\n              key={t.testimonialHeading}\n              isImage={t.isImageFormat}\n              image={t.testimonialImage || undefined}\n              isVideo={t.isVideoFormat}\n              youtube={t.videoId || undefined}\n              ariaVideoDescription={t.ariaVideoDescription}\n              testimonialHeading={t.testimonialHeading}\n              testimonial={t.testimonial}\n              quote={t.testimonialQuote || \"\"}\n              readMore={t.testimonialReadMore || \"\"}\n              handleOverlay={handleOverlay}\n              setOverlayRichtext={setOverlayRichtext}\n              setOverlayQuote={setOverlayQuote}\n              toggleOverlay={toggleOverlay}\n            />\n          )\n        })\n      : null\n\n  return (\n    <section className=\"block-container\">\n      <div className=\"testimonial-container\">\n        <div className=\"w--normal\">\n          <h3 className=\"testimonial-theme-text\">{headline}</h3>\n          <Slider {...settings}>{htmlTestimonialContent}</Slider>\n          <div className=\"slideritems\">/ {testimonialContent.length} )</div>\n          {toggleOverlay ? (\n            <TestimonialModal modalOpen={toggleOverlay} modalRichtext={overlayRichtext} modalQuote={overlayQuote} closeHandler={handleOverlay} />\n          ) : null}\n        </div>\n      </div>\n    </section>\n  )\n}\n\nfunction TestimonialItem({\n  isVideo,\n  isImage,\n  testimonialHeading,\n  testimonial,\n  image,\n  youtube,\n  ariaVideoDescription,\n  quote,\n  readMore,\n  handleOverlay,\n  setOverlayRichtext,\n  setOverlayQuote,\n  toggleOverlay,\n}) {\n  const htmlTestimonial = ReactHTMLParser(testimonial)\n\n  const handleModalToggle = () => {\n    if (toggleOverlay) {\n      setOverlayRichtext(undefined)\n      setOverlayQuote(undefined)\n      handleOverlay()\n      return\n    }\n\n    setOverlayRichtext(htmlTestimonial)\n    setOverlayQuote(quote)\n    handleOverlay()\n  }\n\n  return (\n    <div className={`testimonial-item ${isVideo ? \" video-format\" : isImage ? \" image-format\" : \"\"}`}>\n      <div className=\"textarea\">\n        <h4>{testimonialHeading}</h4>\n        <div className=\"maintext\">{htmlTestimonial}</div>\n      </div>\n      <div className=\"imagearea\">\n        {\n          //if image, show image markup\n          isImage && image ? (\n            <img src={image} />\n          ) : //if video, show video markup\n          isVideo && youtube ? (\n            <YoutubeEmbed\n              embedId={youtube}\n              classDecleration={\"testimonial-video\"}\n              backgroundImage={image}\n              ariaVideoDescription={ariaVideoDescription}\n            />\n          ) : undefined\n        }\n        <div className=\"testimonial\">\n          <Svg iconName=\"quote\" fillColor=\"white\"></Svg>\n          {quote}\n        </div>\n      </div>\n      <a className=\"readmorelink\" onClick={handleModalToggle}>\n        {readMore}\n      </a>\n    </div>\n  )\n}\n","import React from \"react\"\n\nconst SvgPlay = (props) => (\n  <svg viewBox=\"0 0 18 18\" {...props}>\n    <path d=\"M0 0l18 9-18 9z\" fillRule=\"evenodd\" />\n  </svg>\n)\n\nexport default SvgPlay\n","import React, { useState, useEffect } from \"react\"\nimport PropTypes from \"prop-types\"\n// import YoutubePlayer from 'react-youtube-player';\nimport YouTube from \"react-youtube\"\nimport SvgPlay from \"../_svgs/small/Play\"\nimport \"./YouTubeEmbed.scss\"\n\nexport default function YoutubeEmbed({ embedId, classDecleration, backgroundImage, ariaVideoDescription }) {\n  const [playbackState, setPlaybackState] = useState(\"paused\")\n  const [showVideoHtml, setShowVideoHtml] = useState(false)\n\n  const [hasVideoLoaded, setHasVideoLoaded] = useState(false)\n  const video = document.getElementById(embedId) || undefined\n\n  useEffect(() => {\n    if (!!video && !hasVideoLoaded) {\n      const handleLoad = () => {\n        setHasVideoLoaded(false)\n      }\n\n      video.addEventListener(\"load\", handleLoad)\n\n      return () => {\n        video.removeEventListener(\"load\", handleLoad)\n      }\n    }\n  })\n\n  const options = {\n    playerVars: {\n      showinfo: false,\n      modestbranding: true,\n      allowFullScreen: 1,\n      title: \"Embedded Youtube\",\n      autoPlay: 1,\n      controls: 1,\n      loop: 0,\n      cc_load_policy: \"0\",\n      iv_load_policy: \"3\",\n      autohide: 0,\n    },\n  }\n\n  function onPlayerReady(event) {\n    var embedCode = event.target.getVideoEmbedCode()\n    event.target.playVideo()\n    if (document.getElementById(\"embed-code\")) {\n      document.getElementById(\"embed-code\").innerHTML = embedCode\n      document.getElementById(\"embed-code\").focus()\n    }\n  }\n\n  const playHandler = () => {\n    setShowVideoHtml(true)\n    setPlaybackState(\"playing\")\n  }\n\n  let overlayStyle = {\n    backgroundImage: `url('http://img.youtube.com/vi/${embedId}/0.jpg')`,\n  }\n\n  if (backgroundImage) {\n    overlayStyle.backgroundImage = `url('${backgroundImage}')`\n  }\n\n  return (\n    <div className={classDecleration}>\n      {/* {playbackState !== 'playing' && !!backgroundImage ?\n                <button className=\"youtube-overlay\" onClick={playHandler} style={overlayStyle}>\n                    <div className=\"svg-container\">\n                        <div className=\"youtube-play-svg\">\n                            <SvgPlay />\n                        </div>\n                    </div>\n                </button> : undefined\n            } */}\n      {showVideoHtml ? (\n        <YouTube videoId={embedId} id={embedId} className={\"youtube-video\"} title={\"Embedded Youtube\"} opts={options} onReady={onPlayerReady} />\n      ) : (\n        <button aria-label={ariaVideoDescription || \"Start Video\"} className=\"youtube-overlay\" onClick={playHandler} style={overlayStyle}>\n          <div className=\"svg-container\">\n            <div className=\"youtube-play-svg\">\n              <SvgPlay />\n            </div>\n          </div>\n        </button>\n      )}\n    </div>\n  )\n}\n\nYoutubeEmbed.propTypes = {\n  embedId: PropTypes.string.isRequired,\n  classDecleration: PropTypes.string,\n  backgroundImage: PropTypes.string,\n}\n"],"names":["TestimonialModal","_ref","modalOpen","modalRichtext","modalQuote","closeHandler","tooltip","_jsx","className","children","OutsideClickTrigger","onOutsideClick","_jsxs","React","onClick","xmlnsXlink","xlinkHref","Svg","iconName","fillColor","TestimonialContainerComponent","testimonialContent","headline","_useState","useState","_useState2","_slicedToArray","overlayRichtext","setOverlayRichtext","_useState3","_useState4","overlayQuote","setOverlayQuote","_useState5","_useState6","toggleOverlay","setToggleOverlay","handleOverlay","htmlTestimonialContent","length","map","t","TestimonialItem","isImage","isImageFormat","image","testimonialImage","undefined","isVideo","isVideoFormat","youtube","videoId","ariaVideoDescription","testimonialHeading","testimonial","quote","testimonialQuote","readMore","testimonialReadMore","Slider","_objectSpread","dots","arrows","infinite","slidesToShow","slidesToScroll","swipe","variableWidth","accessibility","responsive","breakpoint","settings","centerMode","centerPadding","_ref2","htmlTestimonial","ReactHTMLParser","concat","src","YoutubeEmbed","embedId","classDecleration","backgroundImage","props","viewBox","d","fillRule","setPlaybackState","showVideoHtml","setShowVideoHtml","hasVideoLoaded","setHasVideoLoaded","video","document","getElementById","useEffect","handleLoad","addEventListener","removeEventListener","overlayStyle","YouTube","id","title","opts","playerVars","showinfo","modestbranding","allowFullScreen","autoPlay","controls","loop","cc_load_policy","iv_load_policy","autohide","onReady","event","embedCode","target","getVideoEmbedCode","playVideo","innerHTML","focus","style","SvgPlay"],"sourceRoot":""}