{"ast":null,"code":"import { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nvar _jsxFileName = \"/home/gkkdzdg/www/src/slices/TextSlideshowSlice/TextImageSlice.js\",\n    _this = this,\n    _s = $RefreshSig$(),\n    _s2 = $RefreshSig$();\n\nimport cn from 'classnames';\nimport { Arrow } from 'components/gui/Arrow';\nimport Button from 'components/gui/Button';\nimport CircleButton from 'components/gui/CircleButton';\nimport CustomBlockContent from 'components/gui/CustomBlockContent';\nimport SlideshowInline from 'components/slideshowInline/SlideshowInline';\nimport Strip from 'components/strips/Strip';\nimport { useClientWidth } from 'hooks/useClientSize';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport HTMLReactParser from 'html-react-parser';\nimport { imageBuilder } from 'lib/api';\nimport { useEffect, useRef, useState } from 'react';\nimport SliceIntro from 'slices/SliceIntro/SliceIntro';\nimport styles from './TextImageSlice.module.scss'; // Desktop\n\nvar ListItem = function ListItem(_ref) {\n  var data = _ref.data,\n      id = _ref.id,\n      nextId = _ref.nextId,\n      contentPosition = _ref.contentPosition;\n  var backgroundImageURL = data.image && imageBuilder.image(data.image.asset).width(1280).url();\n  var backgroundColor = data.color && data.color.hex;\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    id: id,\n    className: cn(styles.listItem),\n    style: {\n      backgroundImage: backgroundImageURL ? \"url(\".concat(backgroundImageURL, \")\") : undefined,\n      backgroundColor: backgroundColor ? backgroundColor : undefined\n    },\n    children: /*#__PURE__*/_jsxDEV(Strip, {\n      className: cn(styles.listStrip),\n      style: {\n        marginLeft: contentPosition * 25 + '%'\n      },\n      title: data.title,\n      intro: data.subtitle,\n      blocks: data.text,\n      button: {\n        label: data.button\n      },\n      downHref: nextId && '#' + nextId\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 35,\n      columnNumber: 10\n    }, _this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 26,\n    columnNumber: 7\n  }, _this);\n};\n\n_c = ListItem;\n\nvar List = function List(_ref2) {\n  var slides = _ref2.slides;\n  return /*#__PURE__*/_jsxDEV(_Fragment, {\n    children: slides && slides.map(function (slide, i) {\n      var isLast = i == slides.length - 1;\n      return /*#__PURE__*/_jsxDEV(ListItem, {\n        data: slide,\n        contentPosition: i % 2 ? 2 : 1,\n        id: 'intro-' + (i + 1),\n        nextId: isLast ? undefined : 'intro-' + (i + 2)\n      }, slide._key, false, {\n        fileName: _jsxFileName,\n        lineNumber: 53,\n        columnNumber: 20\n      }, _this);\n    })\n  }, void 0, false);\n}; // Mobile\n\n\n_c2 = List;\n\nvar SlideItem = function SlideItem(_ref3) {\n  _s();\n\n  var data = _ref3.data,\n      className = _ref3.className,\n      number = _ref3.number;\n\n  var _useState = useState(false),\n      open = _useState[0],\n      setOpen = _useState[1];\n\n  var _useState2 = useState(false),\n      showFullText = _useState2[0],\n      setShowFullText = _useState2[1];\n\n  var imageRef = useRef();\n  var textsRef = useRef();\n  var imageURL = data.image && imageBuilder.image(data.image.asset).width(400).url();\n\n  var openClose = function openClose() {\n    var newOpen = !open;\n    setOpen(newOpen); // textsRef.current.style.overflowY = newOpen ? 'auto' : 'hidden'\n\n    textsRef.current.scrollTo({\n      top: 0,\n      behavior: 'smooth'\n    }); // if(newOpen) {\n    //    setShowFullText(newOpen)\n    // }\n    // else {\n    //    setTimeout(() => {\n    //       setShowFullText(newOpen)\n    //    }, 800);\n    // }\n    // return;\n    // const newOpen = !open\n    // const containerWidth = textsRef.current.parentNode.clientWidth\n    // const containerHeight = textsRef.current.parentNode.clientHeight\n    // const tl = gsap.timeline()\n    // textsRef.current.style.overflowY = newOpen ? 'auto' : 'hidden'\n    // tl.to(textsRef.current, {\n    //    duration: 0.66,\n    //    ease: 'power3.inOut',\n    //    y: newOpen ? -imageRef.current.clientHeight : 0,\n    //    height: newOpen\n    //       ? containerHeight + 'px'\n    //       : containerHeight * 0.5 + 'px',\n    //    //scale: newOpen ? 1.05 + ((containerWidth - textsRef.current.clientWidth) / containerWidth) : 1,\n    // })\n    // setOpen(newOpen)\n  }; // console.log('TextImageSlice.js::94 data.text', data.text)\n  // const floatRef = useRef()\n  // const textBlockRef = useRef()\n  // const textBlockReplacerRef = useRef()\n  // const [resizeComplete, setResizeComplete] = useState(false)\n  // const [innerBlockHtml, setInnerBlockHtml] = useState()\n  // useEffect(() => {\n  //    if(resizeComplete) return;\n  //    // TODO\n  //    // PROBABLY DOESNT WORK if children > 1\n  //    if ((textBlockRef.current || textBlockReplacerRef.current) && textsRef.current && floatRef.current) {\n  //       const textBlockRefCurrent = textBlockReplacerRef.current || textBlockRef.current\n  //       const lastChild = textBlockRefCurrent.children[textBlockRefCurrent.children.length - 1]\n  //       const availableSpace = textsRef.current.offsetHeight\n  //          - floatRef.current.offsetHeight\n  //          - textBlockRefCurrent.offsetTop\n  //       const newHTML = lastChild.innerHTML.split(' ').slice(0, -1).join(' ')\n  //       if (newHTML != '' && textBlockRefCurrent.offsetHeight > availableSpace)\n  //          setInnerBlockHtml(newHTML)\n  //       else {\n  //          setInnerBlockHtml(newHTML.split(' ').slice(0, -1).join(' ') + ('…'))\n  //          setResizeComplete(true)\n  //       }\n  //    }\n  // }, [innerBlockHtml])\n\n\n  return /*#__PURE__*/_jsxDEV(\"li\", {\n    className: cn(className, styles.slideshowItem, open && styles.isOpened),\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      ref: imageRef,\n      className: cn(styles.slideshowImage, open && styles.isOpened),\n      children: imageURL && /*#__PURE__*/_jsxDEV(\"img\", {\n        src: imageURL\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 152,\n        columnNumber: 26\n      }, _this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 151,\n      columnNumber: 10\n    }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n      ref: textsRef,\n      className: cn(styles.slideshowTexts, open && styles.isOpened),\n      children: [/*#__PURE__*/_jsxDEV(\"span\", {\n        className: cn('p--m', styles.slideNumber),\n        children: number\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 156,\n        columnNumber: 13\n      }, _this), /*#__PURE__*/_jsxDEV(\"h2\", {\n        className: cn('h--2', styles.title),\n        children: data.title\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 157,\n        columnNumber: 13\n      }, _this), data.subtitle && /*#__PURE__*/_jsxDEV(\"p\", {\n        className: cn('p--m', styles.intro),\n        children: data.subtitle\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 158,\n        columnNumber: 31\n      }, _this), data.text && /*#__PURE__*/_jsxDEV(CustomBlockContent, {\n        className: cn('p--m', styles.text),\n        blocks: data.text\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 159,\n        columnNumber: 27\n      }, _this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 155,\n      columnNumber: 10\n    }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: styles.floatCont,\n      children: /*#__PURE__*/_jsxDEV(CircleButton, {\n        className: cn(styles.openCloseButton),\n        icon: open ? 'minus' : 'plus',\n        color: \"white\",\n        onClick: openClose\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 163,\n        columnNumber: 13\n      }, _this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 162,\n      columnNumber: 10\n    }, _this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 149,\n    columnNumber: 7\n  }, _this);\n};\n\n_s(SlideItem, \"Mt0UxDbgyeGVjKbUd4aKP9rH408=\");\n\n_c3 = SlideItem;\n\nvar Slideshow = function Slideshow(_ref4) {\n  var slides = _ref4.slides;\n  return /*#__PURE__*/_jsxDEV(SlideshowInline, {\n    items: slides,\n    renderItem: function renderItem(item, itemStyle, i) {\n      return /*#__PURE__*/_jsxDEV(SlideItem, {\n        data: item,\n        className: itemStyle,\n        number: \"\".concat(i + 1, \"/\").concat(slides.length)\n      }, item._key, false, {\n        fileName: _jsxFileName,\n        lineNumber: 182,\n        columnNumber: 10\n      }, _this);\n    }\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 179,\n    columnNumber: 11\n  }, _this);\n};\n\n_c4 = Slideshow;\n\nvar TextImageSlice = function TextImageSlice(_ref5) {\n  _s2();\n\n  var slides = _ref5.slides,\n      id = _ref5.id;\n  var introText = slides && slides.length && slides[0].intro;\n  var isDesktop = useIsDesktop();\n  return /*#__PURE__*/_jsxDEV(\"section\", {\n    id: id,\n    className: cn(styles.slideShowSlice),\n    children: [/*#__PURE__*/_jsxDEV(SliceIntro, {\n      text: introText\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 202,\n      columnNumber: 10\n    }, _this), isDesktop ? /*#__PURE__*/_jsxDEV(List, {\n      slides: slides\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 204,\n      columnNumber: 15\n    }, _this) : /*#__PURE__*/_jsxDEV(Slideshow, {\n      slides: slides\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 205,\n      columnNumber: 15\n    }, _this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 197,\n    columnNumber: 7\n  }, _this);\n};\n\n_s2(TextImageSlice, \"LPvPO2c3CxR8xrtzm1E56phj+VA=\", false, function () {\n  return [useIsDesktop];\n});\n\n_c5 = TextImageSlice;\nexport default TextImageSlice;\n\nvar _c, _c2, _c3, _c4, _c5;\n\n$RefreshReg$(_c, \"ListItem\");\n$RefreshReg$(_c2, \"List\");\n$RefreshReg$(_c3, \"SlideItem\");\n$RefreshReg$(_c4, \"Slideshow\");\n$RefreshReg$(_c5, \"TextImageSlice\");","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/TextSlideshowSlice/TextImageSlice.js"],"names":["cn","Arrow","Button","CircleButton","CustomBlockContent","SlideshowInline","Strip","useClientWidth","useIsDesktop","HTMLReactParser","imageBuilder","useEffect","useRef","useState","SliceIntro","styles","ListItem","data","id","nextId","contentPosition","backgroundImageURL","image","asset","width","url","backgroundColor","color","hex","listItem","backgroundImage","undefined","listStrip","marginLeft","title","subtitle","text","label","button","List","slides","map","slide","i","isLast","length","_key","SlideItem","className","number","open","setOpen","showFullText","setShowFullText","imageRef","textsRef","imageURL","openClose","newOpen","current","scrollTo","top","behavior","slideshowItem","isOpened","slideshowImage","slideshowTexts","slideNumber","intro","floatCont","openCloseButton","Slideshow","item","itemStyle","TextImageSlice","introText","isDesktop","slideShowSlice"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport { Arrow } from 'components/gui/Arrow'\nimport Button from 'components/gui/Button'\nimport CircleButton from 'components/gui/CircleButton'\nimport CustomBlockContent from 'components/gui/CustomBlockContent'\nimport SlideshowInline from 'components/slideshowInline/SlideshowInline'\nimport Strip from 'components/strips/Strip'\nimport { useClientWidth } from 'hooks/useClientSize'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport HTMLReactParser from 'html-react-parser'\nimport { imageBuilder } from 'lib/api'\nimport { useEffect, useRef, useState } from 'react'\nimport SliceIntro from 'slices/SliceIntro/SliceIntro'\nimport styles from './TextImageSlice.module.scss'\n\n\n// Desktop\n\nconst ListItem = ({ data, id, nextId, contentPosition, }) => {\n\n   const backgroundImageURL = data.image && imageBuilder.image(data.image.asset).width(1280).url()\n   const backgroundColor = data.color && data.color.hex\n\n   return (\n      <div\n         id={id}\n         className={cn(styles.listItem)}\n         style={{\n            backgroundImage: backgroundImageURL ? `url(${backgroundImageURL})` : undefined,\n            backgroundColor: backgroundColor ? backgroundColor : undefined,\n         }}\n      >\n         {/* {data.intro && <SliceIntro text={data.intro} />} */}\n         <Strip\n            className={cn(styles.listStrip)}\n            style={{ marginLeft: contentPosition * 25 + '%' }}\n            title={data.title}\n            intro={data.subtitle}\n            blocks={data.text}\n            button={{ label: data.button }}\n            downHref={nextId && '#' + nextId}\n         />\n      </div>\n   )\n}\nconst List = ({ slides, }) => {\n\n   return (\n      <>\n         {slides && slides.map((slide, i) => {\n            const isLast = i == slides.length - 1\n            return <ListItem\n               key={slide._key}\n               data={slide}\n               contentPosition={i % 2 ? 2 : 1}\n               id={'intro-' + (i + 1)}\n               nextId={isLast ? undefined : 'intro-' + (i + 2)}\n            />\n         })}\n      </>\n   )\n}\n\n// Mobile\nconst SlideItem = ({ data, className, number, }) => {\n\n   const [open, setOpen] = useState(false)\n   const [showFullText, setShowFullText] = useState(false)\n   const imageRef = useRef()\n   const textsRef = useRef()\n\n   const imageURL = data.image && imageBuilder.image(data.image.asset).width(400).url()\n\n   const openClose = () => {\n      const newOpen = !open\n      setOpen(newOpen)\n\n      // textsRef.current.style.overflowY = newOpen ? 'auto' : 'hidden'\n\n      textsRef.current.scrollTo({top: 0, behavior: 'smooth'})\n\n      // if(newOpen) {\n      //    setShowFullText(newOpen)\n      // }\n      // else {\n      //    setTimeout(() => {\n      //       setShowFullText(newOpen)\n      //    }, 800);\n      // }\n      // return;\n      // const newOpen = !open\n      // const containerWidth = textsRef.current.parentNode.clientWidth\n      // const containerHeight = textsRef.current.parentNode.clientHeight\n\n      // const tl = gsap.timeline()\n\n      // textsRef.current.style.overflowY = newOpen ? 'auto' : 'hidden'\n\n      // tl.to(textsRef.current, {\n      //    duration: 0.66,\n      //    ease: 'power3.inOut',\n      //    y: newOpen ? -imageRef.current.clientHeight : 0,\n      //    height: newOpen\n      //       ? containerHeight + 'px'\n      //       : containerHeight * 0.5 + 'px',\n      //    //scale: newOpen ? 1.05 + ((containerWidth - textsRef.current.clientWidth) / containerWidth) : 1,\n      // })\n\n      // setOpen(newOpen)\n   }\n\n   // console.log('TextImageSlice.js::94 data.text', data.text)\n\n   // const floatRef = useRef()\n   // const textBlockRef = useRef()\n   // const textBlockReplacerRef = useRef()\n   // const [resizeComplete, setResizeComplete] = useState(false)\n   // const [innerBlockHtml, setInnerBlockHtml] = useState()\n\n   // useEffect(() => {\n   //    if(resizeComplete) return;\n\n   //    // TODO\n   //    // PROBABLY DOESNT WORK if children > 1\n\n   //    if ((textBlockRef.current || textBlockReplacerRef.current) && textsRef.current && floatRef.current) {\n\n   //       const textBlockRefCurrent = textBlockReplacerRef.current || textBlockRef.current\n\n   //       const lastChild = textBlockRefCurrent.children[textBlockRefCurrent.children.length - 1]\n   //       const availableSpace = textsRef.current.offsetHeight\n   //          - floatRef.current.offsetHeight\n   //          - textBlockRefCurrent.offsetTop\n\n   //       const newHTML = lastChild.innerHTML.split(' ').slice(0, -1).join(' ')\n         \n   //       if (newHTML != '' && textBlockRefCurrent.offsetHeight > availableSpace)\n   //          setInnerBlockHtml(newHTML)\n   //       else {\n   //          setInnerBlockHtml(newHTML.split(' ').slice(0, -1).join(' ') + ('…'))\n   //          setResizeComplete(true)\n   //       }\n   //    }\n\n   // }, [innerBlockHtml])\n\n   return (\n      <li className={cn(className, styles.slideshowItem, open && styles.isOpened)}>\n\n         <div ref={imageRef} className={cn(styles.slideshowImage, open && styles.isOpened)}>\n            {imageURL && <img src={imageURL} />}\n         </div>\n\n         <div ref={textsRef} className={cn(styles.slideshowTexts, open && styles.isOpened)}>\n            <span className={cn('p--m', styles.slideNumber,)}>{number}</span>\n            <h2 className={cn('h--2', styles.title)}>{data.title}</h2>\n            {data.subtitle && <p className={cn('p--m', styles.intro)}>{data.subtitle}</p>}\n            {data.text && <CustomBlockContent className={cn('p--m', styles.text)} blocks={data.text} />}\n         </div>\n\n         <div className={styles.floatCont}>\n            <CircleButton\n               className={cn(styles.openCloseButton)}\n               icon={open ? 'minus' : 'plus'}\n               color='white'\n               onClick={openClose}\n               />\n            {/* <Button onClick={openClose} className={styles.arrowDown}>\n               <Arrow direction='up' size='medium' />\n            </Button> */}\n         </div>\n      </li>\n   )\n}\n\nconst Slideshow = ({ slides, }) => {\n\n   return <SlideshowInline\n      items={slides}\n      renderItem={(item, itemStyle, i) =>\n         <SlideItem key={item._key}\n            data={item}\n            className={itemStyle}\n            number={`${i + 1}/${slides.length}`}\n            />\n      }\n      />\n}\n\nconst TextImageSlice = ({ slides, id, }) => {\n\n   const introText = slides && slides.length && slides[0].intro\n   const isDesktop = useIsDesktop()\n\n   return (\n      <section\n         id={id}\n         className={cn(styles.slideShowSlice)}\n      >\n\n         <SliceIntro text={introText} />\n         {isDesktop\n            ? <List slides={slides} />\n            : <Slideshow slides={slides} />\n         }\n\n      </section>\n   )\n}\n\nexport default TextImageSlice\n\n"]},"metadata":{},"sourceType":"module"}