{"version":3,"sources":["Table.js","App.js","reportWebVitals.js","index.js","ranking.csv"],"names":["Table","_ref","columns","data","renderDetails","_useState","useState","_useState2","_slicedToArray","filterInput","setFilterInput","_useTable","useTable","useGlobalFilter","useExpanded","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","visibleColumns","setGlobalFilter","getColumnVisibilityClass","col","includes","KoFiButton","React","createElement","style","display","justifyContent","alignItems","marginBottom","marginRight","href","target","rel","src","alt","border","height","Fragment","_ref2","_ref2$initialCollapse","initialCollapsed","_useState3","_useState4","collapsed","setCollapsed","className","onClick","cursor","FaAngleDown","FaAngleUp","type","value","onChange","e","undefined","placeholder","_ref3","_ref3$initialCollapse","_useState5","_useState6","FaInfoCircle","FaTimes","map","headerGroup","getHeaderGroupProps","headers","column","getHeaderProps","minWidth","width","id","render","row","i","getRowProps","cells","cell","getCellProps","isExpanded","colSpan","length","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","then","unwrapped","error","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","Tags","tag","idx","Rating","stars","Array","fill","_","index","FaStar","color","parseInt","class","original","website","city","review","App","setData","useEffect","_getData","_asyncToGenerator","_callee","parseConfig","_context","header","results","rank","tags","split","filter","fetch","rankingCsv","response","text","responseText","readString","apply","arguments","getData","useMemo","Header","accessor","enableGlobalFilter","Cell","_ref4","_ref5","_ref6","getToggleAllRowsExpandedProps","isAllRowsExpanded","FaAngleDoubleUp","FaAngleDoubleDown","_ref7","getToggleRowExpandedProps","textAlign","fontSize","reportWebVitals","onPerfEntry","Function","__webpack_require__","bind","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","createRoot","document","getElementById","StrictMode","module","p"],"mappings":"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","file":"static/js/main.a9dca6a9.chunk.js","sourcesContent":["import React, { useState } from \"react\";\r\nimport { useExpanded, useGlobalFilter, useTable } from \"react-table\";\r\nimport {\r\n FaAngleDown,\r\n FaAngleUp,\r\n FaInfoCircle,\r\n FaTimes,\r\n} from \"react-icons/fa\";\r\n\r\nfunction Table({ columns, data, renderDetails }) {\r\n const [filterInput, setFilterInput] = useState(\"\");\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n rows,\r\n prepareRow,\r\n visibleColumns,\r\n setGlobalFilter,\r\n } = useTable(\r\n {\r\n columns,\r\n data,\r\n },\r\n useGlobalFilter,\r\n useExpanded\r\n );\r\n\r\n const handleFilterChange = (e) => {\r\n const value = e.target.value || undefined;\r\n setGlobalFilter(value);\r\n setFilterInput(value);\r\n };\r\n\r\n const getColumnVisibilityClass = (col) => {\r\n const dynamicCols = [\"rank\", \"players\", \"company\"];\r\n return dynamicCols.includes(col) ? \"dynamic-col\" : \"\";\r\n };\r\n\r\n const About = ({ initialCollapsed = false }) => {\r\n const [collapsed, setCollapsed] = useState(initialCollapsed);\r\n\r\n const toggleCollapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n return(\r\n
\r\n

\r\n About They Escape {collapsed ? : }\r\n

\r\n {!collapsed && (\r\n

\r\n This stack ranking is a guide by enthusiasts to help people get a better understanding of what they can expect\r\n in a given escape room. The ranking has been meticulously discussed and curated after gaining the experience of 100+ quality\r\n escape rooms, and we hope that this direct comparison will allow you to get a sense for how good a room is in the context of reputable rooms.\r\n We generally favor rooms with unique and novel elements over standard rooms with good polish, since standard experiences aren't as interesting\r\n once you've gone through a hundred of them. Note that these rankings are competitive since we tend to only do rooms with good reputations,\r\n which means that a room with a low ranking isn't necessarily bad. A room's rating on the rubric and its review will likely be more\r\n informative than the rank itself.\r\n

\r\n )}\r\n \r\n
\r\n );\r\n }\r\n\r\n const KoFiButton = () => {\r\n const kofiUrl = 'https://ko-fi.com/M4M12G3W4';\r\n const kofiImage = 'https://storage.ko-fi.com/cdn/kofi1.png?v=3';\r\n const altText = 'Buy Me a Coffee at ko-fi.com';\r\n const imageStyle = {\r\n border: '0px',\r\n height: '36px',\r\n };\r\n \r\n return (\r\n
\r\n

Want to support this page?

\r\n \r\n {altText}\r\n \r\n
\r\n );\r\n };\r\n\r\n const Info = ({ initialCollapsed = true }) => {\r\n const [collapsed, setCollapsed] = useState(initialCollapsed);\r\n\r\n const toggleCollapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n return(\r\n
\r\n

\r\n Rubric and Tags Guide {collapsed ? : }\r\n

\r\n {!collapsed && (\r\n
\r\n
\r\n

\r\n Rubric\r\n

\r\n
    \r\n
  • \r\n 5 - Excellent: Excellent and memorable room where we came out of it impressed.\r\n Enthusiasts should put this on their itinerary, likely the highlight of a trip.\r\n
  • \r\n
  • \r\n 4 - Good: Good room with a little something that makes the room distinctive.\r\n We will happily recommend these rooms to travelling enthusiasts or locals.\r\n
  • \r\n
  • \r\n 3 - Decent: Decent room, but didn't do enough to distinguish itself compared\r\n to a standard escape room. We generally still recommend the higher end of this rating as worth\r\n going to for travelling enthusiasts and locals, it's just not an enthusiastic recommendation.\r\n The lower end contains rooms that are still reasonable games, but you can take it or leave it.\r\n
  • \r\n
  • \r\n 2 - Flawed: Flawed room with something frustrating enough to make this worse\r\n than a standard room, but not enough to ruin the experience. We're still upset about it, and do\r\n not recommend these rooms.\r\n
  • \r\n
  • \r\n 1 - Bad: Bad room that is a waste of time. There was something about this room\r\n that ruined the experience. They didn't even try.\r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n Tags\r\n

\r\n
    \r\n
  • \r\n Puzzles: Has multiple puzzles that are better than standard escape room puzzles,\r\n either through nuances that add a layer of interesting complexity or through incorporating novel technology.\r\n
  • \r\n
  • \r\n Set: The physical environment feels realistic and is more interesting than what you would\r\n encounter in day-to-day life. This generally includes having some combination of custom and well polished props,\r\n immersive sound or special effects, or diverse environments within a single game.\r\n
  • \r\n
  • \r\n Story: Has a memorable plot progression or significant amounts of lore throughout the room.\r\n This generally incorporates the puzzles and your actions having purpose in the context of the story, character development,\r\n or a unique concept for the world.\r\n
  • \r\n
  • \r\n Gameplay: Has novel elements that significantly deviate from standard escape rooms.\r\n
  • \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n

*search rooms, companies, regions, or tags*

\r\n \r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n {column.render(\"Header\")}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {rows.map((row, i) => {\r\n prepareRow(row);\r\n return (\r\n <>\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n {cell.render(\"Cell\")}\r\n \r\n );\r\n })}\r\n \r\n {row.isExpanded ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n
\r\n {renderDetails({ row })}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Table;\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport \"./App.css\";\r\nimport Table from \"./Table\";\r\nimport rankingCsv from \"./ranking.csv\";\r\nimport { readString } from \"react-papaparse\";\r\nimport {\r\n FaAngleDoubleDown,\r\n FaAngleDown,\r\n FaAngleDoubleUp,\r\n FaAngleUp,\r\n FaStar,\r\n} from \"react-icons/fa\";\r\n\r\nconst Tags = ({ values }) => {\r\n return (\r\n <>\r\n {values.map((tag, idx) => {\r\n return (\r\n \r\n {tag}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst Rating = ({ stars }) => {\r\n return (\r\n
\r\n \r\n \r\n {Array(5)\r\n .fill()\r\n .map((_, index) => (\r\n \r\n ))}\r\n \r\n ({stars})\r\n \r\n \r\n {stars}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst renderDetails = ({ row }) => {\r\n return (\r\n <>\r\n
\r\n Website:{\" \"}\r\n \r\n {row.original.website}\r\n \r\n
\r\n
City: {row.original.city}
\r\n
{row.original.review}
\r\n \r\n );\r\n};\r\n\r\nfunction App() {\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n async function getData() {\r\n const parseConfig = {\r\n header: true,\r\n complete: (results) => {\r\n results.data.forEach((val, index) => {\r\n val.rank = index + 1;\r\n val.tags = val.tags.split(\"|\").filter((tag) => tag);\r\n });\r\n setData(results.data);\r\n },\r\n };\r\n fetch(rankingCsv)\r\n .then((response) => response.text())\r\n .then((responseText) => readString(responseText, parseConfig));\r\n }\r\n getData();\r\n }, []);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: \"They Escape\",\r\n columns: [\r\n {\r\n Header: \"Rank\",\r\n accessor: \"rank\",\r\n enableGlobalFilter: false,\r\n },\r\n {\r\n Header: \"Room Name\",\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"Company Name\",\r\n accessor: \"company\",\r\n },\r\n {\r\n Header: \"Region\",\r\n accessor: \"region\",\r\n },\r\n {\r\n Header: \"Players\",\r\n accessor: \"players\",\r\n enableGlobalFilter: false,\r\n },\r\n {\r\n Header: \"Tags\",\r\n accessor: \"tags\",\r\n Cell: ({ cell: { value } }) => ,\r\n },\r\n {\r\n Header: \"Rating\",\r\n accessor: \"rating\",\r\n enableGlobalFilter: false,\r\n Cell: ({ cell: { value } }) => ,\r\n },\r\n {\r\n Header: ({ getToggleAllRowsExpandedProps, isAllRowsExpanded }) => (\r\n <>\r\n Details \r\n \r\n {isAllRowsExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n ),\r\n accessor: \"details\",\r\n enableGlobalFilter: false,\r\n Cell: ({ row }) => (\r\n \r\n {row.isExpanded ? : }\r\n \r\n ),\r\n },\r\n ],\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n
\r\n \r\n
\r\n

This site was previously theroomrank.com (no longer available)

\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom/client';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById('root'));\r\nroot.render(\r\n \r\n \r\n \r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","module.exports = __webpack_public_path__ + \"static/media/ranking.018d4d77.csv\";"],"sourceRoot":""}