@chakra-ui/dom-utils
Advanced tools
Comparing version 0.0.0-dev-20220822103611 to 0.0.0-dev-20220822184448
@@ -23,4 +23,7 @@ "use strict"; | ||
__export(src_exports, { | ||
contains: () => contains, | ||
getActiveElement: () => getActiveElement, | ||
getAllFocusable: () => getAllFocusable, | ||
getAllTabbable: () => getAllTabbable, | ||
getEventWindow: () => getEventWindow, | ||
getFirstFocusable: () => getFirstFocusable, | ||
@@ -30,3 +33,19 @@ getFirstTabbableIn: () => getFirstTabbableIn, | ||
getNextTabbable: () => getNextTabbable, | ||
getPreviousTabbable: () => getPreviousTabbable | ||
getOwnerDocument: () => getOwnerDocument, | ||
getOwnerWindow: () => getOwnerWindow, | ||
getPreviousTabbable: () => getPreviousTabbable, | ||
hasDisplayNone: () => hasDisplayNone, | ||
hasFocusWithin: () => hasFocusWithin, | ||
hasNegativeTabIndex: () => hasNegativeTabIndex, | ||
hasTabIndex: () => hasTabIndex, | ||
isActiveElement: () => isActiveElement, | ||
isBrowser: () => isBrowser, | ||
isContentEditable: () => isContentEditable, | ||
isDisabled: () => isDisabled, | ||
isElement: () => isElement, | ||
isFocusable: () => isFocusable, | ||
isHTMLElement: () => isHTMLElement, | ||
isHidden: () => isHidden, | ||
isInputElement: () => isInputElement, | ||
isTabbable: () => isTabbable | ||
}); | ||
@@ -45,4 +64,26 @@ module.exports = __toCommonJS(src_exports); | ||
} | ||
function getOwnerWindow(node) { | ||
var _a; | ||
return ((_a = getOwnerDocument(node)) == null ? void 0 : _a.defaultView) ?? window; | ||
} | ||
function getOwnerDocument(node) { | ||
return isElement(node) ? node.ownerDocument : document; | ||
} | ||
function getEventWindow(event) { | ||
return event.view ?? window; | ||
} | ||
function isBrowser() { | ||
return Boolean(globalThis == null ? void 0 : globalThis.document); | ||
} | ||
function getActiveElement(node) { | ||
return getOwnerDocument(node).activeElement; | ||
} | ||
function contains(parent, child) { | ||
if (!parent) | ||
return false; | ||
return parent === child || parent.contains(child); | ||
} | ||
// src/tabbable.ts | ||
var hasDisplayNone = (element) => window.getComputedStyle(element).display === "none"; | ||
var hasTabIndex = (element) => element.hasAttribute("tabindex"); | ||
@@ -53,2 +94,14 @@ var hasNegativeTabIndex = (element) => hasTabIndex(element) && element.tabIndex === -1; | ||
} | ||
function isInputElement(element) { | ||
return isHTMLElement(element) && element.localName === "input" && "select" in element; | ||
} | ||
function isActiveElement(element) { | ||
const doc = isHTMLElement(element) ? getOwnerDocument(element) : document; | ||
return doc.activeElement === element; | ||
} | ||
function hasFocusWithin(element) { | ||
if (!document.activeElement) | ||
return false; | ||
return element.contains(document.activeElement); | ||
} | ||
function isHidden(element) { | ||
@@ -150,4 +203,7 @@ if (element.parentElement && isHidden(element.parentElement)) | ||
0 && (module.exports = { | ||
contains, | ||
getActiveElement, | ||
getAllFocusable, | ||
getAllTabbable, | ||
getEventWindow, | ||
getFirstFocusable, | ||
@@ -157,3 +213,19 @@ getFirstTabbableIn, | ||
getNextTabbable, | ||
getPreviousTabbable | ||
getOwnerDocument, | ||
getOwnerWindow, | ||
getPreviousTabbable, | ||
hasDisplayNone, | ||
hasFocusWithin, | ||
hasNegativeTabIndex, | ||
hasTabIndex, | ||
isActiveElement, | ||
isBrowser, | ||
isContentEditable, | ||
isDisabled, | ||
isElement, | ||
isFocusable, | ||
isHTMLElement, | ||
isHidden, | ||
isInputElement, | ||
isTabbable | ||
}); |
@@ -0,1 +1,25 @@ | ||
declare const hasDisplayNone: (element: HTMLElement) => boolean; | ||
declare const hasTabIndex: (element: HTMLElement) => boolean; | ||
declare const hasNegativeTabIndex: (element: HTMLElement) => boolean; | ||
declare function isDisabled(element: HTMLElement): boolean; | ||
interface FocusableElement { | ||
focus(options?: FocusOptions): void; | ||
} | ||
declare function isInputElement(element: FocusableElement): element is HTMLInputElement; | ||
declare function isActiveElement(element: FocusableElement): boolean; | ||
declare function hasFocusWithin(element: HTMLElement): boolean; | ||
declare function isHidden(element: HTMLElement): boolean; | ||
declare function isContentEditable(element: HTMLElement): boolean; | ||
declare function isFocusable(element: HTMLElement): boolean; | ||
declare function isTabbable(element?: HTMLElement | null): boolean; | ||
declare function isElement(el: any): el is Element; | ||
declare function isHTMLElement(el: any): el is HTMLElement; | ||
declare function getOwnerWindow(node?: Element | null): typeof globalThis; | ||
declare function getOwnerDocument(node?: Element | null): Document; | ||
declare function getEventWindow(event: Event): Window & typeof globalThis; | ||
declare function isBrowser(): boolean; | ||
declare function getActiveElement(node?: HTMLElement): HTMLElement; | ||
declare function contains(parent: HTMLElement | null, child: HTMLElement): boolean; | ||
declare function getAllFocusable<T extends HTMLElement>(container: T): T[]; | ||
@@ -9,2 +33,2 @@ declare function getFirstFocusable<T extends HTMLElement>(container: T): T | null; | ||
export { getAllFocusable, getAllTabbable, getFirstFocusable, getFirstTabbableIn, getLastTabbableIn, getNextTabbable, getPreviousTabbable }; | ||
export { FocusableElement, contains, getActiveElement, getAllFocusable, getAllTabbable, getEventWindow, getFirstFocusable, getFirstTabbableIn, getLastTabbableIn, getNextTabbable, getOwnerDocument, getOwnerWindow, getPreviousTabbable, hasDisplayNone, hasFocusWithin, hasNegativeTabIndex, hasTabIndex, isActiveElement, isBrowser, isContentEditable, isDisabled, isElement, isFocusable, isHTMLElement, isHidden, isInputElement, isTabbable }; |
@@ -11,4 +11,26 @@ // src/dom.ts | ||
} | ||
function getOwnerWindow(node) { | ||
var _a; | ||
return ((_a = getOwnerDocument(node)) == null ? void 0 : _a.defaultView) ?? window; | ||
} | ||
function getOwnerDocument(node) { | ||
return isElement(node) ? node.ownerDocument : document; | ||
} | ||
function getEventWindow(event) { | ||
return event.view ?? window; | ||
} | ||
function isBrowser() { | ||
return Boolean(globalThis == null ? void 0 : globalThis.document); | ||
} | ||
function getActiveElement(node) { | ||
return getOwnerDocument(node).activeElement; | ||
} | ||
function contains(parent, child) { | ||
if (!parent) | ||
return false; | ||
return parent === child || parent.contains(child); | ||
} | ||
// src/tabbable.ts | ||
var hasDisplayNone = (element) => window.getComputedStyle(element).display === "none"; | ||
var hasTabIndex = (element) => element.hasAttribute("tabindex"); | ||
@@ -19,2 +41,14 @@ var hasNegativeTabIndex = (element) => hasTabIndex(element) && element.tabIndex === -1; | ||
} | ||
function isInputElement(element) { | ||
return isHTMLElement(element) && element.localName === "input" && "select" in element; | ||
} | ||
function isActiveElement(element) { | ||
const doc = isHTMLElement(element) ? getOwnerDocument(element) : document; | ||
return doc.activeElement === element; | ||
} | ||
function hasFocusWithin(element) { | ||
if (!document.activeElement) | ||
return false; | ||
return element.contains(document.activeElement); | ||
} | ||
function isHidden(element) { | ||
@@ -115,4 +149,7 @@ if (element.parentElement && isHidden(element.parentElement)) | ||
export { | ||
contains, | ||
getActiveElement, | ||
getAllFocusable, | ||
getAllTabbable, | ||
getEventWindow, | ||
getFirstFocusable, | ||
@@ -122,3 +159,19 @@ getFirstTabbableIn, | ||
getNextTabbable, | ||
getPreviousTabbable | ||
getOwnerDocument, | ||
getOwnerWindow, | ||
getPreviousTabbable, | ||
hasDisplayNone, | ||
hasFocusWithin, | ||
hasNegativeTabIndex, | ||
hasTabIndex, | ||
isActiveElement, | ||
isBrowser, | ||
isContentEditable, | ||
isDisabled, | ||
isElement, | ||
isFocusable, | ||
isHTMLElement, | ||
isHidden, | ||
isInputElement, | ||
isTabbable | ||
}; |
{ | ||
"name": "@chakra-ui/dom-utils", | ||
"version": "0.0.0-dev-20220822103611", | ||
"version": "0.0.0-dev-20220822184448", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
17935
423