@uxf/core 4.5.0 → 10.0.0-beta.8
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/Validators/FormValidator.d.ts +7 -7
- package/Validators/FormValidator.js +24 -31
- package/Validators/FormValidator.test.js +8 -9
- package/Validators/Validator.js +6 -7
- package/Validators/Validator.test.js +3 -4
- package/constants/classes.js +0 -1
- package/cookie/index.js +30 -59
- package/hooks/_useSimulatedButton.js +6 -8
- package/hooks/useAnchorProps.js +53 -69
- package/hooks/useBodyScrollLock.js +8 -10
- package/hooks/useButtonProps.js +36 -68
- package/hooks/useClickableProps.js +33 -67
- package/hooks/useFocusReturn.js +10 -13
- package/hooks/useFocusTrap.d.ts +2 -1
- package/hooks/useFocusTrap.js +36 -39
- package/hooks/useInputFocus.js +7 -24
- package/hooks/useIsMounted.js +3 -20
- package/hooks/useIsomorphicLayoutEffect.js +2 -3
- package/hooks/useKey.d.ts +2 -2
- package/hooks/useKey.js +12 -16
- package/hooks/useLatest.d.ts +1 -0
- package/hooks/useLatest.js +2 -3
- package/hooks/useMinWindowWidth.js +9 -27
- package/hooks/useMouseDragToScroll.js +13 -41
- package/hooks/useOnMount.js +2 -3
- package/hooks/useOnUnmount.js +4 -5
- package/hooks/useOnUpdate.js +3 -4
- package/hooks/usePagination.js +4 -5
- package/hooks/usePrevious.d.ts +1 -0
- package/hooks/usePrevious.js +3 -4
- package/hooks/useRafState.js +7 -24
- package/hooks/useTabs.js +20 -38
- package/hooks/useWindowScroll.js +9 -28
- package/hooks/useWindowSize.js +9 -28
- package/index.js +5 -2
- package/next/index.d.ts +2 -2
- package/next/index.js +2 -5
- package/package.json +5 -13
- package/utils/buildArray.d.ts +5 -1
- package/utils/buildArray.js +4 -5
- package/utils/buildArray.test.js +2 -3
- package/utils/camelCaseToDash.js +0 -1
- package/utils/camelCaseToDash.test.js +2 -3
- package/utils/composeRefs.js +11 -18
- package/utils/copy-to-clipboard.js +12 -68
- package/utils/cx.d.ts +2 -2
- package/utils/cx.js +8 -13
- package/utils/file.js +4 -5
- package/utils/forwardRef.d.ts +1 -1
- package/utils/forwardRef.js +3 -4
- package/utils/image.d.ts +3 -3
- package/utils/image.js +37 -38
- package/utils/isBrowser.js +0 -1
- package/utils/isServer.js +1 -2
- package/utils/pagination.d.ts +2 -2
- package/utils/pagination.js +39 -50
- package/utils/pagination.test.js +5 -44
- package/utils/resizer.d.ts +2 -2
- package/utils/resizer.js +19 -28
- package/utils/slugify.js +4 -5
- package/utils/slugify.test.js +2 -3
- package/utils/trimTrailingZeros.js +0 -1
package/hooks/useButtonProps.js
CHANGED
|
@@ -1,63 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
25
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
|
-
if (!m) return o;
|
|
27
|
-
var i = m.call(o), r, ar = [], e;
|
|
28
|
-
try {
|
|
29
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
30
|
-
}
|
|
31
|
-
catch (error) { e = { error: error }; }
|
|
32
|
-
finally {
|
|
33
|
-
try {
|
|
34
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
35
|
-
}
|
|
36
|
-
finally { if (e) throw e.error; }
|
|
37
|
-
}
|
|
38
|
-
return ar;
|
|
39
|
-
};
|
|
40
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
41
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
42
|
-
if (ar || !(i in from)) {
|
|
43
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
44
|
-
ar[i] = from[i];
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
|
-
};
|
|
49
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
3
|
exports.useButtonProps = void 0;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
function useButtonProps(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
var _onClick = (0, react_1.useCallback)(function (e) {
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const classes_1 = require("../constants/classes");
|
|
6
|
+
const cx_1 = require("../utils/cx");
|
|
7
|
+
function useButtonProps({ ["aria-busy"]: ariaBusy, ["aria-disabled"]: ariaDisabled, autoFocus, analyticsCallback, className, disabled, formAction, formEncType, formMethod, formNoValidate, formTarget, loading, name, onClick, role, tabIndex, type, value, ...restProps }) {
|
|
8
|
+
const isBusy = loading ? loading : Boolean(ariaBusy);
|
|
9
|
+
const isDisabled = disabled ? disabled : Boolean(ariaDisabled);
|
|
10
|
+
const isBusyOrDisabled = isBusy || isDisabled;
|
|
11
|
+
const _className = [isBusy && classes_1.CLASSES.IS_LOADING, isDisabled && classes_1.CLASSES.IS_DISABLED, className];
|
|
12
|
+
const _onClick = (0, react_1.useCallback)((e) => {
|
|
61
13
|
if (isBusyOrDisabled) {
|
|
62
14
|
e.preventDefault();
|
|
63
15
|
}
|
|
@@ -71,21 +23,37 @@ function useButtonProps(_a) {
|
|
|
71
23
|
}
|
|
72
24
|
}, [analyticsCallback, isBusyOrDisabled, onClick]);
|
|
73
25
|
if (onClick || type === "reset" || type === "submit") {
|
|
74
|
-
|
|
26
|
+
let submitProps = {};
|
|
75
27
|
if (type === "submit") {
|
|
76
28
|
submitProps = {
|
|
77
|
-
formAction
|
|
78
|
-
formEncType
|
|
79
|
-
formMethod
|
|
80
|
-
formNoValidate
|
|
81
|
-
formTarget
|
|
82
|
-
name
|
|
83
|
-
value
|
|
29
|
+
formAction,
|
|
30
|
+
formEncType,
|
|
31
|
+
formMethod,
|
|
32
|
+
formNoValidate,
|
|
33
|
+
formTarget,
|
|
34
|
+
name,
|
|
35
|
+
value,
|
|
84
36
|
};
|
|
85
37
|
}
|
|
86
|
-
return
|
|
38
|
+
return {
|
|
39
|
+
"aria-busy": isBusy,
|
|
40
|
+
"aria-disabled": ariaDisabled,
|
|
41
|
+
autoFocus,
|
|
42
|
+
className: (0, cx_1.cx)(classes_1.CLASSES.IS_HOVERABLE, ..._className),
|
|
43
|
+
disabled,
|
|
44
|
+
onClick: _onClick,
|
|
45
|
+
role,
|
|
46
|
+
tabIndex: isBusyOrDisabled ? -1 : tabIndex,
|
|
47
|
+
type,
|
|
48
|
+
...submitProps,
|
|
49
|
+
...restProps,
|
|
50
|
+
};
|
|
87
51
|
}
|
|
88
|
-
return
|
|
52
|
+
return {
|
|
53
|
+
className: (0, cx_1.cx)(..._className),
|
|
54
|
+
role,
|
|
55
|
+
tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : -1,
|
|
56
|
+
...restProps,
|
|
57
|
+
};
|
|
89
58
|
}
|
|
90
59
|
exports.useButtonProps = useButtonProps;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQnV0dG9uUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQnV0dG9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNkU7QUFDN0UsZ0RBQStDO0FBQy9DLGtDQUFpQztBQU9qQyxTQUFnQixjQUFjLENBQW9ELEVBb0I3RDtJQW5CakIsSUFBZSxRQUFRLGtCQUFBLEVBQ0osWUFBWSxzQkFBQSxFQUMvQixTQUFTLGVBQUEsRUFDVCxpQkFBaUIsdUJBQUEsRUFDakIsU0FBUyxlQUFBLEVBQ1QsUUFBUSxjQUFBLEVBQ1IsVUFBVSxnQkFBQSxFQUNWLFdBQVcsaUJBQUEsRUFDWCxVQUFVLGdCQUFBLEVBQ1YsY0FBYyxvQkFBQSxFQUNkLFVBQVUsZ0JBQUEsRUFDVixPQUFPLGFBQUEsRUFDUCxJQUFJLFVBQUEsRUFDSixPQUFPLGFBQUEsRUFDUCxJQUFJLFVBQUEsRUFDSixRQUFRLGNBQUEsRUFDUixJQUFJLFVBQUEsRUFDSixLQUFLLFdBQUEsRUFDRixTQUFTLGNBbkJrRSx1T0FvQmpGLENBRGU7SUFFWixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0QsSUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksVUFBVSxDQUFDO0lBQzlDLElBQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLGlCQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsSUFBSSxpQkFBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVoRyxJQUFNLFFBQVEsR0FBRyxJQUFBLG1CQUFXLEVBQ3hCLFVBQUEsQ0FBQztRQUNHLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDSCxJQUFJLGlCQUFpQixFQUFFO2dCQUNuQixpQkFBaUIsRUFBRSxDQUFDO2FBQ3ZCO1lBQ0QsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2Q7U0FDSjtJQUNMLENBQUMsRUFDRCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUNqRCxDQUFDO0lBRUYsSUFBSSxPQUFPLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQ2xELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDbkIsV0FBVyxHQUFHO2dCQUNWLFVBQVUsWUFBQTtnQkFDVixXQUFXLGFBQUE7Z0JBQ1gsVUFBVSxZQUFBO2dCQUNWLGNBQWMsZ0JBQUE7Z0JBQ2QsVUFBVSxZQUFBO2dCQUNWLElBQUksTUFBQTtnQkFDSixLQUFLLE9BQUE7YUFDUixDQUFDO1NBQ0w7UUFFRCxPQUFPLG9CQUNILFdBQVcsRUFBRSxNQUFNLEVBQ25CLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFNBQVMsV0FBQSxFQUNULFNBQVMsRUFBRSxPQUFFLDhCQUFDLGlCQUFPLENBQUMsWUFBWSxVQUFLLFVBQVUsWUFDakQsUUFBUSxVQUFBLEVBQ1IsT0FBTyxFQUFFLFFBQVEsRUFDakIsSUFBSSxNQUFBLEVBQ0osUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUMxQyxJQUFJLE1BQUEsSUFDRCxXQUFXLEdBQ1gsU0FBUyxDQUNWLENBQUM7S0FDVjtJQUVELE9BQU8sV0FDSCxTQUFTLEVBQUUsT0FBRSx3Q0FBSSxVQUFVLFlBQzNCLElBQUksTUFBQSxFQUNKLFFBQVEsRUFBRSxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxDQUFDLENBQUMsSUFDckIsU0FBUyxDQUNWLENBQUM7QUFDWCxDQUFDO0FBN0VELHdDQTZFQyJ9
|
|
@@ -1,77 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
25
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
|
-
if (!m) return o;
|
|
27
|
-
var i = m.call(o), r, ar = [], e;
|
|
28
|
-
try {
|
|
29
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
30
|
-
}
|
|
31
|
-
catch (error) { e = { error: error }; }
|
|
32
|
-
finally {
|
|
33
|
-
try {
|
|
34
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
35
|
-
}
|
|
36
|
-
finally { if (e) throw e.error; }
|
|
37
|
-
}
|
|
38
|
-
return ar;
|
|
39
|
-
};
|
|
40
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
41
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
42
|
-
if (ar || !(i in from)) {
|
|
43
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
44
|
-
ar[i] = from[i];
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
|
-
};
|
|
49
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
3
|
exports.useClickableProps = void 0;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
function useClickableProps(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
analyticsCallback: analyticsCallback,
|
|
4
|
+
const classes_1 = require("../constants/classes");
|
|
5
|
+
const cx_1 = require("../utils/cx");
|
|
6
|
+
const _useSimulatedButton_1 = require("./_useSimulatedButton");
|
|
7
|
+
function useClickableProps({ ["aria-busy"]: ariaBusy, ["aria-disabled"]: ariaDisabled, analyticsCallback, className, disabled, loading, onClick, onKeyDown, onKeyUp, role, tabIndex, type, ...restProps }) {
|
|
8
|
+
const isBusy = loading ? loading : Boolean(ariaBusy);
|
|
9
|
+
const isDisabled = disabled ? disabled : Boolean(ariaDisabled);
|
|
10
|
+
const isBusyOrDisabled = isBusy || isDisabled;
|
|
11
|
+
const submit = type === "submit";
|
|
12
|
+
const isButton = submit || !!onClick;
|
|
13
|
+
const _className = [isBusy && classes_1.CLASSES.IS_LOADING, isDisabled && classes_1.CLASSES.IS_DISABLED, className];
|
|
14
|
+
const simulatedButton = (0, _useSimulatedButton_1._useSimulatedButton)({
|
|
15
|
+
analyticsCallback,
|
|
64
16
|
isClickable: !isBusyOrDisabled || isButton,
|
|
65
17
|
isHyperlink: false,
|
|
66
|
-
onClick
|
|
67
|
-
onKeyDown
|
|
68
|
-
onKeyUp
|
|
69
|
-
submit
|
|
18
|
+
onClick,
|
|
19
|
+
onKeyDown,
|
|
20
|
+
onKeyUp,
|
|
21
|
+
submit,
|
|
70
22
|
});
|
|
71
23
|
if (isButton) {
|
|
72
|
-
return
|
|
24
|
+
return {
|
|
25
|
+
"aria-busy": isBusy,
|
|
26
|
+
"aria-disabled": isDisabled,
|
|
27
|
+
className: (0, cx_1.cx)(classes_1.CLASSES.IS_HOVERABLE, ..._className),
|
|
28
|
+
onClick: simulatedButton.onClick,
|
|
29
|
+
onKeyDown: simulatedButton.onKeyDown,
|
|
30
|
+
onKeyUp: simulatedButton.onKeyUp,
|
|
31
|
+
role: role || "button",
|
|
32
|
+
tabIndex: isBusyOrDisabled ? -1 : tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
|
|
33
|
+
...restProps,
|
|
34
|
+
};
|
|
73
35
|
}
|
|
74
|
-
return
|
|
36
|
+
return {
|
|
37
|
+
className: (0, cx_1.cx)(..._className),
|
|
38
|
+
role,
|
|
39
|
+
tabIndex,
|
|
40
|
+
...restProps,
|
|
41
|
+
};
|
|
75
42
|
}
|
|
76
43
|
exports.useClickableProps = useClickableProps;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQ2xpY2thYmxlUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ2xpY2thYmxlUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxnREFBK0M7QUFDL0Msa0NBQWlDO0FBQ2pDLDZEQUE0RDtBQVM1RCxTQUFnQixpQkFBaUIsQ0FBd0MsRUFjakQ7SUFicEIsSUFBZSxRQUFRLGtCQUFBLEVBQ0osWUFBWSxzQkFBQSxFQUMvQixpQkFBaUIsdUJBQUEsRUFDakIsU0FBUyxlQUFBLEVBQ1QsUUFBUSxjQUFBLEVBQ1IsT0FBTyxhQUFBLEVBQ1AsT0FBTyxhQUFBLEVBQ1AsU0FBUyxlQUFBLEVBQ1QsT0FBTyxhQUFBLEVBQ1AsSUFBSSxVQUFBLEVBQ0osUUFBUSxjQUFBLEVBQ1IsSUFBSSxVQUFBLEVBQ0QsU0FBUyxjQWJ5RCxzSkFjeEUsQ0FEZTtJQUVaLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRCxJQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxVQUFVLENBQUM7SUFDOUMsSUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLFFBQVEsQ0FBQztJQUNqQyxJQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxJQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxpQkFBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLElBQUksaUJBQU8sQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFaEcsSUFBTSxlQUFlLEdBQUcsSUFBQSx5Q0FBbUIsRUFBQztRQUN4QyxpQkFBaUIsbUJBQUE7UUFDakIsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLElBQUksUUFBUTtRQUMxQyxXQUFXLEVBQUUsS0FBSztRQUNsQixPQUFPLFNBQUE7UUFDUCxTQUFTLFdBQUE7UUFDVCxPQUFPLFNBQUE7UUFDUCxNQUFNLFFBQUE7S0FDVCxDQUFDLENBQUM7SUFFSCxJQUFJLFFBQVEsRUFBRTtRQUNWLE9BQU8sV0FDSCxXQUFXLEVBQUUsTUFBTSxFQUNuQixlQUFlLEVBQUUsVUFBVSxFQUMzQixTQUFTLEVBQUUsT0FBRSw4QkFBQyxpQkFBTyxDQUFDLFlBQVksVUFBSyxVQUFVLFlBQ2pELE9BQU8sRUFBRSxlQUFlLENBQUMsT0FBTyxFQUNoQyxTQUFTLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFDcEMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxPQUFPLEVBQ2hDLElBQUksRUFBRSxJQUFJLElBQUksUUFBUSxFQUN0QixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxDQUFDLElBQzVDLFNBQVMsQ0FDVixDQUFDO0tBQ1Y7SUFFRCxPQUFPLFdBQ0gsU0FBUyxFQUFFLE9BQUUsd0NBQUksVUFBVSxZQUMzQixJQUFJLE1BQUEsRUFDSixRQUFRLFVBQUEsSUFDTCxTQUFTLENBQ1YsQ0FBQztBQUNYLENBQUM7QUFwREQsOENBb0RDIn0=
|
package/hooks/useFocusReturn.js
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useFocusReturn = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function useFocusReturn(opened, transitionDuration, shouldReturnFocus) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var returnFocus = function () {
|
|
11
|
-
var node = lastActiveElement.current;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useOnUpdate_1 = require("./useOnUpdate");
|
|
6
|
+
function useFocusReturn(opened, transitionDuration = 0, shouldReturnFocus = true) {
|
|
7
|
+
const lastActiveElement = (0, react_1.useRef)();
|
|
8
|
+
const returnFocus = () => {
|
|
9
|
+
const node = lastActiveElement.current;
|
|
12
10
|
if (node && "focus" in node && typeof node.focus === "function") {
|
|
13
11
|
node.focus();
|
|
14
12
|
}
|
|
15
13
|
};
|
|
16
|
-
(0, useOnUpdate_1.useOnUpdate)(
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
(0, useOnUpdate_1.useOnUpdate)(() => {
|
|
15
|
+
let timeout = -1;
|
|
16
|
+
const clearFocusTimeout = (e) => {
|
|
19
17
|
if (e.key === "Tab") {
|
|
20
18
|
clearTimeout(timeout);
|
|
21
19
|
}
|
|
@@ -27,7 +25,7 @@ function useFocusReturn(opened, transitionDuration, shouldReturnFocus) {
|
|
|
27
25
|
else if (shouldReturnFocus) {
|
|
28
26
|
timeout = window.setTimeout(returnFocus, transitionDuration + 10);
|
|
29
27
|
}
|
|
30
|
-
return
|
|
28
|
+
return () => {
|
|
31
29
|
clearTimeout(timeout);
|
|
32
30
|
document.removeEventListener("keydown", clearFocusTimeout);
|
|
33
31
|
};
|
|
@@ -35,4 +33,3 @@ function useFocusReturn(opened, transitionDuration, shouldReturnFocus) {
|
|
|
35
33
|
return returnFocus;
|
|
36
34
|
}
|
|
37
35
|
exports.useFocusReturn = useFocusReturn;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9jdXNSZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRm9jdXNSZXR1cm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLDZDQUE0QztBQUU1QyxTQUFnQixjQUFjLENBQUMsTUFBZSxFQUFFLGtCQUFzQixFQUFFLGlCQUF3QjtJQUFoRCxtQ0FBQSxFQUFBLHNCQUFzQjtJQUFFLGtDQUFBLEVBQUEsd0JBQXdCO0lBQzVGLElBQU0saUJBQWlCLEdBQUcsSUFBQSxjQUFNLEdBQWUsQ0FBQztJQUNoRCxJQUFNLFdBQVcsR0FBRztRQUNoQixJQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDdkMsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQzdELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtJQUNMLENBQUMsQ0FBQztJQUVGLElBQUEseUJBQVcsRUFBQztRQUNSLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWpCLElBQU0saUJBQWlCLEdBQUcsVUFBQyxDQUFnQjtZQUN2QyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFO2dCQUNqQixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7UUFDTCxDQUFDLENBQUM7UUFFRixRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFeEQsSUFBSSxNQUFNLEVBQUU7WUFDUixpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQTRCLENBQUM7U0FDckU7YUFBTSxJQUFJLGlCQUFpQixFQUFFO1lBQzFCLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNyRTtRQUVELE9BQU87WUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQztJQUNOLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFYixPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDO0FBakNELHdDQWlDQyJ9
|
package/hooks/useFocusTrap.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { RefCallback } from "react";
|
|
2
|
+
export declare function useFocusTrap<T extends HTMLElement>(active?: boolean): RefCallback<T>;
|
package/hooks/useFocusTrap.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useFocusTrap = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useOnUnmount_1 = require("./useOnUnmount");
|
|
6
|
+
const TABBABLE_NODES = /input|select|textarea|button|object/;
|
|
7
|
+
const FOCUS_SELECTOR = "a, input, select, textarea, button, object, [tabindex]";
|
|
8
8
|
function hidden(element) {
|
|
9
9
|
return element.style.display === "none";
|
|
10
10
|
}
|
|
11
11
|
function visible(element) {
|
|
12
|
-
|
|
12
|
+
let parentElement = element;
|
|
13
13
|
while (parentElement) {
|
|
14
14
|
if (parentElement === document.body) {
|
|
15
15
|
break;
|
|
@@ -22,58 +22,57 @@ function visible(element) {
|
|
|
22
22
|
return true;
|
|
23
23
|
}
|
|
24
24
|
function getElementTabIndex(element) {
|
|
25
|
-
|
|
25
|
+
const tabIndex = element.getAttribute("tabindex");
|
|
26
26
|
if (tabIndex === null) {
|
|
27
27
|
return NaN;
|
|
28
28
|
}
|
|
29
29
|
return parseInt(tabIndex, 10);
|
|
30
30
|
}
|
|
31
31
|
function focusable(element) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
const nodeName = element.nodeName.toLowerCase();
|
|
33
|
+
const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));
|
|
34
|
+
const res = (TABBABLE_NODES.test(nodeName) && !element.disabled) ||
|
|
35
35
|
(element instanceof HTMLAnchorElement ? Boolean(element.href) || isTabIndexNotNaN : isTabIndexNotNaN);
|
|
36
36
|
return res && visible(element);
|
|
37
37
|
}
|
|
38
38
|
function tabbable(element) {
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
const tabIndex = getElementTabIndex(element);
|
|
40
|
+
const isTabIndexNaN = Number.isNaN(tabIndex);
|
|
41
41
|
return (isTabIndexNaN || tabIndex >= 0) && focusable(element);
|
|
42
42
|
}
|
|
43
43
|
function findTabbableDescendants(element) {
|
|
44
44
|
return Array.from(element.querySelectorAll(FOCUS_SELECTOR)).filter(tabbable);
|
|
45
45
|
}
|
|
46
46
|
function scopeTab(node, event) {
|
|
47
|
-
|
|
47
|
+
const _tabbable = findTabbableDescendants(node);
|
|
48
48
|
if (!_tabbable.length) {
|
|
49
49
|
event.preventDefault();
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
const finalTabbable = _tabbable[event.shiftKey ? 0 : _tabbable.length - 1];
|
|
53
|
+
const leavingFinalTabbable = finalTabbable === document.activeElement || node === document.activeElement;
|
|
54
54
|
if (!leavingFinalTabbable) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
event.preventDefault();
|
|
58
|
-
|
|
58
|
+
const target = _tabbable[event.shiftKey ? _tabbable.length - 1 : 0];
|
|
59
59
|
if (target) {
|
|
60
60
|
target.focus();
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
function createAriaHider(containerNode, selector) {
|
|
64
|
-
|
|
65
|
-
var rootNodes = Array.from(document.querySelectorAll(selector)).map(function (node) {
|
|
63
|
+
function createAriaHider(containerNode, selector = "body > :not(script)") {
|
|
64
|
+
const rootNodes = Array.from(document.querySelectorAll(selector)).map((node) => {
|
|
66
65
|
if (node.contains(containerNode)) {
|
|
67
66
|
return;
|
|
68
67
|
}
|
|
69
|
-
|
|
68
|
+
const ariaHidden = node.getAttribute("aria-hidden");
|
|
70
69
|
if (ariaHidden === null || ariaHidden === "false") {
|
|
71
70
|
node.setAttribute("aria-hidden", "true");
|
|
72
71
|
}
|
|
73
|
-
return { node
|
|
72
|
+
return { node, ariaHidden };
|
|
74
73
|
});
|
|
75
|
-
return
|
|
76
|
-
rootNodes.forEach(
|
|
74
|
+
return () => {
|
|
75
|
+
rootNodes.forEach((item) => {
|
|
77
76
|
if (!item) {
|
|
78
77
|
return;
|
|
79
78
|
}
|
|
@@ -86,12 +85,11 @@ function createAriaHider(containerNode, selector) {
|
|
|
86
85
|
});
|
|
87
86
|
};
|
|
88
87
|
}
|
|
89
|
-
function useFocusTrap(active) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var setRef = (0, react_1.useCallback)(function (node) {
|
|
88
|
+
function useFocusTrap(active = true) {
|
|
89
|
+
const ref = (0, react_1.useRef)();
|
|
90
|
+
const restoreAria = (0, react_1.useRef)();
|
|
91
|
+
const timer = (0, react_1.useRef)();
|
|
92
|
+
const setRef = (0, react_1.useCallback)((node) => {
|
|
95
93
|
if (!active) {
|
|
96
94
|
ref.current = null;
|
|
97
95
|
return;
|
|
@@ -100,11 +98,11 @@ function useFocusTrap(active) {
|
|
|
100
98
|
restoreAria.current();
|
|
101
99
|
}
|
|
102
100
|
if (node) {
|
|
103
|
-
|
|
101
|
+
const processNode = (_node) => {
|
|
104
102
|
restoreAria.current = createAriaHider(_node);
|
|
105
|
-
|
|
103
|
+
let focusElement = node.querySelector("[data-autofocus]");
|
|
106
104
|
if (!focusElement) {
|
|
107
|
-
|
|
105
|
+
const children = Array.from(node.querySelectorAll(FOCUS_SELECTOR));
|
|
108
106
|
focusElement = children.find(tabbable) || children.find(focusable) || null;
|
|
109
107
|
if (!focusElement && focusable(node)) {
|
|
110
108
|
focusElement = node;
|
|
@@ -115,10 +113,10 @@ function useFocusTrap(active) {
|
|
|
115
113
|
}
|
|
116
114
|
};
|
|
117
115
|
// Delay processing the HTML node by a frame. This ensures focus is assigned correctly.
|
|
118
|
-
timer.current = window.setTimeout(
|
|
116
|
+
timer.current = window.setTimeout(() => {
|
|
119
117
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
120
118
|
if (node.ownerDocument) {
|
|
121
|
-
|
|
119
|
+
processNode(node);
|
|
122
120
|
}
|
|
123
121
|
});
|
|
124
122
|
ref.current = node;
|
|
@@ -127,23 +125,22 @@ function useFocusTrap(active) {
|
|
|
127
125
|
ref.current = null;
|
|
128
126
|
}
|
|
129
127
|
}, [active]);
|
|
130
|
-
(0, react_1.useEffect)(
|
|
128
|
+
(0, react_1.useEffect)(() => {
|
|
131
129
|
if (!active) {
|
|
132
130
|
return;
|
|
133
131
|
}
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
const handler = (e) => {
|
|
133
|
+
const node = ref.current;
|
|
136
134
|
if (e.key === "Tab" && node) {
|
|
137
135
|
scopeTab(node, e);
|
|
138
136
|
}
|
|
139
137
|
};
|
|
140
138
|
document.addEventListener("keydown", handler);
|
|
141
|
-
return
|
|
139
|
+
return () => {
|
|
142
140
|
document.removeEventListener("keydown", handler);
|
|
143
141
|
};
|
|
144
142
|
}, [active]);
|
|
145
|
-
(0, useOnUnmount_1.useOnUnmount)(
|
|
143
|
+
(0, useOnUnmount_1.useOnUnmount)(() => clearTimeout(timer.current));
|
|
146
144
|
return setRef;
|
|
147
145
|
}
|
|
148
146
|
exports.useFocusTrap = useFocusTrap;
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9jdXNUcmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUZvY3VzVHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0U7QUFDcEUsK0NBQThDO0FBRTlDLElBQU0sY0FBYyxHQUFHLHFDQUFxQyxDQUFDO0FBQzdELElBQU0sY0FBYyxHQUFHLHdEQUF3RCxDQUFDO0FBRWhGLFNBQVMsTUFBTSxDQUFDLE9BQW9CO0lBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxPQUFvQjtJQUNqQyxJQUFJLGFBQWEsR0FBdUIsT0FBTyxDQUFDO0lBQ2hELE9BQU8sYUFBYSxFQUFFO1FBQ2xCLElBQUksYUFBYSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDakMsTUFBTTtTQUNUO1FBRUQsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxhQUFhLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQztLQUMvQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE9BQW9CO0lBQzVDLElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ25CLE9BQU8sR0FBRyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQW9CO0lBQ25DLElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEQsSUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENB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
|
package/hooks/useInputFocus.js
CHANGED
|
@@ -1,44 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
3
|
exports.useInputFocus = void 0;
|
|
20
|
-
|
|
4
|
+
const react_1 = require("react");
|
|
21
5
|
function useInputFocus(focusRef, onBlur, onFocus) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
6
|
+
const [focused, setFocused] = (0, react_1.useState)(false);
|
|
7
|
+
const focus = (0, react_1.useCallback)(() => {
|
|
8
|
+
const node = focusRef.current;
|
|
25
9
|
if (node) {
|
|
26
10
|
node.focus();
|
|
27
11
|
}
|
|
28
12
|
}, [focusRef]);
|
|
29
|
-
|
|
13
|
+
const _onFocus = (0, react_1.useCallback)((e) => {
|
|
30
14
|
setFocused(true);
|
|
31
15
|
if (onFocus) {
|
|
32
16
|
onFocus(e);
|
|
33
17
|
}
|
|
34
18
|
}, [onFocus]);
|
|
35
|
-
|
|
19
|
+
const _onBlur = (0, react_1.useCallback)((e) => {
|
|
36
20
|
setFocused(false);
|
|
37
21
|
if (onBlur) {
|
|
38
22
|
onBlur(e);
|
|
39
23
|
}
|
|
40
24
|
}, [onBlur]);
|
|
41
|
-
return { focused
|
|
25
|
+
return { focused, focus, onBlur: _onBlur, onFocus: _onFocus };
|
|
42
26
|
}
|
|
43
27
|
exports.useInputFocus = useInputFocus;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSW5wdXRGb2N1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VJbnB1dEZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0Y7QUFFL0YsU0FBZ0IsYUFBYSxDQUN6QixRQUFzQixFQUN0QixNQUE2QixFQUM3QixPQUE4QjtJQUV4QixJQUFBLEtBQUEsT0FBd0IsSUFBQSxnQkFBUSxFQUFVLEtBQUssQ0FBQyxJQUFBLEVBQS9DLE9BQU8sUUFBQSxFQUFFLFVBQVUsUUFBNEIsQ0FBQztJQUV2RCxJQUFNLEtBQUssR0FBRyxJQUFBLG1CQUFXLEVBQWlDO1FBQ3RELElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWYsSUFBTSxRQUFRLEdBQUcsSUFBQSxtQkFBVyxFQUN4QixVQUFBLENBQUM7UUFDRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsSUFBSSxPQUFPLEVBQUU7WUFDVCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDZDtJQUNMLENBQUMsRUFDRCxDQUFDLE9BQU8sQ0FBQyxDQUNaLENBQUM7SUFFRixJQUFNLE9BQU8sR0FBRyxJQUFBLG1CQUFXLEVBQ3ZCLFVBQUEsQ0FBQztRQUNHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiO0lBQ0wsQ0FBQyxFQUNELENBQUMsTUFBTSxDQUFDLENBQ1gsQ0FBQztJQUVGLE9BQU8sRUFBRSxPQUFPLFNBQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUNsRSxDQUFDO0FBbkNELHNDQW1DQyJ9
|
package/hooks/useIsMounted.js
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
3
|
exports.useIsMounted = void 0;
|
|
20
|
-
|
|
4
|
+
const react_1 = require("react");
|
|
21
5
|
function useIsMounted() {
|
|
22
|
-
|
|
23
|
-
(0, react_1.useEffect)(
|
|
6
|
+
const [isMounted, setIsMounted] = (0, react_1.useState)(false);
|
|
7
|
+
(0, react_1.useEffect)(() => setIsMounted(true), []);
|
|
24
8
|
return isMounted;
|
|
25
9
|
}
|
|
26
10
|
exports.useIsMounted = useIsMounted;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSXNNb3VudGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUlzTW91bnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQTRDO0FBRTVDLFNBQWdCLFlBQVk7SUFDbEIsSUFBQSxLQUFBLE9BQTRCLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsSUFBQSxFQUExQyxTQUFTLFFBQUEsRUFBRSxZQUFZLFFBQW1CLENBQUM7SUFFbEQsSUFBQSxpQkFBUyxFQUFDLGNBQU0sT0FBQSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQWxCLENBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFeEMsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQU5ELG9DQU1DIn0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useIsomorphicLayoutEffect = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const isBrowser_1 = require("../utils/isBrowser");
|
|
6
6
|
exports.useIsomorphicLayoutEffect = isBrowser_1.isBrowser ? react_1.useLayoutEffect : react_1.useEffect;
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFtRDtBQUNuRCxnREFBK0M7QUFFbEMsUUFBQSx5QkFBeUIsR0FBRyxxQkFBUyxDQUFDLENBQUMsQ0FBQyx1QkFBZSxDQUFDLENBQUMsQ0FBQyxpQkFBUyxDQUFDIn0=
|
package/hooks/useKey.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RefObject } from "react";
|
|
2
|
-
|
|
3
|
-
export
|
|
2
|
+
type KeyPredicate = (e: KeyboardEvent) => boolean;
|
|
3
|
+
export type KeyFilter = null | undefined | string | KeyPredicate;
|
|
4
4
|
export interface UseKeyOptions<T extends HTMLElement> {
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
targetRef?: RefObject<T>;
|
package/hooks/useKey.js
CHANGED
|
@@ -1,32 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useKey = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function useKey(keyFilter, callback, _a) {
|
|
13
|
-
var _b = _a === void 0 ? {} : _a, disabled = _b.disabled, targetRef = _b.targetRef, _c = _b.type, type = _c === void 0 ? "keydown" : _c;
|
|
14
|
-
(0, react_1.useEffect)(function () {
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const createKeyPredicate = (keyFilter) => typeof keyFilter === "function"
|
|
6
|
+
? keyFilter
|
|
7
|
+
: typeof keyFilter === "string"
|
|
8
|
+
? (e) => e.key === keyFilter
|
|
9
|
+
: () => false;
|
|
10
|
+
function useKey(keyFilter, callback, { disabled, targetRef, type = "keydown" } = {}) {
|
|
11
|
+
(0, react_1.useEffect)(() => {
|
|
15
12
|
if (disabled) {
|
|
16
13
|
return;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const thisNode = (targetRef ? targetRef.current : document);
|
|
16
|
+
const predicate = createKeyPredicate(keyFilter);
|
|
17
|
+
const handler = (e) => {
|
|
21
18
|
if (predicate(e)) {
|
|
22
19
|
callback(e);
|
|
23
20
|
}
|
|
24
21
|
};
|
|
25
22
|
thisNode === null || thisNode === void 0 ? void 0 : thisNode.addEventListener(type, handler);
|
|
26
|
-
return
|
|
23
|
+
return () => {
|
|
27
24
|
thisNode === null || thisNode === void 0 ? void 0 : thisNode.removeEventListener(type, handler);
|
|
28
25
|
};
|
|
29
26
|
}, [callback, disabled, keyFilter, targetRef, type]);
|
|
30
27
|
}
|
|
31
28
|
exports.useKey = useKey;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlS2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNkM7QUFLN0MsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLFNBQW9CO0lBQzVDLE9BQUEsT0FBTyxTQUFTLEtBQUssVUFBVTtRQUMzQixDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxPQUFPLFNBQVMsS0FBSyxRQUFRO1lBQy9CLENBQUMsQ0FBQyxVQUFDLENBQWdCLElBQUssT0FBQSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBbkIsQ0FBbUI7WUFDM0MsQ0FBQyxDQUFDLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSztBQUpqQixDQUlpQixDQUFDO0FBUXRCLFNBQWdCLE1BQU0sQ0FDbEIsU0FBb0IsRUFDcEIsUUFBb0MsRUFDcEMsRUFBeUU7UUFBekUscUJBQXVFLEVBQUUsS0FBQSxFQUF2RSxRQUFRLGNBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxZQUFnQixFQUFoQixJQUFJLG1CQUFHLFNBQVMsS0FBQTtJQUV2QyxJQUFBLGlCQUFTLEVBQUM7UUFDTixJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU87U0FDVjtRQUNELElBQU0sUUFBUSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQXVCLENBQUM7UUFDbEYsSUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBTSxPQUFPLEdBQUcsVUFBQyxDQUFnQjtZQUM3QixJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDZCxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDZjtRQUNMLENBQUMsQ0FBQztRQUNGLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTztZQUNILFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQXJCRCx3QkFxQkMifQ==
|
package/hooks/useLatest.d.ts
CHANGED