{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nvar _jsxFileName = \"/home/gkkdzdg/www/src/slices/MapSlice/CitiesList.js\",\n    _this = this,\n    _s = $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 React from \"react\";\nimport cn from 'classnames';\nimport { ArrowWithLine } from 'components/gui/Arrow';\nimport BoxButton from 'components/gui/BoxButton';\nimport List from 'components/list/List';\nimport useLocale from 'contexts/useLocale';\nimport useLocaleDate from 'contexts/useLocaleDate';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport HTMLReactParser from 'html-react-parser';\nimport Link from 'next/link';\n\nvar AccommodationsCountSVG = function AccommodationsCountSVG(props) {\n  return /*#__PURE__*/_jsxDEV(\"svg\", _objectSpread(_objectSpread({}, props), {}, {\n    children: [/*#__PURE__*/_jsxDEV(\"path\", {\n      fill: \"#000\",\n      d: \"M0 11h20v10H0zM10 0l10 11H0L10 0z\"\n    }, void 0, false, void 0, this), /*#__PURE__*/_jsxDEV(\"circle\", {\n      cx: \"19.5\",\n      cy: \"7.5\",\n      r: \"7.5\",\n      fill: \"#fff\"\n    }, void 0, false, void 0, this)]\n  }), void 0, true, void 0, this);\n};\n\n_c3 = AccommodationsCountSVG;\nAccommodationsCountSVG.defaultProps = {\n  width: \"28\",\n  height: \"21\",\n  viewBox: \"0 0 28 21\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nimport styles from './CitiesList.module.scss';\nexport var CityItem = function CityItem(_ref) {\n  _s();\n\n  var className = _ref.className,\n      city = _ref.city,\n      highlight = _ref.highlight,\n      onMouseEvent = _ref.onMouseEvent,\n      light = _ref.light;\n  var accommodationsCount = city.houses.reduce(function (acc, curr) {\n    return acc + curr.accommodationsCount;\n  }, 0);\n  var availableCount = city.houses.reduce(function (acc, curr) {\n    return acc + curr.availableCount;\n  }, 0);\n  var locale = useLocale();\n  var accommodationsCountHtml = locale(\"houses-count\", accommodationsCount).replace('#', \"<span class='bold'>\".concat(accommodationsCount, \"</span>\"));\n  var availableCountHtml = availableCount == 0 ? \"\".concat(locale(\"all-houses-full\")) : locale(\"available-accommodations\", availableCount).replace('#', \"<span class='bold'>\".concat(availableCount, \"</span>\"));\n  var openingDateStr = useLocaleDate(city.openingDate);\n  var isDesktop = useIsDesktop();\n  return (\n    /*#__PURE__*/\n    // <Link href={city.url}>\n    _jsxDEV(\"li\", {\n      onMouseOver: onMouseEvent,\n      onMouseOut: onMouseEvent,\n      className: cn(styles.listItem, city.open ? styles.opened : styles.notOpened, highlight && styles.highlight, light && styles.light, className),\n      children: isDesktop ? /*#__PURE__*/_jsxDEV(\"div\", {\n        className: cn(styles.itemInner),\n        children: /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.grid),\n          children: [/*#__PURE__*/_jsxDEV(\"div\", {\n            className: cn(styles.nameContainer),\n            children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n              className: cn('h--2'),\n              children: city.title\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 55,\n              columnNumber: 22\n            }, _this), city.areas && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: cn('p--m'),\n              children: city.areas\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 56,\n              columnNumber: 37\n            }, _this), !city.open && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: cn('p--m'),\n              children: openingDateStr ? locale('opening-on-date').replace('{date}', openingDateStr) : locale('opening-unknown-date')\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 58,\n              columnNumber: 25\n            }, _this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 54,\n            columnNumber: 19\n          }, _this), city.open && /*#__PURE__*/_jsxDEV(_Fragment, {\n            children: /*#__PURE__*/_jsxDEV(\"div\", {\n              className: cn(styles.infosContainer),\n              children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                className: cn(styles.infosRollOut),\n                children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                  className: cn(styles.infosHalf),\n                  children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n                    className: cn('h--2'),\n                    children: accommodationsCount\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 70,\n                    columnNumber: 31\n                  }, _this), /*#__PURE__*/_jsxDEV(\"p\", {\n                    className: cn('p--m'),\n                    children: \"Habitations\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 71,\n                    columnNumber: 31\n                  }, _this), /*#__PURE__*/_jsxDEV(\"p\", {\n                    className: cn('p--m'),\n                    children: \"compose.\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 72,\n                    columnNumber: 31\n                  }, _this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 69,\n                  columnNumber: 28\n                }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  className: cn(styles.infosHalf),\n                  children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n                    className: cn('h--2'),\n                    children: availableCount\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 75,\n                    columnNumber: 31\n                  }, _this), /*#__PURE__*/_jsxDEV(\"p\", {\n                    className: cn('p--m'),\n                    children: \"Appartements\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 76,\n                    columnNumber: 31\n                  }, _this), /*#__PURE__*/_jsxDEV(\"p\", {\n                    className: cn('p--m'),\n                    children: \"disponibles.\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 77,\n                    columnNumber: 31\n                  }, _this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 74,\n                  columnNumber: 28\n                }, _this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 68,\n                columnNumber: 25\n              }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n                className: cn(styles.infosRollOver),\n                children: /*#__PURE__*/_jsxDEV(BoxButton, {\n                  href: city.url,\n                  label: locale('discover'),\n                  fullWidth: true,\n                  icon: \"right\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 82,\n                  columnNumber: 28\n                }, _this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 81,\n                columnNumber: 25\n              }, _this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 67,\n              columnNumber: 22\n            }, _this)\n          }, void 0, false)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 53,\n          columnNumber: 16\n        }, _this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 51,\n        columnNumber: 13\n      }, _this) : /*#__PURE__*/_jsxDEV(_Fragment, {\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: cn('h--3'),\n          children: city.title\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 97,\n          columnNumber: 16\n        }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.grid),\n          children: [/*#__PURE__*/_jsxDEV(\"div\", {\n            className: cn(styles.nameContainer),\n            children: [city.areas && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: cn('p--m'),\n              children: city.areas\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 101,\n              columnNumber: 37\n            }, _this), !city.open && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: cn('p--m'),\n              children: openingDateStr ? locale('opening-on-date').replace('{date}', openingDateStr) : locale('opening-unknown-date')\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 103,\n              columnNumber: 25\n            }, _this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 100,\n            columnNumber: 19\n          }, _this), city.open && /*#__PURE__*/_jsxDEV(\"div\", {\n            className: cn(styles.infosContainer),\n            children: [/*#__PURE__*/_jsxDEV(\"p\", {\n              className: cn('p--m'),\n              children: HTMLReactParser(accommodationsCountHtml)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 113,\n              columnNumber: 25\n            }, _this), availableCountHtml && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: cn('p--m'),\n              children: HTMLReactParser(availableCountHtml)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 114,\n              columnNumber: 48\n            }, _this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 112,\n            columnNumber: 22\n          }, _this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 99,\n          columnNumber: 16\n        }, _this), city.open && /*#__PURE__*/_jsxDEV(\"div\", {\n          className: cn(styles.buttonCont),\n          children: /*#__PURE__*/_jsxDEV(BoxButton, {\n            href: city.url,\n            label: locale('discover'),\n            fullWidth: true,\n            icon: \"right\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 122,\n            columnNumber: 22\n          }, _this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 121,\n          columnNumber: 19\n        }, _this)]\n      }, void 0, true)\n    }, city._id, false, {\n      fileName: _jsxFileName,\n      lineNumber: 37,\n      columnNumber: 7\n    }, _this) // </Link>\n\n  );\n};\n\n_s(CityItem, \"iE9CMfTN5iViKI886yL7v/MFAxY=\", false, function () {\n  return [useLocale, useLocaleDate, useIsDesktop];\n});\n\n_c = CityItem;\nvar defaultShowMobile = 4;\n\nvar CitiesList = function CitiesList(_ref2) {\n  var cities = _ref2.cities,\n      highlightCity = _ref2.highlightCity,\n      handleMouseEvent = _ref2.handleMouseEvent,\n      placeholder = _ref2.placeholder,\n      loadMore = _ref2.loadMore;\n  return /*#__PURE__*/_jsxDEV(List, {\n    classNameList: cn(styles.list),\n    classNameSearch: cn(styles.searchBox),\n    items: cities //.flatMap(city => [city, { ...city, id: city.id + '-2' }])}\n    ,\n    renderItem: function renderItem(city) {\n      return /*#__PURE__*/_jsxDEV(CityItem, {\n        city: city,\n        highlight: city.slug == highlightCity,\n        onMouseEvent: handleMouseEvent && function (event) {\n          return handleMouseEvent(event.type, city.slug);\n        }\n      }, city._id, false, {\n        fileName: _jsxFileName,\n        lineNumber: 148,\n        columnNumber: 10\n      }, _this);\n    },\n    searchFilter: function searchFilter(city, input) {\n      return city.title.toLowerCase().includes(input) || city.department && city.department.toLowerCase().includes(input) || city.areas && city.areas.toLowerCase().includes(input);\n    },\n    limit: defaultShowMobile,\n    placeholder: placeholder,\n    loadMore: loadMore\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 142,\n    columnNumber: 11\n  }, _this);\n};\n\n_c2 = CitiesList;\nexport default CitiesList;\n\nvar _c, _c2, _c3;\n\n$RefreshReg$(_c, \"CityItem\");\n$RefreshReg$(_c2, \"CitiesList\");\n$RefreshReg$(_c3, \"AccommodationsCountSVG\");","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/MapSlice/CitiesList.js"],"names":["cn","ArrowWithLine","BoxButton","List","useLocale","useLocaleDate","useIsDesktop","HTMLReactParser","Link","AccommodationsCountSVG","styles","CityItem","className","city","highlight","onMouseEvent","light","accommodationsCount","houses","reduce","acc","curr","availableCount","locale","accommodationsCountHtml","replace","availableCountHtml","openingDateStr","openingDate","isDesktop","listItem","open","opened","notOpened","itemInner","grid","nameContainer","title","areas","infosContainer","infosRollOut","infosHalf","infosRollOver","url","buttonCont","_id","defaultShowMobile","CitiesList","cities","highlightCity","handleMouseEvent","placeholder","loadMore","list","searchBox","slug","event","type","input","toLowerCase","includes","department"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport { ArrowWithLine } from 'components/gui/Arrow'\nimport BoxButton from 'components/gui/BoxButton'\nimport List from 'components/list/List'\nimport useLocale from 'contexts/useLocale'\nimport useLocaleDate from 'contexts/useLocaleDate'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport HTMLReactParser from 'html-react-parser'\nimport Link from 'next/link'\nimport AccommodationsCountSVG from '../../svgs/accommodationsCount.svg'\nimport styles from './CitiesList.module.scss'\n\n\n\nexport const CityItem = ({ className, city, highlight, onMouseEvent, light, }) => {\n\n   const accommodationsCount = city.houses.reduce((acc, curr) => acc + curr.accommodationsCount, 0)\n   const availableCount = city.houses.reduce((acc, curr) => acc + curr.availableCount, 0)\n\n   const locale = useLocale()\n\n   const accommodationsCountHtml = locale(`houses-count`, accommodationsCount)\n      .replace('#', `<span class='bold'>${accommodationsCount}</span>`)\n\n   const availableCountHtml = availableCount == 0\n      ? `${locale(`all-houses-full`)}`\n      : locale(`available-accommodations`, availableCount)\n         .replace('#', `<span class='bold'>${availableCount}</span>`)\n\n   const openingDateStr = useLocaleDate(city.openingDate)\n\n   const isDesktop = useIsDesktop()\n\n   return (\n      // <Link href={city.url}>\n      <li\n         key={city._id}\n         onMouseOver={onMouseEvent}\n         onMouseOut={onMouseEvent}\n         className={cn(styles.listItem,\n            city.open ? styles.opened : styles.notOpened,\n            highlight && styles.highlight,\n            light && styles.light,\n            className,\n         )}\n      >\n\n         {isDesktop\n            ?\n            <div className={cn(styles.itemInner)}>\n\n               <div className={cn(styles.grid)}>\n                  <div className={cn(styles.nameContainer,)}>\n                     <h3 className={cn('h--2')}>{city.title}</h3>\n                     {city.areas && <p className={cn('p--m')}>{city.areas}</p>}\n                     {!city.open &&\n                        <p className={cn('p--m')}>{\n                           openingDateStr\n                              ? locale('opening-on-date').replace('{date}', openingDateStr)\n                              : locale('opening-unknown-date')\n                        }</p>\n                     }\n                  </div>\n\n                  {city.open && (<>\n                     <div className={cn(styles.infosContainer,)}>\n                        <div className={cn(styles.infosRollOut,)}>\n                           <div className={cn(styles.infosHalf,)}>\n                              <h3 className={cn('h--2')}>{accommodationsCount}</h3>\n                              <p className={cn('p--m')}>Habitations</p>\n                              <p className={cn('p--m')}>compose.</p>\n                           </div>\n                           <div className={cn(styles.infosHalf,)}>\n                              <h3 className={cn('h--2')}>{availableCount}</h3>\n                              <p className={cn('p--m')}>Appartements</p>\n                              <p className={cn('p--m')}>disponibles.</p>\n                           </div>\n                        </div>\n\n                        <div className={cn(styles.infosRollOver,)}>\n                           <BoxButton\n                              href={city.url}\n                              label={locale('discover')}\n                              fullWidth\n                              icon='right'\n                           />\n                        </div>\n                     </div>\n                  </>)\n                  }\n\n               </div>\n            </div>\n            :\n            <>\n               <h3 className={cn('h--3')}>{city.title}</h3>\n\n               <div className={cn(styles.grid)}>\n                  <div className={cn(styles.nameContainer,)}>\n                     {city.areas && <p className={cn('p--m')}>{city.areas}</p>}\n                     {!city.open &&\n                        <p className={cn('p--m')}>{\n                           openingDateStr\n                              ? locale('opening-on-date').replace('{date}', openingDateStr)\n                              : locale('opening-unknown-date')\n                        }</p>\n                     }\n                  </div>\n\n                  {city.open &&\n                     <div className={cn(styles.infosContainer,)}>\n                        <p className={cn('p--m')}>{HTMLReactParser(accommodationsCountHtml)}</p>\n                        {availableCountHtml && <p className={cn('p--m')}>{HTMLReactParser(availableCountHtml)}</p>}\n                     </div>\n                  }\n\n               </div>\n\n               {city.open &&\n                  <div className={cn(styles.buttonCont,)}>\n                     <BoxButton\n                        href={city.url}\n                        label={locale('discover')}\n                        fullWidth\n                        icon='right'\n                     />\n                  </div>\n               }\n            </>\n         }\n\n      </li>\n      // </Link>\n   )\n}\n\nconst defaultShowMobile = 4\n\nconst CitiesList = ({ cities, highlightCity, handleMouseEvent, placeholder, loadMore, }) => {\n\n   return <List\n      classNameList={cn(styles.list)}\n      classNameSearch={cn(styles.searchBox)}\n      items={cities}//.flatMap(city => [city, { ...city, id: city.id + '-2' }])}\n\n      renderItem={city =>\n         <CityItem\n            key={city._id}\n            city={city}\n            highlight={city.slug == highlightCity}\n            onMouseEvent={handleMouseEvent && (event => handleMouseEvent(event.type, city.slug))}\n         />\n      }\n\n      searchFilter={\n         (city, input) =>\n            city.title.toLowerCase().includes(input)\n            || (city.department && city.department.toLowerCase().includes(input))\n            || (city.areas && city.areas.toLowerCase().includes(input))\n      }\n\n      limit={defaultShowMobile}\n      placeholder={placeholder}\n      loadMore={loadMore}\n   />\n}\n\nexport default CitiesList\n\n"]},"metadata":{},"sourceType":"module"}