{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\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 { client, previewClient } from './sanity';\nimport imageUrlBuilder from '@sanity/image-url';\nimport globalData from 'global/globalData'; // - - - - - - - - - - - - - - - - - - - - - helpers\n\nvar excludeDraft = function excludeDraft() {\n  var preview = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  return !preview ? \"&& !(_id in path('drafts.**'))\" : '';\n};\n\nexport var imageBuilder = imageUrlBuilder(client); // - - - - - - - - - - - - - - - - - - - - - locale\n\nvar languages = globalData.languages,\n    defaultLang = globalData.defaultLang; // export async function getLocalisations() {\n// \tconst localisations = await sanity.client.fetch(`*[_id == 'global-localisations']{\n// \t\t'strings': strings[]{\n// \t\t\ttitle, key, ${languages.join(', ')}\n// \t\t}\n// \t}`)\n// \treturn localisations[0].strings\n// }\n// export const getLocalisation = (key, lang) => {\n// \treturn globalData.localisations[key] && globalData.localisations[key][lang]\n// }\n\nexport var localize = function localize(value) {\n  var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : currentLang;\n  var languages = [lang];\n\n  if (Array.isArray(value)) {\n    return value.map(function (v) {\n      return localize(v, languages);\n    });\n  } else if (value && typeof value === 'object') {\n    if (value._type != 'localeImageAlt' && value._type != 'localeSlug' && /^locale[A-Z]/.test(value._type)) {\n      var language = languages.find(function (lang) {\n        return value[lang];\n      });\n      return value[language] || null;\n    }\n\n    return Object.keys(value).reduce(function (result, key) {\n      result[key] = localize(value[key], languages);\n      return result;\n    }, {});\n  }\n\n  return value;\n};\n\nvar enhanceHouses = function enhanceHouses(value, lang) {\n  if (Array.isArray(value)) {\n    return value.map(function (v) {\n      return enhanceHouses(v, lang);\n    });\n  } else {\n    var services = value.services,\n        servicesGlobal = value.servicesGlobal,\n        rest = _objectWithoutProperties(value, [\"services\", \"servicesGlobal\"]);\n\n    var accommodations = value.accommodations || [];\n    var accommodationsCount = value.status == 'future-closed' && value.canApplyAccommodations ? parseInt(value.canApplyAccommodations) : accommodations.length;\n    var availableCount = accommodations.reduce(function (acc, curr) {\n      return acc + (curr.available ? 1 : 0);\n    }, 0);\n    var cheapest = accommodations.reduce(function (acc, curr) {\n      if (!curr.available) return acc;\n      var price = parseInt(curr.price.replace('€', '')); //.replace('$', '').replace(' ', ''))\n\n      return price < acc ? price : acc;\n    }, 9999);\n    var open = value.status == 'open';\n    var fullHouse = accommodations.length > 0 && availableCount == 0;\n    var canApply = value.status != 'future-closed' && !fullHouse;\n    var status = value.status == 'future-closed' ? 'future-closed' : value.status + '-' + (fullHouse ? 'full' : 'available');\n    var statusTextKey = status == 'open-available' || status == 'future-open-available' ? 'available' : status == 'open-full' || status == 'future-open-full' ? 'full' : 'unavailable'; //status == 'future-closed' ? 'unavailable' \n\n    var statusColor = statusTextKey == 'available' ? 'green' : statusTextKey == 'full' ? 'blue-grey' : 'black';\n    return _objectSpread(_objectSpread({}, rest), {}, {\n      open: open,\n      canApply: canApply,\n      status: status,\n      statusTextKey: statusTextKey,\n      statusColor: statusColor,\n      accommodationsCount: accommodationsCount,\n      availableCount: availableCount,\n      cheapest: cheapest,\n      fullHouse: fullHouse,\n      services: services ? services.concat(servicesGlobal) : [],\n      url: value.city ? \"/\".concat(lang, \"/\").concat(value.city.slug, \"/\").concat(value.slug) : undefined\n    });\n  }\n};\n\nvar enhanceCities = function enhanceCities(value, lang) {\n  if (Array.isArray(value)) {\n    return value.map(function (v) {\n      return enhanceCities(v, lang);\n    });\n  } else {\n    var houses = value.houses.map(function (house) {\n      return _objectSpread(_objectSpread({}, enhanceHouses(house, lang)), {}, {\n        url: \"/\".concat(lang, \"/\").concat(value.slug, \"/\").concat(house.slug)\n      });\n    });\n    var availableCount = houses.reduce(function (acc, curr) {\n      return acc + (curr.availableCount ? 1 : 0);\n    }, 0);\n    return _objectSpread(_objectSpread({}, value), {}, {\n      url: \"/\".concat(lang, \"/\").concat(value.slug),\n      houses: houses,\n      housesCount: houses.length,\n      availableCount: availableCount\n    });\n  }\n}; // - - - - - - - - - - - - - - - - - - - - - home page\n\n\nexport function getDoc(_x, _x2, _x3, _x4) {\n  return _getDoc.apply(this, arguments);\n}\n\nfunction _getDoc() {\n  _getDoc = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(type, id, lang, preview) {\n    var fields,\n        results,\n        _args = arguments;\n    return _regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            fields = _args.length > 4 && _args[4] !== undefined ? _args[4] : '';\n            _context.next = 3;\n            return getClient(preview).fetch(\"*[_type == '\".concat(type, \"' && _id == '\").concat(id, \"' \").concat(excludeDraft(preview), \"]\").concat(fields));\n\n          case 3:\n            results = _context.sent;\n            return _context.abrupt(\"return\", localize(results[0], lang));\n\n          case 5:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n  return _getDoc.apply(this, arguments);\n}\n\nvar homeFields = \"{\\n\\t...,\\n\\t'videos': videos[].asset->url,\\n}\";\nexport function getHomePage(_x5, _x6) {\n  return _getHomePage.apply(this, arguments);\n}\n\nfunction _getHomePage() {\n  _getHomePage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(lang, preview) {\n    return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            return _context2.abrupt(\"return\", getDoc('home', 'home', lang, preview, homeFields));\n\n          case 1:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n  return _getHomePage.apply(this, arguments);\n}\n\nexport function getCityPage(_x7, _x8) {\n  return _getCityPage.apply(this, arguments);\n}\n\nfunction _getCityPage() {\n  _getCityPage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(lang, preview) {\n    return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            return _context3.abrupt(\"return\", getDoc('cityPage', 'cityPage', lang, preview));\n\n          case 1:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3);\n  }));\n  return _getCityPage.apply(this, arguments);\n}\n\nexport function getHousePage(_x9, _x10) {\n  return _getHousePage.apply(this, arguments);\n}\n\nfunction _getHousePage() {\n  _getHousePage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(lang, preview) {\n    return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n      while (1) {\n        switch (_context4.prev = _context4.next) {\n          case 0:\n            return _context4.abrupt(\"return\", getDoc('housePage', 'housePage', lang, preview));\n\n          case 1:\n          case \"end\":\n            return _context4.stop();\n        }\n      }\n    }, _callee4);\n  }));\n  return _getHousePage.apply(this, arguments);\n}\n\nexport function getNewsPage(_x11, _x12) {\n  return _getNewsPage.apply(this, arguments);\n} // - - - - - - - - - - - - - - - - - - - - - pages\n\nfunction _getNewsPage() {\n  _getNewsPage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(lang, preview) {\n    return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n      while (1) {\n        switch (_context5.prev = _context5.next) {\n          case 0:\n            return _context5.abrupt(\"return\", getDoc('newsPage', 'newsPage', lang, preview));\n\n          case 1:\n          case \"end\":\n            return _context5.stop();\n        }\n      }\n    }, _callee5);\n  }));\n  return _getNewsPage.apply(this, arguments);\n}\n\nvar pageFields = function pageFields() {\n  var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultLang;\n  return \"\\n\\t'slug': slug.\".concat(lang, \".current,\\n\\t'allSlugs': slug,\\n\\t'title': title.\").concat(lang, \",\\n\\thero,\\n\");\n};\n\nexport function getPageById(_x13, _x14, _x15) {\n  return _getPageById.apply(this, arguments);\n}\n\nfunction _getPageById() {\n  _getPageById = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(id, lang, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n      while (1) {\n        switch (_context6.prev = _context6.next) {\n          case 0:\n            _context6.next = 2;\n            return getClient(preview).fetch(\"*[_id == '\".concat(id, \"' \").concat(excludeDraft(preview), \"]\") + \"{\".concat(pageFields(lang), \"}\"));\n\n          case 2:\n            results = _context6.sent;\n            return _context6.abrupt(\"return\", results[0]);\n\n          case 4:\n          case \"end\":\n            return _context6.stop();\n        }\n      }\n    }, _callee6);\n  }));\n  return _getPageById.apply(this, arguments);\n}\n\nexport function getPageSlugTranslation(_x16, _x17, _x18, _x19) {\n  return _getPageSlugTranslation.apply(this, arguments);\n}\n\nfunction _getPageSlugTranslation() {\n  _getPageSlugTranslation = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(slug, fromLang, toLang, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n      while (1) {\n        switch (_context7.prev = _context7.next) {\n          case 0:\n            _context7.next = 2;\n            return getClient(preview).fetch(\"*[_type == 'page' && slug.\".concat(fromLang, \".current == '\").concat(slug, \"' \").concat(excludeDraft(preview), \"]\") + \"{'slug': slug.\".concat(toLang, \".current}\"));\n\n          case 2:\n            results = _context7.sent;\n            return _context7.abrupt(\"return\", results[0]);\n\n          case 4:\n          case \"end\":\n            return _context7.stop();\n        }\n      }\n    }, _callee7);\n  }));\n  return _getPageSlugTranslation.apply(this, arguments);\n}\n\nexport function getPageBySlug(_x20, _x21, _x22) {\n  return _getPageBySlug.apply(this, arguments);\n}\n\nfunction _getPageBySlug() {\n  _getPageBySlug = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(slug, lang, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n      while (1) {\n        switch (_context8.prev = _context8.next) {\n          case 0:\n            _context8.next = 2;\n            return getClient(preview).fetch(\"*[_type == 'page' && slug.\".concat(lang, \".current == '\").concat(slug, \"' \").concat(excludeDraft(preview), \"]\") + \"{\".concat(pageFields(lang), \"}\"));\n\n          case 2:\n            results = _context8.sent;\n            return _context8.abrupt(\"return\", results[0]);\n\n          case 4:\n          case \"end\":\n            return _context8.stop();\n        }\n      }\n    }, _callee8);\n  }));\n  return _getPageBySlug.apply(this, arguments);\n}\n\nexport function getPages() {\n  return _getPages.apply(this, arguments);\n} // - - - - - - - - - - - - - - - - - - - - - cities\n\nfunction _getPages() {\n  _getPages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n      while (1) {\n        switch (_context9.prev = _context9.next) {\n          case 0:\n            _context9.next = 2;\n            return getClient().fetch(\"*[_type == 'page' \".concat(excludeDraft(), \"]\") //+ ` | order(date desc, _updatedAt desc)`\n            + \"{\".concat(languages.map(function (lang) {\n              return \"'\".concat(lang, \"': slug.\").concat(lang, \".current\");\n            }).join(','), \"}\"));\n\n          case 2:\n            results = _context9.sent;\n            return _context9.abrupt(\"return\", results.flatMap(function (result) {\n              return Object.keys(result).map(function (key) {\n                return {\n                  lang: key,\n                  slug: result[key]\n                };\n              });\n            }));\n\n          case 4:\n          case \"end\":\n            return _context9.stop();\n        }\n      }\n    }, _callee9);\n  }));\n  return _getPages.apply(this, arguments);\n}\n\nvar cityFields = function cityFields() {\n  var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultLang;\n  return \"\\n  _id,\\n\\t'slug': slug.\".concat(lang, \".current,\\n\\t'allSlugs': slug,\\n\\ttitle,\\n\\tdepartment,\\n\\tareas,\\n\\tareasShort,\\n\\topen,\\n\\topeningDate,\\n\\tgeolocation,\\n\\thero,\\n\\t'videos': videos[].asset->url,\\n  'houses': *[_type == 'house' && references(^._id) \").concat(excludeDraft(), \"]\\n\\t{\\n\\t\\ttitle,\\n\\t  'slug': slug.\").concat(lang, \".current,\\n\\t  status,\\n\\t  openingDate,\\n\\t  canApplyAccommodations,\\n\\t  geolocation,\\n\\t  hero,\\n\\t  area,\\n\\t  surface,\\n\\t  'accommodationsCount': count(*[_type == 'accommodation' && references(^._id) \").concat(excludeDraft(), \"]),\\n\\t  'availableCount': count(*[_type == 'accommodation' && references(^._id) \").concat(excludeDraft(), \"][available]),\\n\\t  'accommodations': *[_type == 'accommodation' && references(^._id) \").concat(excludeDraft(), \"]\\n\\t\\t{\\n\\t\\t\\t_id,\\n\\t\\t\\ttitle,\\n\\t\\t\\tavailable,\\n\\t\\t\\tsurface,\\n\\t\\t\\tprice,\\n\\t\\t\\t'key': key.current,\\n\\t\\t},\\n\\t},\\n\");\n};\n\nvar cityFieldsLight = function cityFieldsLight() {\n  var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultLang;\n  return \"\\n\\t_id,\\n\\t'slug': slug.\".concat(lang, \".current,\\n\\ttitle,\\n\\thero,\\n\\tgeolocation,\\n\");\n};\n\nexport function getCitiesSlugs() {\n  return _getCitiesSlugs.apply(this, arguments);\n}\n\nfunction _getCitiesSlugs() {\n  _getCitiesSlugs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10() {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n      while (1) {\n        switch (_context10.prev = _context10.next) {\n          case 0:\n            _context10.next = 2;\n            return getClient().fetch(\"*[_type == 'city' && open \".concat(excludeDraft(), \"]\") + \"{\".concat(languages.map(function (lang) {\n              return \"'\".concat(lang, \"': slug.\").concat(lang, \".current\");\n            }).join(','), \"}\"));\n\n          case 2:\n            results = _context10.sent;\n            return _context10.abrupt(\"return\", results.flatMap(function (city) {\n              return Object.keys(city).map(function (lang) {\n                return {\n                  lang: lang,\n                  city: city[lang]\n                };\n              });\n            }));\n\n          case 4:\n          case \"end\":\n            return _context10.stop();\n        }\n      }\n    }, _callee10);\n  }));\n  return _getCitiesSlugs.apply(this, arguments);\n}\n\nexport function getCities(_x23, _x24) {\n  return _getCities.apply(this, arguments);\n}\n\nfunction _getCities() {\n  _getCities = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(lang, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n      while (1) {\n        switch (_context11.prev = _context11.next) {\n          case 0:\n            _context11.next = 2;\n            return getClient(preview).fetch(\"*[_type == 'city' \".concat(excludeDraft(preview), \"]\") + \"{\".concat(cityFields(lang), \"}\") + \" | order(_createdAt asc)\");\n\n          case 2:\n            results = _context11.sent;\n            return _context11.abrupt(\"return\", enhanceCities(localize(results, lang), lang));\n\n          case 4:\n          case \"end\":\n            return _context11.stop();\n        }\n      }\n    }, _callee11);\n  }));\n  return _getCities.apply(this, arguments);\n}\n\nexport function getCityBySlug(_x25, _x26, _x27) {\n  return _getCityBySlug.apply(this, arguments);\n} // - - - - - - - - - - - - - - - - - - - - - houses\n\nfunction _getCityBySlug() {\n  _getCityBySlug = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(slug, lang, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n      while (1) {\n        switch (_context12.prev = _context12.next) {\n          case 0:\n            _context12.next = 2;\n            return getClient(preview).fetch(\"*[_type == 'city' && slug.\".concat(lang, \".current == '\").concat(slug, \"' \").concat(excludeDraft(preview), \"]\") + \"{\".concat(cityFields(lang), \"}\"));\n\n          case 2:\n            results = _context12.sent;\n            return _context12.abrupt(\"return\", enhanceCities(localize(results[0], lang), lang));\n\n          case 4:\n          case \"end\":\n            return _context12.stop();\n        }\n      }\n    }, _callee12);\n  }));\n  return _getCityBySlug.apply(this, arguments);\n}\n\nvar houseFields = function houseFields() {\n  var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultLang;\n  return \"\\n\\t...,\\n\\t'slug': slug.\".concat(lang, \".current,\\n\\t'allSlugs': slug,\\n\\t'city': {\\n\\t  'title': city->title,\\n\\t  'slug': city->slug.\").concat(lang, \".current,\\n\\t},\\n\\t'accommodations': *[_type == 'accommodation' && references(^._id) \").concat(excludeDraft(), \"]\\n\\t {\\n\\t\\t_id,\\n\\t\\ttitle,\\n\\t\\tavailable,\\n\\t\\tsurface,\\n\\t\\tprice,\\n\\t\\t'key': key.current,\\n\\t },\\n\\t\\\"services\\\": services[_type == 'service']{\\n\\t\\t'id': _key,\\n\\t\\ttitle,\\n\\t\\ttype,\\n\\t\\tdescription,\\n\\t\\ticon,\\n\\t},\\n\\t\\\"servicesGlobal\\\": services[_type == 'reference']->{\\n\\t\\t'id': _id,\\n\\t\\ttitle,\\n\\t\\ttype,\\n\\t\\tdescription,\\n\\t\\ticon,\\n\\t},\\n\");\n};\n/*\n`\nservices[]->{\n\ttitle,\n\ttype,\n\ticon,\n\tdescription,\n},\n`\n*/\n\n\nexport function getHousesSlugs(_x28) {\n  return _getHousesSlugs.apply(this, arguments);\n}\n\nfunction _getHousesSlugs() {\n  _getHousesSlugs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(lang) {\n    var withTitles,\n        housesSlugFields,\n        results,\n        _args13 = arguments;\n    return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n      while (1) {\n        switch (_context13.prev = _context13.next) {\n          case 0:\n            withTitles = _args13.length > 1 && _args13[1] !== undefined ? _args13[1] : false;\n\n            housesSlugFields = function housesSlugFields(l) {\n              return \"'\".concat(l, \"': slug.\").concat(l, \".current\") + \",'city': city->slug.\".concat(l, \".current\");\n            };\n\n            _context13.next = 4;\n            return getClient().fetch(\"*[_type == 'house' \".concat(excludeDraft(), \"]\") + \"{\\n\\t\\t\\t\\t\".concat(lang ? housesSlugFields(lang) : languages.map(housesSlugFields).join(','), \",\\n\\t\\t\\t}\"));\n\n          case 4:\n            results = _context13.sent;\n            return _context13.abrupt(\"return\", results.flatMap(function (house) {\n              var city = house.city,\n                  rest = _objectWithoutProperties(house, [\"city\"]);\n\n              return Object.keys(rest).map(function (lang) {\n                return {\n                  lang: lang,\n                  city: city,\n                  house: rest[lang]\n                };\n              });\n            }));\n\n          case 6:\n          case \"end\":\n            return _context13.stop();\n        }\n      }\n    }, _callee13);\n  }));\n  return _getHousesSlugs.apply(this, arguments);\n}\n\nexport function getHousesMenu(_x29) {\n  return _getHousesMenu.apply(this, arguments);\n}\n\nfunction _getHousesMenu() {\n  _getHousesMenu = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(lang) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n      while (1) {\n        switch (_context14.prev = _context14.next) {\n          case 0:\n            _context14.next = 2;\n            return getClient().fetch(\"*[_type == 'city' \".concat(excludeDraft(), \"]\") + \"{\\n\\t\\t\\t\\t'slug': slug.\".concat(lang, \".current,\\n\\t\\t\\t\\ttitle,\\n\\t\\t\\t\\t'houses': *[_type == 'house' && references(^._id) \").concat(excludeDraft(), \"]{\\n\\t\\t\\t\\t\\ttitle,\\n\\t\\t\\t\\t\\t'slug': slug.\").concat(lang, \".current,\\n\\t\\t\\t\\t},\\n\\t\\t\\t}\"));\n\n          case 2:\n            results = _context14.sent;\n            return _context14.abrupt(\"return\", localize(results, lang).map(function (value) {\n              var houses = value.houses.map(function (house) {\n                return _objectSpread(_objectSpread({}, house), {}, {\n                  url: \"/\".concat(lang, \"/\").concat(value.slug, \"/\").concat(house.slug)\n                });\n              });\n              return _objectSpread(_objectSpread({}, value), {}, {\n                houses: houses\n              });\n            }));\n\n          case 4:\n          case \"end\":\n            return _context14.stop();\n        }\n      }\n    }, _callee14);\n  }));\n  return _getHousesMenu.apply(this, arguments);\n}\n\nexport function getHouseBySlug(_x30, _x31, _x32) {\n  return _getHouseBySlug.apply(this, arguments);\n} // - - - - - - - - - - - - - - - - - - - - - document\n\nfunction _getHouseBySlug() {\n  _getHouseBySlug = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(slug, lang, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n      while (1) {\n        switch (_context15.prev = _context15.next) {\n          case 0:\n            _context15.next = 2;\n            return getClient(preview).fetch(\"*[_type == 'house' && slug.\".concat(lang, \".current == '\").concat(slug, \"' \").concat(excludeDraft(preview), \"]\") + \"{\".concat(houseFields(lang), \"}\"));\n\n          case 2:\n            results = _context15.sent;\n            return _context15.abrupt(\"return\", enhanceHouses(localize(results[0], lang), lang));\n\n          case 4:\n          case \"end\":\n            return _context15.stop();\n        }\n      }\n    }, _callee15);\n  }));\n  return _getHouseBySlug.apply(this, arguments);\n}\n\nexport function getDocumentById(_x33, _x34) {\n  return _getDocumentById.apply(this, arguments);\n} // - - - - - - - - - - - - - - - - - - - - - OLD\n\nfunction _getDocumentById() {\n  _getDocumentById = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(id, preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n      while (1) {\n        switch (_context16.prev = _context16.next) {\n          case 0:\n            _context16.next = 2;\n            return getClient(preview).fetch(\"*[_id == '\".concat(id, \"' && defined(slug.\").concat(defaultLang, \") \").concat(excludeDraft(preview), \"]{\\n\\t\\t\\t_type,\\n\\t\\t\\t'slug': coalesce(slug.en.current, slug.\").concat(defaultLang, \".current)\\n\\t\\t}\"));\n\n          case 2:\n            results = _context16.sent;\n            return _context16.abrupt(\"return\", results[0]);\n\n          case 4:\n          case \"end\":\n            return _context16.stop();\n        }\n      }\n    }, _callee16);\n  }));\n  return _getDocumentById.apply(this, arguments);\n}\n\nvar getUniquePosts = function getUniquePosts(posts) {\n  var slugs = new Set();\n  return posts.filter(function (post) {\n    if (slugs.has(post.slug)) {\n      return false;\n    } else {\n      slugs.add(post.slug);\n      return true;\n    }\n  });\n};\n\nvar postFields = \"\\n  name,\\n  title,\\n  date,\\n  excerpt,\\n  'slug': slug.current,\\n  'coverImage': coverImage.asset->url,\\n  'author': author->{name, 'picture': picture.asset->url},\\n\";\n\nvar getClient = function getClient(preview) {\n  return preview ? previewClient : client;\n};\n\nexport function getPreviewPostBySlug(_x35) {\n  return _getPreviewPostBySlug.apply(this, arguments);\n}\n\nfunction _getPreviewPostBySlug() {\n  _getPreviewPostBySlug = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(slug) {\n    var data;\n    return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n      while (1) {\n        switch (_context17.prev = _context17.next) {\n          case 0:\n            _context17.next = 2;\n            return getClient(true).fetch(\"*[_type == \\\"post\\\" && slug.current == $slug] | order(date desc){\\n\\t  \".concat(postFields, \"\\n\\t  content\\n\\t}\"), {\n              slug: slug\n            });\n\n          case 2:\n            data = _context17.sent;\n            return _context17.abrupt(\"return\", data[0]);\n\n          case 4:\n          case \"end\":\n            return _context17.stop();\n        }\n      }\n    }, _callee17);\n  }));\n  return _getPreviewPostBySlug.apply(this, arguments);\n}\n\nexport function getAllPostsWithSlug() {\n  return _getAllPostsWithSlug.apply(this, arguments);\n}\n\nfunction _getAllPostsWithSlug() {\n  _getAllPostsWithSlug = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18() {\n    var data;\n    return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n      while (1) {\n        switch (_context18.prev = _context18.next) {\n          case 0:\n            _context18.next = 2;\n            return client.fetch(\"*[_type == \\\"post\\\"]{ 'slug': slug.current }\");\n\n          case 2:\n            data = _context18.sent;\n            return _context18.abrupt(\"return\", data);\n\n          case 4:\n          case \"end\":\n            return _context18.stop();\n        }\n      }\n    }, _callee18);\n  }));\n  return _getAllPostsWithSlug.apply(this, arguments);\n}\n\nexport function getAllPostsForHome(_x36) {\n  return _getAllPostsForHome.apply(this, arguments);\n}\n\nfunction _getAllPostsForHome() {\n  _getAllPostsForHome = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(preview) {\n    var results;\n    return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n      while (1) {\n        switch (_context19.prev = _context19.next) {\n          case 0:\n            _context19.next = 2;\n            return getClient(preview).fetch(\"*[_type == \\\"post\\\"] | order(date desc, _updatedAt desc){\\n\\t  \".concat(postFields, \"\\n\\t}\"));\n\n          case 2:\n            results = _context19.sent;\n            return _context19.abrupt(\"return\", getUniquePosts(results));\n\n          case 4:\n          case \"end\":\n            return _context19.stop();\n        }\n      }\n    }, _callee19);\n  }));\n  return _getAllPostsForHome.apply(this, arguments);\n}\n\nexport function getPostAndMorePosts(_x37, _x38) {\n  return _getPostAndMorePosts.apply(this, arguments);\n} // TEMP\n// export async function getAll() {\n// \tconst all = await getClient().fetch(`*[]`)\n// \tconsole.log('api.js::291 all', all)\n// \treturn all\n// }\n\nfunction _getPostAndMorePosts() {\n  _getPostAndMorePosts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(slug, preview) {\n    var curClient, _yield$Promise$all, _yield$Promise$all2, post, morePosts;\n\n    return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n      while (1) {\n        switch (_context20.prev = _context20.next) {\n          case 0:\n            curClient = getClient(preview);\n            _context20.next = 3;\n            return Promise.all([curClient.fetch(\"*[_type == \\\"post\\\" && slug.current == $slug] | order(_updatedAt desc) {\\n\\t\\t\".concat(postFields, \"\\n\\t\\tcontent,\\n\\t  }\"), {\n              slug: slug\n            }).then(function (res) {\n              return res === null || res === void 0 ? void 0 : res[0];\n            }), curClient.fetch(\"*[_type == \\\"post\\\" && slug.current != $slug] | order(date desc, _updatedAt desc){\\n\\t\\t\".concat(postFields, \"\\n\\t\\tcontent,\\n\\t  }[0...2]\"), {\n              slug: slug\n            })]);\n\n          case 3:\n            _yield$Promise$all = _context20.sent;\n            _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n            post = _yield$Promise$all2[0];\n            morePosts = _yield$Promise$all2[1];\n            return _context20.abrupt(\"return\", {\n              post: post,\n              morePosts: getUniquePosts(morePosts)\n            });\n\n          case 8:\n          case \"end\":\n            return _context20.stop();\n        }\n      }\n    }, _callee20);\n  }));\n  return _getPostAndMorePosts.apply(this, arguments);\n}","map":{"version":3,"sources":["/home/gkkdzdg/www/src/lib/api.js"],"names":["client","previewClient","imageUrlBuilder","globalData","excludeDraft","preview","imageBuilder","languages","defaultLang","localize","value","lang","currentLang","Array","isArray","map","v","_type","test","language","find","Object","keys","reduce","result","key","enhanceHouses","services","servicesGlobal","rest","accommodations","accommodationsCount","status","canApplyAccommodations","parseInt","length","availableCount","acc","curr","available","cheapest","price","replace","open","fullHouse","canApply","statusTextKey","statusColor","concat","url","city","slug","undefined","enhanceCities","houses","house","housesCount","getDoc","type","id","fields","getClient","fetch","results","homeFields","getHomePage","getCityPage","getHousePage","getNewsPage","pageFields","getPageById","getPageSlugTranslation","fromLang","toLang","getPageBySlug","getPages","join","flatMap","cityFields","cityFieldsLight","getCitiesSlugs","getCities","getCityBySlug","houseFields","getHousesSlugs","withTitles","housesSlugFields","l","getHousesMenu","getHouseBySlug","getDocumentById","getUniquePosts","posts","slugs","Set","filter","post","has","add","postFields","getPreviewPostBySlug","data","getAllPostsWithSlug","getAllPostsForHome","getPostAndMorePosts","curClient","Promise","all","then","res","morePosts"],"mappings":"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","sourcesContent":["import { client, previewClient } from './sanity'\nimport imageUrlBuilder from '@sanity/image-url'\nimport globalData from 'global/globalData'\n\n// - - - - - - - - - - - - - - - - - - - - - helpers\n\nconst excludeDraft = (preview = false) => !preview ? \"&& !(_id in path('drafts.**'))\" : ''\nexport const imageBuilder = imageUrlBuilder(client)\n\n// - - - - - - - - - - - - - - - - - - - - - locale\n\nconst { languages, defaultLang, } = globalData\n\n// export async function getLocalisations() {\n// \tconst localisations = await sanity.client.fetch(`*[_id == 'global-localisations']{\n// \t\t'strings': strings[]{\n// \t\t\ttitle, key, ${languages.join(', ')}\n// \t\t}\n// \t}`)\n// \treturn localisations[0].strings\n// }\n// export const getLocalisation = (key, lang) => {\n// \treturn globalData.localisations[key] && globalData.localisations[key][lang]\n// }\n\nexport const localize = (value, lang = currentLang) => {\n\tconst languages = [lang]\n\n\tif (Array.isArray(value)) {\n\t\treturn value.map(v => localize(v, languages))\n\t} else if (value && typeof value === 'object') {\n\t\tif (value._type != 'localeImageAlt' && value._type != 'localeSlug' && /^locale[A-Z]/.test(value._type)) {\n\t\t\tconst language = languages.find(lang => value[lang])\n\t\t\treturn value[language] || null\n\t\t}\n\n\t\treturn Object.keys(value).reduce((result, key) => {\n\t\t\tresult[key] = localize(value[key], languages)\n\t\t\treturn result\n\t\t}, {})\n\t}\n\treturn value\n}\n\nconst enhanceHouses = (value, lang) => {\n\n\tif (Array.isArray(value)) {\n\t\treturn value.map(v => enhanceHouses(v, lang))\n\t} else {\n\t\tconst {\n\t\t\tservices,\n\t\t\tservicesGlobal,\n\t\t\t...rest } = value\n\n\t\tconst accommodations = value.accommodations || []\n\t\tconst accommodationsCount =\n\t\t\tvalue.status == 'future-closed' && value.canApplyAccommodations\n\t\t\t\t? parseInt(value.canApplyAccommodations)\n\t\t\t\t: accommodations.length\n\t\tconst availableCount = accommodations.reduce((acc, curr) => acc + (curr.available ? 1 : 0), 0)\n\t\tconst cheapest = accommodations.reduce((acc, curr) => {\n\t\t\tif (!curr.available) return acc\n\t\t\tconst price = parseInt(curr.price.replace('€', ''))//.replace('$', '').replace(' ', ''))\n\t\t\treturn price < acc ? price : acc\n\t\t}, 9999)\n\n\t\tconst open = value.status == 'open'\n\n\t\tconst fullHouse = accommodations.length > 0 && availableCount == 0\n\n\t\tconst canApply = value.status != 'future-closed' && !fullHouse\n\n\t\tconst status = value.status == 'future-closed'\n\t\t\t? 'future-closed'\n\t\t\t: value.status + '-' + (fullHouse ? 'full' : 'available')\n\n\t\tconst statusTextKey =\n\t\t\tstatus == 'open-available' || status == 'future-open-available' ? 'available'\n\t\t\t\t: status == 'open-full' || status == 'future-open-full' ? 'full'\n\t\t\t\t\t: 'unavailable' //status == 'future-closed' ? 'unavailable' \n\n\t\tconst statusColor =\n\t\t\tstatusTextKey == 'available' ? 'green'\n\t\t\t\t: statusTextKey == 'full' ? 'blue-grey'\n\t\t\t\t\t: 'black'\n\n\t\treturn {\n\t\t\t...rest,\n\t\t\topen,\n\t\t\tcanApply,\n\t\t\tstatus,\n\t\t\tstatusTextKey,\n\t\t\tstatusColor,\n\t\t\taccommodationsCount,\n\t\t\tavailableCount,\n\t\t\tcheapest,\n\t\t\tfullHouse,\n\t\t\tservices: services ? services.concat(servicesGlobal) : [],\n\t\t\turl: value.city ? `/${lang}/${value.city.slug}/${value.slug}` : undefined,\n\t\t}\n\t}\n}\n\nconst enhanceCities = (value, lang) => {\n\n\tif (Array.isArray(value)) {\n\t\treturn value.map(v => enhanceCities(v, lang))\n\t} else {\n\t\tconst houses = value.houses.map(house => ({\n\t\t\t...enhanceHouses(house, lang),\n\t\t\turl: `/${lang}/${value.slug}/${house.slug}`,\n\t\t}))\n\t\tconst availableCount = houses.reduce((acc, curr) => acc + (curr.availableCount ? 1 : 0), 0)\n\t\treturn {\n\t\t\t...value,\n\t\t\turl: `/${lang}/${value.slug}`,\n\t\t\thouses,\n\t\t\thousesCount: houses.length,\n\t\t\tavailableCount,\n\t\t}\n\t}\n}\n\n// - - - - - - - - - - - - - - - - - - - - - home page\n\n\nexport async function getDoc(type, id, lang, preview, fields = '') {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == '${type}' && _id == '${id}' ${excludeDraft(preview)}]${fields}`)\n\treturn localize(results[0], lang)\n}\n\nconst homeFields = `{\n\t...,\n\t'videos': videos[].asset->url,\n}`\n\nexport async function getHomePage(lang, preview) {\n\treturn getDoc('home', 'home', lang, preview, homeFields)\n}\nexport async function getCityPage(lang, preview) {\n\treturn getDoc('cityPage', 'cityPage', lang, preview)\n}\nexport async function getHousePage(lang, preview) {\n\treturn getDoc('housePage', 'housePage', lang, preview)\n}\nexport async function getNewsPage(lang, preview) {\n\treturn getDoc('newsPage', 'newsPage', lang, preview)\n}\n\n// - - - - - - - - - - - - - - - - - - - - - pages\n\n\nconst pageFields = (lang = defaultLang) => `\n\t'slug': slug.${lang}.current,\n\t'allSlugs': slug,\n\t'title': title.${lang},\n\thero,\n`\n\nexport async function getPageById(id, lang, preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_id == '${id}' ${excludeDraft(preview)}]`\n\t\t\t+ `{${pageFields(lang)}}`\n\t\t)\n\treturn results[0]\n}\n\nexport async function getPageSlugTranslation(slug, fromLang, toLang, preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == 'page' && slug.${fromLang}.current == '${slug}' ${excludeDraft(preview)}]`\n\t\t\t+ `{'slug': slug.${toLang}.current}`\n\t\t)\n\treturn results[0]\n}\n\nexport async function getPageBySlug(slug, lang, preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == 'page' && slug.${lang}.current == '${slug}' ${excludeDraft(preview)}]`\n\t\t\t+ `{${pageFields(lang)}}`\n\t\t)\n\treturn results[0]\n}\n\nexport async function getPages() {\n\tconst results = await getClient()\n\t\t.fetch(`*[_type == 'page' ${excludeDraft()}]`\n\t\t\t//+ ` | order(date desc, _updatedAt desc)`\n\t\t\t+ `{${languages.map(lang => `'${lang}': slug.${lang}.current`).join(',')}}`\n\t\t)\n\n\treturn results.flatMap(result => Object.keys(result).map(key => ({ lang: key, slug: result[key] })))\n}\n\n// - - - - - - - - - - - - - - - - - - - - - cities\n\nconst cityFields = (lang = defaultLang) => `\n  _id,\n\t'slug': slug.${lang}.current,\n\t'allSlugs': slug,\n\ttitle,\n\tdepartment,\n\tareas,\n\tareasShort,\n\topen,\n\topeningDate,\n\tgeolocation,\n\thero,\n\t'videos': videos[].asset->url,\n  'houses': *[_type == 'house' && references(^._id) ${excludeDraft()}]\n\t{\n\t\ttitle,\n\t  'slug': slug.${lang}.current,\n\t  status,\n\t  openingDate,\n\t  canApplyAccommodations,\n\t  geolocation,\n\t  hero,\n\t  area,\n\t  surface,\n\t  'accommodationsCount': count(*[_type == 'accommodation' && references(^._id) ${excludeDraft()}]),\n\t  'availableCount': count(*[_type == 'accommodation' && references(^._id) ${excludeDraft()}][available]),\n\t  'accommodations': *[_type == 'accommodation' && references(^._id) ${excludeDraft()}]\n\t\t{\n\t\t\t_id,\n\t\t\ttitle,\n\t\t\tavailable,\n\t\t\tsurface,\n\t\t\tprice,\n\t\t\t'key': key.current,\n\t\t},\n\t},\n`\nconst cityFieldsLight = (lang = defaultLang) => `\n\t_id,\n\t'slug': slug.${lang}.current,\n\ttitle,\n\thero,\n\tgeolocation,\n`\n\nexport async function getCitiesSlugs() {\n\tconst results = await getClient()\n\t\t.fetch(`*[_type == 'city' && open ${excludeDraft()}]`\n\t\t\t+ `{${languages.map(lang => `'${lang}': slug.${lang}.current`).join(',')}}`\n\t\t)\n\treturn results.flatMap(city => Object.keys(city).map(lang => ({ lang, city: city[lang] })))\n}\n\n\nexport async function getCities(lang, preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == 'city' ${excludeDraft(preview)}]`\n\t\t\t+ `{${cityFields(lang)}}`\n\t\t\t+ ` | order(_createdAt asc)`\n\t\t)\n\n\treturn enhanceCities(localize(results, lang), lang)\n}\n\n\nexport async function getCityBySlug(slug, lang, preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == 'city' && slug.${lang}.current == '${slug}' ${excludeDraft(preview)}]`\n\t\t\t+ `{${cityFields(lang)}}`\n\t\t)\n\treturn enhanceCities(localize(results[0], lang), lang)\n}\n\n// - - - - - - - - - - - - - - - - - - - - - houses\n\nconst houseFields = (lang = defaultLang) => `\n\t...,\n\t'slug': slug.${lang}.current,\n\t'allSlugs': slug,\n\t'city': {\n\t  'title': city->title,\n\t  'slug': city->slug.${lang}.current,\n\t},\n\t'accommodations': *[_type == 'accommodation' && references(^._id) ${excludeDraft()}]\n\t {\n\t\t_id,\n\t\ttitle,\n\t\tavailable,\n\t\tsurface,\n\t\tprice,\n\t\t'key': key.current,\n\t },\n\t\"services\": services[_type == 'service']{\n\t\t'id': _key,\n\t\ttitle,\n\t\ttype,\n\t\tdescription,\n\t\ticon,\n\t},\n\t\"servicesGlobal\": services[_type == 'reference']->{\n\t\t'id': _id,\n\t\ttitle,\n\t\ttype,\n\t\tdescription,\n\t\ticon,\n\t},\n`\n/*\n`\nservices[]->{\n\ttitle,\n\ttype,\n\ticon,\n\tdescription,\n},\n`\n*/\n\nexport async function getHousesSlugs(lang, withTitles = false) {\n\tconst housesSlugFields = l => `'${l}': slug.${l}.current`\n\t\t+ `,'city': city->slug.${l}.current`\n\tconst results = await getClient()\n\t\t.fetch(`*[_type == 'house' ${excludeDraft()}]`\n\t\t\t+ `{\n\t\t\t\t${lang\n\t\t\t\t? housesSlugFields(lang)\n\t\t\t\t: languages.map(housesSlugFields).join(',')},\n\t\t\t}`\n\t\t)\n\treturn results.flatMap(house => {\n\t\tconst { city, ...rest } = house\n\t\treturn Object.keys(rest).map(lang => ({ lang, city, house: rest[lang] }))\n\t})\n}\n\nexport async function getHousesMenu(lang) {\n\tconst results = await getClient()\n\t\t.fetch(`*[_type == 'city' ${excludeDraft()}]`\n\t\t\t+ `{\n\t\t\t\t'slug': slug.${lang}.current,\n\t\t\t\ttitle,\n\t\t\t\t'houses': *[_type == 'house' && references(^._id) ${excludeDraft()}]{\n\t\t\t\t\ttitle,\n\t\t\t\t\t'slug': slug.${lang}.current,\n\t\t\t\t},\n\t\t\t}`\n\t\t)\n\treturn localize(results, lang).map(value => {\n\t\tconst houses = value.houses.map(house => ({\n\t\t\t...house,\n\t\t\turl: `/${lang}/${value.slug}/${house.slug}`,\n\t\t}))\n\t\treturn {\n\t\t\t...value,\n\t\t\thouses,\n\t\t}\n\t})//({...house, url: `/${lang}/${house.city.slug}/${house.slug}`}))\n}\n\nexport async function getHouseBySlug(slug, lang, preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == 'house' && slug.${lang}.current == '${slug}' ${excludeDraft(preview)}]`\n\t\t\t+ `{${houseFields(lang)}}`\n\t\t)\n\treturn enhanceHouses(localize(results[0], lang), lang)\n}\n\n\n\n// - - - - - - - - - - - - - - - - - - - - - document\n\nexport async function getDocumentById(id, preview) {\n\t// TODO - localize\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_id == '${id}' && defined(slug.${defaultLang}) ${excludeDraft(preview)}]{\n\t\t\t_type,\n\t\t\t'slug': coalesce(slug.en.current, slug.${defaultLang}.current)\n\t\t}`)\n\treturn results[0]\n}\n\n\n// - - - - - - - - - - - - - - - - - - - - - OLD\n\nconst getUniquePosts = (posts) => {\n\tconst slugs = new Set()\n\treturn posts.filter((post) => {\n\t\tif (slugs.has(post.slug)) {\n\t\t\treturn false\n\t\t} else {\n\t\t\tslugs.add(post.slug)\n\t\t\treturn true\n\t\t}\n\t})\n}\n\nconst postFields = `\n  name,\n  title,\n  date,\n  excerpt,\n  'slug': slug.current,\n  'coverImage': coverImage.asset->url,\n  'author': author->{name, 'picture': picture.asset->url},\n`\n\nconst getClient = (preview) => (preview ? previewClient : client)\n\nexport async function getPreviewPostBySlug(slug) {\n\tconst data = await getClient(true).fetch(\n\t\t`*[_type == \"post\" && slug.current == $slug] | order(date desc){\n\t  ${postFields}\n\t  content\n\t}`,\n\t\t{ slug }\n\t)\n\treturn data[0]\n}\n\nexport async function getAllPostsWithSlug() {\n\tconst data = await client.fetch(`*[_type == \"post\"]{ 'slug': slug.current }`)\n\treturn data\n}\n\nexport async function getAllPostsForHome(preview) {\n\tconst results = await getClient(preview)\n\t\t.fetch(`*[_type == \"post\"] | order(date desc, _updatedAt desc){\n\t  ${postFields}\n\t}`)\n\treturn getUniquePosts(results)\n}\n\nexport async function getPostAndMorePosts(slug, preview) {\n\tconst curClient = getClient(preview)\n\tconst [post, morePosts] = await Promise.all([\n\t\tcurClient\n\t\t\t.fetch(\n\t\t\t\t`*[_type == \"post\" && slug.current == $slug] | order(_updatedAt desc) {\n\t\t${postFields}\n\t\tcontent,\n\t  }`,\n\t\t\t\t{ slug }\n\t\t\t)\n\t\t\t.then((res) => res?.[0]),\n\t\tcurClient.fetch(\n\t\t\t`*[_type == \"post\" && slug.current != $slug] | order(date desc, _updatedAt desc){\n\t\t${postFields}\n\t\tcontent,\n\t  }[0...2]`,\n\t\t\t{ slug }\n\t\t),\n\t])\n\treturn { post, morePosts: getUniquePosts(morePosts) }\n}\n\n\n\n\n\n// TEMP\n\n// export async function getAll() {\n// \tconst all = await getClient().fetch(`*[]`)\n// \tconsole.log('api.js::291 all', all)\n// \treturn all\n// }"]},"metadata":{},"sourceType":"module"}