{"version":3,"mappings":"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","names":["bindEvent","target","type","handler","intercept","value","setValue","get","set","v","querySelector","selector","scrollToHash","hash","fallbackTop","el","createIntegration","init","utils","ignore","wrap","signal","createSignal","a","b","next","onCleanup","normalizeIntegration","integration","pathIntegration","replace","scroll","state","notify","delta","createBeforeLeave","listeners","subscribe","listener","confirm","to","options","e","l","force","hasSchemeRegex","trimPathRegex","normalizePath","path","omitSlash","s","resolvePath","base","from","basePath","fromPath","result","invariant","message","joinPaths","extractSearchParams","url","params","key","createMatcher","partial","matchFilters","pattern","splat","segments","len","location","locSegments","lenDiff","match","matchFilter","i","segment","locSegment","dynamic","matchSegment","remainder","input","filter","isEqual","scoreRoute","route","score","createMemoObject","fn","map","owner","getOwner","_","property","runWithOwner","createMemo","expandOptionals","prefix","suffix","prefixes","results","expansion","p","MAX_REDIRECTS","RouterContextObj","createContext","RouteContextObj","useRouter","useContext","TempRoute","useRoute","useResolvedPath","useHref","router","to_","useNavigate","useLocation","useIsRouting","useParams","createRoutes","routeDef","fallback","component","data","children","isLeaf","shared","createComponent","element","asArray","acc","originalPath","createBranch","routes","index","matches","createBranches","stack","branches","routeDefs","def","isEmptyArray","branch","getRouteMatches","createLocation","origin","prev","path_","pathname","search","on","createRouterContext","out","source","setSource","parsePath","renderPath","beforeLeave","output","isRouting","setIsRouting","start","callback","startTransition","reference","setReference","setState","referrers","baseRoute","navigatorFactory","navigateFromRoute","untrack","resolve","nextState","resolvedTo","current","isServer","resetErrorBoundaries","navigateEnd","first","createRenderEffect","handleAnchorClick","evt","href","rel","delegateEvents","createRouteContext","parent","child","outlet","preload","Router","props","routerState","_$createComponent","Provider","Routes","parentRoute","Outlet","m","length","Object","assign","push","disposers","root","routeStates","nextMatches","prevMatches","equal","prevMatch","nextMatch","createRoot","dispose","splice","forEach","Show","when","keyed","useRoutes","A","mergeProps","inactiveClass","activeClass","rest","splitProps","isActive","undefined","split","toLowerCase","loc","end","startsWith","_el$","_tmpl$","_$spread","_$mergeProps","JSON","stringify","classList","class","mainIntroductionCSSClass","mainItemTitleCSSClass","statLabelCSSClass","tooltipCSSClass","itemGridCSSClass","secondaryButtonClass","getItemCssClass","item","ItemIcon","local","imgProps","src","hideNav","setHideNav","globalAgeFilter","setGlobalAgeFilter","globalCivFilter","setGlobalCivsFilter","getStructuredItems","civilization","sdk","__vitePreload","civ","units","splitUnitsIntoGroups","order","buildings","splitBuildingsIntoGroups","technologies","splitTechnologiesIntroGroups","civilizations","Get","info","parseCurrentLocation","subroute","itemType","typeToPathMap","building","unit","technology","getItemHref","civs","CIVILIZATIONS","slug","id","Card","minAge","variations","reduce","includes","abbr","Math","min","age","_$insert","Link","CardHeader","_c$","_$memo","_c$2","_el$2","_tmpl$2","_el$3","firstChild","_el$4","Icon","icon","name","_el$5","_tmpl$3","For","each","CivFlag","_c$3","_el$6","_tmpl$4","_el$7","_$effect","_p$","_v$","_v$2","_$className","style","setProperty","removeProperty","_el$8","_tmpl$5","_el$9","_el$10","nextSibling","_el$11","_el$12","_el$13","_el$14","PRETTY_AGE_MAP","displayClasses","join","_v$3","_v$4","_v$5","isMac","test","navigator","userAgent","getEverything","SDK","flat","mergeSearchableData","keywords","SIMILAIR_ITEMS","x","flatMap","allItems","q","trim","ks","k","max","indexOf","sort","scrollSelectedIntoView","wrapper","selectedEl","offsetTop","clientHeight","scrollTop","scrollTo","top","behavior","Search","query","setQuery","createResource","selected","setSelected","navigate","changeSelected","close","inputRef","focus","createEffect","globalKeyupListener","metaKey","ctrlKey","preventDefault","onMount","window","addEventListener","removeEventListener","$$keydown","$$input","currentTarget","_ref$","_$use","_ref$2","_$delegateEvents","t","n","r","o","c","f","u","g","d","h","y","w","P","R","D","O","L","W","T","C","H","S","Tooltip","hover","setHover","delay","attachTo","positionTooltip","position","updatePosition","computePosition","placement","strategy","middleware","flip","shift","then","left","opacity","zIndex","setTimeout","Portal","itemTypeLabels","QuickNav","currentCivilization","CIVILIZATION_BY_SLUG","setCivilization","view","setView","show","setShow","document","body","add","remove","list","currentItem","positionPopup","bottom","$$click","_tmpl$6","values","_tmpl$7","entries","label","_el$15","_tmpl$8","items","_el$16","_tmpl$9","_el$17","_el$18","role","_el$19","_tmpl$10","_el$20","_tmpl$11","innerHTML","Toolbar","pending","smartCivLink","navButtonClass","noScroll","NavLink","ref","r$","toggle","thenBy_module","identity","ignoreCase","makeCompareFunction","opt","prop","v1","uf","preprocess","cmp","v2","descTokens","tb","func","getUnitStats","forCiv","mapCivsArgument","getStats","combatStats","mergeVariationsToStats","fc","techs","getItemTechnologies","tech","lazelyPickJustTheFirst","modifier","modifierMatches","SUPPORTED_MODIFIER_PROPERTIES","_b","_a","_c","firstBy","variation","stats","bonus","melee","weapons","burst","total","arr","cat","previousAgeValue","mod","mi","previousModifierValue","roundToDecimals","number","decimals","roundToGameTicks","calculateStatParts","stat","maxAge","round","val","parts","upgrades","maxBonusInAge","tryCreateVsBonusName","_d","StatBar","totalEl","setParts","setValues","multiplier","fromEntries","sum","formattedMultiplier","displayAlways","_c$4","_c$5","_c$6","_c$7","_el$21","_el$22","_c$8","_el$23","_el$24","_c$11","_el$26","_el$27","_c$9","_el$28","_el$29","_c$12","_el$31","_el$32","_c$10","_el$33","_el$34","_el$36","_el$37","_c$13","_el$38","_el$39","projectiles","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$58","_el$59","_el$61","Index","part","partEl","isBase","className","unique","hide","_el$62","_tmpl$13","_el$63","_tmpl$12","_el$64","_el$65","_el$66","_el$67","_el$68","_el$69","_el$70","_tmpl$14","_c$14","_el$71","_tmpl$15","_el$72","_c$15","_el$74","_tmpl$16","description","StatNumber","helperEl","_el$75","_tmpl$17","_el$76","_el$77","_el$78","_ref$3","_c$16","helper","_c$17","_el$80","_tmpl$18","_el$81","_ref$4","_c$18","_el$82","_tmpl$19","_el$83","_c$19","unitLabel","_el$84","_tmpl$20","_c$20","_el$85","_tmpl$21","_el$86","_el$88","_c$21","_el$89","_tmpl$22","_el$79","_el$91","_tmpl$23","_el$92","_el$95","_el$93","_el$94","_el$96","_tmpl$24","_el$97","_el$101","_el$98","_el$99","_el$102","_tmpl$25","_el$103","_el$107","_el$104","_el$105","dps","attackDuration","damage","calculateDpsParts","speed","attacks","attack","StatDps","attackSpeed","_el$108","_el$109","_el$110","_el$111","_ref$5","_c$22","_c$23","_el$132","_el$133","_ref$6","_tmpl$27","_c$24","_el$135","_tmpl$28","_el$136","_c$25","_el$137","_tmpl$29","_el$138","_el$140","_el$112","_tmpl$26","_el$113","_el$114","_el$115","_el$116","_el$117","_el$118","_el$119","_el$120","_el$121","_el$122","_el$123","_el$124","_el$125","_el$126","_el$127","_el$128","_el$129","_el$130","_el$131","formatSecondsToTime","seconds","floor","formatSecondsToPhrase","formatCurreny","StatCosts","_el$141","_tmpl$30","_el$142","_el$143","costs","_el$144","_tmpl$31","_el$145","_el$146","_$setAttribute","RESOURCES","BuildingCard","ITEMS","BUILDINGS","getMostAppropriateVariation","hitpoints","siegeAttack","rangedAttack","rangedArmor","fireArmor","meleeAttack","Random","args","obj","array","j","probability","content","featuredContent","getRelatedContent","featured","fetchContent","CURATED_CONTENT_API","defaultLimit","RelatedContent","related","limit","setLimit","Suspense","title","slice","ContentRow","relatedItems","endsWith","getRelatedItems","thumbnail","creator_url","creator","youtube_data","videoDuration","ids","console","error","ReportButton","showReport","setShowReport","increaseBarSizeForClass","getBarSize","baseSize","increasedSize","classes","some","UnitCard","UNITS","fireAttack","meleeArmor","moveSpeed","civBackdrops","CivDetailRoute","civConfig","loading","setActivePage","_el$25","overview","_el$30","_el$35","toUpperCase","UnitOverviewRoute","where","Array","TechnologyCard","dlcFlag","Header","itemCssClass","CivPicker","keys","CivOptionsForItem","ProducedAt","productionBuildings","producedBy","Set","Promise","all","warn","Boolean","getItemType","TECHNOLOGIES","AvailableUpgrades","Wrapper","useTransition","UnavailableForCiv","AgeTabs","setAge","PRETTY_AGE_MAP_SHORT","disabled","ExpansionInfo","ItemPage","PatchHistory","patchHistory","getPatchHistory","patchesExpanded","setPatchesExpanded","history","expanded","setExpanded","patch","date","valueOf","Date","now","toLocaleDateString","dateStyle","diff","change","Abilities","sortedMappedAbilities","abilities","ab","active","ability","activatedOn","auraRange","InlineItemLink","itemId","unlockedBy","cooldown","UnitDetailRoute","unmatched","setUnmatched","affects","tryRedirectToClosestMatch","setActivePageForItem","UnitSidebar","minRange","maxRange","lineOfSight","buttonClass","CivOverviewRoute","BuildingOverviewRoute","BuildingDetailRoute","producedAt","research","BuildingSidebar","popcapIncrease","amount","garrison","capacity","AboutRoute","TechnologyDetailRoute","PRETTY_AGE_MAP_LONG","TechnologoiesOverviewRoute","TableOfContentsContext","headings","TableOfContentsProvider","setHeadings","level","slugified","find","concat","requestAnimationFrame","getElementById","scrollIntoView","TableOfContentsAnchor","createHeadingId","removeHeading","useTableOfContents","scrollIntoViewIfNeeded","stopImmediatePropagation","pushState","block","TableOfContents","Anchor","PatchDetailRoute","patches","setCiv","sections","changes","ci","Map","filteredPatchNotes","chs","filterdChange","pagination","findIndex","previous","introduction","buildId","season","DirtSimpleMd","md","officialUrl","html","onClick","section","Section","Sidebar","subtitle","unmapped","capitlize","DiffList","sortPatchDiff","DevNote","note","_el$46","line","alt","_el$57","_el$60","SearchRoute","noResult","setNoResult","URLSearchParams","searchUrl","URL","select","toString","PatchListRoute","reverse","patchSummary","notes","day","month","year","summary","daysSinceLastPatch","buffed","nerfed","fixed","ceil","getTime","SidebarNav","allData","currentItemType","TreeMenu","TreeItem","TreeGroup","isOpen","TreeGroupToggle","toggleClass","TreeGroupItems","TreeMenuContext","setIsOpen","createUniqueId","onKeyDown","stopPropagation","_$addEventListener","focusableElements","focusOnElement","direction","elements","querySelectorAll","currentlyFocusedIndex","activeElement","nextIndex","lazy","activePage","closestMatch","findClosestMatch","lastPathname","setAttribute","meta","createElement","head","appendChild","App","resetFocusEl","preventScroll","getBoundingClientRect","ErrorBoundary","err","retry","errPath","log","initializeExplorer","render","onNavigate","mainNav"],"sources":["../../../node_modules/@solidjs/router/dist/integration.js","../../../node_modules/@solidjs/router/dist/lifecycle.js","../../../node_modules/@solidjs/router/dist/utils.js","../../../node_modules/@solidjs/router/dist/routing.js","../../../node_modules/@solidjs/router/dist/components.jsx","../../../app/frontend/lib/explorer/src/styles.ts","../../../app/frontend/lib/explorer/src/components/ItemIcon.tsx","../../../app/frontend/lib/explorer/src/global.tsx","../../../app/frontend/lib/explorer/src/components/Cards.tsx","../../../app/frontend/lib/explorer/src/components/Search.tsx","../../../node_modules/@floating-ui/core/dist/floating-ui.core.esm.min.js","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.min.js","../../../app/frontend/lib/explorer/src/components/Tooltip.tsx","../../../app/frontend/lib/explorer/src/components/QuickNav.tsx","../../../app/frontend/lib/explorer/src/components/Toolbar.tsx","../../../node_modules/thenby/thenBy.module.js","../../../app/frontend/lib/explorer/src/query/stats.ts","../../../app/frontend/lib/explorer/src/components/Stats.tsx","../../../app/frontend/lib/explorer/src/components/BuildingCard.tsx","../../../app/frontend/lib/explorer/src/components/quiz/random.ts","../../../app/frontend/lib/explorer/src/query/content.ts","../../../app/frontend/lib/explorer/src/components/RelatedContent.tsx","../../../app/frontend/lib/explorer/src/components/ReportButton.tsx","../../../app/frontend/lib/explorer/src/components/UnitCard.tsx","../../../app/frontend/lib/explorer/src/data/civData.ts","../../../app/frontend/lib/explorer/src/routes/civs/[slug].tsx","../../../app/frontend/lib/explorer/src/routes/units/units.tsx","../../../app/frontend/lib/explorer/src/components/TechnologyCard.tsx","../../../app/frontend/lib/explorer/assets/dlc-flag.png","../../../app/frontend/lib/explorer/src/components/ItemPage.tsx","../../../app/frontend/lib/explorer/src/components/PatchHistory.tsx","../../../app/frontend/lib/explorer/src/components/Abilities.tsx","../../../app/frontend/lib/explorer/src/routes/units/[id].tsx","../../../app/frontend/lib/explorer/src/routes/home.tsx","../../../app/frontend/lib/explorer/src/routes/buildings/buildings.tsx","../../../app/frontend/lib/explorer/src/routes/buildings/[id].tsx","../../../app/frontend/lib/explorer/src/routes/about.tsx","../../../app/frontend/lib/explorer/src/routes/technologies/[id].tsx","../../../app/frontend/lib/explorer/src/routes/technologies/technologies.tsx","../../../app/frontend/lib/explorer/src/components/TableOfContents.tsx","../../../app/frontend/lib/explorer/src/routes/patches/[id].tsx","../../../app/frontend/lib/explorer/src/routes/search.tsx","../../../app/frontend/lib/explorer/src/routes/patches/index.tsx","../../../app/frontend/lib/explorer/src/components/SidebarNav.tsx","../../../app/frontend/lib/explorer/src/App.tsx","../../../app/frontend/lib/explorer/src/index.tsx","../../../app/frontend/entrypoints/explorer.ts"],"sourcesContent":["import { createSignal, onCleanup } from \"solid-js\";\nfunction bindEvent(target, type, handler) {\n target.addEventListener(type, handler);\n return () => target.removeEventListener(type, handler);\n}\nfunction intercept([value, setValue], get, set) {\n return [get ? () => get(value()) : value, set ? (v) => setValue(set(v)) : setValue];\n}\nfunction querySelector(selector) {\n if (selector === \"#\") {\n return null;\n }\n // Guard against selector being an invalid CSS selector\n try {\n return document.querySelector(selector);\n }\n catch (e) {\n return null;\n }\n}\nfunction scrollToHash(hash, fallbackTop) {\n const el = querySelector(`#${hash}`);\n if (el) {\n el.scrollIntoView();\n }\n else if (fallbackTop) {\n window.scrollTo(0, 0);\n }\n}\nexport function createMemoryHistory() {\n const entries = [\"/\"];\n let index = 0;\n const listeners = [];\n const go = (n) => {\n // https://github.com/remix-run/react-router/blob/682810ca929d0e3c64a76f8d6e465196b7a2ac58/packages/router/history.ts#L245\n index = Math.max(0, Math.min(index + n, entries.length - 1));\n const value = entries[index];\n listeners.forEach(listener => listener(value));\n };\n return {\n get: () => entries[index],\n set: ({ value, scroll, replace }) => {\n if (replace) {\n entries[index] = value;\n }\n else {\n entries.splice(index + 1, entries.length - index, value);\n index++;\n }\n if (scroll) {\n scrollToHash(value.split(\"#\")[1] || \"\", true);\n }\n },\n back: () => {\n go(-1);\n },\n forward: () => {\n go(1);\n },\n go,\n listen: (listener) => {\n listeners.push(listener);\n return () => {\n const index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n }\n };\n}\nexport function createIntegration(get, set, init, utils) {\n let ignore = false;\n const wrap = (value) => (typeof value === \"string\" ? { value } : value);\n const signal = intercept(createSignal(wrap(get()), { equals: (a, b) => a.value === b.value }), undefined, next => {\n !ignore && set(next);\n return next;\n });\n init &&\n onCleanup(init((value = get()) => {\n ignore = true;\n signal[1](wrap(value));\n ignore = false;\n }));\n return {\n signal,\n utils\n };\n}\nexport function normalizeIntegration(integration) {\n if (!integration) {\n return {\n signal: createSignal({ value: \"\" })\n };\n }\n else if (Array.isArray(integration)) {\n return {\n signal: integration\n };\n }\n return integration;\n}\nexport function staticIntegration(obj) {\n return {\n signal: [() => obj, next => Object.assign(obj, next)]\n };\n}\nexport function pathIntegration() {\n return createIntegration(() => ({\n value: window.location.pathname + window.location.search + window.location.hash,\n state: history.state\n }), ({ value, replace, scroll, state }) => {\n if (replace) {\n window.history.replaceState(state, \"\", value);\n }\n else {\n window.history.pushState(state, \"\", value);\n }\n scrollToHash(window.location.hash.slice(1), scroll);\n }, notify => bindEvent(window, \"popstate\", () => notify()), {\n go: delta => window.history.go(delta)\n });\n}\nexport function hashIntegration() {\n return createIntegration(() => window.location.hash.slice(1), ({ value, replace, scroll, state }) => {\n if (replace) {\n window.history.replaceState(state, \"\", \"#\" + value);\n }\n else {\n window.location.hash = value;\n }\n const hashIndex = value.indexOf(\"#\");\n const hash = hashIndex >= 0 ? value.slice(hashIndex + 1) : \"\";\n scrollToHash(hash, scroll);\n }, notify => bindEvent(window, \"hashchange\", () => notify()), {\n go: delta => window.history.go(delta),\n renderPath: path => `#${path}`,\n parsePath: str => {\n const to = str.replace(/^.*?#/, \"\");\n // Hash-only hrefs like `#foo` from plain anchors will come in as `/#foo` whereas a link to\n // `/foo` will be `/#/foo`. Check if the to starts with a `/` and if not append it as a hash\n // to the current path so we can handle these in-page anchors correctly.\n if (!to.startsWith(\"/\")) {\n const [, path = \"/\"] = window.location.hash.split(\"#\", 2);\n return `${path}#${to}`;\n }\n return to;\n }\n });\n}\nexport function memoryIntegration() {\n const memoryHistory = createMemoryHistory();\n return createIntegration(memoryHistory.get, memoryHistory.set, memoryHistory.listen, {\n go: memoryHistory.go\n });\n}\n","export function createBeforeLeave() {\n let listeners = new Set();\n function subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }\n let ignore = false;\n function confirm(to, options) {\n if (ignore)\n return !(ignore = false);\n const e = {\n to,\n options,\n defaultPrevented: false,\n preventDefault: () => (e.defaultPrevented = true)\n };\n for (const l of listeners)\n l.listener({\n ...e,\n from: l.location,\n retry: (force) => {\n force && (ignore = true);\n l.navigate(to, options);\n }\n });\n return !e.defaultPrevented;\n }\n return {\n subscribe,\n confirm\n };\n}\n","import { createMemo, getOwner, runWithOwner } from \"solid-js\";\nconst hasSchemeRegex = /^(?:[a-z0-9]+:)?\\/\\//i;\nconst trimPathRegex = /^\\/+|(\\/)\\/+$/g;\nexport function normalizePath(path, omitSlash = false) {\n const s = path.replace(trimPathRegex, \"$1\");\n return s ? (omitSlash || /^[?#]/.test(s) ? s : \"/\" + s) : \"\";\n}\nexport function resolvePath(base, path, from) {\n if (hasSchemeRegex.test(path)) {\n return undefined;\n }\n const basePath = normalizePath(base);\n const fromPath = from && normalizePath(from);\n let result = \"\";\n if (!fromPath || path.startsWith(\"/\")) {\n result = basePath;\n }\n else if (fromPath.toLowerCase().indexOf(basePath.toLowerCase()) !== 0) {\n result = basePath + fromPath;\n }\n else {\n result = fromPath;\n }\n return (result || \"/\") + normalizePath(path, !result);\n}\nexport function invariant(value, message) {\n if (value == null) {\n throw new Error(message);\n }\n return value;\n}\nexport function joinPaths(from, to) {\n return normalizePath(from).replace(/\\/*(\\*.*)?$/g, \"\") + normalizePath(to);\n}\nexport function extractSearchParams(url) {\n const params = {};\n url.searchParams.forEach((value, key) => {\n params[key] = value;\n });\n return params;\n}\nexport function createMatcher(path, partial, matchFilters) {\n const [pattern, splat] = path.split(\"/*\", 2);\n const segments = pattern.split(\"/\").filter(Boolean);\n const len = segments.length;\n return (location) => {\n const locSegments = location.split(\"/\").filter(Boolean);\n const lenDiff = locSegments.length - len;\n if (lenDiff < 0 || (lenDiff > 0 && splat === undefined && !partial)) {\n return null;\n }\n const match = {\n path: len ? \"\" : \"/\",\n params: {}\n };\n const matchFilter = (s) => matchFilters === undefined ? undefined : matchFilters[s];\n for (let i = 0; i < len; i++) {\n const segment = segments[i];\n const locSegment = locSegments[i];\n const dynamic = segment[0] === \":\";\n const key = dynamic ? segment.slice(1) : segment;\n if (dynamic && matchSegment(locSegment, matchFilter(key))) {\n match.params[key] = locSegment;\n }\n else if (dynamic || !matchSegment(locSegment, segment)) {\n return null;\n }\n match.path += `/${locSegment}`;\n }\n if (splat) {\n const remainder = lenDiff ? locSegments.slice(-lenDiff).join(\"/\") : \"\";\n if (matchSegment(remainder, matchFilter(splat))) {\n match.params[splat] = remainder;\n }\n else {\n return null;\n }\n }\n return match;\n };\n}\nfunction matchSegment(input, filter) {\n const isEqual = (s) => s.localeCompare(input, undefined, { sensitivity: \"base\" }) === 0;\n if (filter === undefined) {\n return true;\n }\n else if (typeof filter === \"string\") {\n return isEqual(filter);\n }\n else if (typeof filter === \"function\") {\n return filter(input);\n }\n else if (Array.isArray(filter)) {\n return filter.some(isEqual);\n }\n else if (filter instanceof RegExp) {\n return filter.test(input);\n }\n return false;\n}\nexport function scoreRoute(route) {\n const [pattern, splat] = route.pattern.split(\"/*\", 2);\n const segments = pattern.split(\"/\").filter(Boolean);\n return segments.reduce((score, segment) => score + (segment.startsWith(\":\") ? 2 : 3), segments.length - (splat === undefined ? 0 : 1));\n}\nexport function createMemoObject(fn) {\n const map = new Map();\n const owner = getOwner();\n return new Proxy({}, {\n get(_, property) {\n if (!map.has(property)) {\n runWithOwner(owner, () => map.set(property, createMemo(() => fn()[property])));\n }\n return map.get(property)();\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n },\n ownKeys() {\n return Reflect.ownKeys(fn());\n }\n });\n}\nexport function mergeSearchString(search, params) {\n const merged = new URLSearchParams(search);\n Object.entries(params).forEach(([key, value]) => {\n if (value == null || value === \"\") {\n merged.delete(key);\n }\n else {\n merged.set(key, String(value));\n }\n });\n const s = merged.toString();\n return s ? `?${s}` : \"\";\n}\nexport function expandOptionals(pattern) {\n let match = /(\\/?\\:[^\\/]+)\\?/.exec(pattern);\n if (!match)\n return [pattern];\n let prefix = pattern.slice(0, match.index);\n let suffix = pattern.slice(match.index + match[0].length);\n const prefixes = [prefix, (prefix += match[1])];\n // This section handles adjacent optional params. We don't actually want all permuations since\n // that will lead to equivalent routes which have the same number of params. For example\n // `/:a?/:b?/:c`? only has the unique expansion: `/`, `/:a`, `/:a/:b`, `/:a/:b/:c` and we can\n // discard `/:b`, `/:c`, `/:b/:c` by building them up in order and not recursing. This also helps\n // ensure predictability where earlier params have precidence.\n while ((match = /^(\\/\\:[^\\/]+)\\?/.exec(suffix))) {\n prefixes.push((prefix += match[1]));\n suffix = suffix.slice(match[0].length);\n }\n return expandOptionals(suffix).reduce((results, expansion) => [...results, ...prefixes.map(p => p + expansion)], []);\n}\n","import { createComponent, createContext, createMemo, createRenderEffect, createSignal, on, onCleanup, untrack, useContext, startTransition, resetErrorBoundaries } from \"solid-js\";\nimport { isServer, delegateEvents } from \"solid-js/web\";\nimport { normalizeIntegration } from \"./integration\";\nimport { createBeforeLeave } from \"./lifecycle\";\nimport { createMemoObject, extractSearchParams, invariant, resolvePath, createMatcher, joinPaths, scoreRoute, mergeSearchString, expandOptionals } from \"./utils\";\nconst MAX_REDIRECTS = 100;\nexport const RouterContextObj = createContext();\nexport const RouteContextObj = createContext();\nexport const useRouter = () => invariant(useContext(RouterContextObj), \"Make sure your app is wrapped in a \");\nlet TempRoute;\nexport const useRoute = () => TempRoute || useContext(RouteContextObj) || useRouter().base;\nexport const useResolvedPath = (path) => {\n const route = useRoute();\n return createMemo(() => route.resolvePath(path()));\n};\nexport const useHref = (to) => {\n const router = useRouter();\n return createMemo(() => {\n const to_ = to();\n return to_ !== undefined ? router.renderPath(to_) : to_;\n });\n};\nexport const useNavigate = () => useRouter().navigatorFactory();\nexport const useLocation = () => useRouter().location;\nexport const useIsRouting = () => useRouter().isRouting;\nexport const useMatch = (path, matchFilters) => {\n const location = useLocation();\n const matchers = createMemo(() => expandOptionals(path()).map(path => createMatcher(path, undefined, matchFilters)));\n return createMemo(() => {\n for (const matcher of matchers()) {\n const match = matcher(location.pathname);\n if (match)\n return match;\n }\n });\n};\nexport const useParams = () => useRoute().params;\nexport const useRouteData = () => useRoute().data;\nexport const useSearchParams = () => {\n const location = useLocation();\n const navigate = useNavigate();\n const setSearchParams = (params, options) => {\n const searchString = untrack(() => location.pathname + mergeSearchString(location.search, params) + location.hash);\n navigate(searchString, {\n scroll: false,\n resolve: false,\n ...options\n });\n };\n return [location.query, setSearchParams];\n};\nexport const useBeforeLeave = (listener) => {\n const s = useRouter().beforeLeave.subscribe({\n listener,\n location: useLocation(),\n navigate: useNavigate()\n });\n onCleanup(s);\n};\nexport function createRoutes(routeDef, base = \"\", fallback) {\n const { component, data, children } = routeDef;\n const isLeaf = !children || (Array.isArray(children) && !children.length);\n const shared = {\n key: routeDef,\n element: component\n ? () => createComponent(component, {})\n : () => {\n const { element } = routeDef;\n return element === undefined && fallback\n ? createComponent(fallback, {})\n : element;\n },\n preload: routeDef.component\n ? component.preload\n : routeDef.preload,\n data\n };\n return asArray(routeDef.path).reduce((acc, path) => {\n for (const originalPath of expandOptionals(path)) {\n const path = joinPaths(base, originalPath);\n const pattern = isLeaf ? path : path.split(\"/*\", 1)[0];\n acc.push({\n ...shared,\n originalPath,\n pattern,\n matcher: createMatcher(pattern, !isLeaf, routeDef.matchFilters)\n });\n }\n return acc;\n }, []);\n}\nexport function createBranch(routes, index = 0) {\n return {\n routes,\n score: scoreRoute(routes[routes.length - 1]) * 10000 - index,\n matcher(location) {\n const matches = [];\n for (let i = routes.length - 1; i >= 0; i--) {\n const route = routes[i];\n const match = route.matcher(location);\n if (!match) {\n return null;\n }\n matches.unshift({\n ...match,\n route\n });\n }\n return matches;\n }\n };\n}\nfunction asArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function createBranches(routeDef, base = \"\", fallback, stack = [], branches = []) {\n const routeDefs = asArray(routeDef);\n for (let i = 0, len = routeDefs.length; i < len; i++) {\n const def = routeDefs[i];\n if (def && typeof def === \"object\" && def.hasOwnProperty(\"path\")) {\n const routes = createRoutes(def, base, fallback);\n for (const route of routes) {\n stack.push(route);\n const isEmptyArray = Array.isArray(def.children) && def.children.length === 0;\n if (def.children && !isEmptyArray) {\n createBranches(def.children, route.pattern, fallback, stack, branches);\n }\n else {\n const branch = createBranch([...stack], branches.length);\n branches.push(branch);\n }\n stack.pop();\n }\n }\n }\n // Stack will be empty on final return\n return stack.length ? branches : branches.sort((a, b) => b.score - a.score);\n}\nexport function getRouteMatches(branches, location) {\n for (let i = 0, len = branches.length; i < len; i++) {\n const match = branches[i].matcher(location);\n if (match) {\n return match;\n }\n }\n return [];\n}\nexport function createLocation(path, state) {\n const origin = new URL(\"http://sar\");\n const url = createMemo(prev => {\n const path_ = path();\n try {\n return new URL(path_, origin);\n }\n catch (err) {\n console.error(`Invalid path ${path_}`);\n return prev;\n }\n }, origin, {\n equals: (a, b) => a.href === b.href\n });\n const pathname = createMemo(() => url().pathname);\n const search = createMemo(() => url().search, true);\n const hash = createMemo(() => url().hash);\n const key = createMemo(() => \"\");\n return {\n get pathname() {\n return pathname();\n },\n get search() {\n return search();\n },\n get hash() {\n return hash();\n },\n get state() {\n return state();\n },\n get key() {\n return key();\n },\n query: createMemoObject(on(search, () => extractSearchParams(url())))\n };\n}\nexport function createRouterContext(integration, base = \"\", data, out) {\n const { signal: [source, setSource], utils = {} } = normalizeIntegration(integration);\n const parsePath = utils.parsePath || (p => p);\n const renderPath = utils.renderPath || (p => p);\n const beforeLeave = utils.beforeLeave || createBeforeLeave();\n const basePath = resolvePath(\"\", base);\n const output = isServer && out\n ? Object.assign(out, {\n matches: [],\n url: undefined\n })\n : undefined;\n if (basePath === undefined) {\n throw new Error(`${basePath} is not a valid base path`);\n }\n else if (basePath && !source().value) {\n setSource({ value: basePath, replace: true, scroll: false });\n }\n const [isRouting, setIsRouting] = createSignal(false);\n const start = async (callback) => {\n setIsRouting(true);\n try {\n await startTransition(callback);\n }\n finally {\n setIsRouting(false);\n }\n };\n const [reference, setReference] = createSignal(source().value);\n const [state, setState] = createSignal(source().state);\n const location = createLocation(reference, state);\n const referrers = [];\n const baseRoute = {\n pattern: basePath,\n params: {},\n path: () => basePath,\n outlet: () => null,\n resolvePath(to) {\n return resolvePath(basePath, to);\n }\n };\n if (data) {\n try {\n TempRoute = baseRoute;\n baseRoute.data = data({\n data: undefined,\n params: {},\n location,\n navigate: navigatorFactory(baseRoute)\n });\n }\n finally {\n TempRoute = undefined;\n }\n }\n function navigateFromRoute(route, to, options) {\n // Untrack in case someone navigates in an effect - don't want to track `reference` or route paths\n untrack(() => {\n if (typeof to === \"number\") {\n if (!to) {\n // A delta of 0 means stay at the current location, so it is ignored\n }\n else if (utils.go) {\n beforeLeave.confirm(to, options) && utils.go(to);\n }\n else {\n console.warn(\"Router integration does not support relative routing\");\n }\n return;\n }\n const { replace, resolve, scroll, state: nextState } = {\n replace: false,\n resolve: true,\n scroll: true,\n ...options\n };\n const resolvedTo = resolve ? route.resolvePath(to) : resolvePath(\"\", to);\n if (resolvedTo === undefined) {\n throw new Error(`Path '${to}' is not a routable path`);\n }\n else if (referrers.length >= MAX_REDIRECTS) {\n throw new Error(\"Too many redirects\");\n }\n const current = reference();\n if (resolvedTo !== current || nextState !== state()) {\n if (isServer) {\n if (output) {\n output.url = resolvedTo;\n }\n setSource({ value: resolvedTo, replace, scroll, state: nextState });\n }\n else if (beforeLeave.confirm(resolvedTo, options)) {\n const len = referrers.push({ value: current, replace, scroll, state: state() });\n start(() => {\n setReference(resolvedTo);\n setState(nextState);\n resetErrorBoundaries();\n }).then(() => {\n if (referrers.length === len) {\n navigateEnd({\n value: resolvedTo,\n state: nextState\n });\n }\n });\n }\n }\n });\n }\n function navigatorFactory(route) {\n // Workaround for vite issue (https://github.com/vitejs/vite/issues/3803)\n route = route || useContext(RouteContextObj) || baseRoute;\n return (to, options) => navigateFromRoute(route, to, options);\n }\n function navigateEnd(next) {\n const first = referrers[0];\n if (first) {\n if (next.value !== first.value || next.state !== first.state) {\n setSource({\n ...next,\n replace: first.replace,\n scroll: first.scroll\n });\n }\n referrers.length = 0;\n }\n }\n createRenderEffect(() => {\n const { value, state } = source();\n // Untrack this whole block so `start` doesn't cause Solid's Listener to be preserved\n untrack(() => {\n if (value !== reference()) {\n start(() => {\n setReference(value);\n setState(state);\n });\n }\n });\n });\n if (!isServer) {\n function handleAnchorClick(evt) {\n if (evt.defaultPrevented ||\n evt.button !== 0 ||\n evt.metaKey ||\n evt.altKey ||\n evt.ctrlKey ||\n evt.shiftKey)\n return;\n const a = evt\n .composedPath()\n .find(el => el instanceof Node && el.nodeName.toUpperCase() === \"A\");\n if (!a || !a.hasAttribute(\"link\"))\n return;\n const href = a.href;\n if (a.target || (!href && !a.hasAttribute(\"state\")))\n return;\n const rel = (a.getAttribute(\"rel\") || \"\").split(/\\s+/);\n if (a.hasAttribute(\"download\") || (rel && rel.includes(\"external\")))\n return;\n const url = new URL(href);\n if (url.origin !== window.location.origin ||\n (basePath && url.pathname && !url.pathname.toLowerCase().startsWith(basePath.toLowerCase())))\n return;\n const to = parsePath(url.pathname + url.search + url.hash);\n const state = a.getAttribute(\"state\");\n evt.preventDefault();\n navigateFromRoute(baseRoute, to, {\n resolve: false,\n replace: a.hasAttribute(\"replace\"),\n scroll: !a.hasAttribute(\"noscroll\"),\n state: state && JSON.parse(state)\n });\n }\n // ensure delegated events run first\n delegateEvents([\"click\"]);\n document.addEventListener(\"click\", handleAnchorClick);\n onCleanup(() => document.removeEventListener(\"click\", handleAnchorClick));\n }\n return {\n base: baseRoute,\n out: output,\n location,\n isRouting,\n renderPath,\n parsePath,\n navigatorFactory,\n beforeLeave\n };\n}\nexport function createRouteContext(router, parent, child, match, params) {\n const { base, location, navigatorFactory } = router;\n const { pattern, element: outlet, preload, data } = match().route;\n const path = createMemo(() => match().path);\n preload && preload();\n const route = {\n parent,\n pattern,\n get child() {\n return child();\n },\n path,\n params,\n data: parent.data,\n outlet,\n resolvePath(to) {\n return resolvePath(base.path(), to, path());\n }\n };\n if (data) {\n try {\n TempRoute = route;\n route.data = data({ data: parent.data, params, location, navigate: navigatorFactory(route) });\n }\n finally {\n TempRoute = undefined;\n }\n }\n return route;\n}\n","/*@refresh skip*/\nimport { children, createMemo, createRoot, mergeProps, on, Show, splitProps } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport { pathIntegration, staticIntegration } from \"./integration\";\nimport { createBranches, createRouteContext, createRouterContext, getRouteMatches, RouteContextObj, RouterContextObj, useHref, useLocation, useNavigate, useResolvedPath, useRoute, useRouter } from \"./routing\";\nimport { joinPaths, normalizePath, createMemoObject } from \"./utils\";\nexport const Router = (props) => {\n const { source, url, base, data, out } = props;\n const integration = source || (isServer ? staticIntegration({ value: url || \"\" }) : pathIntegration());\n const routerState = createRouterContext(integration, base, data, out);\n return ({props.children});\n};\nexport const Routes = (props) => {\n const router = useRouter();\n const parentRoute = useRoute();\n const routeDefs = children(() => props.children);\n const branches = createMemo(() => createBranches(routeDefs(), joinPaths(parentRoute.pattern, props.base || \"\"), Outlet));\n const matches = createMemo(() => getRouteMatches(branches(), router.location.pathname));\n const params = createMemoObject(() => {\n const m = matches();\n const params = {};\n for (let i = 0; i < m.length; i++) {\n Object.assign(params, m[i].params);\n }\n return params;\n });\n if (router.out) {\n router.out.matches.push(matches().map(({ route, path, params }) => ({\n originalPath: route.originalPath,\n pattern: route.pattern,\n path,\n params\n })));\n }\n const disposers = [];\n let root;\n const routeStates = createMemo(on(matches, (nextMatches, prevMatches, prev) => {\n let equal = prevMatches && nextMatches.length === prevMatches.length;\n const next = [];\n for (let i = 0, len = nextMatches.length; i < len; i++) {\n const prevMatch = prevMatches && prevMatches[i];\n const nextMatch = nextMatches[i];\n if (prev && prevMatch && nextMatch.route.key === prevMatch.route.key) {\n next[i] = prev[i];\n }\n else {\n equal = false;\n if (disposers[i]) {\n disposers[i]();\n }\n createRoot(dispose => {\n disposers[i] = dispose;\n next[i] = createRouteContext(router, next[i - 1] || parentRoute, () => routeStates()[i + 1], () => matches()[i], params);\n });\n }\n }\n disposers.splice(nextMatches.length).forEach(dispose => dispose());\n if (prev && equal) {\n return prev;\n }\n root = next[0];\n return next;\n }));\n return (\n {route => {route.outlet()}}\n );\n};\nexport const useRoutes = (routes, base) => {\n return () => {routes};\n};\nexport const Route = (props) => {\n const childRoutes = children(() => props.children);\n return mergeProps(props, {\n get children() {\n return childRoutes();\n }\n });\n};\nexport const Outlet = () => {\n const route = useRoute();\n return (\n {child => {child.outlet()}}\n );\n};\nexport function A(props) {\n props = mergeProps({ inactiveClass: \"inactive\", activeClass: \"active\" }, props);\n const [, rest] = splitProps(props, [\n \"href\",\n \"state\",\n \"class\",\n \"activeClass\",\n \"inactiveClass\",\n \"end\"\n ]);\n const to = useResolvedPath(() => props.href);\n const href = useHref(to);\n const location = useLocation();\n const isActive = createMemo(() => {\n const to_ = to();\n if (to_ === undefined)\n return false;\n const path = normalizePath(to_.split(/[?#]/, 1)[0]).toLowerCase();\n const loc = normalizePath(location.pathname).toLowerCase();\n return props.end ? path === loc : loc.startsWith(path);\n });\n return ();\n}\n// deprecated alias exports\nexport { A as Link, A as NavLink };\nexport function Navigate(props) {\n const navigate = useNavigate();\n const location = useLocation();\n const { href, state } = props;\n const path = typeof href === \"function\" ? href({ navigate, location }) : href;\n navigate(path, { replace: true, state });\n return null;\n}\n","import { UnifiedItem } from \"./types/data\";\n\nexport const mainIntroductionCSSClass = `leading-8 text-white/80 text-lg lg:text-xl my-8 max-w-prose whitespace-pre-wrap`;\nexport const mainItemTitleCSSClass = `text-3xl font-bold text-white`;\nexport const statLabelCSSClass = `text-white/50 uppercase text-xs font-bold tracking-widest`;\nexport const tooltipCSSClass = `bg-gray-800 outline-2 outline outline-white/20 p-4 max-w-sm drop-shadow-lg rounded`;\nexport const itemGridCSSClass = `grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-3 gap-7`;\nexport const secondaryButtonClass = `text-gray-300 font-bold text-sm bg-gray-600 rounded px-3 py-2 hover:bg-gray-500 hover:text-gray-50 transition`;\n\nexport function getItemCssClass(item: UnifiedItem) {\n return item.type === \"unit\" ? \"item-unit\" :\n item.type == \"building\" ? \"item-building\" :\n item.type == \"technology\" ? \"item-tech\" :\n item.type == \"ability\" ? \"item-ability\" : \"item-building\";\n}\n","import { Component, JSX, splitProps } from \"solid-js\";\n\nexport const ItemIcon: Component & { url: string }> = (props) => {\n const [local, imgProps] = splitProps(props, [\"url\"]);\n return ;\n};\n","import { createSignal } from \"solid-js\";\nimport { civAbbr } from \"./types/data\";\nimport { CivConfig } from \"@data/types/civs\";\nimport { splitUnitsIntoGroups, splitBuildingsIntoGroups, splitTechnologiesIntroGroups } from \"./query/utils\";\n\nexport const [hideNav, setHideNav] = createSignal(false);\nexport const [globalAgeFilter, setGlobalAgeFilter] = createSignal(4);\nexport const [globalCivFilter, setGlobalCivsFilter] = createSignal(null);\n\nexport async function getStructuredItems(civilization?: CivConfig) {\n const sdk = await import(\"@data/sdk\");\n if (!civilization)\n return {\n civ: undefined,\n units: splitUnitsIntoGroups(sdk.units.order(\"hitpoints\", \"age\")),\n buildings: splitBuildingsIntoGroups(sdk.buildings.order(\"hitpoints\", \"age\")),\n technologies: splitTechnologiesIntroGroups(sdk.technologies.order(\"age\")),\n };\n const civ = sdk.civilizations.Get(civilization);\n if (!civ.info) return;\n return {\n civ,\n units: splitUnitsIntoGroups(civ.units.order(\"hitpoints\", \"age\")),\n buildings: splitBuildingsIntoGroups(civ.buildings.order(\"hitpoints\", \"age\")),\n technologies: splitTechnologiesIntroGroups(civ.technologies.order(\"age\")),\n };\n}\n\nexport function parseCurrentLocation(pathname: string) {\n const path = pathname?.toLowerCase() ?? \"\";\n const [route, civ, subroute] = path.match(/\\/civs\\/([a-z]+)\\/?([\\w/-]*)/i) ?? [];\n const itemType = subroute?.split(\"/\")[0] || (civ?.length ? \"\" : path.match(/(units|buildings|technologies)/i)?.[0])?.toLowerCase();\n const id = [\"buildings\", \"technologies\", \"units\"].includes(itemType);\n return { route, civ, subroute, itemType };\n}\n","import { Link } from \"@solidjs/router\";\nimport { Component, For, ParentComponent } from \"solid-js\";\nimport { CIVILIZATIONS, PRETTY_AGE_MAP } from \"../config\";\nimport { civConfig, UnifiedItem } from \"../types/data\";\nimport { CivFlag } from \"./CivFlag\";\nimport { Icon } from \"./Icon\";\nimport { ItemIcon } from \"./ItemIcon\";\nimport { globalAgeFilter } from \"../global\";\n\nconst typeToPathMap = {\n building: \"buildings\",\n unit: \"units\",\n technology: \"technologies\",\n};\n\nexport function getItemHref(item: UnifiedItem, civ?: civConfig) {\n if (item.civs.length == 1 && !civ) civ = CIVILIZATIONS[item.civs[0]];\n return `${civ ? `/civs/${civ.slug}` : \"\"}/${typeToPathMap[item.type]}/${item.id}`;\n}\n\nexport const Card: ParentComponent<{ item: UnifiedItem; civ?: civConfig }> = (props) => {\n const minAge = () => (!props.civ ? props.item.minAge : props.item.variations.reduce((a, v) => (v.civs.includes(props.civ.abbr) ? Math.min(a, v.age) : a), 4));\n\n return (\n = minAge() ? 1 : 0.5 }}\n >\n \n \n \n\n {props.children}\n\n {props.civ ? (\n props.item.civs.length == 1 && (\n
\n \n Unique to {props.civ.name}\n \n
\n )\n ) : (\n
\n \n {(civ) =>\n props.item.type != \"technology\" ? (\n \n \n \n ) : (\n \n )\n }\n \n {props.item.civs.length == 1 && (\n \n Unique\n \n )}\n
\n )}\n \n );\n};\n\nexport const CardHeader: Component<{ item: UnifiedItem; civ?: civConfig; minAge: number }> = (props) => {\n return (\n
\n
\n \n
\n
\n
\n

{props.item.name}

\n {PRETTY_AGE_MAP[props.minAge]}\n
\n

{props.item.displayClasses.join(\", \")}

\n
\n
\n );\n};\n\n// const increaseBarSizeForClass = [\"Siege\", \"Elephant\"];\n// function getBarSize(unit: UnifiedItem, baseSize: number, increasedSize: number) {\n// return unit.classes.some((c) => increaseBarSizeForClass.includes(c)) ? increasedSize : baseSize;\n// }\n\n// export const Card: Component<{ unit: UnifiedItem<(Building | Unit | Technology)>; baseHref?: string; civ?: civConfig | civAbbr }> = (props) => {\n// const [stats] = createResource(() => getUnitStats(props.unit, props.civ));\n// const minAge = createMemo(() => props.unit.variations.sort((a, b) => a.age - b.age)[0].age);\n\n// return (\n// = minAge() ? 1 : 0.5 }}\n// >\n// \n//
\n//
\n// \n//
\n//
\n//
\n//

{props.unit.name}

\n// {PRETTY_AGE_MAP[minAge()]}\n//
\n//

{props.unit.classes.join(\", \")}

\n//
\n//
\n// \n// \n// <>\n//
\n// \n// \n// {/* */}\n// \n// {/* */}\n// \n//
\n//
\n//
\n// \n//
\n// \n// \n//
\n// \n//
\n// \n// );\n// };\n","import { Link, useLocation, useNavigate } from \"@solidjs/router\";\nimport { Component, createEffect, createResource, createSignal, For, onCleanup, onMount, Show } from \"solid-js\";\nimport { ITEMS, SIMILAIR_ITEMS } from \"../config\";\nimport { UnifiedItem } from \"../types/data\";\nimport { getItemHref } from \"./Cards\";\nimport { Icon } from \"./Icon\";\nimport { ItemIcon } from \"./ItemIcon\";\n\nconst isMac = /mac/i.test(navigator.userAgent);\n\nasync function getEverything() {\n const SDK = await import(\"@data/sdk\");\n return [SDK.buildings, SDK.technologies, SDK.units].flat();\n}\n\nfunction mergeSearchableData(item: UnifiedItem) {\n const keywords = [\n item.name.toLowerCase(),\n item.displayClasses.join(\" \").toLowerCase(),\n SIMILAIR_ITEMS.filter((x) => x.includes(item.id)).flatMap((x) => x.join(\" \").replace(\"-\", \" \")),\n ];\n return [keywords.join(\" \"), keywords] as [string, string[]];\n}\n\nlet allItems: [match: string, keywords: string[], item: UnifiedItem][];\nexport async function search(q: string = \"\") {\n q = q.trim().toLowerCase();\n if (!q.length) return [];\n\n allItems ??= (await getEverything()).map((x) => [...mergeSearchableData(x), x] as [string, string[], UnifiedItem]);\n\n return allItems\n .filter(([m]) => m.includes(q))\n .map(([, ks, item]) => ({\n score: ks.reduce((acc, k, i) => {\n let score = 0;\n if (k.includes(q)) score += 8 - i * 5;\n else return acc;\n if (i == 0) score += Math.max(Math.max(10 - k.length, 5) - k.indexOf(q), 0);\n if (item.type == \"unit\") score += 5;\n return acc + score;\n }, 0),\n item,\n }))\n .sort((a, b) => b.score - a.score);\n}\n\nfunction scrollSelectedIntoView(wrapper: HTMLElement) {\n const selectedEl = wrapper?.querySelector(\".selected\");\n if (!selectedEl) return;\n\n if (selectedEl.offsetTop - wrapper.clientHeight > wrapper.scrollTop - selectedEl.clientHeight * 2)\n wrapper.scrollTo({ top: selectedEl.offsetTop, behavior: \"smooth\" });\n else if (selectedEl.offsetTop - selectedEl.clientHeight < wrapper.scrollTop)\n wrapper.scrollTo({\n top: selectedEl.offsetTop - wrapper.clientHeight + selectedEl.clientHeight,\n behavior: \"smooth\",\n });\n}\n\nexport const Search: Component<{ class?: string }> = (props) => {\n const [query, setQuery] = createSignal(\"\");\n const [results] = createResource(query, search);\n const [selected, setSelected] = createSignal(0);\n const navigate = useNavigate();\n const location = useLocation();\n const changeSelected = (delta: number) => {\n setSelected(Math.min(Math.max(selected() + delta, -1), results().length - 1));\n scrollSelectedIntoView(wrapper);\n };\n const close = () => {\n setQuery(\"\");\n setSelected(-1);\n inputRef.value = \"\";\n };\n\n const focus = () => inputRef.focus();\n createEffect(() => location.pathname && close());\n createEffect(() => results() && setSelected(0));\n\n function globalKeyupListener(e: KeyboardEvent) {\n if (e.key === \"k\" && (e.metaKey || e.ctrlKey)) {\n focus();\n e.preventDefault();\n }\n }\n\n onMount(() => window.addEventListener(\"keydown\", globalKeyupListener));\n onCleanup(() => window.removeEventListener(\"keydown\", globalKeyupListener));\n\n let inputRef: HTMLInputElement;\n let wrapper: HTMLDivElement;\n\n return (\n
\n \n
\n
\n {query() ? `↓↑ ↵` : `${isMac ? \"⌘\" : \"ctrl\"} + k`}\n
\n
\n setQuery(e.currentTarget.value)}\n onKeyDown={(e) => {\n if (e.key == \"ArrowUp\") changeSelected(-1);\n if (e.key == \"ArrowDown\") changeSelected(1);\n if (e.key == \"Escape\") close();\n if (e.key == \"Enter\" && selected() >= 0) {\n navigate(getItemHref(results()[selected()].item));\n close();\n }\n }}\n />\n 1}>\n \n \n
No results
\n
\n \n {({ score, item }, i) => (\n \n
\n \n
\n {item.name}\n {/* {score} */}\n \n )}\n
\n
\n \n \n );\n};\n","function t(t){return t.split(\"-\")[0]}function e(t){return t.split(\"-\")[1]}function n(e){return[\"top\",\"bottom\"].includes(t(e))?\"x\":\"y\"}function r(t){return\"y\"===t?\"height\":\"width\"}function o(o){let{reference:i,floating:a,placement:l}=o;const s=i.x+i.width/2-a.width/2,c=i.y+i.height/2-a.height/2;let f;switch(t(l)){case\"top\":f={x:s,y:i.y-a.height};break;case\"bottom\":f={x:s,y:i.y+i.height};break;case\"right\":f={x:i.x+i.width,y:c};break;case\"left\":f={x:i.x-a.width,y:c};break;default:f={x:i.x,y:i.y}}const m=n(l),u=r(m);switch(e(l)){case\"start\":f[m]=f[m]-(i[u]/2-a[u]/2);break;case\"end\":f[m]=f[m]+(i[u]/2-a[u]/2)}return f}const i=async(t,e,n)=>{const{placement:r=\"bottom\",strategy:i=\"absolute\",middleware:a=[],platform:l}=n;let s=await l.getElementRects({reference:t,floating:e,strategy:i}),{x:c,y:f}=o({...s,placement:r}),m=r,u={};for(let n=0;n({name:\"arrow\",options:e,async fn(o){const{element:i,padding:l=0}=null!=e?e:{},{x:s,y:c,placement:f,rects:u,platform:p}=o;if(null==i)return{};const g=a(l),d={x:s,y:c},h=n(t(f)),y=r(h),x=await p.getDimensions({element:i}),w=\"y\"===h?\"top\":\"left\",b=\"y\"===h?\"bottom\":\"right\",v=u.reference[y]+u.reference[h]-d[h]-u.floating[y],A=d[h]-u.reference[h],P=await p.getOffsetParent({element:i}),k=P?\"y\"===h?P.clientHeight||0:P.clientWidth||0:0,R=v/2-A/2,D=g[w],O=k-x[y]-g[b],C=k/2-x[y]/2+R,E=m(D,C,O);return{data:{[h]:E,centerOffset:C-E}}}}),p={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function g(t){return t.replace(/left|right|bottom|top/g,(t=>p[t]))}function d(t,o){const i=\"start\"===e(t),a=n(t),l=r(a);let s=\"x\"===a?i?\"right\":\"left\":i?\"bottom\":\"top\";return o.reference[l]>o.floating[l]&&(s=g(s)),{main:s,cross:g(s)}}const h={start:\"end\",end:\"start\"};function y(t){return t.replace(/start|end/g,(t=>h[t]))}const x=[\"top\",\"right\",\"bottom\",\"left\"],w=x.reduce(((t,e)=>t.concat(e,e+\"-start\",e+\"-end\")),[]);const b=function(n){return void 0===n&&(n={}),{name:\"autoPlacement\",options:n,async fn(r){var o,i,a,l,c,f;const{x:m,y:u,rects:p,middlewareData:g,placement:h}=r,{alignment:x=null,allowedPlacements:b=w,autoAlignment:v=!0,...A}=n;if(null!=(o=g.autoPlacement)&&o.skip)return{};const P=function(n,r,o){return(n?[...o.filter((t=>e(t)===n)),...o.filter((t=>e(t)!==n))]:o.filter((e=>t(e)===e))).filter((t=>!n||e(t)===n||!!r&&y(t)!==t))}(x,v,b),k=await s(r,A),R=null!=(i=null==(a=g.autoPlacement)?void 0:a.index)?i:0,D=P[R],{main:O,cross:C}=d(D,p);if(h!==D)return{x:m,y:u,reset:{placement:P[0]}};const E=[k[t(D)],k[O],k[C]],B=[...null!=(l=null==(c=g.autoPlacement)?void 0:c.overflows)?l:[],{placement:D,overflows:E}],H=P[R+1];if(H)return{data:{index:R+1,overflows:B},reset:{placement:H}};const z=B.slice().sort(((t,e)=>t.overflows[0]-e.overflows[0])),F=null==(f=z.find((t=>{let{overflows:e}=t;return e.every((t=>t<=0))})))?void 0:f.placement;return{data:{skip:!0},reset:{placement:null!=F?F:z[0].placement}}}}};const v=function(e){return void 0===e&&(e={}),{name:\"flip\",options:e,async fn(n){var r,o;const{placement:i,middlewareData:a,rects:l,initialPlacement:c}=n;if(null!=(r=a.flip)&&r.skip)return{};const{mainAxis:f=!0,crossAxis:m=!0,fallbackPlacements:u,fallbackStrategy:p=\"bestFit\",flipAlignment:h=!0,...x}=e,w=t(i),b=u||(w===c||!h?[g(c)]:function(t){const e=g(t);return[y(t),e,y(e)]}(c)),v=[c,...b],A=await s(n,x),P=[];let k=(null==(o=a.flip)?void 0:o.overflows)||[];if(f&&P.push(A[w]),m){const{main:t,cross:e}=d(i,l);P.push(A[t],A[e])}if(k=[...k,{placement:i,overflows:P}],!P.every((t=>t<=0))){var R,D;const t=(null!=(R=null==(D=a.flip)?void 0:D.index)?R:0)+1,e=v[t];if(e)return{data:{index:t,overflows:k},reset:{placement:e}};let n=\"bottom\";switch(p){case\"bestFit\":{var O;const t=null==(O=k.slice().sort(((t,e)=>t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)-e.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)))[0])?void 0:O.placement;t&&(n=t);break}case\"initialPlacement\":n=c}return{data:{skip:!0},reset:{placement:n}}}return{}}}};function A(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function P(t){return x.some((e=>t[e]>=0))}const k=()=>({name:\"hide\",async fn(t){const e=await s(t,{elementContext:\"reference\"}),n=await s(t,{altBoundary:!0}),r=A(e,t.rects.reference),o=A(n,t.rects.floating);return{data:{referenceHidden:P(r),referenceHiddenOffsets:r,escaped:P(o),escapedOffsets:o}}}});const R=function(e){return void 0===e&&(e=0),{name:\"offset\",options:e,fn(r){const{x:o,y:i,placement:a,rects:l}=r,s=function(e){let{placement:r,rects:o,value:i}=e;const a=t(r),l=[\"left\",\"top\"].includes(a)?-1:1,s=\"function\"==typeof i?i({...o,placement:r}):i,{mainAxis:c,crossAxis:f}=\"number\"==typeof s?{mainAxis:s,crossAxis:0}:{mainAxis:0,crossAxis:0,...s};return\"x\"===n(a)?{x:f,y:c*l}:{x:c*l,y:f}}({placement:a,rects:l,value:e});return{x:o+s.x,y:i+s.y,data:s}}}};function D(t){return\"x\"===t?\"y\":\"x\"}const O=function(e){return void 0===e&&(e={}),{name:\"shift\",options:e,async fn(r){const{x:o,y:i,placement:a}=r,{mainAxis:l=!0,crossAxis:c=!1,limiter:f={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...u}=e,p={x:o,y:i},g=await s(r,u),d=n(t(a)),h=D(d);let y=p[d],x=p[h];if(l){const t=\"y\"===d?\"bottom\":\"right\";y=m(y+g[\"y\"===d?\"top\":\"left\"],y,y-g[t])}if(c){const t=\"y\"===h?\"bottom\":\"right\";x=m(x+g[\"y\"===h?\"top\":\"left\"],x,x-g[t])}const w=f.fn({...r,[d]:y,[h]:x});return{...w,data:{x:w.x-o,y:w.y-i}}}}},C=function(e){return void 0===e&&(e={}),{options:e,fn(r){const{x:o,y:i,placement:a,rects:l,middlewareData:s}=r,{offset:c=0,mainAxis:f=!0,crossAxis:m=!0}=e,u={x:o,y:i},p=n(a),g=D(p);let d=u[p],h=u[g];const y=\"function\"==typeof c?c({...l,placement:a}):c,x=\"number\"==typeof y?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(f){const t=\"y\"===p?\"height\":\"width\",e=l.reference[p]-l.floating[t]+x.mainAxis,n=l.reference[p]+l.reference[t]-x.mainAxis;dn&&(d=n)}if(m){var w,b,v,A;const e=\"y\"===p?\"width\":\"height\",n=[\"top\",\"left\"].includes(t(a)),r=l.reference[g]-l.floating[e]+(n&&null!=(w=null==(b=s.offset)?void 0:b[g])?w:0)+(n?0:x.crossAxis),o=l.reference[g]+l.reference[e]+(n?0:null!=(v=null==(A=s.offset)?void 0:A[g])?v:0)-(n?x.crossAxis:0);ho&&(h=o)}return{[p]:d,[g]:h}}}},E=function(n){return void 0===n&&(n={}),{name:\"size\",options:n,async fn(r){var o;const{placement:i,rects:a,middlewareData:l}=r,{apply:c,...m}=n;if(null!=(o=l.size)&&o.skip)return{};const u=await s(r,m),p=t(i),g=\"end\"===e(i);let d,h;\"top\"===p||\"bottom\"===p?(d=p,h=g?\"left\":\"right\"):(h=p,d=g?\"top\":\"bottom\");const y=f(u.left,0),x=f(u.right,0),w=f(u.top,0),b=f(u.bottom,0),v={height:a.floating.height-([\"left\",\"right\"].includes(i)?2*(0!==w||0!==b?w+b:f(u.top,u.bottom)):u[d]),width:a.floating.width-([\"top\",\"bottom\"].includes(i)?2*(0!==y||0!==x?y+x:f(u.left,u.right)):u[h])};return null==c||c({...v,...a}),{data:{skip:!0},reset:{rects:!0}}}}},B=function(e){return void 0===e&&(e={}),{name:\"inline\",options:e,async fn(r){var o,i;const{placement:s,elements:m,rects:u,platform:p,strategy:g,middlewareData:d}=r,{padding:h=2,x:y,y:x}=e;if(null!=(o=d.inline)&&o.skip)return{};const w=l(await p.convertOffsetParentRelativeRectToViewportRelativeRect({rect:u.reference,offsetParent:await p.getOffsetParent({element:m.floating}),strategy:g})),b=Array.from(null!=(i=await(null==p.getClientRects?void 0:p.getClientRects({element:m.reference})))?i:[]),v=a(h);return{data:{skip:!0},reset:{rects:await p.getElementRects({reference:{getBoundingClientRect:function(){var e;if(2===b.length&&b[0].left>b[1].right&&null!=y&&null!=x)return null!=(e=b.find((t=>y>t.left-v.left&&yt.top-v.top&&x=2){if(\"x\"===n(s)){const e=b[0],n=b[b.length-1],r=\"top\"===t(s),o=e.top,i=n.bottom,a=r?e.left:n.left,l=r?e.right:n.right;return{top:o,bottom:i,left:a,right:l,width:l-a,height:i-o,x:a,y:o}}const e=\"left\"===t(s),r=f(...b.map((t=>t.right))),o=c(...b.map((t=>t.left))),i=b.filter((t=>e?t.left===o:t.right===r)),a=i[0].top,l=i[i.length-1].bottom;return{top:a,bottom:l,left:o,right:r,width:r-o,height:l-a,x:o,y:a}}return w}},floating:m.floating,strategy:g})}}}}};export{u as arrow,b as autoPlacement,i as computePosition,s as detectOverflow,v as flip,k as hide,B as inline,C as limitShift,R as offset,l as rectToClientRect,O as shift,E as size};\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){return\"[object Window]\"===(null==t?void 0:t.toString())}function o(t){if(null==t)return window;if(!n(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function i(t){return o(t).getComputedStyle(t)}function r(t){return n(t)?\"\":t?(t.nodeName||\"\").toLowerCase():\"\"}function l(t){return t instanceof o(t).HTMLElement}function c(t){return t instanceof o(t).Element}function f(t){return t instanceof o(t).ShadowRoot||t instanceof ShadowRoot}function u(t){const{overflow:e,overflowX:n,overflowY:o}=i(t);return/auto|scroll|overlay|hidden/.test(e+o+n)}function s(t){return[\"table\",\"td\",\"th\"].includes(r(t))}function h(t){const e=navigator.userAgent.toLowerCase().includes(\"firefox\"),n=i(t);return\"none\"!==n.transform||\"none\"!==n.perspective||\"paint\"===n.contain||[\"transform\",\"perspective\"].includes(n.willChange)||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter}const d=Math.min,a=Math.max,g=Math.round;function p(t,e){void 0===e&&(e=!1);const n=t.getBoundingClientRect();let o=1,i=1;return e&&l(t)&&(o=t.offsetWidth>0&&g(n.width)/t.offsetWidth||1,i=t.offsetHeight>0&&g(n.height)/t.offsetHeight||1),{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function m(t){return(e=t,(e instanceof o(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function w(t){return n(t)?{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}:{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function y(t){return p(m(t)).left+w(t).scrollLeft}function x(t,e,n){const o=l(e),i=m(e),c=p(t,o&&function(t){const e=p(t);return g(e.width)!==t.offsetWidth||g(e.height)!==t.offsetHeight}(e));let f={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==r(e)||u(i))&&(f=w(e)),l(e)){const t=p(e,!0);s.x=t.x+e.clientLeft,s.y=t.y+e.clientTop}else i&&(s.x=y(i));return{x:c.left+f.scrollLeft-s.x,y:c.top+f.scrollTop-s.y,width:c.width,height:c.height}}function v(t){return\"html\"===r(t)?t:t.assignedSlot||t.parentNode||(f(t)?t.host:null)||m(t)}function b(t){return l(t)&&\"fixed\"!==getComputedStyle(t).position?t.offsetParent:null}function L(t){const e=o(t);let n=b(t);for(;n&&s(n)&&\"static\"===getComputedStyle(n).position;)n=b(n);return n&&(\"html\"===r(n)||\"body\"===r(n)&&\"static\"===getComputedStyle(n).position&&!h(n))?e:n||function(t){let e=v(t);for(;l(e)&&![\"html\",\"body\"].includes(r(e));){if(h(e))return e;e=e.parentNode}return null}(t)||e}function W(t){return{width:t.offsetWidth,height:t.offsetHeight}}function T(t){return[\"html\",\"body\",\"#document\"].includes(r(t))?t.ownerDocument.body:l(t)&&u(t)?t:T(v(t))}function C(t,e){var n;void 0===e&&(e=[]);const i=T(t),r=i===(null==(n=t.ownerDocument)?void 0:n.body),l=o(i),c=r?[l].concat(l.visualViewport||[],u(i)?i:[]):i,f=e.concat(c);return r?f:f.concat(C(v(c)))}function R(e,n){return\"viewport\"===n?t(function(t){const e=o(t),n=m(t),i=e.visualViewport;let r=n.clientWidth,l=n.clientHeight,c=0,f=0;return i&&(r=i.width,l=i.height,Math.abs(e.innerWidth/i.scale-i.width)<.01&&(c=i.offsetLeft,f=i.offsetTop)),{width:r,height:l,x:c,y:f}}(e)):c(n)?function(t){const e=p(t),n=e.top+t.clientTop,o=e.left+t.clientLeft;return{top:n,left:o,x:o,y:n,right:o+t.clientWidth,bottom:n+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}(n):t(function(t){var e;const n=m(t),o=w(t),r=null==(e=t.ownerDocument)?void 0:e.body,l=a(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),c=a(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let f=-o.scrollLeft+y(t);const u=-o.scrollTop;return\"rtl\"===i(r||n).direction&&(f+=a(n.clientWidth,r?r.clientWidth:0)-l),{width:l,height:c,x:f,y:u}}(m(e)))}function H(t){const e=C(v(t)),n=[\"absolute\",\"fixed\"].includes(i(t).position)&&l(t)?L(t):t;return c(n)?e.filter((t=>c(t)&&function(t,e){const n=null==e.getRootNode?void 0:e.getRootNode();if(t.contains(e))return!0;if(n&&f(n)){let n=e;do{if(n&&t===n)return!0;n=n.parentNode||n.host}while(n)}return!1}(t,n)&&\"body\"!==r(t))):[]}const S={getElementRects:t=>{let{reference:e,floating:n,strategy:o}=t;return{reference:x(e,L(n),o),floating:{...W(n),x:0,y:0}}},convertOffsetParentRelativeRectToViewportRelativeRect:t=>function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=l(n),c=m(n);if(n===c)return e;let f={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==r(n)||u(c))&&(f=w(n)),l(n))){const t=p(n,!0);s.x=t.x+n.clientLeft,s.y=t.y+n.clientTop}return{...e,x:e.x-f.scrollLeft+s.x,y:e.y-f.scrollTop+s.y}}(t),getOffsetParent:t=>{let{element:e}=t;return L(e)},isElement:t=>c(t),getDocumentElement:t=>{let{element:e}=t;return m(e)},getClippingClientRect:t=>function(t){let{element:e,boundary:n,rootBoundary:o}=t;const i=[...\"clippingParents\"===n?H(e):[].concat(n),o],r=i[0],l=i.reduce(((t,n)=>{const o=R(e,n);return t.top=a(o.top,t.top),t.right=d(o.right,t.right),t.bottom=d(o.bottom,t.bottom),t.left=a(o.left,t.left),t}),R(e,r));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}(t),getDimensions:t=>{let{element:e}=t;return W(e)},getClientRects:t=>{let{element:e}=t;return e.getClientRects()}},D=(t,n,o)=>e(t,n,{platform:S,...o});export{D as computePosition,C as getScrollParents};\n","import { computePosition, offset, flip, shift } from \"@floating-ui/dom\";\nimport { Component, createSignal, onMount, onCleanup, Show } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\n\nexport const Tooltip: Component<{ attachTo: HTMLElement }> = (props) => {\n let [hover, setHover] = createSignal(false);\n const delay = 50;\n\n onMount(() => {\n props.attachTo?.addEventListener(\"mouseenter\", () => setHover(true));\n props.attachTo?.addEventListener(\"mouseleave\", () => setHover(false));\n });\n\n onCleanup(() => {\n props.attachTo?.removeEventListener(\"mouseenter\", () => setHover(true));\n props.attachTo?.removeEventListener(\"mouseleave\", () => setHover(false));\n });\n\n function positionTooltip(el) {\n Object.assign(el.style, { position: \"absolute\" });\n function updatePosition() {\n computePosition(props.attachTo, el, {\n placement: \"bottom-start\",\n strategy: \"absolute\",\n middleware: [flip(), shift()],\n }).then(({ x, y }) =>\n Object.assign(el.style, {\n left: `${x}px`,\n top: `${y}px`,\n opacity: \"\",\n zIndex: 999,\n })\n );\n }\n window.setTimeout(updatePosition, delay);\n window.addEventListener(\"scroll\", updatePosition);\n\n onCleanup(() => {\n window.removeEventListener(\"scroll\", updatePosition);\n });\n }\n return (\n <>\n \n \n
positionTooltip(el)}>\n {props.children}\n
\n
\n
\n \n );\n};\n","import { CivConfig, CivSlug } from \"@data/types/civs\";\nimport { Link, NavLink, useLocation } from \"@solidjs/router\";\nimport { Component, For, createEffect, createMemo, createResource, createSignal, onCleanup } from \"solid-js\";\nimport { CIVILIZATIONS, CIVILIZATION_BY_SLUG, ITEMS } from \"../config\";\nimport { parseCurrentLocation, getStructuredItems } from \"../global\";\nimport { Portal, Show } from \"solid-js/web\";\nimport { ItemSlug } from \"@data/sdk/utils\";\nimport { computePosition, offset, flip, shift, size } from \"@floating-ui/dom\";\nimport { Search } from \"./Search\";\nimport { ItemIcon } from \"./ItemIcon\";\nimport { getItemHref } from \"./Cards\";\nimport { Icon } from \"./Icon\";\nimport { CivFlag } from \"./CivFlag\";\n\nconst SDK = import(\"@data/sdk\");\nconst itemTypeLabels = {\n units: \"Units\",\n buildings: \"Buildings\",\n technologies: \"Technologies\",\n};\n\nexport const QuickNav: Component = () => {\n const location = useLocation();\n const current = createMemo(() => parseCurrentLocation(location.pathname));\n const currentCivilization = () => CIVILIZATION_BY_SLUG[current().civ as CivSlug] ?? undefined;\n const [civilization, setCivilization] = createSignal(currentCivilization());\n const [data] = createResource(civilization, getStructuredItems);\n const [view, setView] = createSignal<\"buildings\" | \"units\" | \"technologies\" | string>(current().itemType);\n const [show, setShow] = createSignal(true);\n\n createEffect(() => {\n setView(() => current().itemType || \"units\");\n });\n\n createEffect(() => {\n show() ? document.body.classList.add(\"overflow-hidden\") : document.body.classList.remove(\"overflow-hidden\");\n show() && setCivilization(() => currentCivilization());\n show() && setView(() => current().itemType || \"units\");\n });\n\n createEffect(() => view() && list.scrollTo({ top: 0 }));\n createEffect(() => current() && setShow(false));\n\n const [currentItem] = createResource(\n () => current().subroute,\n async () => {\n if (civilization()) return (await SDK).civilizations.Get(civilization()).Get(current().subroute as ItemSlug);\n else return (await SDK).Get(current().subroute as ItemSlug);\n }\n );\n\n let attachTo: HTMLButtonElement;\n let list: HTMLDivElement;\n function positionPopup(el) {\n function updatePosition() {\n computePosition(attachTo, el, {\n placement: \"bottom\",\n strategy: \"fixed\",\n }).then(({ x, y }) =>\n Object.assign(el.style, {\n left: `0px`,\n top: `${y + 10}px`,\n bottom: \"0px\",\n opacity: \"\",\n zIndex: 999,\n })\n );\n }\n updatePosition();\n window.addEventListener(\"scroll\", updatePosition);\n\n onCleanup(() => {\n window.removeEventListener(\"scroll\", updatePosition);\n });\n }\n\n return (\n
\n \n \n \n
positionPopup(el)}>\n
\n
\n
\n \n {(civ) => (\n \n )}\n \n
\n
\n
\n {Object.entries(itemTypeLabels).map(([type, label]) => (\n \n ))}\n
\n
\n \n {([key, items]) =>\n items?.length ? (\n
\n
\n

{key}

\n
\n \n {(item) => (\n \n
\n \n
\n

$2')}>

\n \n )}\n
\n
\n ) : (\n <>\n )\n }\n
\n
\n
\n
\n
\n
\n
\n );\n};\n","import { Link, NavLink, useIsRouting, useLocation } from \"@solidjs/router\";\nimport { Component, createMemo, createSignal, For, Show } from \"solid-js\";\nimport { CIVILIZATIONS, CIVILIZATION_BY_SLUG } from \"../config\";\nimport { tooltipCSSClass } from \"../styles\";\nimport { civAbbr, civConfig } from \"../types/data\";\nimport { CivFlag } from \"./CivFlag\";\nimport { Icon } from \"./Icon\";\nimport { Search } from \"./Search\";\nimport { Tooltip } from \"./Tooltip\";\nimport { globalAgeFilter, hideNav, setGlobalAgeFilter } from \"../global\";\nimport { QuickNav } from \"./QuickNav\";\n\nexport const Toolbar: Component = () => {\n const pending = useIsRouting();\n\n const location = useLocation();\n const current = createMemo(() => {\n const [route, civ, subroute] = location.pathname.match(/\\/civs\\/([a-z]+)\\/?([\\w/-]*)/i) ?? [];\n return { route, civ, subroute };\n });\n\n const smartCivLink = (civ: civConfig) => {\n const subroute = [`/civs/${civ.slug}`, current().subroute].join(\"/\");\n if (location.pathname.includes(subroute)) return `/civs/${civ.slug}`;\n return subroute;\n };\n\n const navButtonClass =\n \"w-12 h-7 md:w-10 lg:h-7 md:hover:bg-white md:hover:text-black bg-gray-900 text-white/70text-lg px-3 grid rounded-md flex-none transition\";\n\n return (\n \n
\n
\n
\n {current().subroute ? (\n \n \n \n ) : (\n \n \n \n )}\n\n \n {(civ) => (\n \n
\n \n \n {(civ) => (\n \n )}\n \n\n {() => {\n let el;\n return (\n <>\n \n \n \n \n
\n

Learn more about the Explorer.

\n
\n \n {([type, label]) => (\n
\n {label}\n
\n )}\n \n
\n
\n \n );\n }}\n\n \n
\n
\n
\n );\n};\n","/***\n Copyright 2013 Teun Duynstee\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nmodule.exports = (function() {\n\n function identity(v){return v;}\n\n function ignoreCase(v){return typeof(v)===\"string\" ? v.toLowerCase() : v;}\n\n function makeCompareFunction(f, opt){\n opt = typeof(opt)===\"object\" ? opt : {direction:opt};\n \n if(typeof(f)!=\"function\"){\n var prop = f;\n // make unary function\n f = function(v1){return !!v1[prop] ? v1[prop] : \"\";}\n }\n if(f.length === 1) {\n // f is a unary function mapping a single item to its sort score\n var uf = f;\n var preprocess = opt.ignoreCase?ignoreCase:identity;\n var cmp = opt.cmp || function(v1,v2) {return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;}\n f = function(v1,v2) {return cmp(preprocess(uf(v1)), preprocess(uf(v2)));}\n }\n const descTokens = {\"-1\":'', desc:''};\n if(opt.direction in descTokens) return function(v1,v2){return -f(v1,v2)};\n return f;\n }\n\n /* adds a secondary compare function to the target function (`this` context)\n which is applied in case the first one returns 0 (equal)\n returns a new compare function, which has a `thenBy` method as well */\n function tb(func, opt) {\n /* should get value false for the first call. This can be done by calling the \n exported function, or the firstBy property on it (for es6 module compatibility)\n */\n var x = (typeof(this) == \"function\" && !this.firstBy) ? this : false;\n var y = makeCompareFunction(func, opt);\n var f = x ? function(a, b) {\n return x(a,b) || y(a,b);\n }\n : y;\n f.thenBy = tb;\n return f;\n }\n tb.firstBy = tb;\n return tb;\n})();\n","import { firstBy } from \"thenby\";\nimport { ITEMS } from \"@data/types/items\";\nimport { SUPPORTED_MODIFIER_PROPERTIES } from \"../config\";\nimport { Building, civAbbr, civConfig, Item, Modifier, Technology, UnifiedItem, Unit } from \"../types/data\";\nimport { CalculatedStats, Stat, StatPart, StatProperty } from \"../types/stats\";\nimport { getItemTechnologies, mapCivsArgument, modifierMatches } from \"./utils\";\n\nexport async function getUnitStats(\n type: T,\n unit: string | UnifiedItem,\n civ?: civAbbr | civConfig\n): Promise> {\n const forCiv = mapCivsArgument(civ);\n const getStats = async (unit: UnifiedItem) => {\n const combatStats = mergeVariationsToStats(unit.variations.filter((u) => u.civs.some((c) => forCiv.some((fc) => fc.abbr == c))));\n const techs = await getItemTechnologies(type, unit, civ);\n\n for (const tech of techs) {\n let lazelyPickJustTheFirst = tech.variations.sort((a, b) => b.civs.length - a.civs.length)[0]; //tech.variations?.[0];\n for (const modifier of lazelyPickJustTheFirst.effects) {\n if (!lazelyPickJustTheFirst) continue;\n if (tech.civs.length > 1) lazelyPickJustTheFirst.unique = false;\n // if (modifier.type == \"influence\") continue;\n if (!modifierMatches(modifier.select, unit).any) continue;\n if (SUPPORTED_MODIFIER_PROPERTIES.includes(modifier.property as any)) {\n combatStats[modifier.property] ??= { category: modifier.property, parts: [], modifiers: [], bonus: [] };\n\n combatStats[modifier.property]?.[modifier.type == \"bonus\" ? \"bonus\" : \"modifiers\"].push([\n modifier,\n tech.id,\n lazelyPickJustTheFirst.age,\n lazelyPickJustTheFirst,\n ]);\n }\n }\n }\n\n return combatStats;\n };\n\n if (typeof unit == \"string\") return getStats((await import(\"@data/sdk\"))[type].get(unit));\n else return getStats(unit);\n}\n\nfunction mergeVariationsToStats(variations: (Unit | Building)[]) {\n return variations\n .sort(\n firstBy((a, b) => a.age - b.age) // Sort by age\n .thenBy((a, b) => b.civs.length - a.civs.length) // Sort by civs\n .thenBy((a, b) => a.id.length - b.id.length) // Sort by id length, putting basic varations first\n )\n .filter((v, i, a) => a.findIndex((x) => x.age == v.age) >= i) // Drop variation if there's already one for the same age\n .map((variation) => {\n const stats: Partial> = {\n hitpoints: variation.hitpoints,\n lineOfSight: variation.sight.line / 4.5,\n };\n\n if (variation.type == \"unit\") stats.moveSpeed = variation.movement.speed;\n\n const bonus: Modifier[] = [];\n\n const melee = variation.weapons.find((w) => w?.type == \"melee\");\n // Only take the first Melee weapon\n const weapons = variation.weapons.filter((w) => w?.type != \"melee\" || w === melee);\n\n for (const w of weapons) {\n if (!w) continue;\n const burst = 1; //w.burst?.count ?? 1;\n // We assume there's only one weapon per type per variation, for now.\n // Edit 11-10-2022: Oh boy was I wrong.\n // Edit 9-11-2023: Yep.\n if (w.type == \"melee\") stats.meleeAttack = w.damage * burst;\n else if (w.type == \"ranged\") stats.rangedAttack = w.damage * burst;\n else if (w.type == \"siege\") stats.siegeAttack = w.damage * burst;\n else if (w.type == \"fire\") stats.fireAttack = w.damage * burst;\n\n if (w.type != \"fire\" || variation.weapons.length == 1) stats.attackSpeed = w.speed;\n\n if (w.burst) stats.burst = w.burst.count;\n\n if (w.type == \"siege\" || w.type == \"ranged\") {\n stats.maxRange = w.range.max;\n stats.minRange = w.range.min;\n }\n\n if (w.modifiers) {\n bonus.push(...w.modifiers);\n }\n }\n\n for (const a of variation.armor) {\n // We assume there's only one armor type per variation, for now.\n if (a.type == \"melee\") stats.meleeArmor = a.value;\n else if (a.type == \"ranged\") stats.rangedArmor = a.value;\n else if (a.type == \"fire\") stats.fireArmor = a.value;\n }\n\n return [variation, stats, bonus] as [typeof variation, typeof stats, Modifier[]];\n })\n .reduce((total, [variation, stats, bonus], i, arr) => {\n for (const [cat, value] of Object.entries(stats)) {\n const previousAgeValue = arr[i - 1]?.[1][cat] ?? 0;\n (total[cat as StatProperty] ??= { category: cat as StatProperty, parts: [], modifiers: [], bonus: [] }).parts.push([\n value - previousAgeValue,\n variation.id,\n variation.age,\n variation,\n previousAgeValue ? \"upgrade\" : \"base\",\n ]);\n if (bonus.length) {\n bonus.forEach((mod, mi) => {\n mod = { ...mod };\n const previousModifierValue = arr[i - 1]?.[2][mi]?.value ?? 0;\n if ((mod.effect as any) == \"increase\") mod.effect = \"change\";\n if (previousModifierValue) mod.value = mod.value - previousModifierValue;\n total[cat as StatProperty].bonus.push([mod, variation.id, variation.age, variation, \"bonus\"]);\n });\n }\n }\n return total;\n }, {} as Partial>);\n}\n\nexport function roundToDecimals(number: number, decimals: number) {\n return Math.round(number * Math.pow(10, decimals)) / Math.pow(10, decimals);\n}\n\nexport function roundToGameTicks(number: number) {\n const tick = 0.125;\n return Math.round(number / tick) * tick;\n}\n\nexport function calculateStatParts(\n stat: Stat,\n maxAge: number,\n { decimals, target, item }: { decimals?: number; target?: UnifiedItem | Item; item?: UnifiedItem | Item } = { decimals: 0 }\n): CalculatedStats {\n if (!stat) return { total: 0, base: 0, upgrades: 0, technologies: 0, bonus: 0, parts: [], max: 0 };\n if (!decimals) decimals = 0;\n const round = (val) => (stat.category == \"attackSpeed\" ? roundToGameTicks(val) : roundToDecimals(val, decimals));\n const parts = stat.parts.sort((a, b) => a[2] - b[2]).map(([v, i, a, ...r]) => [a > maxAge ? 0 : round(v), i, a, ...r] as StatPart);\n\n let base = parts[0]?.[0] ?? 0;\n let upgrades = parts.reduce((total, [value]) => total + value, 0) - base;\n let technologies = 0;\n parts.push(\n ...stat.modifiers\n .sort(\n firstBy>((a, b) => {\n if (a[0].effect == \"multiply\") return 1;\n else if (b[0].effect == \"multiply\") return -1;\n else return a[0].value - b[0].value;\n })\n .thenBy((a, b) => (a[3].unique ? 1 : b[3].unique ? -1 : 0))\n .thenBy((a, b) => a[2] - b[2])\n )\n .reduce((parts, [modifier, id, age, variation]) => {\n if (modifier.property != stat.category) return parts;\n if (item && !modifierMatches(modifier.select, item).any) return parts;\n if (modifier.type == \"ability\" || modifier.type == \"influence\") return parts;\n let value = 0;\n if (age <= maxAge) {\n if (modifier.effect == \"multiply\") {\n value = (modifier.value - 1) * (base + upgrades + technologies);\n } else if (modifier.effect == \"change\") value = modifier.value;\n }\n technologies += value;\n parts.push([round(value), id, age, variation, \"technology\"]);\n return parts;\n }, [] as StatPart[])\n );\n\n let maxBonusInAge = {\n 1: 0,\n 2: 0,\n 3: 0,\n 4: 0,\n };\n let bonus = 0;\n if (stat.bonus)\n parts.push(\n ...stat.bonus?.reduce((parts, [modifier, id, age, variation]) => {\n if (modifier.property != stat.category) return parts;\n if (target && !modifierMatches(modifier.target, target).any) return parts;\n if (modifier.type == \"ability\" || modifier.type == \"influence\") return parts;\n let value = 0;\n if (age <= maxAge) {\n if (modifier.effect == \"multiply\") value = Math.round((modifier.value - 1) * (base + upgrades));\n else if (modifier.effect == \"change\") value = modifier.value;\n }\n if (value > maxBonusInAge[age]) maxBonusInAge[age] = value;\n const tryCreateVsBonusName = [\n ...(modifier.target?.id ?? []),\n ...(modifier.target?.class ?? []).map((c) => c.flatMap((x) => x.split(\"_\")).join(\" \")),\n ].join(\", \");\n parts.push([round(value), id, age, variation, \"bonus\", `Bonus damage vs ${tryCreateVsBonusName}`]);\n return parts;\n }, [] as StatPart[])\n );\n\n bonus = Object.values(maxBonusInAge).reduce((a, b) => a + b, 0);\n base = round(base);\n upgrades = round(upgrades);\n technologies = round(technologies);\n bonus = round(bonus);\n const total = round(base + upgrades + technologies);\n const max = total + bonus;\n\n return { total, base, upgrades, technologies, bonus, parts, max };\n}\n","import { Component, createEffect, createMemo, createSignal, Index, on, Show } from \"solid-js\";\nimport { RESOURCES } from \"../../assets\";\nimport { CIVILIZATIONS, PRETTY_AGE_MAP } from \"../config\";\nimport { calculateStatParts, roundToDecimals } from \"../query/stats\";\nimport { statLabelCSSClass, tooltipCSSClass } from \"../styles\";\nimport { Item, UnifiedItem } from \"../types/data\";\nimport { CalculatedStats, Stat, StatPart } from \"../types/stats\";\nimport { Icon } from \"./Icon\";\nimport { globalAgeFilter, globalCivFilter } from \"../global\";\nimport { Tooltip } from \"./Tooltip\";\n\nexport const StatBar: Component<{\n label: string;\n icon?: string;\n item: UnifiedItem;\n stat: Stat;\n /** Event when the total value is zero, display the graph,\n * useful for i.e. armor or other properties that will always be present in a\n * later age or after upgrades */\n displayAlways?: boolean;\n multiplier?: Stat;\n max: number;\n age?: () => number;\n}> = (props) => {\n let totalEl;\n\n const [parts, setParts] = createSignal([] as StatPart[]);\n const [values, setValues] = createSignal({ base: 0, upgrades: 0, technologies: 0, bonus: 0, total: 0 });\n createEffect(\n on([globalAgeFilter, globalCivFilter, () => props.age?.()], () => {\n const { parts, ...rest } = calculateStatParts(props.stat, props.age?.() ?? globalAgeFilter(), { item: props.item });\n setParts(parts.map(([v, ...p]) => [v * multiplier(), ...p]));\n setValues(Object.fromEntries(Object.entries(rest).map(([k, v]) => [k, v * multiplier()])) as any);\n })\n );\n const multiplier = createMemo(() => props.multiplier?.parts?.reduce((sum, [v]) => sum + v, 0) ?? 1);\n const formattedMultiplier = () => (props.multiplier ? `${multiplier()}× ` : \"\");\n return (\n 0 || props.displayAlways}>\n
\n
\n \n {props.icon && }\n {values().base}\n {props.multiplier && <>*}\n {values().total > values().base && (\n \n \n {values().total}\n \n )}\n {values().bonus && (\n \n {\" \"}\n \n {values().bonus}\n \n )}\n \n {/* {props.multiplier && (\n \n ÷ {multiplier()}\n \n \n )} */}\n {props.label}\n
\n {values().total && (\n \n
\n {props.multiplier &&

*Total of {multiplier()} projectiles

}\n Base\n \n {props.multiplier && (\n \n {formattedMultiplier()}\n {values().base / multiplier()} =\n \n )}\n {values().base}\n \n
\n {values().upgrades && (\n <>\n \n Upgrades\n \n {props.multiplier && (\n \n {formattedMultiplier()}\n {values().upgrades / multiplier()} =\n \n )}\n + {values().upgrades}\n \n
\n \n )}\n {values().technologies && (\n <>\n \n Technologies\n \n {props.multiplier && (\n \n {formattedMultiplier()}\n {values().technologies / multiplier()} =\n \n )}\n + {values().technologies}\n \n
\n \n )}\n
\n Total {values().total}\n {values().bonus && (\n
\n \n Bonus{\" \"}\n \n {props.multiplier && (\n \n {formattedMultiplier()}\n {values().bonus / multiplier()} =\n \n )}\n + {values().bonus}\n \n
\n )}\n 1}>\n {() => {\n const projectiles = multiplier();\n const base = values().base / projectiles;\n return (\n
\n

{projectiles}×

\n
\n

Every volley has {projectiles} projectiles

\n

Target armor has effect on each individual projectile

\n
Example
\n
\n (projectile damage\n {` - `}\n target armor) ×{\" \"}\n projectiles ={\" \"}\n total damage\n
\n
\n ({base}\n {` - `}\n 2) ×{\" \"}\n {projectiles} ={\" \"}\n {(base - 2) * projectiles}\n
\n
\n
\n );\n }}\n
\n
\n
\n )}\n
\n {/* {formattedMultiplier()} */}\n \n {(part, i) => {\n const [value, id, age, variation, type, label] = part();\n\n let partEl;\n const isBase = [\"unit\", \"building\"].includes(variation.type) && i == 0;\n let className = isBase\n ? \"bg-bar-base\" + (value < props.max * 0.75 ? \" shrink-0\" : \"\")\n : type == \"bonus\"\n ? \"bg-white/20 !text-white shrink\"\n : type == \"upgrade\" && [\"building\"].includes(variation.type)\n ? \"bg-bar-building shrink\"\n : type == \"upgrade\" ?? [\"unit\"].includes(variation.type)\n ? \"bg-bar-upgrade shrink-0\"\n : variation.unique\n ? \"bg-bar-unique\"\n : type == \"technology\"\n ? \"bg-bar-technology\"\n : \"bg-bar-base shrink-0\";\n const hide = () => part()[0] <= 0;\n return (\n \n \n
\n
\n \n {type}\n {!isBase && \"+\"} {value ?? 0}\n \n {PRETTY_AGE_MAP[age]}\n
\n {type == \"upgrade\" && `${PRETTY_AGE_MAP[age]} upgrade for `}\n {variation.name}\n {label &&

{label}

}\n {variation.unique && (\n

\n Unique to {CIVILIZATIONS[variation.civs[0]].name}\n

\n )}\n\n {![\"upgrade\", \"base\"].includes(type) &&

{variation.description}

}\n
\n
\n
\n );\n }}\n \n
\n \n
\n );\n};\n\nexport const StatNumber: Component<{\n label: string;\n displayAlways?: boolean;\n helper?: string;\n unitLabel?: string;\n multiplier?: number;\n stat: Stat;\n age?: () => number;\n}> = (props) => {\n const [parts, setParts] = createSignal[]>([]);\n const [values, setValues] = createSignal({ base: 0, upgrades: 0, technologies: 0, bonus: 0, total: 0 });\n createEffect(\n on([globalAgeFilter, () => props.age?.()], () => {\n const { parts, ...rest } = calculateStatParts(props.stat, props.age?.() ?? globalAgeFilter(), { decimals: 3 });\n setValues(rest);\n setParts(parts);\n })\n );\n\n let el;\n let helperEl;\n\n return (\n \n
\n \n {props.label}\n {props.helper && }\n \n {props.helper && (\n \n
\n

{props.helper}

\n
\n
\n )}\n\n \n {values().base}\n {values().total != values().base && (\n \n {values().total}\n \n )}\n {props.unitLabel && {props.unitLabel}}\n {values().bonus && (+ {values().bonus})}\n {props.multiplier && × {props.multiplier}}\n \n \n
\n \n {(part, i) => {\n const [value, id, age, variation, type, label] = part();\n return value ? (\n <>\n {type == \"base\" ? (\n
\n Base ({PRETTY_AGE_MAP[age]}) {value}\n
\n ) : type == \"upgrade\" ? (\n
\n {variation.name} ({PRETTY_AGE_MAP[age]}) + {value}\n
\n ) : type == \"technology\" ? (\n
\n {variation.name} ({PRETTY_AGE_MAP[age]})\n \n {\" \"}\n {value > 1 && \"+\"}\n {value}\n \n
\n ) : (\n <>\n )}\n \n ) : (\n <>\n );\n }}\n
\n
\n
\n
\n
\n );\n};\n\nfunction dps(attackDuration: number, damage: number) {\n return attackDuration && damage ? roundToDecimals(damage / attackDuration, 2) : 0;\n}\n\nfunction calculateDpsParts(speed: CalculatedStats, attacks: CalculatedStats[]) {\n return attacks.reduce(\n (acc, attack) => {\n acc.base += dps(speed.base, attack.base);\n acc.upgrades += dps(speed.base + speed.upgrades, attack.upgrades);\n acc.technologies += dps(speed.total, attack.technologies) + (acc.upgrades - dps(speed.total, attack.upgrades));\n acc.bonus += dps(speed.total + speed.bonus, attack.bonus);\n acc.total += dps(speed.total, attack.total);\n return acc;\n },\n { base: 0, upgrades: 0, technologies: 0, total: 0, bonus: 0 }\n );\n}\n\nexport const StatDps: Component<{\n label: string;\n displayAlways?: boolean;\n helper?: string;\n speed: Stat;\n attacks: Stat[];\n stat: Stat;\n age?: () => number;\n}> = (props) => {\n const [values, setValues] = createSignal({ base: 0, upgrades: 0, technologies: 0, bonus: 0, total: 0 });\n createEffect(\n on([globalAgeFilter, () => props.age?.()], () => {\n const attackSpeed = calculateStatParts(props.speed, props.age?.() ?? globalAgeFilter(), { decimals: 3 });\n const attacks = props.attacks.map((attack) => calculateStatParts(attack, props.age?.() ?? globalAgeFilter(), { decimals: 0 }));\n setValues(calculateDpsParts(attackSpeed, attacks));\n })\n );\n\n let el;\n let helperEl;\n\n return (\n \n
\n \n {props.label}\n {props.helper && }\n \n {props.helper && (\n \n
\n

{props.helper}

\n
\n
\n )}\n\n \n {values().base}\n {DPS}\n {values().total != values().base && (\n \n {values().total}\n \n )}\n {values().bonus && (\n \n {\" \"}\n {values().bonus}\n \n )}\n \n \n
\n
\n Base {values().base} dps\n
\n Upgrades {values().upgrades} dps\n
\n Technologies {values().technologies} dps\n
\n Total {values().total} dps\n
\n Bonus {values().bonus} dps\n
\n
\n
\n
\n );\n};\n\nexport function formatSecondsToTime(seconds: number) {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.round(seconds % 60);\n return `${h > 0 ? `${h}:` : \"\"}${h && m < 10 ? `0${m}` : m}:${s < 10 ? `0${s}` : s}`;\n}\n\nexport function formatSecondsToPhrase(seconds: number) {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.round(seconds % 60);\n // 1 hour 2 minutes 3 seconds\n return `${h > 0 ? `${h} hr${h > 1 ? \"s\" : \"\"} ` : \"\"}${m > 0 ? `${m} min${m > 1 ? \"s\" : \"\"} ` : \"\"}${s > 0 ? `${s} sec${s > 1 ? \"s\" : \"\"}` : \"\"}`.trim();\n}\nfunction formatCurreny(number: number) {\n return number > 2500 ? `${number / 1000}k` : number;\n}\n\nexport const StatCosts: Component<{ costs: Item[\"costs\"] }> = (props) => (\n
\n
Costs
\n
\n {[\"food\", \"wood\", \"gold\", \"stone\", \"oliveoil\", \"time\", \"popcap\", \"vizier\"].map(\n (type) =>\n (type == \"popcap\" ? props.costs[type] > 1 : props.costs[type] > 0) && (\n
\n
{type == \"time\" ? formatSecondsToTime(props.costs[type]) : formatCurreny(props.costs[type])}
\n \n
\n )\n )}\n
\n
\n);\n","import { Component, createMemo, createResource, Show } from \"solid-js\";\nimport { ITEMS } from \"@data/types/items\";\nimport { getUnitStats } from \"../query/stats\";\nimport { getMostAppropriateVariation } from \"../query/utils\";\nimport { Building, civConfig, UnifiedItem } from \"../types/data\";\nimport { Card } from \"./Cards\";\nimport { StatBar, StatCosts, StatDps, StatNumber } from \"./Stats\";\n\nexport const BuildingCard: Component<{ item: UnifiedItem; civ?: civConfig }> = (props) => {\n const [stats] = createResource(() => getUnitStats(ITEMS.BUILDINGS, props.item, props.civ));\n const variation = createMemo(() => getMostAppropriateVariation(props.item, props.civ));\n\n return (\n \n \n <>\n
\n \n \n \n \n \n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n );\n};\n","export class Random {\n static pick(first: T[]): T;\n static pick(first: T, ...args: T[]): T;\n static pick(first: T, ...args: T[]): T {\n const options = !args?.length && Array.isArray(first) ? first : [first, ...args];\n return options[Random.integer(options.length)];\n }\n\n static key(obj: Record) {\n return Random.pick(Object.keys(obj));\n }\n\n static coinflip() {\n return Math.random() > 0.5;\n }\n\n static order(array: T[]): T[] {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n return array;\n }\n\n /** Returns true */\n static chance(probability: number) {\n return Math.random() < probability;\n }\n\n static integer(max: number) {\n return Math.floor(Math.random() * max);\n }\n}\n","import { Random } from \"@components/quiz/random\";\nimport { CURATED_CONTENT_API } from \"../config\";\nimport { civConfig, Item, UnifiedItem } from \"../types/data\";\n\nexport interface ContentItem {\n title: string;\n type: string;\n relatedItems?: string[];\n approved: boolean;\n tags: string[];\n creator: string;\n civilizations: string[];\n url: string;\n description: string;\n creator_url?: string;\n youtube_data?: Youtubedata;\n thumbnail?: string;\n}\n\ninterface Youtubedata {\n title: string;\n videoId: string;\n channelId: string;\n videoDuration: string;\n}\n\nlet content: ContentItem[];\nlet featuredContent: ContentItem[];\nexport async function getRelatedContent(\n { item, civilization, featured }: { item?: Item | UnifiedItem; civilization?: civConfig; featured?: boolean } = { featured: true }\n) {\n if (featured) featuredContent ??= await fetchContent(true);\n else content ??= await fetchContent(false);\n return Random.order(featured ? featuredContent : content).filter(\n (c) =>\n (item && c.relatedItems?.some((i) => i.includes(\"baseId\" in item ? item.baseId : item.id))) ||\n (civilization && c.civilizations.some((civ) => civ.toLowerCase() === civilization.slug)) ||\n (!item && !civilization)\n );\n}\n\nasync function fetchContent(featured: boolean): Promise {\n try {\n const res = await fetch(CURATED_CONTENT_API + (featured ? \"featured.json\" : \"content.json\"));\n const items = await res.json();\n if (!items[0].url || !items[0].title) throw \"Response not in expected format\";\n return items;\n } catch (e) {\n console.error(e);\n }\n}\n","import { Link } from \"@solidjs/router\";\nimport { Component, createResource, createSignal, For, Suspense } from \"solid-js\";\nimport { getRelatedContent, ContentItem } from \"../query/content\";\nimport { getItemCssClass } from \"../styles\";\nimport { civConfig, Item, UnifiedItem } from \"../types/data\";\nimport { getItemHref } from \"./Cards\";\nimport { Icon } from \"./Icon\";\nimport { ItemIcon } from \"./ItemIcon\";\nimport { Random } from \"./quiz/random\";\nimport { formatSecondsToTime } from \"./Stats\";\n\nconst defaultLimit = 3;\nexport const RelatedContent: Component<{ item?: Item | UnifiedItem; civ?: civConfig; title?: string }> = (props) => {\n const [related] = createResource(() => ({ item: props.item, civilization: props.civ, featured: true }), getRelatedContent);\n const [limit, setLimit] = createSignal(defaultLimit);\n return (\n
\n \n {props.title && related()?.length && (\n \n )}\n {(content) => }\n {related()?.length > limit() && (\n \n )}\n \n
\n );\n};\n\nexport const ContentRow: Component<{ content: ContentItem; item?: Item | UnifiedItem; civ?: civConfig }> = (props) => {\n const [relatedItems] = createResource(() => props.content.relatedItems?.filter((x) => !props.item || !x.endsWith(props.item?.id)), getRelatedItems);\n return (\n
\n \n {props.content.thumbnail ? (\n <>\n \n \n ) : (\n
\n \n
\n )}\n \n\n
\n \n {props.content.title}\n \n

{props.content.description}

\n \n
\n {props.content.creator_url ? (\n \n {props.content.creator}\n \n ) : (\n props.content.creator\n )}\n
\n
\n {props.content.youtube_data?.videoDuration && formatSecondsToTime(+props.content.youtube_data.videoDuration) + \" \"}\n {props.content.type}\n
\n \n
\n \n {(item, i) => (\n \n \n {relatedItems().length < 3 && {item.name}}\n \n )}\n \n
\n
\n
\n
\n
\n );\n};\n\nasync function getRelatedItems(ids: string[]) {\n const sdk = await import(\"@data/sdk/index\");\n let Get = sdk.Get;\n\n const items: UnifiedItem[] = [];\n for (const id of ids) {\n try {\n const item = Get(id.split(\"/\").slice(-2).join(\"/\") as any);\n if (item) items.push(item);\n } catch (e) {\n console.error(`Could not find related item with ${id}`, e);\n }\n }\n return items;\n}\n","import { Outlet, useLocation } from \"@solidjs/router\";\nimport { Component, createSignal, Show } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { tooltipCSSClass } from \"../styles\";\nimport { Icon } from \"./Icon\";\nimport { Tooltip } from \"./Tooltip\";\n\nexport const ReportButton: Component = () => {\n const [showReport, setShowReport] = createSignal(false);\n const url = () => useLocation().pathname;\n let el;\n return (\n <>\n setShowReport(true)}\n ref={el}\n class=\"text-gray-300 font-bold text-sm bg-gray-600 rounded px-3 py-2 hover:bg-gray-500 hover:text-gray-50 transition\"\n >\n Report incorrect info\n \n \n
\n Something missing or incorrect on this page? It can happen! We manage and collect all data manually, you can help us by reporting if something is\n incorrect.\n
\n
\n \n \n
\n
\n
\n setShowReport(false)}\n >\n Back\n \n
\n\n
\n \n Loading…\n \n
\n
\n
\n
\n
\n \n );\n};\n","import { Link } from \"@solidjs/router\";\nimport { RouterUtils } from \"@solidjs/router\";\nimport { Component, createEffect, createMemo, createResource, Show } from \"solid-js\";\nimport { ITEMS, PRETTY_AGE_MAP } from \"../config\";\nimport { getUnitStats } from \"../query/stats\";\nimport { getMostAppropriateVariation } from \"../query/utils\";\nimport { civAbbr, civConfig, UnifiedItem, Unit } from \"../types/data\";\nimport { Card, CardHeader } from \"./Cards\";\nimport { StatBar, StatCosts, StatDps, StatNumber } from \"./Stats\";\n\nconst increaseBarSizeForClass = [\"siege\", \"elephant\", \"incendiary\"];\nfunction getBarSize(unit: UnifiedItem, baseSize: number, increasedSize: number) {\n return unit.classes.some((c) => increaseBarSizeForClass.includes(c)) ? increasedSize : baseSize;\n}\n\nexport const UnitCard: Component<{ unit: UnifiedItem; civ?: civConfig }> = (props) => {\n const [stats] = createResource(() => getUnitStats(ITEMS.UNITS, props.unit, props.civ));\n const variation = createMemo(() => getMostAppropriateVariation(props.unit, props.civ));\n\n return (\n \n \n <>\n
\n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n
\n \n \n
\n \n
\n
\n );\n};\n","import { CivAbbr } from \"@data/sdk/utils\";\n\nexport const civBackdrops: Record = {\n ay: \"https://www.ageofempires.com/wp-content/uploads/2023/09/ABB-AYY_Keyart_Ayyubids_1920x1080-1.png\",\n ab: \"https://www.ageofempires.com/wp-content/uploads/2021/06/bg-age4-civ-abb-splash-right-desk.webp\",\n by: \"https://www.ageofempires.com/wp-content/uploads/2023/09/BYZ_keyart_Byzantines_1920x1080.png\",\n ch: \"https://www.ageofempires.com/wp-content/uploads/2021/06/bg-age4-civ-chi-splash-right-desk.png\",\n de: \"https://www.ageofempires.com/wp-content/uploads/2021/06/bg-age4-civ-del-splash-right-desk.png\",\n en: \"https://www.ageofempires.com/wp-content/uploads/2021/06/bg-age4-civ-eng-splash-right-desk.png\",\n fr: \"https://www.ageofempires.com/wp-content/uploads/2021/06/bg-age4-civ-fre-splash-right-desk.webp\",\n ja: \"https://www.ageofempires.com/wp-content/uploads/2023/09/JPN_keyart_Japanese_1920x1036.png\",\n je: \"https://www.ageofempires.com/wp-content/uploads/2023/10/FRE_JDA_keyart_cropped_civ-page_1920x1090_2.png\",\n hr: \"https://www.ageofempires.com/wp-content/uploads/2021/08/bg-age4-civ-hre-splash-right-desk.webp\",\n ma: \"https://www.ageofempires.com/wp-content/uploads/2022/08/bg-age4-civ-mal-splash-right-desk.png\",\n mo: \"https://www.ageofempires.com/wp-content/uploads/2021/06/bg-age4-civ-mon-splash-right-desk.png\",\n ot: \"https://www.ageofempires.com/wp-content/uploads/2022/08/bg-age4-civ-ott-splash-right-desk.png\",\n ru: \"https://www.ageofempires.com/wp-content/uploads/2021/08/bg-age4-civ-rus-splash-right-desk.png\",\n zx: \"https://www.ageofempires.com/wp-content/uploads/2023/09/CHI-ZXL_Keyart_Zhu-Xis-Legacy_1920x1080.png\",\n od: \"https://www.ageofempires.com/wp-content/uploads/2023/10/HRE-OotD_Keyart_Order-of-the-Dragon_1920x1090.png\",\n};\n","import { Link, useIsRouting, useLocation, useParams } from \"@solidjs/router\";\nimport { createEffect, createResource, For, on, Show, Suspense } from \"solid-js\";\nimport { setActivePage } from \"../../App\";\nimport { BuildingCard } from \"@components/BuildingCard\";\nimport { CivFlag } from \"@components/CivFlag\";\nimport { ItemIcon } from \"@components/ItemIcon\";\nimport { RelatedContent } from \"@components/RelatedContent\";\nimport { ReportButton } from \"@components/ReportButton\";\nimport { UnitCard } from \"@components/UnitCard\";\nimport { CIVILIZATION_BY_SLUG } from \"../../config\";\nimport { civBackdrops } from \"../../data/civData\";\nimport { splitBuildingsIntoGroups, splitTechnologiesIntroGroups, splitUnitsIntoGroups } from \"../../query/utils\";\nimport { itemGridCSSClass, mainIntroductionCSSClass } from \"../../styles\";\n\nexport const CivDetailRoute = () => {\n const pending = useIsRouting();\n const params = useParams();\n const civConfig = CIVILIZATION_BY_SLUG[params.slug];\n const [data] = createResource(async () => {\n const civ = (await import(\"@data/sdk\")).civilizations.Get(civConfig.abbr);\n return {\n civ,\n units: splitUnitsIntoGroups(civ.units.order(\"hitpoints\", \"age\")),\n buildings: splitBuildingsIntoGroups(civ.buildings.order(\"hitpoints\", \"age\")),\n technologies: splitTechnologiesIntroGroups(civ.technologies.order(\"age\")),\n };\n });\n\n createEffect(\n on(data, () => !data.loading && setActivePage({ title: data()?.civ.info.name, description: data()?.civ.info.description, location: useLocation() }))\n );\n\n return (\n <>\n
\n
\n
\n
\n
\n \n
\n
\n Civilization\n

{data()?.civ.info.name}

\n
\n
\n

{data()?.civ.info.description}

\n
\n\n

Jump to

\n Loading

}>\n
\n \n {(unit) =>\n unit.unique && (\n \n
\n \n
\n {unit.name}\n \n )\n }\n
\n
\n
\n \n {(building) =>\n building.unique && (\n \n
\n \n
\n {building.name}\n \n )\n }\n
\n
\n
\n \n {(tech) =>\n tech.unique && (\n \n
\n \n
\n {tech.name}\n \n )\n }\n
\n
\n
\n
\n
\n \n {(x) => (\n
\n

{x.title}

\n {x.description &&

{x.description}

}\n {x.list && (\n
    \n {(y) =>
  • {y}
  • }
    \n
\n )}\n
\n )}\n
\n
\n
\n
\n \n
\n \n
\n
\n \n

Loading...

\n
\n
\n
\n
\n
\n \n }\n >\n \n {([k, v]) =>\n v?.length ? (\n
\n

{k[0].toUpperCase() + k.slice(1)}

\n
\n {(unit) => }\n
\n
\n ) : (\n <>\n )\n }\n
\n \n \n

