@charlietango/use-focus-trap
Advanced tools
Comparing version 1.2.4 to 1.2.5
@@ -6,2 +6,8 @@ # Change Log | ||
## [1.2.5](https://github.com/charlie-tango/hooks/compare/@charlietango/use-focus-trap@1.2.4...@charlietango/use-focus-trap@1.2.5) (2019-10-03) | ||
### Bug Fixes | ||
- **useFocusTrap:** fix typings ([bb02b29](https://github.com/charlie-tango/hooks/commit/bb02b29)) | ||
## [1.2.4](https://github.com/charlie-tango/hooks/compare/@charlietango/use-focus-trap@1.2.3...@charlietango/use-focus-trap@1.2.4) (2019-09-25) | ||
@@ -8,0 +14,0 @@ |
@@ -0,1 +1,2 @@ | ||
export declare function focusable(element: HTMLElement): boolean | ""; | ||
export default function findTabbableDescendants(element: HTMLElement): Array<HTMLElement>; |
@@ -38,4 +38,11 @@ 'use strict'; | ||
function focusable(element, isTabIndexNotNaN) { | ||
function getElementTabIndex(element) { | ||
var tabIndex = element.getAttribute('tabindex'); | ||
if (tabIndex === null) tabIndex = undefined; | ||
return parseInt(tabIndex, 10); | ||
} | ||
function focusable(element) { | ||
var nodeName = element.nodeName.toLowerCase(); | ||
var isTabIndexNotNaN = !isNaN(getElementTabIndex(element)); | ||
var res = // @ts-ignore | ||
@@ -47,6 +54,5 @@ tabbableNode.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN); | ||
function tabbable(element) { | ||
var tabIndex = element.getAttribute('tabindex'); | ||
if (tabIndex === null) tabIndex = undefined; | ||
var isTabIndexNaN = isNaN(parseInt(tabIndex)); | ||
return (isTabIndexNaN || parseInt(tabIndex, 10) >= 0) && focusable(element, !isTabIndexNaN); | ||
var tabIndex = getElementTabIndex(element); | ||
var isTabIndexNaN = isNaN(tabIndex); | ||
return (isTabIndexNaN || tabIndex >= 0) && focusable(element); | ||
} | ||
@@ -161,2 +167,6 @@ | ||
if (!focusElement && focusable(node)) { | ||
focusElement = node; | ||
} | ||
if (!focusElement) { | ||
@@ -163,0 +173,0 @@ var tabbableChildren = findTabbableDescendants(node); |
@@ -34,4 +34,11 @@ import { useRef, useCallback, useEffect } from 'react'; | ||
function focusable(element, isTabIndexNotNaN) { | ||
function getElementTabIndex(element) { | ||
var tabIndex = element.getAttribute('tabindex'); | ||
if (tabIndex === null) tabIndex = undefined; | ||
return parseInt(tabIndex, 10); | ||
} | ||
function focusable(element) { | ||
var nodeName = element.nodeName.toLowerCase(); | ||
var isTabIndexNotNaN = !isNaN(getElementTabIndex(element)); | ||
var res = // @ts-ignore | ||
@@ -43,6 +50,5 @@ tabbableNode.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN); | ||
function tabbable(element) { | ||
var tabIndex = element.getAttribute('tabindex'); | ||
if (tabIndex === null) tabIndex = undefined; | ||
var isTabIndexNaN = isNaN(parseInt(tabIndex)); | ||
return (isTabIndexNaN || parseInt(tabIndex, 10) >= 0) && focusable(element, !isTabIndexNaN); | ||
var tabIndex = getElementTabIndex(element); | ||
var isTabIndexNaN = isNaN(tabIndex); | ||
return (isTabIndexNaN || tabIndex >= 0) && focusable(element); | ||
} | ||
@@ -157,2 +163,6 @@ | ||
if (!focusElement && focusable(node)) { | ||
focusElement = node; | ||
} | ||
if (!focusElement) { | ||
@@ -159,0 +169,0 @@ var tabbableChildren = findTabbableDescendants(node); |
{ | ||
"name": "@charlietango/use-focus-trap", | ||
"description": "Trap keyboard focus inside a DOM element, to prevent the user navigating outside a modal", | ||
"version": "1.2.4", | ||
"version": "1.2.5", | ||
"private": false, | ||
@@ -44,3 +44,3 @@ "sideEffects": false, | ||
}, | ||
"gitHead": "9b7f95c6ca022db1b504add9de6174e92d7bc221" | ||
"gitHead": "8629ccbb8557478722b24d3b4c4de2332199e150" | ||
} |
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
17717
350