import { getDocument } from "ssr-window"; /** * Получает форму, к которой относится поле ввода или селект * @param input{HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement} поле ввода * @returns {HTMLElement|null} Возвращает связанную форму через атрибут `form` или ближайший родительский `
`. * @example * import { getInputForm } from "@delement/ui/utils"; * * const input = document.querySelector("input[name='email']") as HTMLInputElement; * const form = getInputForm(input); */ export const getInputForm = (input: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement): HTMLFormElement | null => { return input.hasAttribute("form") ? getDocument().getElementById(input.getAttribute("form")) : input.closest("form"); };