Loading...

\n
\n
\n
\n
\n
\n \n }\n >\n \n {([k, v]) =>\n v?.length ? (\n
\n

{k[0].toUpperCase() + k.slice(1)}

\n
\n {(item) => }\n
\n
\n ) : (\n <>\n )\n }\n
\n \n
\n \n
\n \n \n );\n};\n","import { useLocation, useParams } from \"@solidjs/router\";\nimport { createResource, For, Suspense } from \"solid-js\";\nimport { setActivePage } from \"../../App\";\nimport { UnitCard } from \"@components/UnitCard\";\nimport { CIVILIZATION_BY_SLUG, ITEMS } from \"../../config\";\nimport { splitUnitsIntoGroups } from \"../../query/utils\";\nimport { itemGridCSSClass } from \"../../styles\";\n\nexport const UnitOverviewRoute = () => {\n const params = useParams();\n const civ = CIVILIZATION_BY_SLUG[params.slug];\n const [units] = createResource(async () => {\n const SDK = await import(\"@data/sdk\");\n return splitUnitsIntoGroups(SDK.units.where({ civilization: civ?.abbr }).order(\"hitpoints\", \"age\"));\n });\n\n setActivePage({ title: `Units ${civ ? ` — ${civ?.name}` : \"\"}`, location: useLocation() });\n\n return (\n
\n \n

