{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nvar _jsxFileName = \"/home/gkkdzdg/www/src/slices/CityMapSlice/CityMapSlice.js\",\n    _this = this,\n    _s = $RefreshSig$(),\n    _s2 = $RefreshSig$(),\n    _s3 = $RefreshSig$();\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\nimport cn from 'classnames';\nimport MapContainer from 'components/mapContainer/MapContainer';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport { useState } from 'react';\nimport SliceIntro from 'slices/SliceIntro/SliceIntro';\nimport TabsSlice from 'slices/TabsSlice/TabsSlice';\nimport styles from './CityMapSlice.module.scss';\nimport HousesList, { HouseItem } from './HousesList';\n\nvar DesktopMapSlice = function DesktopMapSlice(_ref) {\n  _s();\n\n  var houses = _ref.houses,\n      searchPlaceholder = _ref.searchPlaceholder,\n      loadMoreCities = _ref.loadMoreCities;\n\n  // TODO highlightCity => highlightHouse\n  var _useState = useState(''),\n      highlightCity = _useState[0],\n      setHighlightCity = _useState[1];\n\n  var handleMouseEvent = function handleMouseEvent(type, slug) {\n    setHighlightCity(type == 'mouseover' ? slug : '');\n  };\n\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    className: cn(styles.tabsContainer),\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.listContainer),\n      children: /*#__PURE__*/_jsxDEV(HousesList, {\n        houses: houses,\n        handleMouseEvent: handleMouseEvent,\n        highlightCity: highlightCity,\n        placeholder: searchPlaceholder,\n        loadMore: loadMoreCities\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 23,\n        columnNumber: 10\n      }, _this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 22,\n      columnNumber: 7\n    }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.mapContainer),\n      children: /*#__PURE__*/_jsxDEV(MapContainer, {\n        houses: houses,\n        handleMouseEvent: handleMouseEvent,\n        highlightCity: highlightCity\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 32,\n        columnNumber: 10\n      }, _this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 31,\n      columnNumber: 7\n    }, _this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 21,\n    columnNumber: 11\n  }, _this);\n};\n\n_s(DesktopMapSlice, \"ApqYIrbrdc4JzXHo/MgBZ5wve98=\");\n\n_c = DesktopMapSlice;\n\nvar MobileMapSlice = function MobileMapSlice(_ref2) {\n  _s2();\n\n  var houses = _ref2.houses,\n      searchPlaceholder = _ref2.searchPlaceholder,\n      loadMoreCities = _ref2.loadMoreCities;\n\n  var _useState2 = useState(null),\n      highlightHouse = _useState2[0],\n      setHighlightHouse = _useState2[1];\n\n  var handleMouseEvent = function handleMouseEvent(type, slug) {\n    if (type == 'click') {\n      setHighlightHouse(highlightHouse == slug ? null : slug);\n    }\n\n    if (type == 'mapClick') {\n      setHighlightHouse(null);\n    }\n  };\n\n  return /*#__PURE__*/_jsxDEV(TabsSlice, {\n    tabs: [{\n      label: 'Nos habitations',\n      key: 'list',\n      render: function render() {\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.listContainer),\n          children: /*#__PURE__*/_jsxDEV(HousesList, {\n            houses: houses,\n            placeholder: searchPlaceholder,\n            loadMore: loadMoreCities\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 62,\n            columnNumber: 22\n          }, _this)\n        }, 'list', false, {\n          fileName: _jsxFileName,\n          lineNumber: 61,\n          columnNumber: 19\n        }, _this);\n      }\n    }, {\n      label: 'Carte',\n      key: 'map',\n      render: function render() {\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.mapContainer),\n          children: /*#__PURE__*/_jsxDEV(MapContainer, {\n            houses: houses,\n            handleMouseEvent: handleMouseEvent,\n            highlightHouse: highlightHouse,\n            centerOn: highlightHouse,\n            overlayKey: highlightHouse,\n            overlay: highlightHouse && /*#__PURE__*/_jsxDEV(HouseItem, {\n              className: cn(styles.houseItem),\n              light: true,\n              house: houses.filter(function (house) {\n                return house.slug == highlightHouse;\n              })[0],\n              onClose: function onClose() {\n                return setHighlightHouse(null);\n              }\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 81,\n              columnNumber: 52\n            }, _this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 74,\n            columnNumber: 22\n          }, _this)\n        }, 'map', false, {\n          fileName: _jsxFileName,\n          lineNumber: 73,\n          columnNumber: 19\n        }, _this);\n      }\n    }]\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 56,\n    columnNumber: 7\n  }, _this);\n};\n\n_s2(MobileMapSlice, \"MTHbzFoSUbol0AGo3AvYTII7SOE=\");\n\n_c2 = MobileMapSlice;\n\nvar CityMapSlice = function CityMapSlice(props) {\n  _s3();\n\n  var id = props.id,\n      introText = props.introText,\n      rest = _objectWithoutProperties(props, [\"id\", \"introText\"]);\n\n  var isDesktop = useIsDesktop();\n  return /*#__PURE__*/_jsxDEV(\"section\", {\n    id: id,\n    className: cn(styles.mapSlice),\n    children: [isDesktop && /*#__PURE__*/_jsxDEV(SliceIntro, {\n      text: introText,\n      left: true\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 108,\n      columnNumber: 24\n    }, _this), isDesktop ? /*#__PURE__*/_jsxDEV(DesktopMapSlice, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 111,\n      columnNumber: 15\n    }, _this) : /*#__PURE__*/_jsxDEV(MobileMapSlice, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 112,\n      columnNumber: 15\n    }, _this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 103,\n    columnNumber: 7\n  }, _this);\n};\n\n_s3(CityMapSlice, \"LPvPO2c3CxR8xrtzm1E56phj+VA=\", false, function () {\n  return [useIsDesktop];\n});\n\n_c3 = CityMapSlice;\nexport default CityMapSlice;\n\nvar _c, _c2, _c3;\n\n$RefreshReg$(_c, \"DesktopMapSlice\");\n$RefreshReg$(_c2, \"MobileMapSlice\");\n$RefreshReg$(_c3, \"CityMapSlice\");","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/CityMapSlice/CityMapSlice.js"],"names":["cn","MapContainer","useIsDesktop","useState","SliceIntro","TabsSlice","styles","HousesList","HouseItem","DesktopMapSlice","houses","searchPlaceholder","loadMoreCities","highlightCity","setHighlightCity","handleMouseEvent","type","slug","tabsContainer","listContainer","mapContainer","MobileMapSlice","highlightHouse","setHighlightHouse","label","key","render","houseItem","filter","house","CityMapSlice","props","id","introText","rest","isDesktop","mapSlice"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport MapContainer from 'components/mapContainer/MapContainer'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport { useState } from 'react'\nimport SliceIntro from 'slices/SliceIntro/SliceIntro'\nimport TabsSlice from 'slices/TabsSlice/TabsSlice'\nimport styles from './CityMapSlice.module.scss'\nimport HousesList, { HouseItem } from './HousesList'\n\n\nconst DesktopMapSlice = ({ houses, searchPlaceholder, loadMoreCities, }) => {\n\n   // TODO highlightCity => highlightHouse\n   const [highlightCity, setHighlightCity] = useState('')\n\n   const handleMouseEvent = (type, slug) => {\n      setHighlightCity(type == 'mouseover' ? slug : '')\n   }\n\n   return <div className={cn(styles.tabsContainer)}>\n      <div className={cn(styles.listContainer)}>\n         <HousesList\n            houses={houses}\n            handleMouseEvent={handleMouseEvent}\n            highlightCity={highlightCity}\n            placeholder={searchPlaceholder}\n            loadMore={loadMoreCities}\n         />\n      </div>\n      <div className={cn(styles.mapContainer)}>\n         <MapContainer\n            houses={houses}\n            handleMouseEvent={handleMouseEvent}\n            highlightCity={highlightCity}\n         />\n      </div>\n   </div>\n}\n\nconst MobileMapSlice = ({ houses, searchPlaceholder, loadMoreCities, }) => {\n\n   const [highlightHouse, setHighlightHouse] = useState(null)\n\n   const handleMouseEvent = (type, slug) => {\n      if(type == 'click') {\n         setHighlightHouse(highlightHouse == slug ? null : slug)\n      }\n      if(type == 'mapClick') {\n         setHighlightHouse(null)\n      }\n   }\n\n   return (\n\n      <TabsSlice\n         tabs={[\n            {\n               label: 'Nos habitations', key: 'list',\n               render: () => (\n                  <div key='list' className={cn(styles.listContainer)}>\n                     <HousesList\n                        houses={houses}\n                        placeholder={searchPlaceholder}\n                        loadMore={loadMoreCities}\n                     />\n                  </div>\n               )\n            },\n            {\n               label: 'Carte', key: 'map',\n               render: () => (\n                  <div key='map' className={cn(styles.mapContainer)}>\n                     <MapContainer\n                        houses={houses}\n                        handleMouseEvent={handleMouseEvent}\n                        highlightHouse={highlightHouse}\n                        centerOn={highlightHouse}\n\n                        overlayKey={highlightHouse}\n                        overlay={highlightHouse && <HouseItem\n                              className={cn(styles.houseItem)}\n                              light\n                              house={houses.filter(house => house.slug == highlightHouse)[0]}\n                              onClose={() => setHighlightHouse(null)}\n                           />}\n                     />\n                  </div>\n               )\n            },\n         ]}\n      />\n   )\n}\n\nconst CityMapSlice = (props) => {\n\n   const { id, introText, ...rest } = props\n\n   const isDesktop = useIsDesktop()\n\n   return (\n      <section\n         id={id}\n         className={cn(styles.mapSlice)}\n      >\n\n         {isDesktop && <SliceIntro text={introText} left />}\n\n         {isDesktop\n            ? <DesktopMapSlice {...rest} />\n            : <MobileMapSlice {...rest} />\n         }\n\n      </section>\n   )\n}\n\n\nexport default CityMapSlice\n\n"]},"metadata":{},"sourceType":"module"}