@elliemae/ds-utilities 1.60.0 → 2.0.0-alpha.12
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/cjs/capitalize.js +7 -0
- package/cjs/compose.js +8 -8
- package/cjs/getComponentFromProps.js +13 -7
- package/cjs/hooks/index.js +33 -51
- package/cjs/hooks/useCancellableDelayedCallback.js +6 -8
- package/cjs/hooks/useDerivedStateFromProps.js +28 -35
- package/cjs/hooks/useExecutionTimer.js +7 -11
- package/cjs/hooks/useExpandState.js +53 -59
- package/cjs/hooks/useHotkeys.js +11 -12
- package/cjs/hooks/useHoverHandlersDelay.js +10 -11
- package/cjs/hooks/useOnElementResize.js +11 -26
- package/cjs/hooks/useParentElement.js +4 -13
- package/cjs/hooks/usePrevious.js +2 -3
- package/cjs/hooks/useResizeObserver.js +11 -21
- package/cjs/hooks/useSetRef.js +3 -4
- package/cjs/hooks/useShouldRecalculate.js +1 -2
- package/cjs/hooks/useWindowScrollerList.js +17 -16
- package/cjs/hooks/useWindowSize.js +4 -13
- package/cjs/index.js +73 -162
- package/cjs/onClickHandlerForNonInteractiveElements.js +13 -14
- package/cjs/operators.js +19 -56
- package/cjs/platform.js +2 -3
- package/cjs/reactTypesUtility.js +1 -2
- package/cjs/scrollingTimer.js +3 -4
- package/cjs/system.js +11 -5
- package/cjs/timeUtils.js +15 -15
- package/cjs/utils.js +70 -149
- package/cjs/validations.js +17 -17
- package/esm/capitalize.js +3 -0
- package/esm/compose.js +8 -8
- package/esm/getComponentFromProps.js +12 -5
- package/esm/hooks/index.js +1 -10
- package/esm/hooks/useCancellableDelayedCallback.js +6 -8
- package/esm/hooks/useDerivedStateFromProps.js +29 -32
- package/esm/hooks/useExecutionTimer.js +7 -11
- package/esm/hooks/useExpandState.js +51 -56
- package/esm/hooks/useHotkeys.js +10 -11
- package/esm/hooks/useHoverHandlersDelay.js +10 -11
- package/esm/hooks/useOnElementResize.js +11 -22
- package/esm/hooks/useParentElement.js +4 -9
- package/esm/hooks/usePrevious.js +2 -3
- package/esm/hooks/useResizeObserver.js +11 -20
- package/esm/hooks/useSetRef.js +3 -4
- package/esm/hooks/useShouldRecalculate.js +1 -2
- package/esm/hooks/useWindowScrollerList.js +18 -17
- package/esm/hooks/useWindowSize.js +4 -9
- package/esm/index.js +2 -9
- package/esm/onClickHandlerForNonInteractiveElements.js +13 -14
- package/esm/operators.js +19 -52
- package/esm/platform.js +2 -3
- package/esm/reactTypesUtility.js +0 -1
- package/esm/scrollingTimer.js +3 -4
- package/esm/system.js +11 -5
- package/esm/timeUtils.js +15 -15
- package/esm/utils.js +31 -35
- package/esm/validations.js +17 -17
- package/package.json +135 -10
- package/types/capitalize.d.ts +1 -0
- package/types/compose.d.ts +11 -0
- package/types/getComponentFromProps.d.ts +2 -0
- package/types/hooks/index.d.ts +18 -0
- package/types/hooks/useCancellableDelayedCallback.d.ts +1 -0
- package/types/hooks/useDerivedStateFromProps.d.ts +1 -0
- package/types/hooks/useExecutionTimer.d.ts +1 -0
- package/types/hooks/useExpandState.d.ts +22 -0
- package/types/hooks/useHotkeys.d.ts +5 -0
- package/types/hooks/useHoverHandlersDelay.d.ts +9 -0
- package/types/hooks/useOnElementResize.d.ts +2 -0
- package/types/hooks/useParentElement.d.ts +1 -0
- package/types/hooks/usePrevious.d.ts +2 -0
- package/types/hooks/useResizeObserver.d.ts +2 -0
- package/types/hooks/useSetRef.d.ts +2 -0
- package/types/hooks/useShouldRecalculate.d.ts +1 -0
- package/types/hooks/useWindowScrollerList.d.ts +4 -0
- package/types/hooks/useWindowSize.d.ts +1 -0
- package/types/index.d.ts +13 -0
- package/types/onClickHandlerForNonInteractiveElements.d.ts +12 -0
- package/types/operators.d.ts +31 -0
- package/types/platform.d.ts +2 -0
- package/types/reactTypesUtility.d.ts +6 -0
- package/types/scrollingTimer.d.ts +1 -0
- package/types/system.d.ts +3 -0
- package/types/timeUtils.d.ts +7 -0
- package/types/utils.d.ts +23 -0
- package/types/validations.d.ts +23 -0
- package/cjs/compose.js.map +0 -1
- package/cjs/getComponentFromProps.js.map +0 -1
- package/cjs/hooks/index.js.map +0 -1
- package/cjs/hooks/useCancellableDelayedCallback.js.map +0 -1
- package/cjs/hooks/useDerivedStateFromProps.js.map +0 -1
- package/cjs/hooks/useExecutionTimer.js.map +0 -1
- package/cjs/hooks/useExpandState.js.map +0 -1
- package/cjs/hooks/useHotkeys.js.map +0 -1
- package/cjs/hooks/useHoverHandlersDelay.js.map +0 -1
- package/cjs/hooks/useOnElementResize.js.map +0 -1
- package/cjs/hooks/useParentElement.js.map +0 -1
- package/cjs/hooks/usePrevious.js.map +0 -1
- package/cjs/hooks/useResizeObserver.js.map +0 -1
- package/cjs/hooks/useSetRef.js.map +0 -1
- package/cjs/hooks/useShouldRecalculate.js.map +0 -1
- package/cjs/hooks/useWindowScrollerList.js.map +0 -1
- package/cjs/hooks/useWindowSize.js.map +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/onClickHandlerForNonInteractiveElements.js.map +0 -1
- package/cjs/operators.js.map +0 -1
- package/cjs/platform.js.map +0 -1
- package/cjs/reactTypesUtility.js.map +0 -1
- package/cjs/scrollingTimer.js.map +0 -1
- package/cjs/system.js.map +0 -1
- package/cjs/timeUtils.js.map +0 -1
- package/cjs/utils.js.map +0 -1
- package/cjs/validations.js.map +0 -1
- package/compose/package.json +0 -10
- package/esm/compose.js.map +0 -1
- package/esm/getComponentFromProps.js.map +0 -1
- package/esm/hooks/index.js.map +0 -1
- package/esm/hooks/useCancellableDelayedCallback.js.map +0 -1
- package/esm/hooks/useDerivedStateFromProps.js.map +0 -1
- package/esm/hooks/useExecutionTimer.js.map +0 -1
- package/esm/hooks/useExpandState.js.map +0 -1
- package/esm/hooks/useHotkeys.js.map +0 -1
- package/esm/hooks/useHoverHandlersDelay.js.map +0 -1
- package/esm/hooks/useOnElementResize.js.map +0 -1
- package/esm/hooks/useParentElement.js.map +0 -1
- package/esm/hooks/usePrevious.js.map +0 -1
- package/esm/hooks/useResizeObserver.js.map +0 -1
- package/esm/hooks/useSetRef.js.map +0 -1
- package/esm/hooks/useShouldRecalculate.js.map +0 -1
- package/esm/hooks/useWindowScrollerList.js.map +0 -1
- package/esm/hooks/useWindowSize.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/onClickHandlerForNonInteractiveElements.js.map +0 -1
- package/esm/operators.js.map +0 -1
- package/esm/platform.js.map +0 -1
- package/esm/reactTypesUtility.js.map +0 -1
- package/esm/scrollingTimer.js.map +0 -1
- package/esm/system.js.map +0 -1
- package/esm/timeUtils.js.map +0 -1
- package/esm/utils.js.map +0 -1
- package/esm/validations.js.map +0 -1
- package/getComponentFromProps/package.json +0 -10
- package/hooks/package.json +0 -10
- package/hooks/useCancellableDelayedCallback/package.json +0 -10
- package/hooks/useDerivedStateFromProps/package.json +0 -10
- package/hooks/useExecutionTimer/package.json +0 -10
- package/hooks/useExpandState/package.json +0 -10
- package/hooks/useHotkeys/package.json +0 -10
- package/hooks/useHoverHandlersDelay/package.json +0 -10
- package/hooks/useOnElementResize/package.json +0 -10
- package/hooks/useParentElement/package.json +0 -10
- package/hooks/usePrevious/package.json +0 -10
- package/hooks/useResizeObserver/package.json +0 -10
- package/hooks/useSetRef/package.json +0 -10
- package/hooks/useShouldRecalculate/package.json +0 -10
- package/hooks/useWindowScrollerList/package.json +0 -10
- package/hooks/useWindowSize/package.json +0 -10
- package/onClickHandlerForNonInteractiveElements/package.json +0 -10
- package/operators/package.json +0 -10
- package/platform/package.json +0 -10
- package/reactTypesUtility/package.json +0 -10
- package/scrollingTimer/package.json +0 -10
- package/system/package.json +0 -10
- package/timeUtils/package.json +0 -10
- package/utils/package.json +0 -10
- package/validations/package.json +0 -10
|
@@ -1,33 +1,29 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import { useRef } from 'react';
|
|
2
3
|
|
|
3
4
|
function useExecutionDelay(startFn, cleanFn, delayTime) {
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
const startTimer = useRef();
|
|
6
|
+
const closeTimer = useRef();
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
const startFunction = function () {
|
|
8
9
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
9
10
|
args[_key] = arguments[_key];
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
clearTimeout(closeTimer.current);
|
|
13
|
-
startTimer.current = setTimeout(
|
|
14
|
-
return startFn.apply(void 0, args);
|
|
15
|
-
}, delayTime);
|
|
14
|
+
startTimer.current = setTimeout(() => startFn(...args), delayTime);
|
|
16
15
|
};
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
const cleanFunction = function () {
|
|
19
18
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
20
19
|
args[_key2] = arguments[_key2];
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
clearTimeout(startTimer.current);
|
|
24
|
-
closeTimer.current = setTimeout(
|
|
25
|
-
return cleanFn.apply(void 0, args);
|
|
26
|
-
}, 30);
|
|
23
|
+
closeTimer.current = setTimeout(() => cleanFn(...args), 30);
|
|
27
24
|
};
|
|
28
25
|
|
|
29
26
|
return [startFunction, cleanFunction];
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
export { useExecutionDelay as default };
|
|
33
|
-
//# sourceMappingURL=useExecutionTimer.js.map
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
2
3
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
4
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
5
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
6
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
7
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
3
8
|
import { useMemo } from 'react';
|
|
4
|
-
import '
|
|
9
|
+
import 'core-js/modules/esnext.async-iterator.reduce.js';
|
|
10
|
+
import 'core-js/modules/esnext.iterator.reduce.js';
|
|
5
11
|
import { isFunction } from 'lodash';
|
|
6
12
|
import useDerivedStateFromProp from './useDerivedStateFromProps.js';
|
|
7
13
|
|
|
@@ -9,8 +15,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
9
15
|
|
|
10
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
11
17
|
|
|
12
|
-
|
|
13
|
-
|
|
18
|
+
const toggleStateInObject = (obj, key, value) => {
|
|
19
|
+
const nextObj = _objectSpread({}, obj);
|
|
14
20
|
|
|
15
21
|
if (nextObj[key]) {
|
|
16
22
|
delete nextObj[key];
|
|
@@ -21,41 +27,29 @@ var toggleStateInObject = function toggleStateInObject(obj, key, value) {
|
|
|
21
27
|
return nextObj;
|
|
22
28
|
};
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
return null;
|
|
26
|
-
};
|
|
30
|
+
const noop = () => null;
|
|
27
31
|
|
|
28
32
|
function useExpandState(_ref) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
setExpanded = _useDerivedStateFromP2[1];
|
|
47
|
-
|
|
48
|
-
var isExpandedAll = useMemo(function () {
|
|
49
|
-
return Object.keys(expanded).length === items.length;
|
|
50
|
-
}, [expanded, items]);
|
|
51
|
-
|
|
52
|
-
var toggleExpandAll = function toggleExpandAll() {
|
|
53
|
-
var stateData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
54
|
-
setExpanded(function () {
|
|
55
|
-
var nextState = {};
|
|
33
|
+
let {
|
|
34
|
+
items = [],
|
|
35
|
+
itemKey = 'id',
|
|
36
|
+
expanded: expandedProp = {},
|
|
37
|
+
onExpand,
|
|
38
|
+
onExpandChange = noop,
|
|
39
|
+
onExpandAll = noop,
|
|
40
|
+
onToggleExpand,
|
|
41
|
+
onCollapse
|
|
42
|
+
} = _ref;
|
|
43
|
+
const [expanded, setExpanded] = useDerivedStateFromProp(expandedProp);
|
|
44
|
+
const isExpandedAll = useMemo(() => Object.keys(expanded).length === items.length, [expanded, items]);
|
|
45
|
+
|
|
46
|
+
const toggleExpandAll = function () {
|
|
47
|
+
let stateData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
48
|
+
setExpanded(() => {
|
|
49
|
+
const nextState = {};
|
|
56
50
|
|
|
57
51
|
if (!isExpandedAll) {
|
|
58
|
-
items.forEach(
|
|
52
|
+
items.forEach(item => {
|
|
59
53
|
nextState[item[itemKey]] = stateData;
|
|
60
54
|
});
|
|
61
55
|
}
|
|
@@ -66,46 +60,48 @@ function useExpandState(_ref) {
|
|
|
66
60
|
});
|
|
67
61
|
};
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
const expand = function (item) {
|
|
64
|
+
let stateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
71
65
|
if (!item) return;
|
|
72
66
|
|
|
73
67
|
if (isFunction(onExpand)) {
|
|
74
68
|
onExpand(item);
|
|
75
69
|
}
|
|
76
70
|
|
|
77
|
-
setExpanded(
|
|
78
|
-
|
|
71
|
+
setExpanded(prevState => {
|
|
72
|
+
const key = item[itemKey];
|
|
79
73
|
|
|
80
|
-
|
|
74
|
+
const nextState = _objectSpread(_objectSpread({}, prevState), {}, {
|
|
75
|
+
[key]: stateData
|
|
76
|
+
});
|
|
81
77
|
|
|
82
78
|
onExpandChange(nextState, item);
|
|
83
79
|
return nextState;
|
|
84
80
|
});
|
|
85
81
|
};
|
|
86
82
|
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
const toggleExpand = function (item) {
|
|
84
|
+
let stateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
89
85
|
|
|
90
86
|
if (isFunction(onToggleExpand)) {
|
|
91
87
|
onToggleExpand(item);
|
|
92
88
|
}
|
|
93
89
|
|
|
94
|
-
setExpanded(
|
|
95
|
-
|
|
96
|
-
|
|
90
|
+
setExpanded(prevState => {
|
|
91
|
+
const key = item[itemKey];
|
|
92
|
+
const nextState = toggleStateInObject(prevState, key, stateData);
|
|
97
93
|
onExpandChange(nextState, item);
|
|
98
94
|
return nextState;
|
|
99
95
|
});
|
|
100
96
|
};
|
|
101
97
|
|
|
102
|
-
|
|
98
|
+
const collapse = item => {
|
|
103
99
|
if (isFunction(onCollapse)) {
|
|
104
100
|
onCollapse(item);
|
|
105
101
|
}
|
|
106
102
|
|
|
107
|
-
setExpanded(
|
|
108
|
-
|
|
103
|
+
setExpanded(prevState => {
|
|
104
|
+
const nextState = _objectSpread({}, prevState);
|
|
109
105
|
|
|
110
106
|
delete nextState[item[itemKey]];
|
|
111
107
|
onExpandChange(nextState, item);
|
|
@@ -115,18 +111,17 @@ function useExpandState(_ref) {
|
|
|
115
111
|
|
|
116
112
|
return {
|
|
117
113
|
state: {
|
|
118
|
-
expanded
|
|
119
|
-
isExpandedAll
|
|
114
|
+
expanded,
|
|
115
|
+
isExpandedAll
|
|
120
116
|
},
|
|
121
117
|
actions: {
|
|
122
|
-
expand
|
|
123
|
-
toggleExpandAll
|
|
124
|
-
toggleExpand
|
|
125
|
-
collapse
|
|
118
|
+
expand,
|
|
119
|
+
toggleExpandAll,
|
|
120
|
+
toggleExpand,
|
|
121
|
+
collapse
|
|
126
122
|
},
|
|
127
|
-
setExpanded
|
|
123
|
+
setExpanded
|
|
128
124
|
};
|
|
129
125
|
}
|
|
130
126
|
|
|
131
127
|
export { useExpandState as default };
|
|
132
|
-
//# sourceMappingURL=useExpandState.js.map
|
package/esm/hooks/useHotkeys.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import hotkeys from 'hotkeys-js';
|
|
2
3
|
import { useCallback, useEffect } from 'react';
|
|
3
4
|
|
|
4
5
|
function useHotkeys(_ref) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
let {
|
|
7
|
+
keys,
|
|
8
|
+
handler,
|
|
9
|
+
options = {}
|
|
10
|
+
} = _ref;
|
|
11
|
+
let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
12
|
+
const memoizedCallback = useCallback(handler, deps);
|
|
13
|
+
useEffect(() => {
|
|
12
14
|
hotkeys(keys, options, memoizedCallback);
|
|
13
|
-
return
|
|
14
|
-
return hotkeys.unbind(keys);
|
|
15
|
-
};
|
|
15
|
+
return () => hotkeys.unbind(keys);
|
|
16
16
|
}, [memoizedCallback]);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export { useHotkeys as default };
|
|
20
|
-
//# sourceMappingURL=useHotkeys.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { useRef, useCallback } from 'react';
|
|
2
2
|
|
|
3
3
|
function useHoverHandlersDelay(_ref) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
let {
|
|
5
|
+
onMouseOver,
|
|
6
|
+
onMouseLeave,
|
|
7
|
+
hideDelay = 300,
|
|
8
|
+
showDelay = 300
|
|
9
|
+
} = _ref;
|
|
10
|
+
const hideTimer = useRef();
|
|
11
|
+
const showTimer = useRef();
|
|
12
|
+
const delayedHide = useCallback(() => {
|
|
13
13
|
clearTimeout(showTimer.current);
|
|
14
14
|
hideTimer.current = setTimeout(onMouseLeave, hideDelay);
|
|
15
15
|
}, []);
|
|
16
|
-
|
|
16
|
+
const delayedShow = useCallback(() => {
|
|
17
17
|
clearTimeout(hideTimer.current);
|
|
18
18
|
showTimer.current = setTimeout(onMouseOver, showDelay);
|
|
19
19
|
}, []);
|
|
@@ -24,4 +24,3 @@ function useHoverHandlersDelay(_ref) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export { useHoverHandlersDelay as default };
|
|
27
|
-
//# sourceMappingURL=useHoverHandlersDelay.js.map
|
|
@@ -1,23 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
2
|
import { useState, useRef, useEffect, useMemo } from 'react';
|
|
3
3
|
|
|
4
4
|
// Taken and modified from https://stackoverflow.com/a/60218754
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const useOnElementResize = targetRef => {
|
|
7
7
|
var _targetRef$current, _targetRef$current2;
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _useState3 = useState(targetRef.current ? (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.offsetWidth : 0),
|
|
15
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
16
|
-
height = _useState4[0],
|
|
17
|
-
setHeight = _useState4[1];
|
|
18
|
-
|
|
19
|
-
var observer = useRef(null);
|
|
20
|
-
useEffect(function () {
|
|
9
|
+
const [width, setWidth] = useState(targetRef.current ? (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.offsetWidth : 0);
|
|
10
|
+
const [height, setHeight] = useState(targetRef.current ? (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.offsetWidth : 0);
|
|
11
|
+
const observer = useRef(null);
|
|
12
|
+
useEffect(() => {
|
|
21
13
|
function outputsize() {
|
|
22
14
|
var _targetRef$current3, _targetRef$current4;
|
|
23
15
|
|
|
@@ -26,19 +18,16 @@ var useOnElementResize = function useOnElementResize(targetRef) {
|
|
|
26
18
|
}
|
|
27
19
|
|
|
28
20
|
observer.current = new ResizeObserver(outputsize).observe(targetRef.current);
|
|
29
|
-
return
|
|
21
|
+
return () => {
|
|
30
22
|
var _observer$current;
|
|
31
23
|
|
|
32
24
|
(_observer$current = observer.current) === null || _observer$current === void 0 ? void 0 : _observer$current.disconnect();
|
|
33
25
|
};
|
|
34
26
|
}, [targetRef]);
|
|
35
|
-
return useMemo(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
}, [width, height]);
|
|
27
|
+
return useMemo(() => ({
|
|
28
|
+
width,
|
|
29
|
+
height
|
|
30
|
+
}), [width, height]);
|
|
41
31
|
};
|
|
42
32
|
|
|
43
33
|
export { useOnElementResize };
|
|
44
|
-
//# sourceMappingURL=useOnElementResize.js.map
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
parent = _useState2[0],
|
|
8
|
-
setParent = _useState2[1];
|
|
9
|
-
|
|
10
|
-
useEffect(function () {
|
|
4
|
+
const useParentElement = ref => {
|
|
5
|
+
const [parent, setParent] = useState(ref.current);
|
|
6
|
+
useEffect(() => {
|
|
11
7
|
if (ref.current) setParent(ref.current.parentNode);
|
|
12
8
|
});
|
|
13
9
|
return parent;
|
|
14
10
|
};
|
|
15
11
|
|
|
16
12
|
export { useParentElement };
|
|
17
|
-
//# sourceMappingURL=useParentElement.js.map
|
package/esm/hooks/usePrevious.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
3
|
function usePrevious(value) {
|
|
4
|
-
|
|
5
|
-
useEffect(
|
|
4
|
+
const ref = useRef();
|
|
5
|
+
useEffect(() => {
|
|
6
6
|
ref.current = value;
|
|
7
7
|
}, [value]);
|
|
8
8
|
return ref.current;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export { usePrevious as default };
|
|
12
|
-
//# sourceMappingURL=usePrevious.js.map
|
|
@@ -1,35 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import raf from 'raf';
|
|
4
4
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
5
5
|
|
|
6
6
|
function useResizeObserver(handler, el) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
node = _useState2[0],
|
|
10
|
-
setRef = _useState2[1];
|
|
11
|
-
|
|
12
|
-
var resizeObserver = new ResizeObserver(function (entries) {
|
|
7
|
+
const [node, setRef] = useState(el);
|
|
8
|
+
const resizeObserver = new ResizeObserver(entries => {
|
|
13
9
|
if (!Array.isArray(entries)) return;
|
|
14
10
|
if (!entries.length) return;
|
|
15
|
-
|
|
11
|
+
const entry = entries[0]; // execute on the next animation frame
|
|
16
12
|
|
|
17
|
-
raf(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, entry.target);
|
|
22
|
-
});
|
|
13
|
+
raf(() => handler({
|
|
14
|
+
width: entry.target.offsetWidth,
|
|
15
|
+
height: entry.target.offsetHeight
|
|
16
|
+
}, entry.target));
|
|
23
17
|
});
|
|
24
|
-
|
|
25
|
-
useEffect(
|
|
18
|
+
const htmlEl = el || node;
|
|
19
|
+
useEffect(() => {
|
|
26
20
|
if (htmlEl) resizeObserver.observe(htmlEl);
|
|
27
|
-
return
|
|
28
|
-
return htmlEl && resizeObserver.unobserve(htmlEl);
|
|
29
|
-
};
|
|
21
|
+
return () => htmlEl && resizeObserver.unobserve(htmlEl);
|
|
30
22
|
}, [htmlEl]);
|
|
31
23
|
return [setRef];
|
|
32
24
|
}
|
|
33
25
|
|
|
34
26
|
export { useResizeObserver as default };
|
|
35
|
-
//# sourceMappingURL=useResizeObserver.js.map
|
package/esm/hooks/useSetRef.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { useRef, useCallback } from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const useSetRef = initial => {
|
|
4
|
+
const ref = useRef(initial);
|
|
5
|
+
const setRef = useCallback(node => {
|
|
6
6
|
ref.current = node;
|
|
7
7
|
}, []);
|
|
8
8
|
return [ref, setRef];
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { useSetRef };
|
|
12
|
-
//# sourceMappingURL=useSetRef.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
2
|
|
|
3
3
|
function useShouldRecalculate(bool) {
|
|
4
|
-
|
|
4
|
+
const prevValueRef = useRef(0);
|
|
5
5
|
|
|
6
6
|
if (!bool) {
|
|
7
7
|
// If we need to recalculate, change the value we return
|
|
@@ -13,4 +13,3 @@ function useShouldRecalculate(bool) {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { useShouldRecalculate as default };
|
|
16
|
-
//# sourceMappingURL=useShouldRecalculate.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
3
|
function getScrollOffset() {
|
|
4
|
-
|
|
4
|
+
let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
5
5
|
scrollTop: 0,
|
|
6
6
|
scrollLeft: 0
|
|
7
7
|
};
|
|
@@ -12,9 +12,9 @@ function getScrollOffset() {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
function getPositionOffset(listEl, scrollableEl) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const scrollOffset = getScrollOffset(scrollableEl);
|
|
16
|
+
const elementRect = listEl.getBoundingClientRect();
|
|
17
|
+
const containerRect = scrollableEl.getBoundingClientRect();
|
|
18
18
|
return {
|
|
19
19
|
top: elementRect.top + scrollOffset.top - containerRect.top,
|
|
20
20
|
left: elementRect.left + scrollOffset.top - containerRect.left
|
|
@@ -26,32 +26,34 @@ function isParent(parentNode, childNode) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
function useWindowScrollerList(_ref) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
let {
|
|
30
|
+
listInstance,
|
|
31
|
+
outerListRef
|
|
32
|
+
} = _ref;
|
|
33
|
+
const scrollableParent = useRef();
|
|
34
|
+
const listOffset = useRef();
|
|
35
|
+
|
|
36
|
+
const getElementOffset = () => {
|
|
35
37
|
listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);
|
|
36
38
|
};
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
const handleScroll = e => {
|
|
39
41
|
if (!scrollableParent.current) {
|
|
40
|
-
|
|
42
|
+
const containerTarget = e.target === document ? document.body : e.target;
|
|
41
43
|
scrollableParent.current = isParent(containerTarget, outerListRef.current) && containerTarget;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
if (!scrollableParent.current) return;
|
|
45
47
|
getElementOffset();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
const scrollOffset = getScrollOffset(scrollableParent.current);
|
|
49
|
+
const scrollTop = Math.max(0, scrollOffset.top - listOffset.current.top);
|
|
48
50
|
if (listInstance.current) listInstance.current.scrollTo(scrollTop);
|
|
49
51
|
};
|
|
50
52
|
|
|
51
|
-
useEffect(
|
|
53
|
+
useEffect(() => {
|
|
52
54
|
window.addEventListener('scroll', handleScroll, true);
|
|
53
55
|
window.addEventListener('resize', getElementOffset, true);
|
|
54
|
-
return
|
|
56
|
+
return () => {
|
|
55
57
|
window.removeEventListener('scroll', handleScroll, true);
|
|
56
58
|
window.removeEventListener('resize', getElementOffset, true);
|
|
57
59
|
};
|
|
@@ -59,4 +61,3 @@ function useWindowScrollerList(_ref) {
|
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
export { useWindowScrollerList as default };
|
|
62
|
-
//# sourceMappingURL=useWindowScrollerList.js.map
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
2
|
import { useState, useLayoutEffect } from 'react';
|
|
3
3
|
|
|
4
4
|
function useWindowSize() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
size = _useState2[0],
|
|
8
|
-
setSize = _useState2[1];
|
|
9
|
-
|
|
10
|
-
useLayoutEffect(function () {
|
|
5
|
+
const [size, setSize] = useState([0, 0]);
|
|
6
|
+
useLayoutEffect(() => {
|
|
11
7
|
if (!window) return false;
|
|
12
8
|
|
|
13
9
|
function updateSize() {
|
|
@@ -17,7 +13,7 @@ function useWindowSize() {
|
|
|
17
13
|
window.addEventListener('resize', updateSize);
|
|
18
14
|
window.addEventListener('orientationchange', updateSize);
|
|
19
15
|
updateSize();
|
|
20
|
-
return
|
|
16
|
+
return () => {
|
|
21
17
|
window.removeEventListener('resize', updateSize);
|
|
22
18
|
window.removeEventListener('orientationchange', updateSize);
|
|
23
19
|
};
|
|
@@ -27,4 +23,3 @@ function useWindowSize() {
|
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
export { useWindowSize as default };
|
|
30
|
-
//# sourceMappingURL=useWindowSize.js.map
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default as getComponentFromProps } from './getComponentFromProps.js';
|
|
2
2
|
export { default as onClickHandlerForNonInteractiveElements } from './onClickHandlerForNonInteractiveElements.js';
|
|
3
|
+
export { capitalize } from './capitalize.js';
|
|
3
4
|
export { checkEmpty, checkNotEmpty, contains, equal, greaterThan, greaterThanOrEquals, isIn, isNotIn, isNotNull, isNull, lessThanOrEquals, notEqual, startsWith, validDate } from './operators.js';
|
|
4
5
|
export { addOrRemove, arrayMove, cx, hashArray, removeUndefinedProperties, runAll, safeCall, toggleInArray, toggleInObject } from './utils.js';
|
|
5
6
|
export { logger, mergeRefs, setRef } from './system.js';
|
|
@@ -14,7 +15,7 @@ export { default as useWindowScrollerList } from './hooks/useWindowScrollerList.
|
|
|
14
15
|
export { default as useWindowSize } from './hooks/useWindowSize.js';
|
|
15
16
|
export { default as useForceUpdate } from 'use-force-update';
|
|
16
17
|
export { default as useOnClickOutside } from 'use-onclickoutside';
|
|
17
|
-
export {
|
|
18
|
+
export { useUncontrolled } from 'uncontrollable';
|
|
18
19
|
export { default as usePrevious } from './hooks/usePrevious.js';
|
|
19
20
|
export { default as useCancellableDelayedCallback } from './hooks/useCancellableDelayedCallback.js';
|
|
20
21
|
export { default as useDerivedStateFromProps } from './hooks/useDerivedStateFromProps.js';
|
|
@@ -28,11 +29,3 @@ export { isClassComponent, isCompositeTypeElement, isDOMTypeElement, isElement,
|
|
|
28
29
|
export { resetTimer } from './scrollingTimer.js';
|
|
29
30
|
export { isGreaterThan, isRequired, isValidDate } from './validations.js';
|
|
30
31
|
export { cloneDeep, curry, debounce, differenceBy, differenceWith, filter, findIndex, get, groupBy, isBoolean, isEmpty, isEqual, isEqualWith, isFunction, isNaN, isObject, isString, maxBy, meanBy, noop, omit, orderBy, padStart, parseInt, pick, pickBy, property, pull, range, set, sortBy, sumBy, throttle, transform, uniq, uniqBy, values } from 'lodash';
|
|
31
|
-
import '@babel/runtime/helpers/esm/toConsumableArray';
|
|
32
|
-
import '@babel/runtime/helpers/esm/defineProperty';
|
|
33
|
-
import 'react';
|
|
34
|
-
import '@babel/runtime/helpers/esm/slicedToArray';
|
|
35
|
-
import 'hotkeys-js';
|
|
36
|
-
import 'raf';
|
|
37
|
-
import 'resize-observer-polyfill';
|
|
38
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -3,19 +3,18 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @param onClickHandler
|
|
5
5
|
*/
|
|
6
|
-
var onClickHandlerForNonInteractiveElements = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
});
|
|
6
|
+
var onClickHandlerForNonInteractiveElements = (onClickHandler => ({
|
|
7
|
+
role: 'button',
|
|
8
|
+
tabIndex: '0',
|
|
9
|
+
onClick: onClickHandler,
|
|
10
|
+
onKeyPress: event => {
|
|
11
|
+
event.stopPropagation();
|
|
12
|
+
const {
|
|
13
|
+
keycode,
|
|
14
|
+
key
|
|
15
|
+
} = event;
|
|
16
|
+
if (key === 'Enter') onClickHandler(event);else if (keycode === 13) onClickHandler(event);
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
19
|
|
|
20
20
|
export { onClickHandlerForNonInteractiveElements as default };
|
|
21
|
-
//# sourceMappingURL=onClickHandlerForNonInteractiveElements.js.map
|