Loading...

\n
\n {() =>
}
\n
\n \n }\n >\n \n {([k, v]) =>\n v?.length ? (\n
\n

{k[0].toUpperCase() + k.slice(1)}

\n
\n {(unit) => }\n
\n
\n ) : (\n <>\n )\n }\n
\n \n
\n );\n};\n","import { Component, createMemo } from \"solid-js\";\nimport { CIVILIZATIONS, PRETTY_AGE_MAP } from \"../config\";\nimport { getMostAppropriateVariation } from \"../query/utils\";\nimport { UnifiedItem, Technology, civConfig } from \"../types/data\";\nimport { Card, CardHeader } from \"./Cards\";\nimport { StatCosts } from \"./Stats\";\n\nexport const TechnologyCard: Component<{ item: UnifiedItem; civ?: civConfig }> = (props) => {\n const variation = createMemo(() => getMostAppropriateVariation(props.item, props.civ));\n return (\n \n
\n

{variation()?.description}

\n \n
\n
\n );\n};\n","export default \"__VITE_ASSET__2784b987__\"","import { Link } from \"@solidjs/router\";\nimport { Component, createResource, For, Match, ParentComponent, Show, Switch, useTransition } from \"solid-js\";\nimport { getItemHref } from \"./Cards\";\nimport { CivFlag } from \"./CivFlag\";\nimport { TechnologyCard } from \"./TechnologyCard\";\nimport { CIVILIZATIONS, ITEMS, PRETTY_AGE_MAP, PRETTY_AGE_MAP_SHORT } from \"../config\";\nimport { getItemTechnologies } from \"../query/utils\";\nimport { getItemCssClass, itemGridCSSClass, mainIntroductionCSSClass, mainItemTitleCSSClass } from \"../styles\";\nimport { civAbbr, civConfig, UnifiedItem } from \"../types/data\";\nimport { Icon } from \"./Icon\";\nimport { civBackdrops } from \"../data/civData\";\nimport { ItemIcon } from \"./ItemIcon\";\nimport { CivConfig, CivInfo } from \"@data/types/civs\";\nimport dlcFlag from \"../../assets/dlc-flag.png\";\n\nconst Header: Component<{ item: UnifiedItem; civ?: civConfig }> = (props) => {\n const itemCssClass = getItemCssClass(props.item);\n return (\n
\n
\n \n
\n
\n {props.item.displayClasses.join(\", \")}\n

{props.item.name}

\n {props.civ && (\n \n \n {props.civ?.name}\n \n )}\n
\n
\n );\n};\n\nconst CivPicker: Component<{ item: UnifiedItem }> = (props) => {\n return (\n <>\n

\n {props.item.civs.length > 1\n ? `Available for ${props.item.civs.length == Object.keys(CIVILIZATIONS).length ? \"all\" : props.item.civs.length} civilizations`\n : `Exclusively available to one civialization`}\n

\n

\n This unit is available for the below civilizations. Click on a civilization to see more detailed information, including specific bonuses and upgrades.\n

\n \n \n );\n};\n\nconst ProducedAt: Component<{ item: UnifiedItem; civ: civConfig; title?: string }> = (props) => {\n const [productionBuildings] = createResource(\n () => ({ item: props.item, civ: props.civ?.abbr }),\n async ({ item, civ }) => {\n const producedBy = [...new Set(item.variations.filter((v) => !civ || v.civs.includes(civ)).flatMap((v) => v.producedBy))];\n const items = await Promise.all(producedBy.map(async (b) => (await import(\"@data/sdk\")).buildings.get(b)));\n if (items.length != producedBy.length) console.warn(\"Some buildings were not found\", producedBy, items);\n return (civ ? items.filter((i) => !!i && i.civs.includes(civ)) : items).filter(Boolean).sort((a, b) => b.civs?.length - a.civs?.length);\n }\n );\n\n return (\n \n

{props.title ?? \"Produced at\"}

\n
\n \n {(building) => (\n \n
\n \n
\n {building.name}\n \n )}\n
\n
\n
\n );\n};\n\nfunction getItemType(item: UnifiedItem) {\n return item.type === \"unit\" ? ITEMS.UNITS : item.type === \"building\" ? ITEMS.BUILDINGS : ITEMS.TECHNOLOGIES;\n}\n\nconst AvailableUpgrades: Component<{ item: UnifiedItem; civ: civConfig }> = (props) => {\n const [technologies] = createResource(\n () => ({ item: props.item, civ: props.civ }),\n async ({ item, civ }) => item && (await getItemTechnologies(getItemType(item), item, civ, true))\n //.flatMap((x) => x.variations)\n // We're not really picking up the variations right now\n );\n return (\n \n

Technology Upgrades

\n
\n {(tech) => }\n
\n
\n );\n};\n\nconst Wrapper: ParentComponent<{ civ?: civConfig }> = (props) => {\n const [pending] = useTransition();\n return (\n <>\n {/* */}\n
\n {props.children}\n \n
\n
\n \n \n );\n};\n\nconst UnavailableForCiv: Component<{ item: UnifiedItem; civ: civConfig }> = (props) => {\n const itemCssClass = getItemCssClass(props.item);\n return (\n
\n
\n
\n \n
\n
\n {props.item.displayClasses}\n

{props.item.name}

\n
\n \n {(civ) => (\n \n {CIVILIZATIONS[civ].name}\n \n )}\n \n
\n
\n
\n

\n The {props.item.name} is unique, and not available for {props.civ.name}.\n

\n\n \n \n \n {props.civ.name}'s {getItemType(props.item)}\n \n \n \n
\n );\n};\n\nconst CivOptionsForItem: ParentComponent<{ item: UnifiedItem; civs: civAbbr[]; prefix?: string }> = (props) => (\n <>\n
\n {props.children}\n \n {(civ) => (\n \n {props.prefix} {CIVILIZATIONS[civ].name}\n \n \n )}\n \n
\n \n);\n\n// const Fandom: Component<{ query: string }> = (props) => {\n// const [content] = createResource(async () => {\n// const res = await fetch(\n// `https://corsanywhere.herokuapp.com/https://ageofempires.fandom.com/wikia.php?controller=UnifiedSearchSuggestionsController&method=getSuggestions&query=${props.query}&format=json`\n// );\n// const results = await res.json();\n// console.log(results);\n// const bestMatch = Object.entries(results.ids).find(([title, id]) => title.toUpperCase().includes(\"IV\"));\n// return bestMatch?.[0] ?? (Object.keys(results.ids)[0] as string);\n// });\n\n// return (\n// \n// View on Fandom\n// \n// );\n// };\n\nconst AgeTabs: Component<{ age: () => number; setAge: (age: number) => void; minAge?: number }> = (props) => (\n
\n {[1, 2, 3, 4].map((a) => (\n props.setAge(a)}\n class={`basis-1/4 p-2 ${\n props.minAge && a >= props.minAge\n ? props.age() == a\n ? \"cursor-default text-white\"\n : \"bg-gray-400/30 hover:bg-gray-500/50 text-gray-100\"\n : \"bg-gray-400/30 text-gray-400\"\n }`}\n disabled={props.minAge && a < props.minAge}\n >\n {PRETTY_AGE_MAP_SHORT[a]}\n \n ))}\n
\n);\n\nconst ExpansionInfo: Component<{ civ: CivConfig }> = (props) => (\n \n
\n \n
\n

\n {props.civ.name} is part of the Sultans Ascend expansion\n

\n

\n Get it on\n \n Steam\n \n \n Xbox\n \n \n MS Store\n \n

\n
\n
\n
\n);\n\nexport const ItemPage = {\n Wrapper,\n Header,\n ProducedAt,\n UnavailableForCiv,\n AvailableUpgrades,\n CivPicker,\n AgeTabs,\n ExpansionInfo,\n};\n","import { Link } from \"@solidjs/router\";\nimport { Component, createResource, createSignal, For } from \"solid-js\";\nimport { getPatchHistory } from \"../query/utils\";\nimport { UnifiedItem, civConfig } from \"../types/data\";\nimport { Icon } from \"./Icon\";\nimport { CivFlag } from \"./CivFlag\";\n\nexport const PatchHistory: Component<{ item: UnifiedItem; civ?: civConfig }> = (props) => {\n const [patchHistory] = createResource(() => getPatchHistory(props.item, props.civ ? [props.civ] : undefined));\n const [patchesExpanded, setPatchesExpanded] = createSignal(false);\n return (\n
\n {patchHistory()?.length &&

Patch History

}\n \n {(history) => {\n const [expanded, setExpanded] = createSignal(false);\n return (\n
\n \n {history.patch.name}\n \n {history.patch.date.valueOf() > Date.now() && (\n

\n \n \n To be released on {history.patch.date.toLocaleDateString(\"en-US\", { dateStyle: \"long\" })}. This page will be updated when the patch is\n released.\n \n

\n )}\n i < 6 || expanded())}>\n {([type, change, civs]) => (\n
\n
\n {type == \"buff\" && }\n {type == \"nerf\" && }\n {type == \"fix\" && }\n
\n

\n {!props.civ && civs?.length >= 1 ? civs.map((c) => ) : <>}\n {change}\n

\n
\n )}\n
\n {history.diff.length > 6 && !expanded() && (\n \n )}\n
\n );\n }}\n
\n {patchHistory()?.length > 2 && !patchesExpanded() && (\n \n )}\n
\n );\n};\n","import { Ability, ITEMS } from \"@data/types/items\";\nimport { CivAbbr, ItemList, ItemSlug } from \"@data/sdk/utils\";\nimport { formatSecondsToPhrase, formatSecondsToTime } from \"./Stats\";\nimport { Component, Show, For, createResource } from \"solid-js\";\nimport { ItemIcon } from \"./ItemIcon\";\nimport { ITEM_TYPES } from \"@data/lib/config\";\nimport { Link } from \"@solidjs/router\";\nimport { civConfig } from \"@data/types/civs\";\nimport { getItemHref } from \"./Cards\";\n\nexport const Abilities: Component<{ abilities: ItemList; civ: civConfig }> = (props) => {\n const sortedMappedAbilities = () => props.abilities.map((ab) => ab.variations[0]).sort((a, b) => (a.active == \"manual\" ? -1 : 1));\n return (\n \n

Abilities and influences

\n\n
\n \n {(ability) => (\n
\n \n \n
\n
\n

{ability.name}

\n

\n {ability.description}\n\n {ability.activatedOn?.length && (\n <>\n {ability.active === \"toggle\"\n ? \" Toggle on \"\n : ability.auraRange === 0\n ? \" Activate on \"\n : ` When ${ability.auraRange >= 1 ? `in ${ability.auraRange} tiles range of` : `near`}`}\n {ability.activatedOn?.map((id, i, l) => (\n <>\n \n {`${i == l.length - 2 ? \" or \" : i < l.length - 1 ? \", \" : \"\"}`}\n \n ))}\n .\n \n )}\n\n {ability.unlockedBy?.length && (\n <>\n {\" \"}\n Requires{\" \"}\n {ability.unlockedBy?.map((id) => (\n \n ))}\n \n )}\n\n {ability.cooldown && (\n <>\n {\" \"}\n {formatSecondsToPhrase(ability.cooldown)} cooldown\n {/* {ability.active == \"manual\"\n ? \" when activated. \"\n : ability.active == \"toggle\"\n ? \" when toggled.\"\n : ability.active == \"always\"\n ? \" after triggering\"\n : \"\"} */}\n \n )}\n

\n
\n
\n )}\n \n \n
\n );\n};\n\nconst InlineItemLink: Component<{ itemId: ItemSlug; civ: civConfig }> = (props) => {\n const SDK = import(\"@data/sdk/index\");\n const [item] = createResource(props.itemId, async (id) => (await SDK).civilizations.Get(props.civ).Get(id));\n\n return (\n \n {(item) => (\n \n
\n \n
\n {item.name}\n \n )}\n
\n );\n};\n","import { Link, useParams } from \"@solidjs/router\";\nimport { Component, createEffect, createMemo, createResource, createSignal, For, Show } from \"solid-js\";\nimport { setActivePageForItem, tryRedirectToClosestMatch } from \"../../App\";\nimport { ReportButton } from \"@components/ReportButton\";\nimport { StatNumber, StatBar, StatDps, StatCosts } from \"@components/Stats\";\nimport { CIVILIZATION_BY_SLUG, ITEMS } from \"../../config\";\nimport { getUnitStats } from \"../../query/stats\";\nimport { mainIntroductionCSSClass } from \"../../styles\";\nimport { Building, civConfig, UnifiedItem, Unit } from \"../../types/data\";\nimport { ItemPage } from \"@components/ItemPage\";\nimport { PatchHistory } from \"@components/PatchHistory\";\nimport { getMostAppropriateVariation } from \"../../query/utils\";\nimport { RelatedContent } from \"@components/RelatedContent\";\nimport { ItemList } from \"@data/sdk/utils\";\nimport { Ability } from \"@data/types/items\";\nimport { Abilities } from \"@components/Abilities\";\nconst SDK = import(\"@data/sdk/index\");\nexport function UnitDetailRoute() {\n const itemType = ITEMS.UNITS;\n const params = useParams();\n const civ = CIVILIZATION_BY_SLUG[params.slug];\n const [unmatched, setUnmatched] = createSignal(false);\n const [item] = createResource(params.id, async (id) => (await SDK).units.get(id));\n const [abilities] = createResource(async () =>\n !civ ? ([] as ItemList) : (await SDK).abilities.where({ civilization: civ.abbr, affects: `units/${params.id}` }).order(\"age\")\n );\n\n const variation = createMemo(() => getMostAppropriateVariation(item(), civ));\n\n createEffect(() => {\n if (!item()) return;\n if (civ && !item()?.civs.includes(civ.abbr)) tryRedirectToClosestMatch(itemType, params.id, civ, () => setUnmatched(true));\n setActivePageForItem(item(), civ);\n });\n\n return (\n \n \n {(item) => (\n
\n
\n \n
{variation()?.description}
\n\n \n\n \n\n \n {/* {item().name && } */}\n {!civ && }\n\n \n\n \n\n
\n \n
\n
\n \n
\n )}\n
\n {!unmatched() && }\n {unmatched() && }\n {item.error &&
Error!
}\n
\n );\n}\n\nconst UnitSidebar: Component<{ item?: UnifiedItem; civ: civConfig }> = (props) => {\n const [stats] = createResource(\n () => ({ unit: props.item, civ: props.civ }),\n (x) => getUnitStats(ITEMS.UNITS, x.unit, x.civ)\n );\n const variation = createMemo(() => getMostAppropriateVariation(props.item, props.civ));\n const [age, setAge] = createSignal(4);\n\n return (\n
\n
\n \n
\n \n {(stats) => (\n <>\n
\n \n
\n \n \n \n \n \n \n \n
\n
\n
\n {stats.attackSpeed && (\n
\n \n
\n )}\n \n \n \n \n \n
\n \n )}\n
\n
\n );\n};\n","import { Link, useLocation } from \"@solidjs/router\";\nimport { For } from \"solid-js\";\nimport { setActivePage } from \"../App\";\nimport { CivFlag } from \"@components/CivFlag\";\nimport { Icon } from \"@components/Icon\";\nimport { Tooltip } from \"@components/Tooltip\";\nimport { CIVILIZATIONS } from \"../config\";\nimport { mainIntroductionCSSClass, tooltipCSSClass } from \"../styles\";\nconst buttonClass = `block font-bold px-7 py-2 rounded-full transition hover:opacity-70`;\nexport const CivOverviewRoute = () => {\n setActivePage({ title: \"Civilizations\", description: \"Overview of all civilizations\", location: useLocation() });\n let el;\n return (\n <>\n
\n
\n
\n

