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