{"ast":null,"code":"import { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nvar _jsxFileName = \"/home/gkkdzdg/www/src/slices/NewsListSlice/NewsListSlice.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport { Arrow } from 'components/gui/Arrow';\nimport BoxButton from 'components/gui/BoxButton';\nimport Button from 'components/gui/Button';\nimport SlideshowInline from 'components/slideshowInline/SlideshowInline';\nimport useLocale from 'contexts/useLocale';\nimport gsap from 'gsap';\nimport { useClientWidth } from 'hooks/useClientSize';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport { getLastPosts } from 'lib/instagram';\nimport { useRef, useState } from 'react';\nimport SliceIntro from 'slices/SliceIntro/SliceIntro';\nimport styles from './NewsListSlice.module.scss'; // Mobile\n\nconst Slide = ({\n  news,\n  className,\n  color\n}) => {\n  //const imageURL = data.image && imageBuilder.image(data.image.asset).width(400).url()\n  const locale = useLocale();\n  return /*#__PURE__*/_jsxDEV(\"li\", {\n    className: cn(styles.itemContainer, className),\n    children: /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.item),\n      style: {\n        background: color\n      },\n      children: [/*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.title),\n        children: /*#__PURE__*/_jsxDEV(\"h3\", {\n          className: cn('h--3'),\n          children: news.title\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 26,\n          columnNumber: 16\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 25,\n        columnNumber: 13\n      }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.imageCont),\n        children: /*#__PURE__*/_jsxDEV(\"img\", {\n          src: 'https://www.colivingfactory.com/assets/coresider/images/1.png',\n          className: styles.image\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 29,\n          columnNumber: 16\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 28,\n        columnNumber: 13\n      }, this), /*#__PURE__*/_jsxDEV(BoxButton, {\n        className: cn(styles.button),\n        label: locale('see-on-instagram'),\n        fullWidth: true,\n        href: 'https://www.instagram.com/colivingfactory',\n        white: true // icon='right'\n\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 31,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 24,\n      columnNumber: 10\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 23,\n    columnNumber: 7\n  }, this);\n};\n\nconst colorsMobile = ['#8E95BD', '#F1CDCD', '#AFB8A6', '#742521'];\n\nconst NewsSlideshow = ({\n  news,\n  introText\n}) => {\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    className: cn('mobile-only', styles.newsSlideshow),\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.intro),\n      children: /*#__PURE__*/_jsxDEV(\"h3\", {\n        children: introText\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 55,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 54,\n      columnNumber: 10\n    }, this), /*#__PURE__*/_jsxDEV(SlideshowInline, {\n      items: news,\n      renderItem: (item, itemStyle, i) => /*#__PURE__*/_jsxDEV(Slide, {\n        className: itemStyle,\n        news: item,\n        color: colorsMobile[i % colorsMobile.length]\n      }, item._id + '-' + i, false, {\n        fileName: _jsxFileName,\n        lineNumber: 61,\n        columnNumber: 49\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 59,\n      columnNumber: 10\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 50,\n    columnNumber: 7\n  }, this);\n}; // Desktop\n\n\nconst NewsListItem = ({\n  news,\n  color\n}) => {\n  return /*#__PURE__*/_jsxDEV(\"li\", {\n    className: cn(styles.item),\n    style: {\n      background: color\n    },\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.square, styles.title),\n      children: /*#__PURE__*/_jsxDEV(\"h3\", {\n        className: cn('h--2'),\n        children: news.title\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 79,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 78,\n      columnNumber: 10\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.square, styles.imageCont),\n      children: /*#__PURE__*/_jsxDEV(\"img\", {\n        src: 'https://www.colivingfactory.com/assets/coresider/images/1.png',\n        className: styles.image\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 82,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 81,\n      columnNumber: 10\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 77,\n    columnNumber: 7\n  }, this);\n};\n\nconst ListArrow = ({\n  onClick,\n  right\n}) => {\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    className: cn(styles.arrowButtonCont, right && styles.arrowButtonContRight),\n    children: /*#__PURE__*/_jsxDEV(Button, {\n      onClick: onClick,\n      className: cn(styles.arrowButton),\n      children: [right && /*#__PURE__*/_jsxDEV(Arrow, {\n        size: \"large\",\n        direction: \"right\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 92,\n        columnNumber: 23\n      }, this), !right && /*#__PURE__*/_jsxDEV(Arrow, {\n        size: \"large\",\n        direction: \"left\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 93,\n        columnNumber: 24\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 91,\n      columnNumber: 10\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 90,\n    columnNumber: 7\n  }, this);\n};\n\nconst colorsDesktop = ['#BCC8CC', '#F1CDCD', '#AFB8A6', '#742521'];\nconst showing = 4;\n\nconst NewsList = ({\n  news,\n  introText\n}) => {\n  const {\n    0: index,\n    1: setIndex\n  } = useState(0);\n  const listRef = useRef();\n  const clientWidth = useClientWidth();\n  const itemWidth = clientWidth / 4;\n\n  const handleClick = inc => {\n    const newIndex = index + inc;\n\n    if (newIndex >= 0 && newIndex <= news.length - showing) {\n      const tl = gsap.timeline();\n      tl.to(listRef.current, {\n        duration: 0.3,\n        ease: 'power3.inOut',\n        x: -newIndex * itemWidth\n      });\n      setIndex(newIndex);\n    }\n  };\n\n  const displayArrows = news.length > showing;\n  return /*#__PURE__*/_jsxDEV(_Fragment, {\n    children: /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.listContainer),\n      children: [/*#__PURE__*/_jsxDEV(\"ul\", {\n        ref: listRef,\n        className: styles.list,\n        style: {\n          width: itemWidth * news.length\n        },\n        children: news.map((news, i) => /*#__PURE__*/_jsxDEV(_Fragment, {\n          children: /*#__PURE__*/_jsxDEV(NewsListItem, {\n            news: news,\n            color: colorsDesktop[i % colorsDesktop.length]\n          }, news._id + '-' + i, false, {\n            fileName: _jsxFileName,\n            lineNumber: 133,\n            columnNumber: 19\n          }, this)\n        }, void 0, false))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 130,\n        columnNumber: 10\n      }, this), displayArrows && index > 0 && /*#__PURE__*/_jsxDEV(ListArrow, {\n        onClick: () => handleClick(-1)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 142,\n        columnNumber: 13\n      }, this), displayArrows && index < news.length - showing && /*#__PURE__*/_jsxDEV(ListArrow, {\n        onClick: () => handleClick(1),\n        right: true\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 144,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 129,\n      columnNumber: 7\n    }, this)\n  }, void 0, false);\n};\n\nconst NewsListSlice = props => {\n  const {\n    id,\n    introText\n  } = props,\n        rest = _objectWithoutProperties(props, [\"id\", \"introText\"]);\n\n  const isDesktop = useIsDesktop(); // const instaData = getLastPosts()\n\n  return /*#__PURE__*/_jsxDEV(\"section\", {\n    id: id || 'news',\n    className: cn(styles.newsSlice),\n    children: [/*#__PURE__*/_jsxDEV(SliceIntro, {\n      text: introText\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 164,\n      columnNumber: 10\n    }, this), isDesktop ? /*#__PURE__*/_jsxDEV(NewsList, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 167,\n      columnNumber: 15\n    }, this) : /*#__PURE__*/_jsxDEV(NewsSlideshow, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 168,\n      columnNumber: 15\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 159,\n    columnNumber: 7\n  }, this);\n};\n\nexport default NewsListSlice;","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/NewsListSlice/NewsListSlice.js"],"names":["cn","Arrow","BoxButton","Button","SlideshowInline","useLocale","gsap","useClientWidth","useIsDesktop","getLastPosts","useRef","useState","SliceIntro","styles","Slide","news","className","color","locale","itemContainer","item","background","title","imageCont","image","button","colorsMobile","NewsSlideshow","introText","newsSlideshow","intro","itemStyle","i","length","_id","NewsListItem","square","ListArrow","onClick","right","arrowButtonCont","arrowButtonContRight","arrowButton","colorsDesktop","showing","NewsList","index","setIndex","listRef","clientWidth","itemWidth","handleClick","inc","newIndex","tl","timeline","to","current","duration","ease","x","displayArrows","listContainer","list","width","map","NewsListSlice","props","id","rest","isDesktop","newsSlice"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport { Arrow } from 'components/gui/Arrow'\nimport BoxButton from 'components/gui/BoxButton'\nimport Button from 'components/gui/Button'\nimport SlideshowInline from 'components/slideshowInline/SlideshowInline'\nimport useLocale from 'contexts/useLocale'\nimport gsap from 'gsap'\nimport { useClientWidth } from 'hooks/useClientSize'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport { getLastPosts } from 'lib/instagram'\nimport { useRef, useState } from 'react'\nimport SliceIntro from 'slices/SliceIntro/SliceIntro'\nimport styles from './NewsListSlice.module.scss'\n\n// Mobile\nconst Slide = ({ news, className, color, }) => {\n\n   //const imageURL = data.image && imageBuilder.image(data.image.asset).width(400).url()\n   const locale = useLocale()\n\n   return (\n      <li className={cn(styles.itemContainer, className)}>\n         <div className={cn(styles.item)} style={{ background: color }}>\n            <div className={cn(styles.title)}>\n               <h3 className={cn('h--3')}>{news.title}</h3>\n            </div>\n            <div className={cn(styles.imageCont)}>\n               <img src={'https://www.colivingfactory.com/assets/coresider/images/1.png'} className={styles.image} />\n            </div>\n            <BoxButton\n               className={cn(styles.button)}\n               label={locale('see-on-instagram')}\n               fullWidth={true}\n               href={'https://www.instagram.com/colivingfactory'}\n               white={true}\n               // icon='right'\n            />\n         </div>\n      </li>\n   )\n}\n\n\nconst colorsMobile = ['#8E95BD', '#F1CDCD', '#AFB8A6', '#742521']\n\nconst NewsSlideshow = ({ news, introText }) => {\n\n   return (\n      <div\n         className={cn('mobile-only', styles.newsSlideshow)}\n      >\n\n         <div className={cn(styles.intro)}>\n            <h3>{introText}</h3>\n         </div>\n\n\n         <SlideshowInline\n            items={news}\n            renderItem={(item, itemStyle, i) => <Slide\n               className={itemStyle}\n               key={item._id + '-' + i}\n               news={item}\n               color={colorsMobile[i % colorsMobile.length]}\n            />}\n         />\n\n      </div>\n   )\n}\n\n// Desktop\nconst NewsListItem = ({ news, color }) => {\n\n   return (\n      <li className={cn(styles.item)} style={{ background: color }}>\n         <div className={cn(styles.square, styles.title)}>\n            <h3 className={cn('h--2')}>{news.title}</h3>\n         </div>\n         <div className={cn(styles.square, styles.imageCont)}>\n            <img src={'https://www.colivingfactory.com/assets/coresider/images/1.png'} className={styles.image} />\n         </div>\n      </li>\n   )\n}\n\nconst ListArrow = ({ onClick, right }) => {\n   return (\n      <div className={cn(styles.arrowButtonCont, right && styles.arrowButtonContRight)}>\n         <Button onClick={onClick} className={cn(styles.arrowButton)}>\n            {right && <Arrow size='large' direction='right' />}\n            {!right && <Arrow size='large' direction='left' />}\n         </Button>\n      </div>\n   )\n}\n\nconst colorsDesktop = ['#BCC8CC', '#F1CDCD', '#AFB8A6', '#742521']\nconst showing = 4\n\nconst NewsList = ({ news, introText, }) => {\n\n   const [index, setIndex] = useState(0)\n   const listRef = useRef()\n\n\n   const clientWidth = useClientWidth()\n   const itemWidth = clientWidth / 4\n\n   const handleClick = (inc) => {\n      const newIndex = index + inc\n      if (newIndex >= 0 && newIndex <= news.length - showing) {\n         const tl = gsap.timeline()\n\n         tl.to(listRef.current, {\n            duration: 0.3,\n            ease: 'power3.inOut',\n            x: -newIndex * itemWidth,\n         })\n\n         setIndex(newIndex)\n      }\n   }\n\n   const displayArrows = news.length > showing\n\n   return (<>\n      <div className={cn(styles.listContainer)}>\n         <ul ref={listRef} className={styles.list} style={{ width: itemWidth * news.length }}>\n            {news.map((news, i) =>\n               <>\n                  <NewsListItem\n                     key={news._id + '-' + i}\n                     news={news}\n                     color={colorsDesktop[i % colorsDesktop.length]}\n                  />\n               </>\n            )}\n         </ul>\n         {displayArrows && index > 0 &&\n            <ListArrow onClick={() => handleClick(-1)} />}\n         {displayArrows && index < news.length - showing &&\n            <ListArrow onClick={() => handleClick(1)} right />}\n      </div>\n   </>\n   )\n}\n\n\nconst NewsListSlice = (props) => {\n   const { id, introText, ...rest } = props\n\n   const isDesktop = useIsDesktop()\n\n   // const instaData = getLastPosts()\n\n   return (\n      <section\n         id={id || 'news'}\n         className={cn(styles.newsSlice)}\n      >\n\n         <SliceIntro text={introText} />\n\n         {isDesktop\n            ? <NewsList {...rest} />\n            : <NewsSlideshow {...rest} />\n         }\n\n      </section>\n   )\n}\n\nexport default NewsListSlice\n\n"]},"metadata":{},"sourceType":"module"}