AoE4 Explorer

\n \n Patch 12.0.1974\n \n \n
The Explorer includes all changes introduced with Season 9 Patch 12.0.1974
\n
\n
\n

Discover all units, buildings and technologies in the game.

\n\n

\n AoE4 World Explorer provides you with a detailed breakdown on what specific upgrades, tecnologies and bonuses make units perform better.\n
\n
\n Use the tool to explore different civilizations, buidlings and army units and get a better understanding of Age of Empires 4.\n
\n
\n

\n
\n \n Learn more\n \n \n \n \n Explore All Units\n \n \n \n Explore All Buildings\n \n
\n
\n
\n \n {(civ) => (\n \n \n

{civ.name}

\n \n \n )}\n
\n
\n
\n \n
\n \n \n
\n \n \n );\n};\n","import { useLocation, useParams } from \"@solidjs/router\";\nimport { createResource, For, Suspense } from \"solid-js\";\nimport { setActivePage } from \"../../App\";\nimport { BuildingCard } from \"@components/BuildingCard\";\nimport { CIVILIZATION_BY_SLUG, ITEMS } from \"../../config\";\nimport { splitBuildingsIntoGroups } from \"../../query/utils\";\nimport { itemGridCSSClass } from \"../../styles\";\n\nexport const BuildingOverviewRoute = () => {\n const params = useParams();\n const civ = CIVILIZATION_BY_SLUG[params.slug];\n const [buildings] = createResource(async () =>\n splitBuildingsIntoGroups((await import(\"@data/sdk\")).buildings.where({ civilization: civ?.abbr }).order(\"age\"))\n );\n\n setActivePage({ title: `Buildings ${civ ? ` — ${civ?.name}` : \"\"}`, location: useLocation() });\n\n return (\n
\n \n

