Socket
Socket
Sign inDemoInstall

focus-lock

Package Overview
Dependencies
Maintainers
1
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

focus-lock - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

4

dist/es2015/index.d.ts

@@ -8,3 +8,3 @@ import * as allConstants from './constants';

import { captureFocusRestore } from './return-focus';
import { focusNextElement, focusPrevElement, getRelativeFocusable } from './sibling';
import { focusNextElement, focusPrevElement, getRelativeFocusable, focusFirstElement, focusLastElement } from './sibling';
import { getFocusableNodes, getTabbableNodes } from './utils/DOMutils';

@@ -16,3 +16,3 @@ /**

declare const constants: typeof allConstants;
export { constants, focusInside, focusIsHidden, moveFocusInside, focusSolver, expandFocusableNodes, getFocusableNodes, getTabbableNodes, focusNextElement, focusPrevElement, getRelativeFocusable, captureFocusRestore, };
export { constants, focusInside, focusIsHidden, moveFocusInside, focusSolver, expandFocusableNodes, getFocusableNodes, getTabbableNodes, focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, getRelativeFocusable, captureFocusRestore, };
/**

@@ -19,0 +19,0 @@ * @deprecated - please use {@link moveFocusInside} named export

@@ -8,3 +8,3 @@ import * as allConstants from './constants';

import { captureFocusRestore } from './return-focus';
import { focusNextElement, focusPrevElement, getRelativeFocusable } from './sibling';
import { focusNextElement, focusPrevElement, getRelativeFocusable, focusFirstElement, focusLastElement, } from './sibling';
import { getFocusableNodes, getTabbableNodes } from './utils/DOMutils';

@@ -24,3 +24,3 @@ /**

//
focusNextElement, focusPrevElement, getRelativeFocusable,
focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, getRelativeFocusable,
//

@@ -27,0 +27,0 @@ captureFocusRestore, };

@@ -11,3 +11,3 @@ import { getTabbableNodes } from './utils/DOMutils';

var currentElement = element;
while (currentElement) {
while (currentElement && currentElement !== document.body) {
stack.push({

@@ -14,0 +14,0 @@ current: weakRef(currentElement),

@@ -16,3 +16,4 @@ import { NodeIndex } from './utils/tabOrder';

*/
export declare const getRelativeFocusable: (element: Element, scope: HTMLElement | HTMLElement[] | Document, useTabbables: boolean) => UnresolvedSolution | ResolvedSolution | undefined;
export declare const getRelativeFocusable: (element: Element, scope: HTMLElement | HTMLElement[], useTabbables: boolean) => UnresolvedSolution | ResolvedSolution | undefined;
declare type ScopeRef = HTMLElement | HTMLElement[];
interface FocusNextOptions {

@@ -23,3 +24,3 @@ /**

*/
scope?: HTMLElement | HTMLElement[] | HTMLDocument;
scope?: ScopeRef;
/**

@@ -53,2 +54,13 @@ * enables cycling inside the scope

export declare const focusPrevElement: (fromElement: Element, options?: FocusNextOptions) => void;
declare type FocusBoundaryOptions = Pick<FocusNextOptions, 'focusOptions' | 'onlyTabbable'>;
/**
* focuses first element in the tab-order
* @param {FocusNextOptions} options - focus options
*/
export declare const focusFirstElement: (scope: ScopeRef, options?: FocusBoundaryOptions) => void;
/**
* focuses last element in the tab order
* @param {FocusNextOptions} options - focus options
*/
export declare const focusLastElement: (scope: ScopeRef, options?: FocusBoundaryOptions) => void;
export {};

@@ -39,2 +39,11 @@ import { focusOn } from './commands';

};
var getBoundary = function (shards, useTabbables) {
var set = useTabbables
? getTabbableNodes(asArray(shards), new Map())
: getFocusableNodes(asArray(shards), new Map());
return {
first: set[0],
last: set[set.length - 1],
};
};
var defaultOptions = function (options) {

@@ -83,1 +92,25 @@ return Object.assign({

};
var pickBoundary = function (scope, options, what) {
var _a;
var boundary = getBoundary(scope, (_a = options.onlyTabbable) !== null && _a !== void 0 ? _a : true);
var node = boundary[what];
if (node) {
focusOn(node.node, options.focusOptions);
}
};
/**
* focuses first element in the tab-order
* @param {FocusNextOptions} options - focus options
*/
export var focusFirstElement = function (scope, options) {
if (options === void 0) { options = {}; }
pickBoundary(scope, options, 'first');
};
/**
* focuses last element in the tab order
* @param {FocusNextOptions} options - focus options
*/
export var focusLastElement = function (scope, options) {
if (options === void 0) { options = {}; }
pickBoundary(scope, options, 'last');
};

@@ -8,3 +8,3 @@ import * as allConstants from './constants';

import { captureFocusRestore } from './return-focus';
import { focusNextElement, focusPrevElement, getRelativeFocusable } from './sibling';
import { focusNextElement, focusPrevElement, getRelativeFocusable, focusFirstElement, focusLastElement } from './sibling';
import { getFocusableNodes, getTabbableNodes } from './utils/DOMutils';

@@ -16,3 +16,3 @@ /**

declare const constants: typeof allConstants;
export { constants, focusInside, focusIsHidden, moveFocusInside, focusSolver, expandFocusableNodes, getFocusableNodes, getTabbableNodes, focusNextElement, focusPrevElement, getRelativeFocusable, captureFocusRestore, };
export { constants, focusInside, focusIsHidden, moveFocusInside, focusSolver, expandFocusableNodes, getFocusableNodes, getTabbableNodes, focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, getRelativeFocusable, captureFocusRestore, };
/**

@@ -19,0 +19,0 @@ * @deprecated - please use {@link moveFocusInside} named export

@@ -8,3 +8,3 @@ import * as allConstants from './constants';

import { captureFocusRestore } from './return-focus';
import { focusNextElement, focusPrevElement, getRelativeFocusable } from './sibling';
import { focusNextElement, focusPrevElement, getRelativeFocusable, focusFirstElement, focusLastElement, } from './sibling';
import { getFocusableNodes, getTabbableNodes } from './utils/DOMutils';

@@ -24,3 +24,3 @@ /**

//
focusNextElement, focusPrevElement, getRelativeFocusable,
focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, getRelativeFocusable,
//

@@ -27,0 +27,0 @@ captureFocusRestore, };

@@ -11,3 +11,3 @@ import { getTabbableNodes } from './utils/DOMutils';

let currentElement = element;
while (currentElement) {
while (currentElement && currentElement !== document.body) {
stack.push({

@@ -14,0 +14,0 @@ current: weakRef(currentElement),

@@ -16,3 +16,4 @@ import { NodeIndex } from './utils/tabOrder';

*/
export declare const getRelativeFocusable: (element: Element, scope: HTMLElement | HTMLElement[] | Document, useTabbables: boolean) => UnresolvedSolution | ResolvedSolution | undefined;
export declare const getRelativeFocusable: (element: Element, scope: HTMLElement | HTMLElement[], useTabbables: boolean) => UnresolvedSolution | ResolvedSolution | undefined;
declare type ScopeRef = HTMLElement | HTMLElement[];
interface FocusNextOptions {

@@ -23,3 +24,3 @@ /**

*/
scope?: HTMLElement | HTMLElement[] | HTMLDocument;
scope?: ScopeRef;
/**

@@ -53,2 +54,13 @@ * enables cycling inside the scope

export declare const focusPrevElement: (fromElement: Element, options?: FocusNextOptions) => void;
declare type FocusBoundaryOptions = Pick<FocusNextOptions, 'focusOptions' | 'onlyTabbable'>;
/**
* focuses first element in the tab-order
* @param {FocusNextOptions} options - focus options
*/
export declare const focusFirstElement: (scope: ScopeRef, options?: FocusBoundaryOptions) => void;
/**
* focuses last element in the tab order
* @param {FocusNextOptions} options - focus options
*/
export declare const focusLastElement: (scope: ScopeRef, options?: FocusBoundaryOptions) => void;
export {};

@@ -36,2 +36,11 @@ import { focusOn } from './commands';

};
const getBoundary = (shards, useTabbables) => {
const set = useTabbables
? getTabbableNodes(asArray(shards), new Map())
: getFocusableNodes(asArray(shards), new Map());
return {
first: set[0],
last: set[set.length - 1],
};
};
const defaultOptions = (options) => Object.assign({

@@ -69,1 +78,23 @@ scope: document.body,

};
const pickBoundary = (scope, options, what) => {
var _a;
const boundary = getBoundary(scope, (_a = options.onlyTabbable) !== null && _a !== void 0 ? _a : true);
const node = boundary[what];
if (node) {
focusOn(node.node, options.focusOptions);
}
};
/**
* focuses first element in the tab-order
* @param {FocusNextOptions} options - focus options
*/
export const focusFirstElement = (scope, options = {}) => {
pickBoundary(scope, options, 'first');
};
/**
* focuses last element in the tab order
* @param {FocusNextOptions} options - focus options
*/
export const focusLastElement = (scope, options = {}) => {
pickBoundary(scope, options, 'last');
};

@@ -8,3 +8,3 @@ import * as allConstants from './constants';

import { captureFocusRestore } from './return-focus';
import { focusNextElement, focusPrevElement, getRelativeFocusable } from './sibling';
import { focusNextElement, focusPrevElement, getRelativeFocusable, focusFirstElement, focusLastElement } from './sibling';
import { getFocusableNodes, getTabbableNodes } from './utils/DOMutils';

@@ -16,3 +16,3 @@ /**

declare const constants: typeof allConstants;
export { constants, focusInside, focusIsHidden, moveFocusInside, focusSolver, expandFocusableNodes, getFocusableNodes, getTabbableNodes, focusNextElement, focusPrevElement, getRelativeFocusable, captureFocusRestore, };
export { constants, focusInside, focusIsHidden, moveFocusInside, focusSolver, expandFocusableNodes, getFocusableNodes, getTabbableNodes, focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, getRelativeFocusable, captureFocusRestore, };
/**

@@ -19,0 +19,0 @@ * @deprecated - please use {@link moveFocusInside} named export

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.captureFocusRestore = exports.getRelativeFocusable = exports.focusPrevElement = exports.focusNextElement = exports.getTabbableNodes = exports.getFocusableNodes = exports.expandFocusableNodes = exports.focusSolver = exports.moveFocusInside = exports.focusIsHidden = exports.focusInside = exports.constants = void 0;
exports.captureFocusRestore = exports.getRelativeFocusable = exports.focusLastElement = exports.focusFirstElement = exports.focusPrevElement = exports.focusNextElement = exports.getTabbableNodes = exports.getFocusableNodes = exports.expandFocusableNodes = exports.focusSolver = exports.moveFocusInside = exports.focusIsHidden = exports.focusInside = exports.constants = void 0;
var tslib_1 = require("tslib");

@@ -22,2 +22,4 @@ var allConstants = (0, tslib_1.__importStar)(require("./constants"));

Object.defineProperty(exports, "getRelativeFocusable", { enumerable: true, get: function () { return sibling_1.getRelativeFocusable; } });
Object.defineProperty(exports, "focusFirstElement", { enumerable: true, get: function () { return sibling_1.focusFirstElement; } });
Object.defineProperty(exports, "focusLastElement", { enumerable: true, get: function () { return sibling_1.focusLastElement; } });
var DOMutils_1 = require("./utils/DOMutils");

@@ -24,0 +26,0 @@ Object.defineProperty(exports, "getFocusableNodes", { enumerable: true, get: function () { return DOMutils_1.getFocusableNodes; } });

@@ -14,3 +14,3 @@ "use strict";

var currentElement = element;
while (currentElement) {
while (currentElement && currentElement !== document.body) {
stack.push({

@@ -17,0 +17,0 @@ current: weakRef(currentElement),

@@ -16,3 +16,4 @@ import { NodeIndex } from './utils/tabOrder';

*/
export declare const getRelativeFocusable: (element: Element, scope: HTMLElement | HTMLElement[] | Document, useTabbables: boolean) => UnresolvedSolution | ResolvedSolution | undefined;
export declare const getRelativeFocusable: (element: Element, scope: HTMLElement | HTMLElement[], useTabbables: boolean) => UnresolvedSolution | ResolvedSolution | undefined;
declare type ScopeRef = HTMLElement | HTMLElement[];
interface FocusNextOptions {

@@ -23,3 +24,3 @@ /**

*/
scope?: HTMLElement | HTMLElement[] | HTMLDocument;
scope?: ScopeRef;
/**

@@ -53,2 +54,13 @@ * enables cycling inside the scope

export declare const focusPrevElement: (fromElement: Element, options?: FocusNextOptions) => void;
declare type FocusBoundaryOptions = Pick<FocusNextOptions, 'focusOptions' | 'onlyTabbable'>;
/**
* focuses first element in the tab-order
* @param {FocusNextOptions} options - focus options
*/
export declare const focusFirstElement: (scope: ScopeRef, options?: FocusBoundaryOptions) => void;
/**
* focuses last element in the tab order
* @param {FocusNextOptions} options - focus options
*/
export declare const focusLastElement: (scope: ScopeRef, options?: FocusBoundaryOptions) => void;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.focusPrevElement = exports.focusNextElement = exports.getRelativeFocusable = void 0;
exports.focusLastElement = exports.focusFirstElement = exports.focusPrevElement = exports.focusNextElement = exports.getRelativeFocusable = void 0;
var commands_1 = require("./commands");

@@ -43,2 +43,11 @@ var DOMutils_1 = require("./utils/DOMutils");

exports.getRelativeFocusable = getRelativeFocusable;
var getBoundary = function (shards, useTabbables) {
var set = useTabbables
? (0, DOMutils_1.getTabbableNodes)((0, array_1.asArray)(shards), new Map())
: (0, DOMutils_1.getFocusableNodes)((0, array_1.asArray)(shards), new Map());
return {
first: set[0],
last: set[set.length - 1],
};
};
var defaultOptions = function (options) {

@@ -89,1 +98,27 @@ return Object.assign({

exports.focusPrevElement = focusPrevElement;
var pickBoundary = function (scope, options, what) {
var _a;
var boundary = getBoundary(scope, (_a = options.onlyTabbable) !== null && _a !== void 0 ? _a : true);
var node = boundary[what];
if (node) {
(0, commands_1.focusOn)(node.node, options.focusOptions);
}
};
/**
* focuses first element in the tab-order
* @param {FocusNextOptions} options - focus options
*/
var focusFirstElement = function (scope, options) {
if (options === void 0) { options = {}; }
pickBoundary(scope, options, 'first');
};
exports.focusFirstElement = focusFirstElement;
/**
* focuses last element in the tab order
* @param {FocusNextOptions} options - focus options
*/
var focusLastElement = function (scope, options) {
if (options === void 0) { options = {}; }
pickBoundary(scope, options, 'last');
};
exports.focusLastElement = focusLastElement;
{
"name": "focus-lock",
"version": "1.2.0",
"version": "1.3.0",
"description": "DOM trap for a focus",

@@ -5,0 +5,0 @@ "main": "dist/es5/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc