Files
z-bar-qt/Modules/Settings/SettingsIndex.mjs
T
2026-04-19 21:40:15 +02:00

1151 lines
27 KiB
JavaScript

// Settings search index
// Each entry contains: name, category, categoryName, section, keywords
// - name: The display name of the setting (must match exactly)
// - category: The category key used for navigation
// - categoryName: Human-readable category name for display
// - section: The section header within the category
// - keywords: Additional search terms for better discoverability
export const settingsIndex = [
// GENERAL CATEGORY
// General section
{
name: "Logo",
category: "general",
categoryName: "General",
section: "General",
keywords: ["branding", "icon", "image"],
},
{
name: "Wallpaper path",
category: "general",
categoryName: "General",
section: "General",
keywords: ["background", "image", "path"],
},
{
name: "Desktop icons",
category: "general",
categoryName: "General",
section: "General",
keywords: ["icons", "desktop", "show"],
},
// Color section
{
name: "Scheme mode",
category: "general",
categoryName: "General",
section: "Color",
keywords: ["dark mode", "light mode", "theme", "color scheme"],
},
{
name: "Scheme type",
category: "general",
categoryName: "General",
section: "Color",
keywords: [
"vibrant",
"expressive",
"monochrome",
"neutral",
"tonal",
"fidelity",
"content",
"rainbow",
"fruit salad",
],
},
{
name: "Automatic color scheme",
category: "general",
categoryName: "General",
section: "Color",
keywords: ["auto", "wallpaper", "generate", "color"],
},
{
name: "Smart color scheme",
category: "general",
categoryName: "General",
section: "Color",
keywords: ["intelligent", "adaptive", "color"],
},
{
name: "Schedule dark mode",
category: "general",
categoryName: "General",
section: "Color",
keywords: ["dark mode", "night", "time", "schedule", "automatic"],
},
{
name: "Schedule Hyprsunset",
category: "general",
categoryName: "General",
section: "Color",
keywords: ["night light", "blue light", "temperature", "warm", "schedule"],
},
// Default Apps section
{
name: "Terminal",
category: "general",
categoryName: "General",
section: "Default Apps",
keywords: ["console", "command", "shell", "default app"],
},
{
name: "Audio",
category: "general",
categoryName: "General",
section: "Default Apps",
keywords: ["sound", "volume", "mixer", "default app"],
},
{
name: "Playback",
category: "general",
categoryName: "General",
section: "Default Apps",
keywords: ["media", "player", "music", "video", "default app"],
},
{
name: "Explorer",
category: "general",
categoryName: "General",
section: "Default Apps",
keywords: ["file manager", "files", "browser", "default app"],
},
// WALLPAPER CATEGORY
{
name: "Enable wallpaper rendering",
category: "wallpaper",
categoryName: "Wallpaper",
section: "Wallpaper",
keywords: ["background", "enable", "show"],
},
{
name: "Fade duration",
category: "wallpaper",
categoryName: "Wallpaper",
section: "Wallpaper",
keywords: ["transition", "animation", "crossfade"],
},
// BAR CATEGORY
// Bar section
{
name: "Auto hide",
category: "bar",
categoryName: "Bar",
section: "Bar",
keywords: ["hide", "visibility", "autohide", "panel"],
},
{
name: "Height",
category: "bar",
categoryName: "Bar",
section: "Bar",
keywords: ["size", "panel", "thickness"],
},
{
name: "Rounding",
category: "bar",
categoryName: "Bar",
section: "Bar",
keywords: ["corners", "radius", "rounded"],
},
{
name: "Border",
category: "bar",
categoryName: "Bar",
section: "Bar",
keywords: ["outline", "stroke", "edge"],
},
// Popouts section
{
name: "Tray",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["system tray", "icons", "popout"],
},
{
name: "Audio",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["sound", "volume", "popout"],
},
{
name: "Active window",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["window title", "current", "popout"],
},
{
name: "Resources",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["cpu", "memory", "usage", "popout"],
},
{
name: "Clock",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["time", "date", "popout"],
},
{
name: "Network",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["wifi", "internet", "connection", "popout"],
},
{
name: "Power",
category: "bar",
categoryName: "Bar",
section: "Popouts",
keywords: ["battery", "upower", "charging", "popout"],
},
// Entries section
{
name: "Bar entries",
category: "bar",
categoryName: "Bar",
section: "Entries",
keywords: ["modules", "widgets", "items", "order"],
},
// Dock section
{
name: "Enable dock",
category: "bar",
categoryName: "Bar",
section: "Dock",
keywords: ["taskbar", "show", "visibility"],
},
{
name: "Dock height",
category: "bar",
categoryName: "Bar",
section: "Dock",
keywords: ["size", "taskbar", "thickness"],
},
{
name: "Hover to reveal",
category: "bar",
categoryName: "Bar",
section: "Dock",
keywords: ["autohide", "mouse", "show"],
},
{
name: "Pin on startup",
category: "bar",
categoryName: "Bar",
section: "Dock",
keywords: ["always visible", "pinned", "show"],
},
{
name: "Pinned apps",
category: "bar",
categoryName: "Bar",
section: "Dock",
keywords: ["favorites", "applications", "shortcuts"],
},
{
name: "Ignored app regexes",
category: "bar",
categoryName: "Bar",
section: "Dock",
keywords: ["filter", "exclude", "hide", "regex"],
},
// LOCKSCREEN CATEGORY
{
name: "Recolor logo",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["logo", "color", "tint"],
},
{
name: "Enable fingerprint",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["fprint", "biometric", "unlock"],
},
{
name: "Max fingerprint tries",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["attempts", "limit", "fprint"],
},
{
name: "Blur amount",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["background", "blur", "effect"],
},
{
name: "Height multiplier",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["size", "scale", "height"],
},
{
name: "Aspect ratio",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["ratio", "width", "height"],
},
{
name: "Center width",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Lockscreen",
keywords: ["size", "width", "center"],
},
{
name: "Idle Monitors",
category: "lockscreen",
categoryName: "Lockscreen",
section: "Idle",
keywords: ["timeout", "sleep", "idle", "lock", "suspend"],
},
// SERVICES CATEGORY
// Services section
{
name: "Weather location",
category: "services",
categoryName: "Services",
section: "Services",
keywords: ["city", "location", "weather"],
},
{
name: "Use Fahrenheit",
category: "services",
categoryName: "Services",
section: "Services",
keywords: ["temperature", "celsius", "units"],
},
{
name: "Use twelve hour clock",
category: "services",
categoryName: "Services",
section: "Services",
keywords: ["time", "format", "12h", "24h", "am pm"],
},
{
name: "Enable ddcutil service",
category: "services",
categoryName: "Services",
section: "Services",
keywords: ["monitor", "brightness", "ddc"],
},
{
name: "GPU type",
category: "services",
categoryName: "Services",
section: "Services",
keywords: ["graphics", "nvidia", "amd", "intel"],
},
// Media section
{
name: "Audio increment",
category: "services",
categoryName: "Services",
section: "Media",
keywords: ["volume", "step", "increment"],
},
{
name: "Brightness increment",
category: "services",
categoryName: "Services",
section: "Media",
keywords: ["screen", "step", "increment"],
},
{
name: "Max volume",
category: "services",
categoryName: "Services",
section: "Media",
keywords: ["audio", "limit", "maximum"],
},
{
name: "Default player",
category: "services",
categoryName: "Services",
section: "Media",
keywords: ["music", "media", "mpris"],
},
{
name: "Visualizer bars",
category: "services",
categoryName: "Services",
section: "Media",
keywords: ["audio", "visualization", "cava"],
},
{
name: "Player aliases",
category: "services",
categoryName: "Services",
section: "Media",
keywords: ["mpris", "rename", "alias"],
},
// NOTIFICATIONS CATEGORY
// Notifications section
{
name: "Expire notifications",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["auto dismiss", "timeout", "expire"],
},
{
name: "Default expire timeout",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["duration", "time", "dismiss"],
},
{
name: "App notification cooldown",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["rate limit", "spam", "cooldown"],
},
{
name: "Clear threshold",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["swipe", "dismiss", "threshold"],
},
{
name: "Expand threshold",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["swipe", "expand", "threshold"],
},
{
name: "Action on click",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["click", "action", "default"],
},
{
name: "Group preview count",
category: "notifications",
categoryName: "Notifications",
section: "Notifications",
keywords: ["group", "stack", "preview"],
},
// Sizes section
{
name: "Width",
category: "notifications",
categoryName: "Notifications",
section: "Sizes",
keywords: ["notification", "size", "width"],
},
{
name: "Image size",
category: "notifications",
categoryName: "Notifications",
section: "Sizes",
keywords: ["notification", "image", "icon"],
},
{
name: "Badge size",
category: "notifications",
categoryName: "Notifications",
section: "Sizes",
keywords: ["notification", "badge", "app icon"],
},
// SIDEBAR CATEGORY
{
name: "Enable sidebar",
category: "sidebar",
categoryName: "Sidebar",
section: "Sidebar",
keywords: ["show", "panel", "side"],
},
{
name: "Width",
category: "sidebar",
categoryName: "Sidebar",
section: "Sidebar",
keywords: ["size", "panel", "width"],
},
// UTILITIES CATEGORY
// Utilities section
{
name: "Enable utilities",
category: "utilities",
categoryName: "Utilities",
section: "Utilities",
keywords: ["show", "enable"],
},
{
name: "Max toasts",
category: "utilities",
categoryName: "Utilities",
section: "Utilities",
keywords: ["notifications", "limit", "maximum"],
},
{
name: "Panel width",
category: "utilities",
categoryName: "Utilities",
section: "Utilities",
keywords: ["size", "width"],
},
{
name: "Toast width",
category: "utilities",
categoryName: "Utilities",
section: "Utilities",
keywords: ["notification", "size", "width"],
},
// Toasts section
{
name: "Config loaded",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "config"],
},
{
name: "Charging changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "battery", "power"],
},
{
name: "Game mode changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "gaming"],
},
{
name: "Do not disturb changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "dnd", "quiet"],
},
{
name: "Audio output changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "speaker", "headphones"],
},
{
name: "Audio input changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "microphone"],
},
{
name: "Caps lock changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "keyboard"],
},
{
name: "Num lock changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "keyboard"],
},
{
name: "Keyboard layout changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "language", "input"],
},
{
name: "VPN changed",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "vpn", "network"],
},
{
name: "Now playing",
category: "utilities",
categoryName: "Utilities",
section: "Toasts",
keywords: ["toast", "notification", "music", "media"],
},
// VPN section
{
name: "Enable VPN integration",
category: "utilities",
categoryName: "Utilities",
section: "VPN",
keywords: ["vpn", "network", "connection"],
},
{
name: "Provider",
category: "utilities",
categoryName: "Utilities",
section: "VPN",
keywords: ["vpn", "service", "provider"],
},
// DASHBOARD CATEGORY
// Dashboard section
{
name: "Enable dashboard",
category: "dashboard",
categoryName: "Dashboard",
section: "Dashboard",
keywords: ["show", "enable", "panel"],
},
{
name: "Media update interval",
category: "dashboard",
categoryName: "Dashboard",
section: "Dashboard",
keywords: ["refresh", "interval", "music"],
},
{
name: "Resource update interval",
category: "dashboard",
categoryName: "Dashboard",
section: "Dashboard",
keywords: ["refresh", "interval", "cpu", "memory"],
},
{
name: "Drag threshold",
category: "dashboard",
categoryName: "Dashboard",
section: "Dashboard",
keywords: ["swipe", "gesture", "threshold"],
},
// Performance section
{
name: "Show battery",
category: "dashboard",
categoryName: "Dashboard",
section: "Performance",
keywords: ["power", "battery", "visibility"],
},
{
name: "Show GPU",
category: "dashboard",
categoryName: "Dashboard",
section: "Performance",
keywords: ["graphics", "gpu", "visibility"],
},
{
name: "Show CPU",
category: "dashboard",
categoryName: "Dashboard",
section: "Performance",
keywords: ["processor", "cpu", "visibility"],
},
{
name: "Show memory",
category: "dashboard",
categoryName: "Dashboard",
section: "Performance",
keywords: ["ram", "memory", "visibility"],
},
{
name: "Show storage",
category: "dashboard",
categoryName: "Dashboard",
section: "Performance",
keywords: ["disk", "storage", "visibility"],
},
{
name: "Show network",
category: "dashboard",
categoryName: "Dashboard",
section: "Performance",
keywords: ["internet", "network", "visibility"],
},
// Layout Sizes section (read-only)
{
name: "Tab indicator height",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "tab", "indicator"],
},
{
name: "Tab indicator spacing",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "tab", "spacing"],
},
{
name: "Info width",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "info", "width"],
},
{
name: "Info icon size",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "icon"],
},
{
name: "Date time width",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "clock", "date"],
},
{
name: "Media width",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "music", "player"],
},
{
name: "Media progress sweep",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "progress", "arc"],
},
{
name: "Media progress thickness",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "progress", "stroke"],
},
{
name: "Resource progress thickness",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "progress", "stroke"],
},
{
name: "Weather width",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "weather"],
},
{
name: "Media cover art size",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "album", "artwork"],
},
{
name: "Media visualiser size",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "visualizer", "cava"],
},
{
name: "Resource size",
category: "dashboard",
categoryName: "Dashboard",
section: "Layout Sizes",
keywords: ["size", "cpu", "memory"],
},
// APPEARANCE CATEGORY
// Scale section
{
name: "Rounding scale",
category: "appearance",
categoryName: "Appearance",
section: "Scale",
keywords: ["corners", "radius", "scale"],
},
{
name: "Spacing scale",
category: "appearance",
categoryName: "Appearance",
section: "Scale",
keywords: ["gap", "margin", "scale"],
},
{
name: "Padding scale",
category: "appearance",
categoryName: "Appearance",
section: "Scale",
keywords: ["padding", "inset", "scale"],
},
{
name: "Font size scale",
category: "appearance",
categoryName: "Appearance",
section: "Scale",
keywords: ["text", "font", "scale"],
},
{
name: "Animation duration scale",
category: "appearance",
categoryName: "Appearance",
section: "Scale",
keywords: ["animation", "speed", "duration", "scale"],
},
{
name: "Deform animation scale",
category: "appearance",
categoryName: "Appearance",
section: "Scale",
keywords: ["animation", "deform", "scale"],
},
// Fonts section
{
name: "Sans family",
category: "appearance",
categoryName: "Appearance",
section: "Fonts",
keywords: ["font", "typeface", "sans-serif"],
},
{
name: "Monospace family",
category: "appearance",
categoryName: "Appearance",
section: "Fonts",
keywords: ["font", "typeface", "mono", "code"],
},
{
name: "Material family",
category: "appearance",
categoryName: "Appearance",
section: "Fonts",
keywords: ["font", "icons", "material"],
},
{
name: "Clock family",
category: "appearance",
categoryName: "Appearance",
section: "Fonts",
keywords: ["font", "time", "clock"],
},
// Animation section
{
name: "Media GIF speed adjustment",
category: "appearance",
categoryName: "Appearance",
section: "Animation",
keywords: ["gif", "speed", "animation"],
},
{
name: "Session GIF speed",
category: "appearance",
categoryName: "Appearance",
section: "Animation",
keywords: ["gif", "speed", "animation", "login"],
},
// Transparency section
{
name: "Enable transparency",
category: "appearance",
categoryName: "Appearance",
section: "Transparency",
keywords: ["opacity", "translucent", "blur"],
},
{
name: "Base opacity",
category: "appearance",
categoryName: "Appearance",
section: "Transparency",
keywords: ["opacity", "alpha", "transparency"],
},
{
name: "Layer opacity",
category: "appearance",
categoryName: "Appearance",
section: "Transparency",
keywords: ["opacity", "alpha", "layers"],
},
// OSD CATEGORY
// On Screen Display section
{
name: "Enable OSD",
category: "osd",
categoryName: "On screen display",
section: "On Screen Display",
keywords: ["show", "enable", "overlay"],
},
{
name: "Hide delay",
category: "osd",
categoryName: "On screen display",
section: "On Screen Display",
keywords: ["timeout", "duration", "dismiss"],
},
{
name: "Enable brightness OSD",
category: "osd",
categoryName: "On screen display",
section: "On Screen Display",
keywords: ["screen", "brightness", "overlay"],
},
{
name: "Enable microphone OSD",
category: "osd",
categoryName: "On screen display",
section: "On Screen Display",
keywords: ["mic", "audio", "overlay"],
},
{
name: "Brightness on all monitors",
category: "osd",
categoryName: "On screen display",
section: "On Screen Display",
keywords: ["multi-monitor", "all screens"],
},
// Sizes section
{
name: "Slider width",
category: "osd",
categoryName: "On screen display",
section: "Sizes",
keywords: ["size", "osd", "width"],
},
{
name: "Slider height",
category: "osd",
categoryName: "On screen display",
section: "Sizes",
keywords: ["size", "osd", "height"],
},
// LAUNCHER CATEGORY
// Launcher section
{
name: "Max apps shown",
category: "launcher",
categoryName: "Launcher",
section: "Launcher",
keywords: ["limit", "apps", "search results"],
},
{
name: "Max wallpapers shown",
category: "launcher",
categoryName: "Launcher",
section: "Launcher",
keywords: ["limit", "wallpapers", "search results"],
},
{
name: "Action prefix",
category: "launcher",
categoryName: "Launcher",
section: "Launcher",
keywords: ["command", "prefix", "action"],
},
{
name: "Special prefix",
category: "launcher",
categoryName: "Launcher",
section: "Launcher",
keywords: ["command", "prefix", "special"],
},
{
name: "Use UWSM launch command",
category: "launcher",
categoryName: "Launcher",
section: "Launcher",
keywords: ["command", "uwsm", "systemd"],
},
// Fuzzy Search section
{
name: "Apps",
category: "launcher",
categoryName: "Launcher",
section: "Fuzzy Search",
keywords: ["fuzzy", "search", "applications"],
},
{
name: "Actions",
category: "launcher",
categoryName: "Launcher",
section: "Fuzzy Search",
keywords: ["fuzzy", "search", "actions"],
},
{
name: "Schemes",
category: "launcher",
categoryName: "Launcher",
section: "Fuzzy Search",
keywords: ["fuzzy", "search", "color schemes"],
},
{
name: "Variants",
category: "launcher",
categoryName: "Launcher",
section: "Fuzzy Search",
keywords: ["fuzzy", "search", "variants"],
},
{
name: "Wallpapers",
category: "launcher",
categoryName: "Launcher",
section: "Fuzzy Search",
keywords: ["fuzzy", "search", "backgrounds"],
},
// Sizes section
{
name: "Item width",
category: "launcher",
categoryName: "Launcher",
section: "Sizes",
keywords: ["size", "app", "width"],
},
{
name: "Item height",
category: "launcher",
categoryName: "Launcher",
section: "Sizes",
keywords: ["size", "app", "height"],
},
{
name: "Wallpaper width",
category: "launcher",
categoryName: "Launcher",
section: "Sizes",
keywords: ["size", "wallpaper", "width"],
},
{
name: "Wallpaper height",
category: "launcher",
categoryName: "Launcher",
section: "Sizes",
keywords: ["size", "wallpaper", "height"],
},
// Actions section
{
name: "Launcher actions",
category: "launcher",
categoryName: "Launcher",
section: "Actions",
keywords: ["commands", "shortcuts", "actions"],
},
];
// Helper function to search with keywords first, then fuzzy fallback
export function searchSettings(query, fuzzyModule) {
if (!query || query.trim() === "") {
return [];
}
const q = query.toLowerCase().trim();
const results = [];
const seen = new Set();
// 1. Exact keyword match (highest priority)
for (const setting of settingsIndex) {
const key = `${setting.category}:${setting.name}`;
if (seen.has(key)) continue;
for (const keyword of setting.keywords) {
if (keyword.toLowerCase() === q) {
results.push(
Object.assign({}, setting, {
matchType: "exact-keyword",
score: 1.0,
}),
);
seen.add(key);
break;
}
}
}
// 2. Partial keyword match
for (const setting of settingsIndex) {
const key = `${setting.category}:${setting.name}`;
if (seen.has(key)) continue;
for (const keyword of setting.keywords) {
if (keyword.toLowerCase().includes(q)) {
results.push(
Object.assign({}, setting, {
matchType: "partial-keyword",
score: 0.8,
}),
);
seen.add(key);
break;
}
}
}
// 3. Name contains query
for (const setting of settingsIndex) {
const key = `${setting.category}:${setting.name}`;
if (seen.has(key)) continue;
if (setting.name.toLowerCase().includes(q)) {
results.push(
Object.assign({}, setting, { matchType: "name-contains", score: 0.7 }),
);
seen.add(key);
}
}
// 4. Fuzzy match on name (fallback for typos)
if (fuzzyModule && results.length < 10) {
const fuzzyTargets = settingsIndex
.filter((s) => !seen.has(`${s.category}:${s.name}`))
.map((s) => Object.assign({}, s, { _searchTarget: s.name }));
if (fuzzyTargets.length > 0) {
const fuzzyResults = fuzzyModule.go(query, fuzzyTargets, {
key: "_searchTarget",
limit: 10 - results.length,
threshold: 0.3,
});
for (const r of fuzzyResults) {
const setting = r.obj;
results.push(
Object.assign({}, setting, {
matchType: "fuzzy",
score: r.score * 0.6,
_searchTarget: undefined,
}),
);
}
}
}
// Sort by score descending
results.sort((a, b) => b.score - a.score);
return results;
}