Loading...

\n
\n {() =>
}
\n
\n \n }\n >\n \n {([k, v]) =>\n v?.length ? (\n
\n

{k[0].toUpperCase() + k.slice(1)}

\n
\n {(unit) => }\n
\n
\n ) : (\n <>\n )\n }\n
\n \n
\n );\n};\n","import { Link, useParams } from \"@solidjs/router\";\nimport { Component, createEffect, createMemo, createResource, createSignal, For, Show } from \"solid-js\";\nimport { setActivePageForItem, tryRedirectToClosestMatch } from \"../../App\";\nimport { getItemHref } from \"@components/Cards\";\nimport { ItemIcon } from \"@components/ItemIcon\";\nimport { ItemPage } from \"@components/ItemPage\";\nimport { PatchHistory } from \"@components/PatchHistory\";\nimport { RelatedContent } from \"@components/RelatedContent\";\nimport { ReportButton } from \"@components/ReportButton\";\nimport { StatNumber, StatBar, StatDps, StatCosts } from \"@components/Stats\";\nimport { TechnologyCard } from \"@components/TechnologyCard\";\nimport { Tooltip } from \"@components/Tooltip\";\nimport { UnitCard } from \"@components/UnitCard\";\nimport { CIVILIZATION_BY_SLUG, ITEMS } from \"../../config\";\nimport { getUnitStats } from \"../../query/stats\";\nimport { getMostAppropriateVariation } from \"../../query/utils\";\nimport { mainIntroductionCSSClass } from \"../../styles\";\nimport { Building, civAbbr, civConfig, UnifiedItem } from \"../../types/data\";\nimport { ItemList } from \"@data/sdk/utils\";\nimport { Ability } from \"@data/types/items\";\nimport { Abilities } from \"@components/Abilities\";\n\nconst SDK = import(\"@data/sdk/index\");\n\nexport function BuildingDetailRoute() {\n const itemType = ITEMS.BUILDINGS;\n const params = useParams();\n const civ: civConfig = CIVILIZATION_BY_SLUG[params.slug];\n const [unmatched, setUnmatched] = createSignal(false);\n const [item] = createResource(params.id, async (id) => (await SDK).buildings.get(id));\n const variation = createMemo(() => getMostAppropriateVariation(item(), civ));\n\n createEffect(() => {\n if (!item()) return;\n if (civ && !item()?.civs.includes(civ.abbr)) tryRedirectToClosestMatch(itemType, params.id, civ, () => setUnmatched(true));\n setActivePageForItem(item(), civ);\n });\n\n const [units] = createResource(async () => (await SDK).units.where({ producedAt: params.id, civilization: civ?.abbr }));\n const [research] = createResource(async () => (await SDK).technologies.where({ producedAt: params.id, civilization: civ?.abbr }).order(\"age\"));\n const [abilities] = createResource(async () =>\n !civ ? ([] as ItemList) : (await SDK).abilities.where({ civilization: civ.abbr, affects: `buildings/${params.id}` }).order(\"age\")\n );\n\n return (\n \n \n {(item) => (\n
\n
\n \n
{variation()?.description}
\n\n \n\n {!civ && }\n\n \n\n
\n \n
\n \n

