import { innerText } from "@interactors/html"; import { getInputLabel, isHTMLElement } from "./helpers"; export const createFormFieldFilters = (): { valid: (element: E) => boolean; required: (element: E) => boolean; description: (element: E) => string; } => ({ valid: (element: E) => !element.labels?.[0].classList.toString().includes("Mui-error"), required: (element: E) => element.required, description: (element: E) => { let descriptionId = element.getAttribute("aria-describedby"); let descriptionElement = descriptionId ? element.ownerDocument.getElementById(descriptionId) : getInputLabel(element)?.parentElement?.lastElementChild; return isHTMLElement(descriptionElement) ? innerText(descriptionElement) : ""; }, });