{"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/MapSlice/CitiesList.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\nimport React from \"react\";\nimport cn from 'classnames';\nimport CustomLink from 'components/customLink/CustomLink';\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\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 const CityItem = ({\n  className,\n  city,\n  highlight,\n  onMouseEvent,\n  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  const locale = useLocale();\n  const accommodationsCountHtml = locale(`houses-count`, accommodationsCount).replace('#', `<span class='bold'>${accommodationsCount}</span>`);\n  const availableCountHtml = availableCount == 0 ? `${locale(`all-houses-full`)}` : locale(`available-accommodations`, availableCount).replace('#', `<span class='bold'>${availableCount}</span>`);\n  const openingDateStr = useLocaleDate(city.openingDate);\n  const isDesktop = useIsDesktop();\n  return (\n    /*#__PURE__*/\n    // <Link href={city.url}>\n    _jsxDEV(CustomLink, {\n      href: city.open && city.url,\n      children: /*#__PURE__*/_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: 57,\n                columnNumber: 25\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: 58,\n                columnNumber: 40\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: 60,\n                columnNumber: 28\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 56,\n              columnNumber: 22\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: 72,\n                      columnNumber: 34\n                    }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                      className: cn('p--m'),\n                      children: \"Habitations\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 73,\n                      columnNumber: 34\n                    }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                      className: cn('p--m'),\n                      children: \"compose.\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 74,\n                      columnNumber: 34\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 71,\n                    columnNumber: 31\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: 77,\n                      columnNumber: 34\n                    }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                      className: cn('p--m'),\n                      children: \"Appartements\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 78,\n                      columnNumber: 34\n                    }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                      className: cn('p--m'),\n                      children: \"disponibles.\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 79,\n                      columnNumber: 34\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 76,\n                    columnNumber: 31\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 70,\n                  columnNumber: 28\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  className: cn(styles.infosRollOver),\n                  children: /*#__PURE__*/_jsxDEV(BoxButton // href={city.url}\n                  , {\n                    label: locale('discover'),\n                    fullWidth: true,\n                    icon: \"right\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 84,\n                    columnNumber: 31\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 83,\n                  columnNumber: 28\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 69,\n                columnNumber: 25\n              }, this)\n            }, void 0, false)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 55,\n            columnNumber: 19\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 53,\n          columnNumber: 16\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: 99,\n            columnNumber: 19\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: 103,\n                columnNumber: 40\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: 105,\n                columnNumber: 28\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 102,\n              columnNumber: 22\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: 115,\n                columnNumber: 28\n              }, this), availableCountHtml && /*#__PURE__*/_jsxDEV(\"p\", {\n                className: cn('p--m'),\n                children: HTMLReactParser(availableCountHtml)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 116,\n                columnNumber: 51\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 114,\n              columnNumber: 25\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 101,\n            columnNumber: 19\n          }, this), city.open && /*#__PURE__*/_jsxDEV(\"div\", {\n            className: cn(styles.buttonCont),\n            children: /*#__PURE__*/_jsxDEV(BoxButton // href={city.url}\n            , {\n              label: locale('discover'),\n              fullWidth: true,\n              icon: \"right\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 124,\n              columnNumber: 25\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 123,\n            columnNumber: 22\n          }, this)]\n        }, void 0, true)\n      }, city._id, false, {\n        fileName: _jsxFileName,\n        lineNumber: 39,\n        columnNumber: 10\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 38,\n      columnNumber: 7\n    }, this)\n  );\n};\nconst defaultShowMobile = 4;\n\nconst CitiesList = ({\n  cities,\n  highlightCity,\n  handleMouseEvent,\n  placeholder,\n  loadMore\n}) => {\n  return /*#__PURE__*/_jsxDEV(List, {\n    classNameList: cn(styles.list),\n    items: cities //.flatMap(city => [city, { ...city, id: city.id + '-2' }])}\n    ,\n    renderItem: city => /*#__PURE__*/_jsxDEV(CityItem, {\n      city: city,\n      highlight: city.slug == highlightCity,\n      onMouseEvent: handleMouseEvent && (event => handleMouseEvent(event.type, city.slug))\n    }, city._id, false, {\n      fileName: _jsxFileName,\n      lineNumber: 149,\n      columnNumber: 10\n    }, this),\n    searchFilter: (city, input) => city.title.toLowerCase().includes(input) || city.department && city.department.toLowerCase().includes(input) || city.areas && city.areas.toLowerCase().includes(input),\n    limit: defaultShowMobile,\n    placeholder: placeholder,\n    loadMore: loadMore\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 144,\n    columnNumber: 11\n  }, this);\n};\n\nexport default CitiesList;","map":{"version":3,"sources":["/home/gkkdzdg/www/src/slices/MapSlice/CitiesList.js"],"names":["cn","CustomLink","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","open","url","listItem","opened","notOpened","itemInner","grid","nameContainer","title","areas","infosContainer","infosRollOut","infosHalf","infosRollOver","buttonCont","_id","defaultShowMobile","CitiesList","cities","highlightCity","handleMouseEvent","placeholder","loadMore","list","slug","event","type","input","toLowerCase","includes","department"],"mappings":";;;;;;;;;;;AACA,OAAOA,EAAP,MAAe,YAAf;AACA,OAAOC,UAAP,MAAuB,kCAAvB;AACA,SAASC,aAAT,QAA8B,sBAA9B;AACA,OAAOC,SAAP,MAAsB,0BAAtB;AACA,OAAOC,IAAP,MAAiB,sBAAjB;AACA,OAAOC,SAAP,MAAsB,oBAAtB;AACA,OAAOC,aAAP,MAA0B,wBAA1B;AACA,SAASC,YAAT,QAA6B,mBAA7B;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AACA,OAAOC,IAAP,MAAiB,WAAjB;;IACOC,sB,YAAAA,sB;;;;;;;;;;;;;;AAAAA,sB;;;;;;;AACP,OAAOC,MAAP,MAAmB,0BAAnB;AAIA,OAAO,MAAMC,QAAQ,GAAG,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,IAAb;AAAmBC,EAAAA,SAAnB;AAA8BC,EAAAA,YAA9B;AAA4CC,EAAAA;AAA5C,CAAD,KAA0D;AAE/E,QAAMC,mBAAmB,GAAGJ,IAAI,CAACK,MAAL,CAAYC,MAAZ,CAAmB,CAACC,GAAD,EAAMC,IAAN,KAAeD,GAAG,GAAGC,IAAI,CAACJ,mBAA7C,EAAkE,CAAlE,CAA5B;AACA,QAAMK,cAAc,GAAGT,IAAI,CAACK,MAAL,CAAYC,MAAZ,CAAmB,CAACC,GAAD,EAAMC,IAAN,KAAeD,GAAG,GAAGC,IAAI,CAACC,cAA7C,EAA6D,CAA7D,CAAvB;AAEA,QAAMC,MAAM,GAAGnB,SAAS,EAAxB;AAEA,QAAMoB,uBAAuB,GAAGD,MAAM,CAAE,cAAF,EAAiBN,mBAAjB,CAAN,CAC5BQ,OAD4B,CACpB,GADoB,EACd,sBAAqBR,mBAAoB,SAD3B,CAAhC;AAGA,QAAMS,kBAAkB,GAAGJ,cAAc,IAAI,CAAlB,GACrB,GAAEC,MAAM,CAAE,iBAAF,CAAoB,EADP,GAEtBA,MAAM,CAAE,0BAAF,EAA6BD,cAA7B,CAAN,CACEG,OADF,CACU,GADV,EACgB,sBAAqBH,cAAe,SADpD,CAFL;AAKA,QAAMK,cAAc,GAAGtB,aAAa,CAACQ,IAAI,CAACe,WAAN,CAApC;AAEA,QAAMC,SAAS,GAAGvB,YAAY,EAA9B;AAEA;AAAA;AACG;AACA,YAAC,UAAD;AAAY,MAAA,IAAI,EAAEO,IAAI,CAACiB,IAAL,IAAajB,IAAI,CAACkB,GAApC;AAAA,6BACG;AAEG,QAAA,WAAW,EAAEhB,YAFhB;AAGG,QAAA,UAAU,EAAEA,YAHf;AAIG,QAAA,SAAS,EAAEhB,EAAE,CAACW,MAAM,CAACsB,QAAR,EACVnB,IAAI,CAACiB,IAAL,GAAYpB,MAAM,CAACuB,MAAnB,GAA4BvB,MAAM,CAACwB,SADzB,EAEVpB,SAAS,IAAIJ,MAAM,CAACI,SAFV,EAGVE,KAAK,IAAIN,MAAM,CAACM,KAHN,EAIVJ,SAJU,CAJhB;AAAA,kBAYIiB,SAAS,gBAEP;AAAK,UAAA,SAAS,EAAE9B,EAAE,CAACW,MAAM,CAACyB,SAAR,CAAlB;AAAA,iCAEG;AAAK,YAAA,SAAS,EAAEpC,EAAE,CAACW,MAAM,CAAC0B,IAAR,CAAlB;AAAA,oCACG;AAAK,cAAA,SAAS,EAAErC,EAAE,CAACW,MAAM,CAAC2B,aAAR,CAAlB;AAAA,sCACG;AAAI,gBAAA,SAAS,EAAEtC,EAAE,CAAC,MAAD,CAAjB;AAAA,0BAA4Bc,IAAI,CAACyB;AAAjC;AAAA;AAAA;AAAA;AAAA,sBADH,EAEIzB,IAAI,CAAC0B,KAAL,iBAAc;AAAG,gBAAA,SAAS,EAAExC,EAAE,CAAC,MAAD,CAAhB;AAAA,0BAA2Bc,IAAI,CAAC0B;AAAhC;AAAA;AAAA;AAAA;AAAA,sBAFlB,EAGI,CAAC1B,IAAI,CAACiB,IAAN,iBACE;AAAG,gBAAA,SAAS,EAAE/B,EAAE,CAAC,MAAD,CAAhB;AAAA,0BACG4B,cAAc,GACTJ,MAAM,CAAC,iBAAD,CAAN,CAA0BE,OAA1B,CAAkC,QAAlC,EAA4CE,cAA5C,CADS,GAETJ,MAAM,CAAC,sBAAD;AAHd;AAAA;AAAA;AAAA;AAAA,sBAJN;AAAA;AAAA;AAAA;AAAA;AAAA,oBADH,EAaIV,IAAI,CAACiB,IAAL,iBAAc;AAAA,qCACZ;AAAK,gBAAA,SAAS,EAAE/B,EAAE,CAACW,MAAM,CAAC8B,cAAR,CAAlB;AAAA,wCACG;AAAK,kBAAA,SAAS,EAAEzC,EAAE,CAACW,MAAM,CAAC+B,YAAR,CAAlB;AAAA,0CACG;AAAK,oBAAA,SAAS,EAAE1C,EAAE,CAACW,MAAM,CAACgC,SAAR,CAAlB;AAAA,4CACG;AAAI,sBAAA,SAAS,EAAE3C,EAAE,CAAC,MAAD,CAAjB;AAAA,gCAA4BkB;AAA5B;AAAA;AAAA;AAAA;AAAA,4BADH,eAEG;AAAG,sBAAA,SAAS,EAAElB,EAAE,CAAC,MAAD,CAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAFH,eAGG;AAAG,sBAAA,SAAS,EAAEA,EAAE,CAAC,MAAD,CAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAHH;AAAA;AAAA;AAAA;AAAA;AAAA,0BADH,eAMG;AAAK,oBAAA,SAAS,EAAEA,EAAE,CAACW,MAAM,CAACgC,SAAR,CAAlB;AAAA,4CACG;AAAI,sBAAA,SAAS,EAAE3C,EAAE,CAAC,MAAD,CAAjB;AAAA,gCAA4BuB;AAA5B;AAAA;AAAA;AAAA;AAAA,4BADH,eAEG;AAAG,sBAAA,SAAS,EAAEvB,EAAE,CAAC,MAAD,CAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAFH,eAGG;AAAG,sBAAA,SAAS,EAAEA,EAAE,CAAC,MAAD,CAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAHH;AAAA;AAAA;AAAA;AAAA;AAAA,0BANH;AAAA;AAAA;AAAA;AAAA;AAAA,wBADH,eAcG;AAAK,kBAAA,SAAS,EAAEA,EAAE,CAACW,MAAM,CAACiC,aAAR,CAAlB;AAAA,yCACG,QAAC,SAAD,CACG;AADH;AAEG,oBAAA,KAAK,EAAEpB,MAAM,CAAC,UAAD,CAFhB;AAGG,oBAAA,SAAS,MAHZ;AAIG,oBAAA,IAAI,EAAC;AAJR;AAAA;AAAA;AAAA;AAAA;AADH;AAAA;AAAA;AAAA;AAAA,wBAdH;AAAA;AAAA;AAAA;AAAA;AAAA;AADY,6BAblB;AAAA;AAAA;AAAA;AAAA;AAAA;AAFH;AAAA;AAAA;AAAA;AAAA,gBAFO,gBA+CP;AAAA,kCACG;AAAI,YAAA,SAAS,EAAExB,EAAE,CAAC,MAAD,CAAjB;AAAA,sBAA4Bc,IAAI,CAACyB;AAAjC;AAAA;AAAA;AAAA;AAAA,kBADH,eAGG;AAAK,YAAA,SAAS,EAAEvC,EAAE,CAACW,MAAM,CAAC0B,IAAR,CAAlB;AAAA,oCACG;AAAK,cAAA,SAAS,EAAErC,EAAE,CAACW,MAAM,CAAC2B,aAAR,CAAlB;AAAA,yBACIxB,IAAI,CAAC0B,KAAL,iBAAc;AAAG,gBAAA,SAAS,EAAExC,EAAE,CAAC,MAAD,CAAhB;AAAA,0BAA2Bc,IAAI,CAAC0B;AAAhC;AAAA;AAAA;AAAA;AAAA,sBADlB,EAEI,CAAC1B,IAAI,CAACiB,IAAN,iBACE;AAAG,gBAAA,SAAS,EAAE/B,EAAE,CAAC,MAAD,CAAhB;AAAA,0BACG4B,cAAc,GACTJ,MAAM,CAAC,iBAAD,CAAN,CAA0BE,OAA1B,CAAkC,QAAlC,EAA4CE,cAA5C,CADS,GAETJ,MAAM,CAAC,sBAAD;AAHd;AAAA;AAAA;AAAA;AAAA,sBAHN;AAAA;AAAA;AAAA;AAAA;AAAA,oBADH,EAYIV,IAAI,CAACiB,IAAL,iBACE;AAAK,cAAA,SAAS,EAAE/B,EAAE,CAACW,MAAM,CAAC8B,cAAR,CAAlB;AAAA,sCACG;AAAG,gBAAA,SAAS,EAAEzC,EAAE,CAAC,MAAD,CAAhB;AAAA,0BAA2BQ,eAAe,CAACiB,uBAAD;AAA1C;AAAA;AAAA;AAAA;AAAA,sBADH,EAEIE,kBAAkB,iBAAI;AAAG,gBAAA,SAAS,EAAE3B,EAAE,CAAC,MAAD,CAAhB;AAAA,0BAA2BQ,eAAe,CAACmB,kBAAD;AAA1C;AAAA;AAAA;AAAA;AAAA,sBAF1B;AAAA;AAAA;AAAA;AAAA;AAAA,oBAbN;AAAA;AAAA;AAAA;AAAA;AAAA,kBAHH,EAwBIb,IAAI,CAACiB,IAAL,iBACE;AAAK,YAAA,SAAS,EAAE/B,EAAE,CAACW,MAAM,CAACkC,UAAR,CAAlB;AAAA,mCACG,QAAC,SAAD,CACG;AADH;AAEG,cAAA,KAAK,EAAErB,MAAM,CAAC,UAAD,CAFhB;AAGG,cAAA,SAAS,MAHZ;AAIG,cAAA,IAAI,EAAC;AAJR;AAAA;AAAA;AAAA;AAAA;AADH;AAAA;AAAA;AAAA;AAAA,kBAzBN;AAAA;AA3DN,SACQV,IAAI,CAACgC,GADb;AAAA;AAAA;AAAA;AAAA;AADH;AAAA;AAAA;AAAA;AAAA;AAFH;AAsGF,CAzHM;AA2HP,MAAMC,iBAAiB,GAAG,CAA1B;;AAEA,MAAMC,UAAU,GAAG,CAAC;AAAEC,EAAAA,MAAF;AAAUC,EAAAA,aAAV;AAAyBC,EAAAA,gBAAzB;AAA2CC,EAAAA,WAA3C;AAAwDC,EAAAA;AAAxD,CAAD,KAAyE;AAEzF,sBAAO,QAAC,IAAD;AACJ,IAAA,aAAa,EAAErD,EAAE,CAACW,MAAM,CAAC2C,IAAR,CADb;AAEJ,IAAA,KAAK,EAAEL,MAFH,CAEU;AAFV;AAIJ,IAAA,UAAU,EAAEnC,IAAI,iBACb,QAAC,QAAD;AAEG,MAAA,IAAI,EAAEA,IAFT;AAGG,MAAA,SAAS,EAAEA,IAAI,CAACyC,IAAL,IAAaL,aAH3B;AAIG,MAAA,YAAY,EAAEC,gBAAgB,KAAKK,KAAK,IAAIL,gBAAgB,CAACK,KAAK,CAACC,IAAP,EAAa3C,IAAI,CAACyC,IAAlB,CAA9B;AAJjC,OACQzC,IAAI,CAACgC,GADb;AAAA;AAAA;AAAA;AAAA,YALC;AAaJ,IAAA,YAAY,EACT,CAAChC,IAAD,EAAO4C,KAAP,KACG5C,IAAI,CAACyB,KAAL,CAAWoB,WAAX,GAAyBC,QAAzB,CAAkCF,KAAlC,KACI5C,IAAI,CAAC+C,UAAL,IAAmB/C,IAAI,CAAC+C,UAAL,CAAgBF,WAAhB,GAA8BC,QAA9B,CAAuCF,KAAvC,CADvB,IAEI5C,IAAI,CAAC0B,KAAL,IAAc1B,IAAI,CAAC0B,KAAL,CAAWmB,WAAX,GAAyBC,QAAzB,CAAkCF,KAAlC,CAjBpB;AAoBJ,IAAA,KAAK,EAAEX,iBApBH;AAqBJ,IAAA,WAAW,EAAEK,WArBT;AAsBJ,IAAA,QAAQ,EAAEC;AAtBN;AAAA;AAAA;AAAA;AAAA,UAAP;AAwBF,CA1BD;;AA4BA,eAAeL,UAAf","sourcesContent":["\nimport cn from 'classnames'\nimport CustomLink from 'components/customLink/CustomLink'\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      <CustomLink href={city.open && 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      </CustomLink>\n   )\n}\n\nconst defaultShowMobile = 4\n\nconst CitiesList = ({ cities, highlightCity, handleMouseEvent, placeholder, loadMore, }) => {\n\n   return <List\n      classNameList={cn(styles.list)}\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"}