Produces

\n\n
\n \n {(unit) => {\n let el;\n return (\n \n
\n \n
\n {unit.name}\n \n
\n \n
\n
\n \n );\n }}\n
\n
\n
\n \n

Researches

\n\n
\n \n {(tech) => {\n let el;\n return (\n \n
\n \n
\n $2')}\n />\n \n
\n \n
\n
\n \n );\n }}\n
\n
\n
\n\n \n\n \n
\n \n
\n )}\n
\n {unmatched() && }\n {!unmatched() && }\n {item.error &&
Error!
}\n
\n );\n}\n\nconst BuildingSidebar: Component<{ item: UnifiedItem; civ: civConfig }> = (props) => {\n const [stats] = createResource(\n () => ({ unit: props.item, civ: props.civ }),\n (x) => getUnitStats(ITEMS.UNITS, x.unit, x.civ)\n );\n\n const variation = createMemo(() => getMostAppropriateVariation(props.item, props.civ));\n const [age, setAge] = createSignal(4);\n\n return (\n
\n
\n \n \n {(amount) => (\n
\n
Effects
\n

Increases max population by {amount}

\n
\n )}\n
\n \n {(g) => (\n
\n
Garrison
\n

Can garrison up to {g.capacity} units

\n
\n )}\n
\n
\n \n {(stats) => (\n <>\n
\n \n
\n \n \n \n \n \n \n
\n
\n
\n {stats.attackSpeed && (\n
\n \n
\n )}\n \n \n \n \n \n
\n \n )}\n
\n
\n );\n};\n","import { useLocation } from \"@solidjs/router\";\nimport { createSignal, For } from \"solid-js\";\nimport { setActivePage } from \"../App\";\nimport { CivFlag } from \"@components/CivFlag\";\nimport { Icon } from \"@components/Icon\";\nimport { ReportButton } from \"@components/ReportButton\";\nimport { mainIntroductionCSSClass } from \"../styles\";\n\nexport const AboutRoute = () => {\n setActivePage({ title: \"About\", description: \"About the AoE4 Explorer\", location: useLocation() });\n const [x] = createSignal(true);\n return (\n
\n
\n

