20 lines
616 B
TypeScript
20 lines
616 B
TypeScript
export function isDOMElement(el: any): el is HTMLElement {
|
|
return !!el && (el instanceof Element || el instanceof HTMLElement)
|
|
}
|
|
|
|
export function isTypableElement(el: HTMLElement): boolean {
|
|
// If content editable, then it is editable
|
|
if (el.isContentEditable) return true
|
|
|
|
// If element is an input and the input is enabled, then it is typable
|
|
if (el.tagName === "INPUT") {
|
|
return !(el as HTMLInputElement).disabled
|
|
}
|
|
// If element is a textarea and the input is enabled, then it is typable
|
|
if (el.tagName === "TEXTAREA") {
|
|
return !(el as HTMLTextAreaElement).disabled
|
|
}
|
|
|
|
return false
|
|
}
|