{"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/ServicesSlice/ServicesSlice.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 Button from 'components/gui/Button';\nimport CircleButton from 'components/gui/CircleButton';\nimport CustomBlockContent from 'components/gui/CustomBlockContent';\nimport Overlay from 'components/overlay/Overlay';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport HTMLReactParser from 'html-react-parser';\nimport { useState } from 'react';\nimport SliceIntro from 'slices/SliceIntro/SliceIntro';\nimport TabsSlice from 'slices/TabsSlice/TabsSlice';\nimport styles from './ServicesSlice.module.scss'; // Mobile\n\nconst ServicesSlideshow = ({\n  services,\n  onDemand,\n  mutualized\n}) => {\n  console.log('ServicesSlice.js::13 services', services);\n  const {\n    0: openId,\n    1: setOpenId\n  } = useState(null);\n\n  const onClick = id => {\n    console.log('ServicesSlice.js::17 id', id);\n    setOpenId(id);\n  };\n\n  const openService = openId && services.filter(service => service.id == openId)[0];\n\n  const renderTab = key => {\n    return /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.mobileGrid),\n      children: services.filter(service => service.type == key).map((service, i) => service.icon && /*#__PURE__*/_jsxDEV(Button, {\n        className: cn(styles.gridItem),\n        onClick: onClick && (() => onClick(service.id)),\n        children: [HTMLReactParser(service.icon), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.itemBottom),\n          children: [/*#__PURE__*/_jsxDEV(CircleButton, {\n            icon: \"plus\",\n            color: 'white'\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 40,\n            columnNumber: 16\n          }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n            className: cn('h--5', styles.subtitle),\n            children: service.title\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 44,\n            columnNumber: 16\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 39,\n          columnNumber: 13\n        }, this)]\n      }, service.id + i, true, {\n        fileName: _jsxFileName,\n        lineNumber: 33,\n        columnNumber: 10\n      }, this))\n    }, key, false, {\n      fileName: _jsxFileName,\n      lineNumber: 30,\n      columnNumber: 14\n    }, this);\n  };\n\n  return /*#__PURE__*/_jsxDEV(_Fragment, {\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.description),\n      children: /*#__PURE__*/_jsxDEV(\"p\", {\n        className: cn('p--m'),\n        children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Convallis id maecenas vulputate porta aliquet amet et nullam et. Justo tellus facilisis facilisis tellus enim a. Vitae ultrices dolor nulla non. Pulvinar ante euismod consequat amet vulputate vel a. Enim habitant nibh id fermentum. Quam neque purus commodo pellentesque feugiat cras eu ac.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 54,\n        columnNumber: 7\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 53,\n      columnNumber: 4\n    }, this), /*#__PURE__*/_jsxDEV(TabsSlice, {\n      tabs: [{\n        label: onDemand,\n        key: 'onDemand',\n        render: key => renderTab(key)\n      }, {\n        label: mutualized,\n        key: 'mutualized',\n        render: key => renderTab(key)\n      }]\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 58,\n      columnNumber: 4\n    }, this), openService && /*#__PURE__*/_jsxDEV(Overlay, {\n      className: cn(styles.overlay),\n      onClose: () => setOpenId(null),\n      backColor: \"grey\",\n      children: [/*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.overlayIconContainer),\n        children: HTMLReactParser(openService.icon)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 77,\n        columnNumber: 10\n      }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n        className: cn('h--2'),\n        children: openService.title\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 80,\n        columnNumber: 10\n      }, this), openService.description && /*#__PURE__*/_jsxDEV(CustomBlockContent, {\n        className: cn('p--m'),\n        blocks: openService.description\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 81,\n        columnNumber: 38\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 72,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true);\n}; // Desktop\n\n\nconst ServicesGrid = ({\n  services,\n  onDemand,\n  mutualized\n}) => {\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    className: cn(styles.gridContainer),\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.gridPart, styles.gridOnDemand),\n      children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n        className: cn('h--3', styles.subtitle),\n        children: onDemand\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 92,\n        columnNumber: 10\n      }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.gridItems),\n        children: services.filter(service => service.type == 'onDemand').map((service, i) => service.icon && /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.gridItem),\n          children: [HTMLReactParser(service.icon), /*#__PURE__*/_jsxDEV(\"h5\", {\n            className: cn('h--5', styles.subtitle),\n            children: service.title\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 98,\n            columnNumber: 19\n          }, this)]\n        }, service.title + i, true, {\n          fileName: _jsxFileName,\n          lineNumber: 96,\n          columnNumber: 16\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 93,\n        columnNumber: 10\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 91,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.gridPart, styles.gridDescription),\n      children: /*#__PURE__*/_jsxDEV(\"p\", {\n        className: cn('p--m'),\n        children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Convallis id maecenas vulputate porta aliquet amet et nullam et. Justo tellus facilisis facilisis tellus enim a. Vitae ultrices dolor nulla non. Pulvinar ante euismod consequat amet vulputate vel a. Enim habitant nibh id fermentum. Quam neque purus commodo pellentesque feugiat cras eu ac.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 105,\n        columnNumber: 10\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 104,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.gridPart, styles.gridMutualized),\n      children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n        className: cn('h--3', styles.subtitle),\n        children: mutualized\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 110,\n        columnNumber: 10\n      }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.gridItems),\n        children: services.filter(service => service.type == 'mutualized').map(service => service.icon && /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.gridItem),\n          children: [HTMLReactParser(service.icon), /*#__PURE__*/_jsxDEV(\"h5\", {\n            className: cn('h--5', styles.subtitle),\n            children: service.title\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 115,\n            columnNumber: 19\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 113,\n          columnNumber: 32\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 111,\n        columnNumber: 10\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 109,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 90,\n    columnNumber: 11\n  }, this);\n}; //\n\n\nconst ServicesSlice = props => {\n  const {\n    introText\n  } = props,\n        rest = _objectWithoutProperties(props, [\"introText\"]);\n\n  const isDesktop = useIsDesktop();\n  return /*#__PURE__*/_jsxDEV(\"section\", {\n    className: cn(styles.servicesSlice),\n    children: [/*#__PURE__*/_jsxDEV(SliceIntro, {\n      text: introText\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 133,\n      columnNumber: 10\n    }, this), isDesktop ? /*#__PURE__*/_jsxDEV(ServicesGrid, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 136,\n      columnNumber: 15\n    }, this) : /*#__PURE__*/_jsxDEV(ServicesSlideshow, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 137,\n      columnNumber: 15\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 131,\n    columnNumber: 7\n  }, this);\n};\n\nexport default ServicesSlice;","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/ServicesSlice/ServicesSlice.js"],"names":["cn","Button","CircleButton","CustomBlockContent","Overlay","useIsDesktop","HTMLReactParser","useState","SliceIntro","TabsSlice","styles","ServicesSlideshow","services","onDemand","mutualized","console","log","openId","setOpenId","onClick","id","openService","filter","service","renderTab","key","mobileGrid","type","map","i","icon","gridItem","itemBottom","subtitle","title","description","label","render","overlay","overlayIconContainer","ServicesGrid","gridContainer","gridPart","gridOnDemand","gridItems","gridDescription","gridMutualized","ServicesSlice","props","introText","rest","isDesktop","servicesSlice"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport Button from 'components/gui/Button'\nimport CircleButton from 'components/gui/CircleButton'\nimport CustomBlockContent from 'components/gui/CustomBlockContent'\nimport Overlay from 'components/overlay/Overlay'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport HTMLReactParser from 'html-react-parser'\nimport { useState } from 'react'\nimport SliceIntro from 'slices/SliceIntro/SliceIntro'\nimport TabsSlice from 'slices/TabsSlice/TabsSlice'\nimport styles from './ServicesSlice.module.scss'\n\n// Mobile\nconst ServicesSlideshow = ({ services, onDemand, mutualized, }) => {\n\n   console.log('ServicesSlice.js::13 services', services)\n\n   const [openId, setOpenId] = useState(null)\n\n   const onClick = (id) => {\n      console.log('ServicesSlice.js::17 id', id)\n      setOpenId(id)\n   }\n\n   const openService = openId && services.filter(service => service.id == openId)[0]\n\n   const renderTab = (key) => {\n\n      return <div key={key} className={cn(styles.mobileGrid)}>\n      {services.filter(service => service.type == key).map((service, i) =>\n         service.icon &&\n         <Button\n            key={service.id + i}\n            className={cn(styles.gridItem)}\n            onClick={onClick && (() => onClick(service.id))}\n            >\n            {HTMLReactParser(service.icon)}\n            <div className={cn(styles.itemBottom)}>\n               <CircleButton\n                  icon='plus'\n                  color={'white'}\n               />\n               <h5 className={cn('h--5', styles.subtitle)}>{service.title}</h5>\n            </div>\n         </Button>\n      )}\n   </div>\n   }\n\n   return <>\n   \n   <div className={cn(styles.description)}>\n      <p className={cn('p--m')}>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Convallis id maecenas vulputate porta aliquet amet et nullam et. Justo tellus facilisis facilisis tellus enim a. Vitae ultrices dolor nulla non. Pulvinar ante euismod consequat amet vulputate vel a.\n      Enim habitant nibh id fermentum. Quam neque purus commodo pellentesque feugiat cras eu ac.</p>\n   </div>\n\n   <TabsSlice\n      tabs={[\n         {\n            label: onDemand, key: 'onDemand',\n            render: key => renderTab(key),\n         },\n         {\n            label: mutualized, key: 'mutualized',\n            render: key => renderTab(key),\n         },\n      ]}\n   />\n\n   {openService &&\n      <Overlay\n         className={cn(styles.overlay)}\n         onClose={() => setOpenId(null)}\n         backColor='grey'\n         >\n         <div className={cn(styles.overlayIconContainer)}>\n            {HTMLReactParser(openService.icon)}\n         </div>\n         <h2 className={cn('h--2')}>{openService.title}</h2>\n         {openService.description && <CustomBlockContent className={cn('p--m',)} blocks={openService.description} />}\n      </Overlay>\n   }\n   </>\n}\n\n// Desktop\nconst ServicesGrid = ({ services, onDemand, mutualized, }) => {\n\n   return <div className={cn(styles.gridContainer)}>\n      <div className={cn(styles.gridPart, styles.gridOnDemand)}>\n         <h4 className={cn('h--3', styles.subtitle)}>{onDemand}</h4>\n         <div className={cn(styles.gridItems)}>\n            {services.filter(service => service.type == 'onDemand').map((service, i) =>\n               service.icon &&\n               <div key={service.title + i} className={cn(styles.gridItem)}>\n                  {HTMLReactParser(service.icon)}\n                  <h5 className={cn('h--5', styles.subtitle)}>{service.title}</h5>\n               </div>\n            )}\n         </div>\n      </div>\n\n      <div className={cn(styles.gridPart, styles.gridDescription)}>\n         <p className={cn('p--m')}>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Convallis id maecenas vulputate porta aliquet amet et nullam et. Justo tellus facilisis facilisis tellus enim a. Vitae ultrices dolor nulla non. Pulvinar ante euismod consequat amet vulputate vel a.\n         Enim habitant nibh id fermentum. Quam neque purus commodo pellentesque feugiat cras eu ac.</p>\n      </div>\n\n      <div className={cn(styles.gridPart, styles.gridMutualized)}>\n         <h4 className={cn('h--3', styles.subtitle)}>{mutualized}</h4>\n         <div className={cn(styles.gridItems)}>\n            {services.filter(service => service.type == 'mutualized').map(service =>\n               service.icon && <div className={cn(styles.gridItem)}>\n                  {HTMLReactParser(service.icon)}\n                  <h5 className={cn('h--5', styles.subtitle)}>{service.title}</h5>\n               </div>\n            )}\n         </div>\n      </div>\n   </div>\n}\n\n//\nconst ServicesSlice = (props) => {\n\n   const { introText, ...rest } = props\n\n   const isDesktop = useIsDesktop()\n\n   return (\n      <section className={cn(styles.servicesSlice)}>\n\n         <SliceIntro text={introText} />\n\n         {isDesktop\n            ? <ServicesGrid {...rest} />\n            : <ServicesSlideshow {...rest} />\n         }\n      </section>\n   )\n}\n\nexport default ServicesSlice\n\n"]},"metadata":{},"sourceType":"module"}