export type TeamSearchTarget = | "all" | "team" | "character" | "weapon" | "artifact"; export interface TeamSearchValues { team: string[]; character: string[]; weapon: string[]; artifact: string[]; } export function matchesTeamSearch( values: TeamSearchValues, query: string, target: TeamSearchTarget, ): boolean { const normalizedQuery = query.trim().toLocaleLowerCase(); if (!normalizedQuery) return true; const candidates = target === "all" ? Object.values(values).flat() : values[target]; return candidates.some((value) => value.toLocaleLowerCase().includes(normalizedQuery), ); }