{"ast":null,"code":"import { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nvar _jsxFileName = \"/home/gkkdzdg/www/src/slices/MapSlice/MapSlice.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 CitiesList, { CityItem } from './CitiesList';\nimport styles from './MapSlice.module.scss';\n\nconst DesktopMapSlice = ({\n  cities,\n  searchPlaceholder,\n  loadMoreCities\n}) => {\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(CitiesList, {\n        cities: cities,\n        handleMouseEvent: handleMouseEvent,\n        highlightCity: highlightCity,\n        placeholder: searchPlaceholder,\n        loadMore: loadMoreCities\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 22,\n        columnNumber: 10\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 21,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.mapContainer),\n      children: /*#__PURE__*/_jsxDEV(MapContainer, {\n        cities: cities,\n        centerOnFrance: true,\n        handleMouseEvent: handleMouseEvent,\n        highlightCity: highlightCity\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 31,\n        columnNumber: 10\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 30,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 20,\n    columnNumber: 11\n  }, this);\n};\n\nconst MobileMapSlice = ({\n  listTab,\n  mapTab,\n  cities,\n  searchPlaceholder,\n  loadMoreCities\n}) => {\n  const {\n    0: highlightCity,\n    1: setHighlightCity\n  } = useState(null);\n\n  const handleMouseEvent = (type, slug) => {\n    if (type == 'click') {\n      setHighlightCity(highlightCity == slug ? null : slug);\n    }\n\n    if (type == 'mapClick') {\n      setHighlightCity(null);\n    }\n  };\n\n  return /*#__PURE__*/_jsxDEV(TabsSlice, {\n    tabs: [{\n      label: listTab,\n      key: 'list',\n      render: () => /*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.listContainer),\n        children: /*#__PURE__*/_jsxDEV(CitiesList, {\n          cities: cities,\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: mapTab,\n      key: 'map',\n      render: () => /*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.mapContainer),\n        children: /*#__PURE__*/_jsxDEV(MapContainer, {\n          cities: cities,\n          centerOnFrance: true,\n          handleMouseEvent: handleMouseEvent,\n          highlightCity: highlightCity,\n          centerOn: highlightCity,\n          overlayKey: highlightCity,\n          overlay: highlightCity && /*#__PURE__*/_jsxDEV(CityItem, {\n            className: cn(styles.cityItem),\n            light: true,\n            city: cities.filter(city => city.slug == highlightCity)[0]\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 82,\n            columnNumber: 51\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 MapSlice = 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: [/*#__PURE__*/_jsxDEV(SliceIntro, {\n      text: introText,\n      mobileColor: \"green-grey\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 118,\n      columnNumber: 10\n    }, this), isDesktop ? /*#__PURE__*/_jsxDEV(DesktopMapSlice, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 121,\n      columnNumber: 15\n    }, this) : /*#__PURE__*/_jsxDEV(MobileMapSlice, _objectSpread({}, rest), void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 122,\n      columnNumber: 15\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 113,\n    columnNumber: 7\n  }, this);\n};\n\nexport default MapSlice;","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/MapSlice/MapSlice.js"],"names":["cn","MapContainer","useIsDesktop","useState","SliceIntro","TabsSlice","CitiesList","CityItem","styles","DesktopMapSlice","cities","searchPlaceholder","loadMoreCities","highlightCity","setHighlightCity","handleMouseEvent","type","slug","tabsContainer","listContainer","mapContainer","MobileMapSlice","listTab","mapTab","label","key","render","cityItem","filter","city","MapSlice","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 CitiesList, { CityItem } from './CitiesList'\nimport styles from './MapSlice.module.scss'\n\n\nconst DesktopMapSlice = ({ cities, searchPlaceholder, loadMoreCities, }) => {\n\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         <CitiesList\n            cities={cities}\n            handleMouseEvent={handleMouseEvent}\n            highlightCity={highlightCity}\n            placeholder={searchPlaceholder}\n            loadMore={loadMoreCities}\n         />\n      </div>\n      <div className={cn(styles.mapContainer)}>\n         <MapContainer\n            cities={cities}\n            centerOnFrance={true}\n            handleMouseEvent={handleMouseEvent}\n            highlightCity={highlightCity}\n         />\n      </div>\n   </div>\n}\n\nconst MobileMapSlice = ({ listTab, mapTab, cities, searchPlaceholder, loadMoreCities, }) => {\n\n   const [highlightCity, setHighlightCity] = useState(null)\n\n   const handleMouseEvent = (type, slug) => {\n      if(type == 'click') {\n         setHighlightCity(highlightCity == slug ? null : slug)\n      }\n      if(type == 'mapClick') {\n         setHighlightCity(null)\n      }\n   }\n\n   return (\n\n      <TabsSlice\n         tabs={[\n            {\n               label: listTab, key: 'list',\n               render: () => (\n                  <div key='list' className={cn(styles.listContainer)}>\n                     <CitiesList\n                        cities={cities}\n                        placeholder={searchPlaceholder}\n                        loadMore={loadMoreCities}\n                     />\n                  </div>\n               )\n            },\n            {\n               label: mapTab, key: 'map',\n               render: () => (\n                  <div key='map' className={cn(styles.mapContainer)}>\n                     <MapContainer\n                        cities={cities}\n                        centerOnFrance={true}\n                        handleMouseEvent={handleMouseEvent}\n                        highlightCity={highlightCity}\n                        centerOn={highlightCity}\n\n                        overlayKey={highlightCity}\n                        overlay={highlightCity && <CityItem\n                           className={cn(styles.cityItem)}\n                           light\n                           city={cities.filter(city => city.slug == highlightCity)[0]}\n                           />}\n\n                     />\n                     {/* {highlightCity &&\n                     <div className={cn(styles.mapOverlay,)} key={highlightCity}>\n                        <CityItem\n                           className={cn(styles.cityItem)}\n                           light\n                           city={cities.filter(city => city.slug == highlightCity)[0]}\n                           />\n                     </div>\n                     } */}\n                  </div>\n               )\n            },\n         ]}\n      />\n   )\n}\n\nconst MapSlice = (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         <SliceIntro text={introText} mobileColor='green-grey' />\n\n         {isDesktop\n            ? <DesktopMapSlice {...rest} />\n            : <MobileMapSlice {...rest} />\n         }\n\n      </section>\n   )\n}\n\n\nexport default MapSlice\n\n"]},"metadata":{},"sourceType":"module"}