{"ast":null,"code":"import { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nvar _jsxFileName = \"/home/gkkdzdg/www/src/slices/CityMapSlice/CityMapSlice.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 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\nconst DesktopMapSlice = ({\n  houses,\n  searchPlaceholder,\n  loadMoreCities\n}) => {\n  // TODO highlightCity => highlightHouse\n  const {\n    0: highlightCity,\n    1: setHighlightCity\n  } = useState('');\n\n  const 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\nconst MobileMapSlice = ({\n  houses,\n  searchPlaceholder,\n  loadMoreCities\n}) => {\n  const {\n    0: highlightHouse,\n    1: setHighlightHouse\n  } = useState(null);\n\n  const 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: () => /*#__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      label: 'Carte',\n      key: 'map',\n      render: () => /*#__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(house => house.slug == highlightHouse)[0],\n            onClose: () => setHighlightHouse(null)\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  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 56,\n    columnNumber: 7\n  }, this);\n};\n\nconst CityMapSlice = props => {\n  const {\n    id,\n    introText\n  } = props,\n        rest = _objectWithoutProperties(props, [\"id\", \"introText\"]);\n\n  const 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\nexport default 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":";;;;;;;;;;;;;AACA,OAAOA,EAAP,MAAe,YAAf;AACA,OAAOC,YAAP,MAAyB,sCAAzB;AACA,SAASC,YAAT,QAA6B,mBAA7B;AACA,SAASC,QAAT,QAAyB,OAAzB;AACA,OAAOC,UAAP,MAAuB,8BAAvB;AACA,OAAOC,SAAP,MAAsB,4BAAtB;AACA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,UAAP,IAAqBC,SAArB,QAAsC,cAAtC;;AAGA,MAAMC,eAAe,GAAG,CAAC;AAAEC,EAAAA,MAAF;AAAUC,EAAAA,iBAAV;AAA6BC,EAAAA;AAA7B,CAAD,KAAoD;AAEzE;AACA,QAAM;AAAA,OAACC,aAAD;AAAA,OAAgBC;AAAhB,MAAoCX,QAAQ,CAAC,EAAD,CAAlD;;AAEA,QAAMY,gBAAgB,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;AACtCH,IAAAA,gBAAgB,CAACE,IAAI,IAAI,WAAR,GAAsBC,IAAtB,GAA6B,EAA9B,CAAhB;AACF,GAFD;;AAIA,sBAAO;AAAK,IAAA,SAAS,EAAEjB,EAAE,CAACM,MAAM,CAACY,aAAR,CAAlB;AAAA,4BACJ;AAAK,MAAA,SAAS,EAAElB,EAAE,CAACM,MAAM,CAACa,aAAR,CAAlB;AAAA,6BACG,QAAC,UAAD;AACG,QAAA,MAAM,EAAET,MADX;AAEG,QAAA,gBAAgB,EAAEK,gBAFrB;AAGG,QAAA,aAAa,EAAEF,aAHlB;AAIG,QAAA,WAAW,EAAEF,iBAJhB;AAKG,QAAA,QAAQ,EAAEC;AALb;AAAA;AAAA;AAAA;AAAA;AADH;AAAA;AAAA;AAAA;AAAA,YADI,eAUJ;AAAK,MAAA,SAAS,EAAEZ,EAAE,CAACM,MAAM,CAACc,YAAR,CAAlB;AAAA,6BACG,QAAC,YAAD;AACG,QAAA,MAAM,EAAEV,MADX;AAEG,QAAA,gBAAgB,EAAEK,gBAFrB;AAGG,QAAA,aAAa,EAAEF;AAHlB;AAAA;AAAA;AAAA;AAAA;AADH;AAAA;AAAA;AAAA;AAAA,YAVI;AAAA;AAAA;AAAA;AAAA;AAAA,UAAP;AAkBF,CA3BD;;AA6BA,MAAMQ,cAAc,GAAG,CAAC;AAAEX,EAAAA,MAAF;AAAUC,EAAAA,iBAAV;AAA6BC,EAAAA;AAA7B,CAAD,KAAoD;AAExE,QAAM;AAAA,OAACU,cAAD;AAAA,OAAiBC;AAAjB,MAAsCpB,QAAQ,CAAC,IAAD,CAApD;;AAEA,QAAMY,gBAAgB,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;AACtC,QAAGD,IAAI,IAAI,OAAX,EAAoB;AACjBO,MAAAA,iBAAiB,CAACD,cAAc,IAAIL,IAAlB,GAAyB,IAAzB,GAAgCA,IAAjC,CAAjB;AACF;;AACD,QAAGD,IAAI,IAAI,UAAX,EAAuB;AACpBO,MAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACF;AACH,GAPD;;AASA,sBAEG,QAAC,SAAD;AACG,IAAA,IAAI,EAAE,CACH;AACGC,MAAAA,KAAK,EAAE,iBADV;AAC6BC,MAAAA,GAAG,EAAE,MADlC;AAEGC,MAAAA,MAAM,EAAE,mBACL;AAAgB,QAAA,SAAS,EAAE1B,EAAE,CAACM,MAAM,CAACa,aAAR,CAA7B;AAAA,+BACG,QAAC,UAAD;AACG,UAAA,MAAM,EAAET,MADX;AAEG,UAAA,WAAW,EAAEC,iBAFhB;AAGG,UAAA,QAAQ,EAAEC;AAHb;AAAA;AAAA;AAAA;AAAA;AADH,SAAS,MAAT;AAAA;AAAA;AAAA;AAAA;AAHN,KADG,EAaH;AACGY,MAAAA,KAAK,EAAE,OADV;AACmBC,MAAAA,GAAG,EAAE,KADxB;AAEGC,MAAAA,MAAM,EAAE,mBACL;AAAe,QAAA,SAAS,EAAE1B,EAAE,CAACM,MAAM,CAACc,YAAR,CAA5B;AAAA,+BACG,QAAC,YAAD;AACG,UAAA,MAAM,EAAEV,MADX;AAEG,UAAA,gBAAgB,EAAEK,gBAFrB;AAGG,UAAA,cAAc,EAAEO,cAHnB;AAIG,UAAA,QAAQ,EAAEA,cAJb;AAMG,UAAA,UAAU,EAAEA,cANf;AAOG,UAAA,OAAO,EAAEA,cAAc,iBAAI,QAAC,SAAD;AACrB,YAAA,SAAS,EAAEtB,EAAE,CAACM,MAAM,CAACqB,SAAR,CADQ;AAErB,YAAA,KAAK,MAFgB;AAGrB,YAAA,KAAK,EAAEjB,MAAM,CAACkB,MAAP,CAAcC,KAAK,IAAIA,KAAK,CAACZ,IAAN,IAAcK,cAArC,EAAqD,CAArD,CAHc;AAIrB,YAAA,OAAO,EAAE,MAAMC,iBAAiB,CAAC,IAAD;AAJX;AAAA;AAAA;AAAA;AAAA;AAP9B;AAAA;AAAA;AAAA;AAAA;AADH,SAAS,KAAT;AAAA;AAAA;AAAA;AAAA;AAHN,KAbG;AADT;AAAA;AAAA;AAAA;AAAA,UAFH;AAwCF,CArDD;;AAuDA,MAAMO,YAAY,GAAIC,KAAD,IAAW;AAE7B,QAAM;AAAEC,IAAAA,EAAF;AAAMC,IAAAA;AAAN,MAA6BF,KAAnC;AAAA,QAA0BG,IAA1B,4BAAmCH,KAAnC;;AAEA,QAAMI,SAAS,GAAGjC,YAAY,EAA9B;AAEA,sBACG;AACG,IAAA,EAAE,EAAE8B,EADP;AAEG,IAAA,SAAS,EAAEhC,EAAE,CAACM,MAAM,CAAC8B,QAAR,CAFhB;AAAA,eAKID,SAAS,iBAAI,QAAC,UAAD;AAAY,MAAA,IAAI,EAAEF,SAAlB;AAA6B,MAAA,IAAI;AAAjC;AAAA;AAAA;AAAA;AAAA,YALjB,EAOIE,SAAS,gBACL,QAAC,eAAD,oBAAqBD,IAArB;AAAA;AAAA;AAAA;AAAA,YADK,gBAEL,QAAC,cAAD,oBAAoBA,IAApB;AAAA;AAAA;AAAA;AAAA,YATR;AAAA;AAAA;AAAA;AAAA;AAAA,UADH;AAeF,CArBD;;AAwBA,eAAeJ,YAAf","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"}