AoE4 Explorer

\n

Discover all units, buildings and technologies in the game.

\n

\n AoE4 World Explorer provides you with a detailed breakdown on what specific upgrades, tecnologies and bonuses make units perform better.\n
\n
\n Use the tool to explore different civilizations, buidlings and army units and get a better understanding of Age of Empires 4.\n

\n
\n\n
\n
\n
\n
\n \n Age IV\n \n
\n
\n

Filter by age

\n

\n When viewing the stats for one or multiple units, use the Age switcher in the top right to change the age. Any upgrades and technologies not\n available in the selected age will be excluded from the stats.\n

\n
\n\n
\n
\n
\n
\n \n \n 19\n \n 38\n \n \n Melee Attack\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Inspect combat stats

\n

Hover over specific parts of a bar to see how statistics like hitpoints, attack and armor are build up. Hover over the label to see the totals.

\n
\n\n
\n
\n
\n \n \n \n \n
\n
\n

Compare civs

\n

Click through the flags to see what bonuses and stats a unit gets for different civilizations.

\n
\n\n
\n
\n \n
\n

Help us improve

\n

Notice anything wrong? Do let us know!

\n
\n\n
\n \n {([type, label]) => (\n
\n {label}\n
\n )}\n \n
\n
\n
\n

Credits & Contributors

\n

\n AoE4 Explorer is created by{\" \"}\n \n Robert van Hoesel\n {\" \"}\n with help from{\" \"}\n \n René Klačan\n \n . The data is sourced from game files, communities and for the most part pulled from the{\" \"}\n \n AOE4 Quick Sheet\n {\" \"}\n created by{\" \"}\n \n MugenNoSora\n \n . Special thanks to{\" \"}\n \n rudyairlines\n {\" \"}\n and{\" \"}\n \n aoemods\n \n .\n

\n\n

If you would like to contribute that is certainly appreciated, here are ways you can help:

\n \n\n

Use the data!

\n

\n Interested in using the data of the explorer in your own project? All the data on units, buildings, technologies and civs is open source and available\n in JSON over at{\" \"}\n \n aoe4world/data\n \n . Use it to speed up the development of your awesome tools and do let us know if you build something.\n

\n
\n
\n );\n};\n","import { useParams } from \"@solidjs/router\";\nimport { createEffect, createMemo, createResource, createSignal, Show } from \"solid-js\";\nimport { setActivePageForItem, tryRedirectToClosestMatch } from \"../../App\";\nimport { ItemPage } from \"@components/ItemPage\";\nimport { PatchHistory } from \"@components/PatchHistory\";\nimport { RelatedContent } from \"@components/RelatedContent\";\nimport { ReportButton } from \"@components/ReportButton\";\nimport { StatCosts } from \"@components/Stats\";\nimport { CIVILIZATION_BY_SLUG, ITEMS, PRETTY_AGE_MAP_LONG } from \"../../config\";\nimport { getMostAppropriateVariation } from \"../../query/utils\";\nimport { mainIntroductionCSSClass } from \"../../styles\";\nimport { Technology } from \"../../types/data\";\n\nexport function TechnologyDetailRoute() {\n const itemType = ITEMS.TECHNOLOGIES;\n const params = useParams();\n const civ = CIVILIZATION_BY_SLUG[params.slug];\n const [unmatched, setUnmatched] = createSignal(false);\n const [item] = createResource(params.id, async (id) => (await import(\"@data/sdk/index\")).technologies.get(id));\n\n createEffect(() => {\n if (!item()) return;\n if (civ && !item()?.civs.includes(civ.abbr)) tryRedirectToClosestMatch(itemType, params.id, civ, () => setUnmatched(true));\n setActivePageForItem(item(), civ);\n });\n\n const variation = createMemo(() => getMostAppropriateVariation(item(), civ));\n\n return (\n \n \n {(item) => (\n
\n
\n \n
{item?.description}
\n {item?.minAge > 0 ?
Available in the {PRETTY_AGE_MAP_LONG[item?.minAge]}
: <>}\n\n \n\n \n\n {!civ && }\n\n \n\n \n\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n )}\n
\n\n {unmatched() && }\n {item.error &&
Error!
}\n
\n );\n}\n","import { useLocation, useParams } from \"@solidjs/router\";\nimport { createResource, For, Suspense } from \"solid-js\";\nimport { setActivePage } from \"../../App\";\nimport { TechnologyCard } from \"@components/TechnologyCard\";\nimport { CIVILIZATION_BY_SLUG, ITEMS } from \"../../config\";\nimport { splitTechnologiesIntroGroups } from \"../../query/utils\";\nimport { itemGridCSSClass } from \"../../styles\";\n\nexport const TechnologoiesOverviewRoute = () => {\n const params = useParams();\n const civ = CIVILIZATION_BY_SLUG[params.slug];\n const [technologies] = createResource(async () =>\n splitTechnologiesIntroGroups((await import(\"@data/sdk\")).technologies.where({ civilization: civ?.abbr }).order(\"age\"))\n );\n\n setActivePage({ title: `Technologies ${civ ? ` — ${civ?.name}` : \"\"}`, location: useLocation() });\n\n return (\n
\n \n

Loading...

\n
\n {() =>
}
\n
\n \n }\n >\n \n {([k, v]) =>\n v?.length ? (\n
\n

{k[0].toUpperCase() + k.slice(1)}

\n
\n {(unit) => }\n
\n
\n ) : (\n <>\n )\n }\n
\n \n
\n );\n};\n","import { Accessor, Component, createContext, createSignal, onCleanup, onMount, useContext } from \"solid-js\";\n\ntype Heading = { label: string; id: string; level: number };\ntype TocContext = {\n headings: Accessor;\n add(label: string, level?: number): string;\n remove(id: string): void;\n};\nconst TableOfContentsContext = createContext({\n headings: () => [],\n add: () => \"\",\n remove: () => null,\n});\n\nexport const TableOfContentsProvider: Component = (props) => {\n const [headings, setHeadings] = createSignal([]);\n const value: TocContext = {\n headings,\n add: (label: string, level = 1) => {\n const slugified = label.replace(/\\s/g, \"-\").toLowerCase();\n let id = slugified;\n let i = 0;\n while (headings().find((h) => h.id === id)) id = `${slugified}-${i++}`;\n setHeadings(headings().concat({ label, id, level }));\n return id;\n },\n remove: (id: string) => setHeadings(headings().filter((h) => h.id !== id)),\n };\n\n onMount(() => {\n const id = window.location.hash?.replace(\"#\", \"\");\n if (!id) return;\n headings()?.find((h) => h.id === id) && requestAnimationFrame(() => document.getElementById(id)?.scrollIntoView());\n });\n\n return {props.children};\n};\n\nexport const TableOfContentsAnchor: Component<{ label: string; level?: number }> = (props) => {\n const { add: createHeadingId, remove: removeHeading } = useContext(TableOfContentsContext);\n const id = createHeadingId(props.label, props.level);\n onCleanup(() => removeHeading(id));\n return ;\n};\n\nexport function useTableOfContents() {\n return useContext(TableOfContentsContext);\n}\n\nexport function scrollIntoViewIfNeeded(e: MouseEvent, id: string) {\n const el = document.getElementById(id);\n if (el) {\n e.preventDefault();\n e.stopImmediatePropagation();\n history.pushState({}, \"\", `#${id}`);\n el.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n return false;\n }\n}\n\nexport const TableOfContents = {\n Provider: TableOfContentsProvider,\n Anchor: TableOfContentsAnchor,\n};\n","import { Link, useLocation, useParams } from \"@solidjs/router\";\nimport { Component, createMemo, onMount, createResource, createSignal, For, Index, Resource, createEffect, Show, onCleanup } from \"solid-js\";\nimport { setActivePage } from \"../../App\";\nimport { getItemHref } from \"@components/Cards\";\nimport { CivFlag } from \"@components/CivFlag\";\nimport { Icon } from \"@components/Icon\";\nimport { ItemIcon } from \"@components/ItemIcon\";\nimport { scrollIntoViewIfNeeded, TableOfContents, useTableOfContents } from \"@components/TableOfContents\";\nimport { CIVILIZATIONS, CIVILIZATION_BY_SLUG } from \"../../config\";\nimport { capitlize, getItemByCanonicalName, sortPatchDiff } from \"../../query/utils\";\nimport { getItemCssClass, mainIntroductionCSSClass } from \"../../styles\";\nimport { civAbbr, Item, UnifiedItem } from \"../../types/data\";\nimport { PatchLine, PatchSection, PatchSet } from \"../../types/patches\";\nimport { setHideNav } from \"../../global\";\nimport { ItemGroup, ItemSlug } from \"@data/sdk/utils\";\n\nexport const PatchDetailRoute = () => {\n setHideNav(true);\n onCleanup(() => setHideNav(false));\n const params = useParams();\n const [patch] = createResource(async () => (await import(\"../../data/patches/patch\")).patches.find((patch) => patch.id === params.id));\n const [civ, setCiv] = createSignal(CIVILIZATION_BY_SLUG[params.civ]?.abbr);\n const [items] = createResource(patch, async (patch) => {\n const SDK = await import(\"@data/sdk/index\");\n const items = patch.sections.flatMap((s) => s.changes).flatMap((c) => c.items.map((ci) => [ci, SDK.Get(ci as ItemSlug)] as [string, ItemGroup]));\n return new Map(items);\n });\n\n const [filteredPatchNotes] = createResource(\n () => ({ patch: patch(), items: items(), civ: civ() }),\n ({ patch, items, civ }) => {\n if (!patch || !items) return [];\n if (!civ) return patch?.sections;\n\n return patch?.sections?.reduce((sections, s) => {\n const changes = s.changes.reduce((chs, c) => {\n if (c.civs.length ? c.civs.includes(civ) : !c.items.length || c.items.some((i) => items.get(i)?.civs.includes(civ))) {\n const filterdChange: PatchSet = { ...c };\n filterdChange.items = c.items.filter((i) => !i || items.get(i)?.civs.includes(civ));\n filterdChange.diff = filterdChange.diff.filter(([t, d, c]) => !c?.length || c.includes(civ));\n chs.push(filterdChange);\n }\n return chs;\n }, [] as PatchSet[]);\n if ((!s.civs?.length || (s.civs && s.civs.includes(civ))) && changes.length) sections.push({ ...s, changes });\n return sections;\n }, [] as PatchSection[]);\n }\n );\n\n const [pagination] = createResource(params.id, async (id) => {\n const { patches } = await import(\"../../data/patches/patch\");\n const i = patches.findIndex((p) => p.id === id);\n return { previous: patches[i - 1], next: patches[i + 1] };\n });\n\n createEffect(\n () =>\n patch() &&\n setActivePage({\n title: `${patch()?.name} ${civ() ? `– ${CIVILIZATIONS[civ()]?.name}` : \"\"}`,\n description: patch()?.introduction,\n location: useLocation(),\n })\n );\n\n return (\n \n
\n
\n \n {(prev) => (\n \n {prev().name}\n \n )}\n \n \n All\n \n \n {(next) => (\n \n {next().name} \n \n )}\n \n
\n

