@instructure/ui-dom-utils 8.33.1 → 8.33.2-snapshot-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/es/InputModeListener.js +1 -22
- package/es/addEventListener.js +1 -3
- package/es/addInputModeListener.js +1 -29
- package/es/addPositionChangeListener.js +1 -7
- package/es/addResizeListener.js +1 -8
- package/es/contains.js +2 -8
- package/es/containsActiveElement.js +1 -2
- package/es/elementMatches.js +3 -4
- package/es/findDOMNode.js +4 -11
- package/es/findFocusable.js +1 -12
- package/es/findTabbable.js +1 -3
- package/es/getActiveElement.js +4 -4
- package/es/getBoundingClientRect.js +1 -13
- package/es/getClassList.js +2 -7
- package/es/getComputedStyle.js +1 -5
- package/es/getFontSize.js +5 -8
- package/es/getOffsetParents.js +5 -11
- package/es/getScrollParents.js +8 -20
- package/es/handleMouseOverOut.js +2 -3
- package/es/isActiveElement.js +1 -2
- package/es/isDefinedCustomElement.js +0 -1
- package/es/isVisible.js +11 -18
- package/es/matchMedia.js +1 -4
- package/es/ownerDocument.js +1 -4
- package/es/ownerWindow.js +1 -2
- package/es/requestAnimationFrame.js +2 -5
- package/es/transformSelection.js +4 -10
- package/lib/InputModeListener.js +1 -26
- package/lib/addEventListener.js +0 -4
- package/lib/addInputModeListener.js +1 -32
- package/lib/addPositionChangeListener.js +0 -10
- package/lib/addResizeListener.js +0 -11
- package/lib/canUseDOM.js +0 -1
- package/lib/contains.js +1 -10
- package/lib/containsActiveElement.js +0 -5
- package/lib/elementMatches.js +2 -5
- package/lib/findDOMNode.js +4 -13
- package/lib/findFocusable.js +1 -13
- package/lib/findTabbable.js +1 -4
- package/lib/getActiveElement.js +2 -5
- package/lib/getBoundingClientRect.js +0 -17
- package/lib/getClassList.js +2 -9
- package/lib/getComputedStyle.js +0 -8
- package/lib/getFontSize.js +6 -12
- package/lib/getOffsetParents.js +4 -15
- package/lib/getScrollParents.js +7 -23
- package/lib/handleMouseOverOut.js +0 -4
- package/lib/index.js +0 -26
- package/lib/isActiveElement.js +0 -4
- package/lib/isDefinedCustomElement.js +0 -2
- package/lib/isVisible.js +10 -20
- package/lib/matchMedia.js +0 -7
- package/lib/ownerDocument.js +0 -5
- package/lib/ownerWindow.js +0 -4
- package/lib/requestAnimationFrame.js +1 -6
- package/lib/transformSelection.js +4 -11
- package/package.json +5 -5
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.addInputModeListener = exports.MODES = void 0;
|
|
7
|
-
|
|
8
7
|
var _addEventListener = require("./addEventListener");
|
|
9
|
-
|
|
10
8
|
var _canUseDOM = require("./canUseDOM");
|
|
11
|
-
|
|
12
9
|
/*
|
|
13
10
|
* The MIT License (MIT)
|
|
14
11
|
*
|
|
@@ -32,6 +29,7 @@ var _canUseDOM = require("./canUseDOM");
|
|
|
32
29
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
33
30
|
* SOFTWARE.
|
|
34
31
|
*/
|
|
32
|
+
|
|
35
33
|
const MODES = {
|
|
36
34
|
keyboard: 'keyboard',
|
|
37
35
|
pointer: 'pointer'
|
|
@@ -42,90 +40,63 @@ let _downListeners = [];
|
|
|
42
40
|
let _mode = MODES.keyboard;
|
|
43
41
|
let _registeredCount = 0;
|
|
44
42
|
const _modeChangeHandlers = {};
|
|
45
|
-
|
|
46
43
|
const handleInitialPointerMove = event => {
|
|
47
44
|
// Work around a Safari quirk that fires a mousemove on <html> whenever the
|
|
48
45
|
// window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯
|
|
49
46
|
if (event.target.nodeName.toLowerCase() === 'html') {
|
|
50
47
|
return;
|
|
51
48
|
}
|
|
52
|
-
|
|
53
49
|
handleInputModeChange(_mode, MODES.pointer);
|
|
54
|
-
|
|
55
50
|
_moveListeners.forEach(listener => listener.remove());
|
|
56
51
|
};
|
|
57
|
-
|
|
58
52
|
const handleInputModeChange = (currentMode, newMode) => {
|
|
59
53
|
if (currentMode === newMode) return;
|
|
60
54
|
_mode = newMode;
|
|
61
55
|
Object.keys(_modeChangeHandlers).forEach(handlerId => _modeChangeHandlers[handlerId](currentMode, newMode));
|
|
62
56
|
};
|
|
63
|
-
|
|
64
57
|
const handleKeyDown = () => {
|
|
65
58
|
handleInputModeChange(_mode, MODES.keyboard);
|
|
66
59
|
};
|
|
67
|
-
|
|
68
60
|
const handlePointerDown = () => {
|
|
69
61
|
handleInputModeChange(_mode, MODES.pointer);
|
|
70
62
|
};
|
|
71
|
-
|
|
72
63
|
const addMoveListeners = () => {
|
|
73
64
|
if (_moveListeners.length === 0) {
|
|
74
65
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'mousemove', handleInitialPointerMove, true));
|
|
75
|
-
|
|
76
66
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'mousedown', handleInitialPointerMove, true));
|
|
77
|
-
|
|
78
67
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'mouseup', handleInitialPointerMove, true));
|
|
79
|
-
|
|
80
68
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'pointermove', handleInitialPointerMove, true));
|
|
81
|
-
|
|
82
69
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'pointerdown', handleInitialPointerMove, true));
|
|
83
|
-
|
|
84
70
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'pointerup', handleInitialPointerMove, true));
|
|
85
|
-
|
|
86
71
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'touchmove', handleInitialPointerMove, true));
|
|
87
|
-
|
|
88
72
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'touchstart', handleInitialPointerMove, true));
|
|
89
|
-
|
|
90
73
|
_moveListeners.push((0, _addEventListener.addEventListener)(document, 'touchend', handleInitialPointerMove, true));
|
|
91
74
|
}
|
|
92
75
|
};
|
|
93
|
-
|
|
94
76
|
const addDownListeners = () => {
|
|
95
77
|
if (_downListeners.length === 0) {
|
|
96
78
|
_downListeners.push((0, _addEventListener.addEventListener)(document, 'keydown', handleKeyDown, true));
|
|
97
|
-
|
|
98
79
|
_downListeners.push((0, _addEventListener.addEventListener)(document, 'mousedown', handlePointerDown, true));
|
|
99
|
-
|
|
100
80
|
_downListeners.push((0, _addEventListener.addEventListener)(document, 'pointerdown', handlePointerDown, true));
|
|
101
|
-
|
|
102
81
|
_downListeners.push((0, _addEventListener.addEventListener)(document, 'touchstart', handlePointerDown, true));
|
|
103
82
|
}
|
|
104
83
|
};
|
|
105
|
-
|
|
106
84
|
const removeListeners = () => {
|
|
107
85
|
_moveListeners.forEach(listener => listener.remove());
|
|
108
|
-
|
|
109
86
|
_moveListeners = [];
|
|
110
|
-
|
|
111
87
|
_downListeners.forEach(listener => listener.remove());
|
|
112
|
-
|
|
113
88
|
_downListeners = [];
|
|
114
89
|
};
|
|
115
|
-
|
|
116
90
|
const addInputModeListener = handlerObject => {
|
|
117
91
|
const onInputModeChange = handlerObject.onInputModeChange;
|
|
118
92
|
const id = _registeredCount++;
|
|
119
|
-
|
|
120
93
|
if (typeof onInputModeChange === 'function') {
|
|
121
94
|
_modeChangeHandlers[id] = onInputModeChange;
|
|
122
95
|
}
|
|
123
|
-
|
|
124
96
|
if (_canUseDOM.canUseDOM) {
|
|
125
97
|
addDownListeners();
|
|
126
98
|
addMoveListeners();
|
|
127
99
|
}
|
|
128
|
-
|
|
129
100
|
return {
|
|
130
101
|
isKeyboardMode: () => {
|
|
131
102
|
return _mode === MODES.keyboard;
|
|
@@ -134,13 +105,11 @@ const addInputModeListener = handlerObject => {
|
|
|
134
105
|
if (_registeredCount === 1) {
|
|
135
106
|
removeListeners();
|
|
136
107
|
}
|
|
137
|
-
|
|
138
108
|
delete _modeChangeHandlers[id];
|
|
139
109
|
_registeredCount--;
|
|
140
110
|
}
|
|
141
111
|
};
|
|
142
112
|
};
|
|
143
|
-
|
|
144
113
|
exports.addInputModeListener = addInputModeListener;
|
|
145
114
|
var _default = addInputModeListener;
|
|
146
115
|
exports.default = _default;
|
|
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.addPositionChangeListener = addPositionChangeListener;
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
var _getBoundingClientRect = require("./getBoundingClientRect");
|
|
12
|
-
|
|
13
10
|
var _requestAnimationFrame = require("./requestAnimationFrame");
|
|
14
|
-
|
|
15
11
|
/*
|
|
16
12
|
* The MIT License (MIT)
|
|
17
13
|
*
|
|
@@ -52,30 +48,24 @@ function addPositionChangeListener(el, handler) {
|
|
|
52
48
|
const raf = [];
|
|
53
49
|
let coords = (0, _getBoundingClientRect.getBoundingClientRect)(node) || {};
|
|
54
50
|
let cancelled = false;
|
|
55
|
-
|
|
56
51
|
function checkPosition() {
|
|
57
52
|
if (!cancelled) {
|
|
58
53
|
const newCoords = (0, _getBoundingClientRect.getBoundingClientRect)(node) || {};
|
|
59
54
|
const positionChanged = newCoords.top !== coords.top || newCoords.left !== coords.left || newCoords.right !== coords.right || newCoords.bottom !== coords.bottom || newCoords.width !== coords.width || newCoords.height !== coords.height;
|
|
60
|
-
|
|
61
55
|
if (positionChanged && typeof handler === 'function') {
|
|
62
56
|
handler(newCoords);
|
|
63
57
|
}
|
|
64
|
-
|
|
65
58
|
coords = newCoords;
|
|
66
59
|
raf.push((0, _requestAnimationFrame.requestAnimationFrame)(checkPosition));
|
|
67
60
|
}
|
|
68
61
|
}
|
|
69
|
-
|
|
70
62
|
checkPosition();
|
|
71
63
|
return {
|
|
72
64
|
remove() {
|
|
73
65
|
cancelled = true;
|
|
74
66
|
raf.forEach(req => req.cancel());
|
|
75
67
|
}
|
|
76
|
-
|
|
77
68
|
};
|
|
78
69
|
}
|
|
79
|
-
|
|
80
70
|
var _default = addPositionChangeListener;
|
|
81
71
|
exports.default = _default;
|
package/lib/addResizeListener.js
CHANGED
|
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.addResizeListener = addResizeListener;
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
var _getBoundingClientRect = require("./getBoundingClientRect");
|
|
12
|
-
|
|
13
10
|
var _requestAnimationFrame = require("./requestAnimationFrame");
|
|
14
|
-
|
|
15
11
|
/*
|
|
16
12
|
* The MIT License (MIT)
|
|
17
13
|
*
|
|
@@ -78,35 +74,28 @@ function addResizeListener(el, handler) {
|
|
|
78
74
|
let origSize = (0, _getBoundingClientRect.getBoundingClientRect)(node);
|
|
79
75
|
let cancelled = false;
|
|
80
76
|
let raf;
|
|
81
|
-
|
|
82
77
|
const checkDimensions = () => {
|
|
83
78
|
if (cancelled) {
|
|
84
79
|
return;
|
|
85
80
|
}
|
|
86
|
-
|
|
87
81
|
const boundingRect = (0, _getBoundingClientRect.getBoundingClientRect)(node);
|
|
88
82
|
const size = {
|
|
89
83
|
width: boundingRect.width,
|
|
90
84
|
height: boundingRect.height
|
|
91
85
|
};
|
|
92
|
-
|
|
93
86
|
if (dimensions.some(dim => size[dim] != origSize[dim]) && typeof handler === 'function') {
|
|
94
87
|
handler(size);
|
|
95
88
|
}
|
|
96
|
-
|
|
97
89
|
origSize = size;
|
|
98
90
|
raf = (0, _requestAnimationFrame.requestAnimationFrame)(checkDimensions);
|
|
99
91
|
};
|
|
100
|
-
|
|
101
92
|
checkDimensions();
|
|
102
93
|
return {
|
|
103
94
|
remove() {
|
|
104
95
|
cancelled = true;
|
|
105
96
|
raf.cancel();
|
|
106
97
|
}
|
|
107
|
-
|
|
108
98
|
};
|
|
109
99
|
}
|
|
110
|
-
|
|
111
100
|
var _default = addResizeListener;
|
|
112
101
|
exports.default = _default;
|
package/lib/canUseDOM.js
CHANGED
package/lib/contains.js
CHANGED
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.contains = void 0;
|
|
7
|
-
|
|
8
7
|
var _findDOMNode = require("./findDOMNode");
|
|
9
|
-
|
|
10
8
|
var _canUseDOM = require("./canUseDOM");
|
|
11
|
-
|
|
12
9
|
/*
|
|
13
10
|
* The MIT License (MIT)
|
|
14
11
|
*
|
|
@@ -47,7 +44,6 @@ var _canUseDOM = require("./canUseDOM");
|
|
|
47
44
|
function containsWithDOM(context, el) {
|
|
48
45
|
const container = context && (0, _findDOMNode.findDOMNode)(context);
|
|
49
46
|
const node = el && (0, _findDOMNode.findDOMNode)(el);
|
|
50
|
-
|
|
51
47
|
if (!container || !node) {
|
|
52
48
|
return false;
|
|
53
49
|
} else if (!(container instanceof Window) && !(node instanceof Window)) {
|
|
@@ -56,23 +52,18 @@ function containsWithDOM(context, el) {
|
|
|
56
52
|
return containsFallback(container, node);
|
|
57
53
|
}
|
|
58
54
|
}
|
|
59
|
-
/* istanbul ignore next */
|
|
60
|
-
|
|
61
55
|
|
|
56
|
+
/* istanbul ignore next */
|
|
62
57
|
function containsFallback(context, el) {
|
|
63
58
|
let node = el;
|
|
64
|
-
|
|
65
59
|
while (node) {
|
|
66
60
|
if (node === context) {
|
|
67
61
|
return true;
|
|
68
62
|
}
|
|
69
|
-
|
|
70
63
|
node = node.parentNode;
|
|
71
64
|
}
|
|
72
|
-
|
|
73
65
|
return false;
|
|
74
66
|
}
|
|
75
|
-
|
|
76
67
|
const contains = _canUseDOM.canUseDOM ? containsWithDOM : containsFallback;
|
|
77
68
|
exports.contains = contains;
|
|
78
69
|
var _default = contains;
|
|
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.containsActiveElement = containsActiveElement;
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
var _contains = require("./contains");
|
|
12
|
-
|
|
13
10
|
var _getActiveElement = require("./getActiveElement");
|
|
14
|
-
|
|
15
11
|
/*
|
|
16
12
|
* The MIT License (MIT)
|
|
17
13
|
*
|
|
@@ -51,6 +47,5 @@ function containsActiveElement(el) {
|
|
|
51
47
|
const active = (0, _getActiveElement.getActiveElement)();
|
|
52
48
|
return !!node && (active === node || (0, _contains.contains)(node, active));
|
|
53
49
|
}
|
|
54
|
-
|
|
55
50
|
var _default = containsActiveElement;
|
|
56
51
|
exports.default = _default;
|
package/lib/elementMatches.js
CHANGED
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.elementMatches = elementMatches;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
/*
|
|
12
10
|
* The MIT License (MIT)
|
|
13
11
|
*
|
|
@@ -46,11 +44,10 @@ var _findDOMNode = require("./findDOMNode");
|
|
|
46
44
|
*/
|
|
47
45
|
function elementMatches(el, selectorString) {
|
|
48
46
|
const node = el && (0, _findDOMNode.findDOMNode)(el);
|
|
49
|
-
if (!node) return false;
|
|
50
|
-
|
|
47
|
+
if (!node) return false;
|
|
48
|
+
// this cast is in a separate line to circumvent a react-docgen bug
|
|
51
49
|
const elem = node;
|
|
52
50
|
return elem.matches(selectorString);
|
|
53
51
|
}
|
|
54
|
-
|
|
55
52
|
var _default = elementMatches;
|
|
56
53
|
exports.default = _default;
|
package/lib/findDOMNode.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
8
|
exports.findDOMNode = findDOMNode;
|
|
10
|
-
|
|
11
9
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
12
|
-
|
|
13
10
|
/*
|
|
14
11
|
* The MIT License (MIT)
|
|
15
12
|
*
|
|
@@ -33,10 +30,10 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
33
30
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
34
31
|
* SOFTWARE.
|
|
35
32
|
*/
|
|
33
|
+
|
|
36
34
|
const isReactNodeWithRef = el => {
|
|
37
35
|
return !!el && el.ref !== void 0;
|
|
38
36
|
};
|
|
39
|
-
|
|
40
37
|
const isRefObject = obj => {
|
|
41
38
|
return !!obj && obj.current !== void 0;
|
|
42
39
|
};
|
|
@@ -51,35 +48,29 @@ const isRefObject = obj => {
|
|
|
51
48
|
* @param { Node | Window | React.ReactElement | React.Component | function } el - component, DOM node, or function returning a DOM node
|
|
52
49
|
* @returns { Node | Window | null | undefined } The root node of this element
|
|
53
50
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
51
|
function findDOMNode(el) {
|
|
57
52
|
const node = typeof el === 'function' ? el() : el;
|
|
58
|
-
|
|
59
53
|
if (node === document) {
|
|
60
54
|
return document.documentElement; // HTMLElement
|
|
61
55
|
} else if (node instanceof Element || node === window || node && typeof node.nodeType !== 'undefined') {
|
|
62
56
|
return node;
|
|
63
57
|
} else if (node) {
|
|
64
58
|
const reactNode = node;
|
|
65
|
-
|
|
66
59
|
if (isReactNodeWithRef(reactNode)) {
|
|
67
60
|
const refElement = isRefObject(reactNode.ref) ? reactNode.ref.current : reactNode.ref;
|
|
68
|
-
|
|
69
61
|
if (!(refElement instanceof HTMLElement)) {
|
|
70
62
|
return findDOMNode(refElement);
|
|
71
63
|
}
|
|
72
|
-
|
|
73
64
|
return refElement;
|
|
74
65
|
} else {
|
|
75
|
-
const elName = reactNode.constructor.componentId ? reactNode.constructor.componentId : reactNode.constructor.name;
|
|
66
|
+
const elName = reactNode.constructor.componentId ? reactNode.constructor.componentId : reactNode.constructor.name;
|
|
67
|
+
|
|
68
|
+
// eslint-disable-next-line no-console
|
|
76
69
|
|
|
77
70
|
return _reactDom.default.findDOMNode(node);
|
|
78
71
|
}
|
|
79
72
|
}
|
|
80
|
-
|
|
81
73
|
return void 0;
|
|
82
74
|
}
|
|
83
|
-
|
|
84
75
|
var _default = findDOMNode;
|
|
85
76
|
exports.default = _default;
|
package/lib/findFocusable.js
CHANGED
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.findFocusable = findFocusable;
|
|
8
|
-
|
|
9
8
|
var _ = require("./");
|
|
10
|
-
|
|
11
9
|
/*
|
|
12
10
|
* The MIT License (MIT)
|
|
13
11
|
*
|
|
@@ -43,20 +41,17 @@ var _ = require("./");
|
|
|
43
41
|
*
|
|
44
42
|
* http://api.jqueryui.com/category/ui-core/
|
|
45
43
|
**/
|
|
44
|
+
|
|
46
45
|
function findFocusable(el, filter, shouldSearchRootNode) {
|
|
47
46
|
const element = el && (0, _.findDOMNode)(el);
|
|
48
|
-
|
|
49
47
|
if (!element || typeof element.querySelectorAll !== 'function') {
|
|
50
48
|
return [];
|
|
51
49
|
}
|
|
52
|
-
|
|
53
50
|
const focusableSelector = 'a[href],frame,iframe,object,input:not([type=hidden]),select,textarea,button,*[tabindex]';
|
|
54
51
|
let matches = Array.from(element.querySelectorAll(focusableSelector));
|
|
55
|
-
|
|
56
52
|
if (shouldSearchRootNode && (0, _.elementMatches)(element, focusableSelector)) {
|
|
57
53
|
matches = [...matches, element];
|
|
58
54
|
}
|
|
59
|
-
|
|
60
55
|
return matches.filter(el => {
|
|
61
56
|
if (typeof filter === 'function') {
|
|
62
57
|
return filter(el) && focusable(el);
|
|
@@ -65,22 +60,18 @@ function findFocusable(el, filter, shouldSearchRootNode) {
|
|
|
65
60
|
}
|
|
66
61
|
});
|
|
67
62
|
}
|
|
68
|
-
|
|
69
63
|
function hidden(element) {
|
|
70
64
|
const cs = (0, _.getComputedStyle)(element);
|
|
71
65
|
return cs.display !== 'inline' && element.offsetWidth <= 0 && element.offsetHeight <= 0 || cs.display === 'none';
|
|
72
66
|
}
|
|
73
|
-
|
|
74
67
|
function positioned(element) {
|
|
75
68
|
const POS = ['fixed', 'absolute'];
|
|
76
69
|
if (POS.includes(element.style.position.toLowerCase())) return true;
|
|
77
70
|
if (POS.includes((0, _.getComputedStyle)(element).getPropertyValue('position').toLowerCase())) return true;
|
|
78
71
|
return false;
|
|
79
72
|
}
|
|
80
|
-
|
|
81
73
|
function visible(element) {
|
|
82
74
|
let el = element;
|
|
83
|
-
|
|
84
75
|
while (el) {
|
|
85
76
|
if (el === document.body) break;
|
|
86
77
|
if (el instanceof ShadowRoot) break;
|
|
@@ -88,13 +79,10 @@ function visible(element) {
|
|
|
88
79
|
if (positioned(el)) break;
|
|
89
80
|
el = el.parentNode;
|
|
90
81
|
}
|
|
91
|
-
|
|
92
82
|
return true;
|
|
93
83
|
}
|
|
94
|
-
|
|
95
84
|
function focusable(element) {
|
|
96
85
|
return !element.disabled && visible(element);
|
|
97
86
|
}
|
|
98
|
-
|
|
99
87
|
var _default = findFocusable;
|
|
100
88
|
exports.default = _default;
|
package/lib/findTabbable.js
CHANGED
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.findTabbable = findTabbable;
|
|
8
|
-
|
|
9
8
|
var _findFocusable = require("./findFocusable");
|
|
10
|
-
|
|
11
9
|
/*
|
|
12
10
|
* The MIT License (MIT)
|
|
13
11
|
*
|
|
@@ -31,16 +29,15 @@ var _findFocusable = require("./findFocusable");
|
|
|
31
29
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
30
|
* SOFTWARE.
|
|
33
31
|
*/
|
|
32
|
+
|
|
34
33
|
function findTabbable(el, shouldSearchRootNode) {
|
|
35
34
|
return (0, _findFocusable.findFocusable)(el, element => {
|
|
36
35
|
return !isInvalidTabIndex(element.getAttribute('tabindex'));
|
|
37
36
|
}, shouldSearchRootNode);
|
|
38
37
|
}
|
|
39
|
-
|
|
40
38
|
function isInvalidTabIndex(tabIndex) {
|
|
41
39
|
// TS wants it to be number to be valid, but this method in fact checks if the parameter is a valid positive number
|
|
42
40
|
return !isNaN(tabIndex) && tabIndex < 0;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
42
|
var _default = findTabbable;
|
|
46
43
|
exports.default = _default;
|
package/lib/getActiveElement.js
CHANGED
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.getActiveElement = getActiveElement;
|
|
8
|
-
|
|
9
8
|
var _isDefinedCustomElement = require("./isDefinedCustomElement");
|
|
10
|
-
|
|
11
9
|
/*
|
|
12
10
|
* The MIT License (MIT)
|
|
13
11
|
*
|
|
@@ -43,14 +41,13 @@ var _isDefinedCustomElement = require("./isDefinedCustomElement");
|
|
|
43
41
|
* @return { Element | null } the active element
|
|
44
42
|
*/
|
|
45
43
|
function getActiveElement(doc) {
|
|
46
|
-
const activeElement = (doc || document).activeElement;
|
|
44
|
+
const activeElement = (doc || document).activeElement;
|
|
47
45
|
|
|
46
|
+
//check if activeElement is a custom element or not
|
|
48
47
|
if (activeElement && (0, _isDefinedCustomElement.isDefinedCustomElement)(activeElement)) {
|
|
49
48
|
return activeElement.shadowRoot.activeElement;
|
|
50
49
|
}
|
|
51
|
-
|
|
52
50
|
return activeElement;
|
|
53
51
|
}
|
|
54
|
-
|
|
55
52
|
var _default = getActiveElement;
|
|
56
53
|
exports.default = _default;
|
|
@@ -5,15 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.getBoundingClientRect = getBoundingClientRect;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
var _canUseDOM = require("./canUseDOM");
|
|
12
|
-
|
|
13
10
|
var _contains = require("./contains");
|
|
14
|
-
|
|
15
11
|
var _ownerDocument = require("./ownerDocument");
|
|
16
|
-
|
|
17
12
|
/*
|
|
18
13
|
* The MIT License (MIT)
|
|
19
14
|
*
|
|
@@ -58,17 +53,13 @@ function getBoundingClientRect(el) {
|
|
|
58
53
|
height: 0,
|
|
59
54
|
width: 0
|
|
60
55
|
};
|
|
61
|
-
|
|
62
56
|
if (!_canUseDOM.canUseDOM) {
|
|
63
57
|
return rect;
|
|
64
58
|
}
|
|
65
|
-
|
|
66
59
|
const node = el && (0, _findDOMNode.findDOMNode)(el);
|
|
67
|
-
|
|
68
60
|
if (!node) {
|
|
69
61
|
return rect;
|
|
70
62
|
}
|
|
71
|
-
|
|
72
63
|
if (node === window) {
|
|
73
64
|
return {
|
|
74
65
|
left: window.pageXOffset,
|
|
@@ -79,24 +70,18 @@ function getBoundingClientRect(el) {
|
|
|
79
70
|
bottom: window.innerHeight + window.pageYOffset
|
|
80
71
|
};
|
|
81
72
|
}
|
|
82
|
-
|
|
83
73
|
const doc = el === document ? document : (0, _ownerDocument.ownerDocument)(node);
|
|
84
74
|
const docEl = doc && doc.documentElement;
|
|
85
|
-
|
|
86
75
|
if (!docEl || !(0, _contains.contains)(docEl, node)) {
|
|
87
76
|
return rect;
|
|
88
77
|
}
|
|
89
|
-
|
|
90
78
|
const boundingRect = node.getBoundingClientRect();
|
|
91
79
|
let k;
|
|
92
|
-
|
|
93
80
|
for (k in rect) {
|
|
94
81
|
rect[k] = boundingRect[k];
|
|
95
82
|
}
|
|
96
|
-
|
|
97
83
|
if (doc !== document && doc.defaultView) {
|
|
98
84
|
const frameElement = doc.defaultView.frameElement;
|
|
99
|
-
|
|
100
85
|
if (frameElement) {
|
|
101
86
|
const frameRect = getBoundingClientRect(frameElement);
|
|
102
87
|
rect.top += frameRect.top;
|
|
@@ -105,7 +90,6 @@ function getBoundingClientRect(el) {
|
|
|
105
90
|
rect.right += frameRect.left;
|
|
106
91
|
}
|
|
107
92
|
}
|
|
108
|
-
|
|
109
93
|
return {
|
|
110
94
|
top: rect.top + (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0),
|
|
111
95
|
left: rect.left + (window.pageXOffset || docEl.scrollLeft) - (docEl.clientLeft || 0),
|
|
@@ -116,6 +100,5 @@ function getBoundingClientRect(el) {
|
|
|
116
100
|
bottom: doc.body.clientHeight - rect.height - rect.top
|
|
117
101
|
};
|
|
118
102
|
}
|
|
119
|
-
|
|
120
103
|
var _default = getBoundingClientRect;
|
|
121
104
|
exports.default = _default;
|
package/lib/getClassList.js
CHANGED
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.getClassList = getClassList;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
/*
|
|
12
10
|
* The MIT License (MIT)
|
|
13
11
|
*
|
|
@@ -31,12 +29,14 @@ var _findDOMNode = require("./findDOMNode");
|
|
|
31
29
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
30
|
* SOFTWARE.
|
|
33
31
|
*/
|
|
32
|
+
|
|
34
33
|
const apiForEmptyNode = {
|
|
35
34
|
toArray: () => [],
|
|
36
35
|
contains: () => false,
|
|
37
36
|
add: () => {},
|
|
38
37
|
remove: () => {}
|
|
39
38
|
};
|
|
39
|
+
|
|
40
40
|
/**
|
|
41
41
|
* ---
|
|
42
42
|
* category: utilities/DOM
|
|
@@ -51,7 +51,6 @@ const apiForEmptyNode = {
|
|
|
51
51
|
* @param { Node | Window | React.ReactElement | React.Component | function } element - component or DOM node
|
|
52
52
|
* @return {Object} object containing classList functions 'contains', 'add', and 'remove'
|
|
53
53
|
*/
|
|
54
|
-
|
|
55
54
|
function getClassList(element) {
|
|
56
55
|
const node = (0, _findDOMNode.findDOMNode)(element);
|
|
57
56
|
if (!node) return apiForEmptyNode;
|
|
@@ -59,26 +58,20 @@ function getClassList(element) {
|
|
|
59
58
|
toArray() {
|
|
60
59
|
return [...node.classList];
|
|
61
60
|
},
|
|
62
|
-
|
|
63
61
|
contains: () => false,
|
|
64
62
|
add: () => {},
|
|
65
63
|
remove: () => {}
|
|
66
64
|
};
|
|
67
|
-
|
|
68
65
|
classListApi['add'] = className => {
|
|
69
66
|
return node.classList.add(className);
|
|
70
67
|
};
|
|
71
|
-
|
|
72
68
|
classListApi['remove'] = className => {
|
|
73
69
|
return node.classList.remove(className);
|
|
74
70
|
};
|
|
75
|
-
|
|
76
71
|
classListApi['contains'] = className => {
|
|
77
72
|
return node.classList.contains(className);
|
|
78
73
|
};
|
|
79
|
-
|
|
80
74
|
return classListApi;
|
|
81
75
|
}
|
|
82
|
-
|
|
83
76
|
var _default = getClassList;
|
|
84
77
|
exports.default = _default;
|
package/lib/getComputedStyle.js
CHANGED
|
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.getComputedStyle = getComputedStyle;
|
|
8
|
-
|
|
9
8
|
var _findDOMNode = require("./findDOMNode");
|
|
10
|
-
|
|
11
9
|
var _ownerWindow = require("./ownerWindow");
|
|
12
|
-
|
|
13
10
|
var _canUseDOM = require("./canUseDOM");
|
|
14
|
-
|
|
15
11
|
/*
|
|
16
12
|
* The MIT License (MIT)
|
|
17
13
|
*
|
|
@@ -51,18 +47,14 @@ var _canUseDOM = require("./canUseDOM");
|
|
|
51
47
|
*/
|
|
52
48
|
function getComputedStyle(el, pseudoElt) {
|
|
53
49
|
let style = {};
|
|
54
|
-
|
|
55
50
|
if (_canUseDOM.canUseDOM) {
|
|
56
51
|
const node = el && (0, _findDOMNode.findDOMNode)(el);
|
|
57
|
-
|
|
58
52
|
if (node) {
|
|
59
53
|
const window = (0, _ownerWindow.ownerWindow)(el);
|
|
60
54
|
style = window !== null ? window.getComputedStyle(node, pseudoElt) : {};
|
|
61
55
|
}
|
|
62
56
|
}
|
|
63
|
-
|
|
64
57
|
return style;
|
|
65
58
|
}
|
|
66
|
-
|
|
67
59
|
var _default = getComputedStyle;
|
|
68
60
|
exports.default = _default;
|