Files
MajoorWaldi-ComfyUI-Majoor-…/ui/features/panel/controllers/query.ts
T

45 lines
1.4 KiB
TypeScript

function unwrapCandidate(maybeInput: any) {
let current = maybeInput;
for (let i = 0; i < 3; i += 1) {
if (!current || typeof current !== "object") break;
if (!("value" in current)) break;
const next = current.value;
if (!next || typeof next !== "object") break;
current = next;
}
return current;
}
function resolveInputElement(maybeInput: any) {
const candidate = unwrapCandidate(maybeInput);
if (!candidate) return null;
const tag = String(candidate?.tagName || "").toUpperCase();
if (tag === "INPUT" || tag === "TEXTAREA") return candidate;
try {
if (typeof candidate?.querySelector === "function") {
const nested =
candidate.querySelector("#mjr-search-input") ||
candidate.querySelector("input.mjr-input") ||
candidate.querySelector("input[type='text']") ||
candidate.querySelector("textarea");
if (nested) return nested;
}
} catch (e) {
console.debug?.(e);
}
return null;
}
export function normalizeQuery(searchInputEl: any): string {
const input = resolveInputElement(searchInputEl);
const rawValue = input
? input.value
: typeof searchInputEl?.value === "string"
? searchInputEl.value
: "";
const raw = String(rawValue || "").trim();
return raw || "*";
}