\n {patch()?.name} {civ() && `– ${CIVILIZATIONS[civ()]?.name}`}\n

\n
\n {patch()?.date.toLocaleDateString(\"en-US\", { dateStyle: \"full\" })} {patch()?.buildId && #{patch().buildId}}\n \n Season {patch()?.season} {patch()?.type}\n \n
\n
\n \n
\n\n {patch()?.officialUrl && (\n \n Read full release notes \n \n )}\n {patch()?.html}\n
\n
\n
\n
\n
Filter updates by civilization
\n
\n setCiv(null)}\n class={`w-10 h-6 rounded grid place-content-center bg-gray-400 uppercase text-sm text-white hover:text-gray-50 ${\n !civ() ? \"outline outline-white\" : \"\"\n }`}\n >\n All\n \n \n {(c) => (\n setCiv(c.abbr)}>\n \n \n )}\n \n
\n
Click on different units or technologies to learn more about them.
\n
\n\n {(section) =>
}\n
\n
\n {civ() && (\n
\n

\n Showing notes for the {CIVILIZATIONS[civ()]?.name}. Other patch notes are hidden.\n

\n setCiv(null)}\n class=\"rounded basis-full grid place-content-center uppercase p-1 mt-3 bg-gray-400 text-[12px] text-white hover:text-gray-50\"\n >\n View the full notes\n \n
\n )}\n\n \n
\n
\n
\n );\n};\n\nconst Section: Component<{ section: PatchSection; items: Map; civ: civAbbr }> = (props) => {\n return (\n
\n \n\n {props.section.title &&

{props.section.title}

}\n {props.section.subtitle &&

{props.section.subtitle}

}\n {props.section.description &&

{props.section.description}

}\n {props.section.md && }\n \n {(c) => (\n
\n {(c.items.length || c.title) && (\n
\n {c.title &&

{c.title}

}\n \n {(ci) => {\n const item = props.items?.get(ci);\n if (item && props.civ && !item.civs.includes(props.civ)) return null;\n if (item) {\n const itemCssClass = getItemCssClass(item);\n return (\n \n
\n \n
\n {item.name}\n \n );\n }\n const unmapped = ci.split(\"/\");\n console.warn(`Item not found: ${unmapped[1]} in ${unmapped[0]}`);\n return {capitlize(unmapped[1])};\n }}\n
\n
\n )}\n \n \n
\n )}\n
\n
\n );\n};\n\nconst DevNote: Component<{ note: string }> = (props) => {\n return (\n props.note && (\n
\n
Developer note
\n

\"{props.note}\"

\n
\n )\n );\n};\nconst DiffList: Component<{ diff: PatchLine[] }> = (props) => (\n
    \n \n {([type, change]) => (\n
  • \n
    \n {type == \"buff\" && }\n {type == \"nerf\" && }\n {type == \"fix\" && }\n
    \n

    {change}

    \n
  • \n )}\n
    \n
\n);\n\nconst Sidebar = () => {\n const { headings } = useTableOfContents();\n\n return (\n
\n Jump to\n \n {(s, i) => (\n scrollIntoViewIfNeeded(e, s.id)}\n class={`block my-1 text-gray-200 hover:text-gray-50 ${s.level > 1 ? \"pl-4\" : \"font-bold mt-3\"}`}\n >\n {s.label}\n \n )}\n \n
\n );\n};\n\nconst DirtSimpleMd: Component<{ md: string }> = (props) => {\n return (\n
\n {...(props.md ?? \"\").split(\"\\n\").map((line) => {\n const l = line.trim();\n if (l.startsWith(\"###\")) return
{l.slice(4)}
;\n if (l.startsWith(\"##\")) return

{l.slice(3)}

;\n if (l.startsWith(\"#\")) return

{l.slice(2)}

;\n if (l.startsWith(\"> \")) return ;\n if (l.startsWith(\"![\") && l.endsWith(\")\")) {\n const [_, alt, url] = l.match(/!\\[(.*)\\]\\((.*)\\)/);\n return {alt};\n }\n if (l.startsWith(\"[\") && l.includes(\"](\") && l.endsWith(\")\")) {\n const [_, label, url] = l.match(/\\[(.*)\\]\\((.*)\\)/);\n return (\n \n {label}\n \n );\n }\n if (line.startsWith(\" * \") || line.startsWith(\" - \"))\n return (\n

\n {line.slice(6)}\n

\n );\n if (l.startsWith(\"* \") || l.startsWith(\"- \"))\n return (\n

\n {l.slice(2)}\n

\n );\n\n return

{l}

;\n })}\n
\n );\n};\n","import { useNavigate } from \"@solidjs/router\";\nimport { Component, createSignal } from \"solid-js\";\nimport { getItemHref } from \"@components/Cards\";\nimport { Icon } from \"@components/Icon\";\nimport { search, Search } from \"@components/Search\";\nimport { mainIntroductionCSSClass } from \"../styles\";\n\nexport const SearchRoute: Component = () => {\n const navigate = useNavigate();\n const [noResult, setNoResult] = createSignal();\n const q = new URLSearchParams(window.location.search).get(\"q\");\n if (q)\n search(q).then((i) => {\n const item = i?.[0]?.item;\n if (item) navigate(getItemHref(item));\n else setNoResult(q);\n });\n\n const searchUrl = new URL(window.location.href);\n searchUrl.search = \"?q=\";\n return (\n
\n

\n \n Quick Search\n

\n {noResult() && (\n
\n

\n \n No results for \"{noResult()}\"\n

\n

Try searching for something else.

\n
\n )}\n\n

Use this url to create a search shortcut to the explorer in Chrome or Firefox.

\n (t.target as HTMLInputElement).select()}\n />\n
\n

Learn how to add a site search short cut in

\n \n Chrome\n \n \n Firefox\n \n
\n
\n );\n};\n","import { Link, useLocation } from \"@solidjs/router\";\nimport { createResource, onCleanup } from \"solid-js\";\nimport { setActivePage } from \"../../App\";\nimport { Icon } from \"@components/Icon\";\nimport { PatchNotes } from \"../../types/patches\";\nimport { CivAbbr } from \"@data/sdk/utils\";\nimport { mainIntroductionCSSClass } from \"../../styles\";\nimport { setHideNav } from \"../../global\";\n\nexport const PatchListRoute = () => {\n setHideNav(true);\n onCleanup(() => setHideNav(false));\n const [patches] = createResource(async () => [...(await import(\"../../data/patches/patch\")).patches].reverse().map(patchSummary));\n\n setActivePage({ title: \"Patches\", location: useLocation() });\n\n return (\n
\n

Age of Empires IV Patch History

\n

\n An overview of all balance patches released since Season One. Hotfixes without balance changes are excluded. Click on a Patch to learn more.\n

\n\n
\n

\n buffs\n

\n

\n nerfs\n

\n

\n fixes\n

\n
\n\n
    \n
    \n {patches()?.map((patch) => (\n \n

    \n {patch.notes.date.toLocaleDateString(\"en\", { day: \"numeric\", month: \"short\", year: \"numeric\" })}\n

    \n
    \n
    \n \n

    {patch.notes.name}

    \n \n S{patch.notes.season} {patch.notes.type}\n \n \n\n
    \n

    {patch.notes.summary}

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n {/*
    \n
    \n {patch.buffed > 0 && (\n

    \n {patch.buffed} buffs\n

    \n )}\n {patch.nerfed > 0 && (\n

    \n {patch.nerfed} nerfs\n

    \n )}\n {patch.fixed > 0 && (\n

    \n {patch.fixed} fixes\n

    \n )}\n
    \n
    */}\n\n {/*
    \n {patch.civs.map((civ) => (\n \n ))}\n
    */}\n \n ))}\n
\n
\n );\n};\n\nfunction patchSummary(notes: PatchNotes, i: number, patches: PatchNotes[]) {\n let buffed = 0,\n nerfed = 0,\n fixed = 0;\n\n let civs = new Set();\n for (const change of notes.sections.flatMap((section) => section.changes)) {\n change.civs.forEach((x) => civs.add(x));\n for (const [type] of change.diff) {\n if (type === \"buff\") buffed++;\n else if (type === \"nerf\") nerfed++;\n else if (type === \"fix\") fixed++;\n }\n }\n\n const daysSinceLastPatch = Math.ceil(i < patches.length - 1 ? (notes.date.getTime() - patches[i + 1].date.getTime()) / 1000 / 60 / 60 / 24 : 0);\n\n return {\n buffed,\n nerfed,\n fixed,\n civs: [...civs],\n notes,\n daysSinceLastPatch,\n };\n}\n","import { CivSlug } from \"@data/sdk/utils\";\nimport { Link, useLocation, useParams } from \"@solidjs/router\";\nimport {\n Component,\n For,\n JSX,\n ParentComponent,\n Show,\n Suspense,\n createContext,\n createEffect,\n createMemo,\n createResource,\n createSignal,\n createUniqueId,\n useContext,\n} from \"solid-js\";\nimport { CIVILIZATION_BY_SLUG } from \"../config\";\nimport { splitUnitsIntoGroups, splitBuildingsIntoGroups, splitTechnologiesIntroGroups } from \"../query/utils\";\nimport { getItemHref } from \"./Cards\";\nimport { ItemIcon } from \"./ItemIcon\";\nimport { CivConfig } from \"@data/types/civs\";\nimport { getStructuredItems, parseCurrentLocation } from \"../global\";\nimport { CivFlag } from \"./CivFlag\";\nimport { Icon } from \"./Icon\";\nconst SDK = import(\"@data/sdk\");\n\nexport const SidebarNav: Component = (props) => {\n const location = useLocation();\n const current = createMemo(() => parseCurrentLocation(location.pathname));\n const civilization = () => CIVILIZATION_BY_SLUG[current().civ as CivSlug] ?? undefined;\n const [data] = createResource(civilization, getStructuredItems);\n const [allData] = createResource(() => getStructuredItems());\n const currentItemType = () => current().itemType || \"units\";\n return (\n
\n \n {(data) => (\n \n )}\n \n
\n );\n};\n\nconst TreeMenu: ParentComponent = (props) =>
    {props.children}
;\n\nconst TreeMenuContext = createContext<{ isOpen: () => boolean; toggle: () => boolean; id: string; label: string }>();\n\nconst TreeGroup: ParentComponent<{ label: string; isOpen: boolean }> = (props) => {\n const [isOpen, setIsOpen] = createSignal(props.isOpen);\n const id = createUniqueId();\n createEffect(() => setIsOpen(props.isOpen));\n return setIsOpen((x) => !x), id, label: props.label }}>{props.children};\n};\n\nconst TreeGroupItems: ParentComponent> = (props) => {\n const { isOpen, label, id } = useContext(TreeMenuContext);\n\n return (\n \n
    \n {props.children}\n
\n
\n );\n};\n\nconst TreeGroupToggle: ParentComponent & { toggleClass?: string }> = (props) => {\n const { isOpen, toggle, id } = useContext(TreeMenuContext);\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key == \"ArrowLeft\" && isOpen()) {\n toggle();\n e.stopPropagation();\n }\n if (e.key == \"ArrowRight\" && !isOpen()) {\n toggle();\n e.stopPropagation();\n }\n };\n return (\n \n );\n};\nconst focusableElements = \"button, [href]\";\nconst TreeItem: ParentComponent<{}> = (props) => {\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key == \"ArrowDown\") {\n focusOnElement(focusableElements, \"next\");\n e.stopPropagation();\n }\n if (e.key == \"ArrowUp\") {\n focusOnElement(focusableElements, \"previous\");\n e.stopPropagation();\n }\n };\n return (\n
  • \n {props.children}\n
  • \n );\n};\n\nfunction focusOnElement(selector, direction) {\n const elements = Array.from(document.querySelectorAll(selector));\n const currentlyFocusedIndex = elements.findIndex((element) => element === document.activeElement);\n let nextIndex;\n if (direction === \"next\") {\n nextIndex = (currentlyFocusedIndex + 1) % elements.length;\n } else if (direction === \"previous\") {\n nextIndex = (currentlyFocusedIndex - 1 + elements.length) % elements.length;\n }\n const nextElement = elements[nextIndex];\n nextElement.focus();\n}\n","import { Link, RouteDefinition, useLocation, useNavigate, useRoutes } from \"@solidjs/router\";\nimport { Component, createEffect, createSignal, ErrorBoundary, lazy, on, Show } from \"solid-js\";\nimport { Toolbar } from \"./components/Toolbar\";\nimport { Nav } from \"./components/Nav\";\nimport { CivDetailRoute } from \"./routes/civs/[slug]\";\nimport { UnitOverviewRoute } from \"./routes/units/units\";\nimport { UnitDetailRoute } from \"./routes/units/[id]\";\nimport { CivOverviewRoute } from \"./routes/home\";\nimport { Icon } from \"./components/Icon\";\nimport { BuildingOverviewRoute } from \"./routes/buildings/buildings\";\nimport { BuildingDetailRoute } from \"./routes/buildings/[id]\";\nimport { AboutRoute } from \"./routes/about\";\nimport { TechnologyDetailRoute } from \"./routes/technologies/[id]\";\nimport { TechnologoiesOverviewRoute } from \"./routes/technologies/technologies\";\nimport { civConfig, UnifiedItem } from \"./types/data\";\nimport { ITEMS, SIMILAIR_ITEMS } from \"./config\";\nimport { getItemHref } from \"./components/Cards\";\nimport { PatchDetailRoute } from \"./routes/patches/[id]\";\nimport { findClosestMatch } from \"./query/utils\";\nimport { SearchRoute } from \"./routes/search\";\nimport { PatchListRoute } from \"./routes/patches\";\nimport { SidebarNav } from \"@components/SidebarNav\";\nimport { hideNav } from \"./global\";\n\nconst routes: RouteDefinition[] = [\n {\n path: \"/\",\n component: () => CivOverviewRoute,\n },\n {\n path: \"/civs\",\n component: () => {\n useNavigate()(\"/\");\n return null;\n },\n },\n {\n path: \"/civs/:slug\",\n component: () => CivDetailRoute,\n },\n {\n path: \"/civs/:slug/units\",\n component: () => UnitOverviewRoute,\n },\n {\n path: \"/civs/:slug/units/:id\",\n component: () => UnitDetailRoute,\n },\n {\n path: \"/civs/:slug/buildings\",\n component: () => BuildingOverviewRoute,\n },\n {\n path: \"/civs/:slug/buildings/:id\",\n component: () => BuildingDetailRoute,\n },\n {\n path: \"/civs/:slug/technologies\",\n component: () => TechnologoiesOverviewRoute,\n },\n {\n path: \"/civs/:slug/technologies/:id\",\n component: () => TechnologyDetailRoute,\n },\n {\n path: \"/units\",\n component: () => UnitOverviewRoute,\n },\n {\n path: \"/units/:id\",\n component: () => UnitDetailRoute,\n },\n {\n path: \"/buildings\",\n component: () => BuildingOverviewRoute,\n },\n {\n path: \"/buildings/:id\",\n component: () => BuildingDetailRoute,\n },\n {\n path: \"/technologies\",\n component: () => TechnologoiesOverviewRoute,\n },\n {\n path: \"/technologies/:id\",\n component: () => TechnologyDetailRoute,\n },\n {\n path: \"/about\",\n component: () => AboutRoute,\n },\n {\n path: \"/quiz\",\n component: lazy(() => import(\"./routes/quiz/quiz\")),\n },\n {\n path: \"/quiz/twitch\",\n component: lazy(() => import(\"./routes/quiz/twitch\")),\n },\n {\n path: \"/quiz/twitch/:channel\",\n component: lazy(() => import(\"./routes/quiz/twitch\")),\n },\n {\n path: \"/patches/\",\n component: () => PatchListRoute,\n },\n {\n path: \"/patches/:id\",\n component: () => PatchDetailRoute,\n },\n {\n path: \"civs/:civ/patches/:id\",\n component: () => PatchDetailRoute,\n },\n {\n path: \"/search\",\n component: () => SearchRoute,\n },\n {\n path: \"/content\",\n component: lazy(() => import(\"./routes/content/content\")),\n },\n];\n\nexport const [activePage, setActivePage] = createSignal<{ title?: string; description?: string; location: ReturnType }>();\n\nexport const setActivePageForItem = (item: UnifiedItem, civ: civConfig) =>\n setActivePage({\n title: item.name + (civ?.name ? ` — ${civ?.name}` : \"\"),\n description: item.description,\n location: useLocation(),\n });\n\nexport async function tryRedirectToClosestMatch(type: ITEMS, id: string, civ: civConfig, fallback?: Function) {\n const navigate = useNavigate();\n const closestMatch = await findClosestMatch(type, id, civ);\n if (closestMatch) navigate(getItemHref(closestMatch, civ));\n else fallback();\n}\n\nlet lastPathname: string;\ncreateEffect(\n on(activePage, () => {\n if (lastPathname === activePage()?.location?.pathname) return;\n lastPathname = activePage()?.location?.pathname;\n document.title = activePage()?.title ? activePage().title + \" – Explorer – AoE4 World\" : \"Explorer – AoE4 World\";\n if (!document.querySelector(\"meta[name=description]\")) {\n const meta = document.createElement(\"meta\");\n meta.name = \"description\";\n meta.content = activePage()?.description ?? \"\";\n document.head.appendChild(meta);\n } else document.querySelector(\"meta[name=description]\")?.setAttribute(\"content\", activePage()?.description ?? \"\");\n })\n);\nconst App: Component = () => {\n const Routes = useRoutes(routes);\n const location = useLocation();\n let resetFocusEl: HTMLDivElement;\n\n createEffect(() => {\n location.pathname;\n if (resetFocusEl) {\n resetFocusEl.focus({ preventScroll: true });\n if (resetFocusEl.getBoundingClientRect().top < 0) resetFocusEl.scrollIntoView();\n }\n });\n\n return (\n <>\n
    \n \n {\n const location = useLocation();\n let errPath = location.pathname;\n console.log(err);\n createEffect(() => {\n if (location.pathname != errPath) retry();\n });\n return (\n
    \n
    \n

    \n \n Problem while loading page\n

    \n

    \n Something went terribly wrong. It's likely a bug (just like in the game) and possibly something else. If it persists, we'd really like to know\n so we can fix it. You can report it and include the below error.\n

    \n
    {err.toString()}
    \n \n \n Report bug\n \n
    \n
    \n );\n }}\n >\n
    \n \n \n \n
    \n \n
    \n
    \n \n \n );\n};\n\nexport default App;\n","import \"./index.css\";\nimport { render } from \"solid-js/web\";\nimport { Router } from \"@solidjs/router\";\nimport { Path } from \"@solidjs/router/dist/types\";\n\nimport App, { activePage } from \"./App\";\nimport { createEffect, on } from \"solid-js\";\n\ninterface explorerOptions {\n /** The path at which the explorer is located */\n base?: string;\n /** Callback function to be used after each navigation */\n onNavigate?: (page: { title?: string; description?: string; location: Path }) => void;\n}\n\nexport function initializeExplorer(el: HTMLElement = document.getElementById(\"explorer\"), options: explorerOptions = {}) {\n let router: typeof Router;\n render(\n () => (\n \n \n \n ),\n el\n );\n\n if (options.onNavigate) {\n let lastPathname: string;\n createEffect(\n on(activePage, () => {\n if (lastPathname === activePage()?.location?.pathname) return;\n lastPathname = activePage()?.location?.pathname;\n options.onNavigate({ title: activePage().title, description: activePage().description, location: activePage().location });\n })\n );\n }\n}\n","import { initializeExplorer } from '../lib/explorer/src/index'\n\ndeclare global {\n interface Window {\n gtag: any\n }\n}\n\nif (document.getElementById('explorer')) {\n const mainNav = document.querySelector('#main-nav, nav')\n mainNav.classList.add('relative')\n mainNav.classList.remove('sticky')\n const base = '/explorer'\n // Todo, disable first pageview in base tracking https://developers.google.com/analytics/devguides/collection/gtagjs#install_the_global_site_tag\n initializeExplorer(document.getElementById('explorer'), {\n base,\n onNavigate: ({ title, location }) => {\n window.gtag('event', 'page_view', {\n page_title: `${title} – Explorer`,\n page_path: `${base}${location.pathname}`,\n app_area: 'explorer',\n })\n },\n })\n document.getElementById('explorer-skeleton').remove()\n}\n"],"file":"assets/explorer-73bb47ff.js"}