@elliemae/ds-utilities 2.2.0-alpha.3 → 3.0.0-next.0

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.
Files changed (130) hide show
  1. package/cjs/capitalize.js +7 -35
  2. package/cjs/compose.js +32 -39
  3. package/cjs/getComponentFromProps.js +29 -47
  4. package/cjs/hooks/index.js +60 -68
  5. package/cjs/hooks/useCancellableDelayedCallback.js +18 -43
  6. package/cjs/hooks/useDerivedStateFromProps.js +36 -47
  7. package/cjs/hooks/useExecutionTimer.js +24 -43
  8. package/cjs/hooks/useExpandState.js +82 -69
  9. package/cjs/hooks/useHotkeys.js +24 -44
  10. package/cjs/hooks/useHoverHandlersDelay.js +18 -48
  11. package/cjs/hooks/useOnElementResize.js +27 -44
  12. package/cjs/hooks/useParentElement.js +13 -40
  13. package/cjs/hooks/usePrevious.js +10 -41
  14. package/cjs/hooks/useResizeObserver.js +25 -52
  15. package/cjs/hooks/useSetRef.js +11 -38
  16. package/cjs/hooks/useShouldRecalculate.js +14 -41
  17. package/cjs/hooks/useWindowScrollerList.js +33 -51
  18. package/cjs/hooks/useWindowSize.js +19 -49
  19. package/cjs/index.js +266 -145
  20. package/cjs/onClickHandlerForNonInteractiveElements.js +19 -46
  21. package/cjs/operators.js +51 -56
  22. package/cjs/platform.js +9 -37
  23. package/cjs/reactTypesUtility.js +22 -45
  24. package/cjs/scrollingTimer.js +15 -37
  25. package/cjs/system.js +30 -47
  26. package/cjs/timeUtils.js +24 -42
  27. package/cjs/utils.js +237 -101
  28. package/cjs/validations.js +35 -48
  29. package/esm/capitalize.js +3 -6
  30. package/esm/compose.js +29 -11
  31. package/esm/getComponentFromProps.js +22 -18
  32. package/esm/hooks/index.js +18 -40
  33. package/esm/hooks/useCancellableDelayedCallback.js +14 -12
  34. package/esm/hooks/useDerivedStateFromProps.js +31 -15
  35. package/esm/hooks/useExecutionTimer.js +20 -12
  36. package/esm/hooks/useExpandState.js +72 -36
  37. package/esm/hooks/useHotkeys.js +14 -11
  38. package/esm/hooks/useHoverHandlersDelay.js +12 -15
  39. package/esm/hooks/useOnElementResize.js +20 -12
  40. package/esm/hooks/useParentElement.js +7 -9
  41. package/esm/hooks/usePrevious.js +6 -10
  42. package/esm/hooks/useResizeObserver.js +15 -20
  43. package/esm/hooks/useSetRef.js +6 -8
  44. package/esm/hooks/useShouldRecalculate.js +11 -11
  45. package/esm/hooks/useWindowScrollerList.js +29 -20
  46. package/esm/hooks/useWindowSize.js +15 -18
  47. package/esm/index.js +31 -204
  48. package/esm/onClickHandlerForNonInteractiveElements.js +17 -17
  49. package/esm/operators.js +34 -27
  50. package/esm/platform.js +4 -8
  51. package/esm/reactTypesUtility.js +9 -16
  52. package/esm/scrollingTimer.js +11 -8
  53. package/esm/system.js +22 -16
  54. package/esm/timeUtils.js +19 -13
  55. package/esm/utils.js +72 -109
  56. package/esm/validations.js +28 -18
  57. package/package.json +1 -1
  58. package/types/compose.d.ts +1 -2
  59. package/types/getComponentFromProps.d.ts +1 -2
  60. package/types/hooks/index.d.ts +14 -14
  61. package/types/hooks/useCancellableDelayedCallback.d.ts +1 -2
  62. package/types/hooks/useDerivedStateFromProps.d.ts +1 -2
  63. package/types/hooks/useExecutionTimer.d.ts +1 -2
  64. package/types/hooks/useExpandState.d.ts +2 -3
  65. package/types/hooks/useHotkeys.d.ts +2 -3
  66. package/types/hooks/useHoverHandlersDelay.d.ts +2 -3
  67. package/types/hooks/usePrevious.d.ts +1 -1
  68. package/types/hooks/useResizeObserver.d.ts +1 -2
  69. package/types/hooks/useShouldRecalculate.d.ts +1 -2
  70. package/types/hooks/useWindowScrollerList.d.ts +2 -3
  71. package/types/hooks/useWindowSize.d.ts +1 -2
  72. package/types/index.d.ts +11 -11
  73. package/types/onClickHandlerForNonInteractiveElements.d.ts +7 -7
  74. package/types/scrollingTimer.d.ts +1 -1
  75. package/cjs/capitalize.js.map +0 -7
  76. package/cjs/compose.js.map +0 -7
  77. package/cjs/getComponentFromProps.js.map +0 -7
  78. package/cjs/hooks/index.js.map +0 -7
  79. package/cjs/hooks/useCancellableDelayedCallback.js.map +0 -7
  80. package/cjs/hooks/useDerivedStateFromProps.js.map +0 -7
  81. package/cjs/hooks/useExecutionTimer.js.map +0 -7
  82. package/cjs/hooks/useExpandState.js.map +0 -7
  83. package/cjs/hooks/useHotkeys.js.map +0 -7
  84. package/cjs/hooks/useHoverHandlersDelay.js.map +0 -7
  85. package/cjs/hooks/useOnElementResize.js.map +0 -7
  86. package/cjs/hooks/useParentElement.js.map +0 -7
  87. package/cjs/hooks/usePrevious.js.map +0 -7
  88. package/cjs/hooks/useResizeObserver.js.map +0 -7
  89. package/cjs/hooks/useSetRef.js.map +0 -7
  90. package/cjs/hooks/useShouldRecalculate.js.map +0 -7
  91. package/cjs/hooks/useWindowScrollerList.js.map +0 -7
  92. package/cjs/hooks/useWindowSize.js.map +0 -7
  93. package/cjs/index.js.map +0 -7
  94. package/cjs/onClickHandlerForNonInteractiveElements.js.map +0 -7
  95. package/cjs/operators.js.map +0 -7
  96. package/cjs/platform.js.map +0 -7
  97. package/cjs/reactTypesUtility.js.map +0 -7
  98. package/cjs/scrollingTimer.js.map +0 -7
  99. package/cjs/system.js.map +0 -7
  100. package/cjs/timeUtils.js.map +0 -7
  101. package/cjs/utils.js.map +0 -7
  102. package/cjs/validations.js.map +0 -7
  103. package/esm/capitalize.js.map +0 -7
  104. package/esm/compose.js.map +0 -7
  105. package/esm/getComponentFromProps.js.map +0 -7
  106. package/esm/hooks/index.js.map +0 -7
  107. package/esm/hooks/useCancellableDelayedCallback.js.map +0 -7
  108. package/esm/hooks/useDerivedStateFromProps.js.map +0 -7
  109. package/esm/hooks/useExecutionTimer.js.map +0 -7
  110. package/esm/hooks/useExpandState.js.map +0 -7
  111. package/esm/hooks/useHotkeys.js.map +0 -7
  112. package/esm/hooks/useHoverHandlersDelay.js.map +0 -7
  113. package/esm/hooks/useOnElementResize.js.map +0 -7
  114. package/esm/hooks/useParentElement.js.map +0 -7
  115. package/esm/hooks/usePrevious.js.map +0 -7
  116. package/esm/hooks/useResizeObserver.js.map +0 -7
  117. package/esm/hooks/useSetRef.js.map +0 -7
  118. package/esm/hooks/useShouldRecalculate.js.map +0 -7
  119. package/esm/hooks/useWindowScrollerList.js.map +0 -7
  120. package/esm/hooks/useWindowSize.js.map +0 -7
  121. package/esm/index.js.map +0 -7
  122. package/esm/onClickHandlerForNonInteractiveElements.js.map +0 -7
  123. package/esm/operators.js.map +0 -7
  124. package/esm/platform.js.map +0 -7
  125. package/esm/reactTypesUtility.js.map +0 -7
  126. package/esm/scrollingTimer.js.map +0 -7
  127. package/esm/system.js.map +0 -7
  128. package/esm/timeUtils.js.map +0 -7
  129. package/esm/utils.js.map +0 -7
  130. package/esm/validations.js.map +0 -7
@@ -1,16 +1,34 @@
1
- import * as React from "react";
2
- import { useRef, useState } from "react";
3
- import { isEqual, isFunction } from "../utils";
4
- const defaultPropUpdateOnChange = (prop) => prop;
5
- function defaultShouldUpdate({ prop, prevProp, stateValue }) {
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useState, useRef } from 'react';
3
+ import 'core-js/modules/esnext.async-iterator.filter.js';
4
+ import 'core-js/modules/esnext.iterator.filter.js';
5
+ import '@babel/runtime/helpers/esm/defineProperty';
6
+ import 'core-js/modules/esnext.async-iterator.reduce.js';
7
+ import 'core-js/modules/esnext.iterator.constructor.js';
8
+ import 'core-js/modules/esnext.iterator.reduce.js';
9
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
10
+ import 'core-js/modules/esnext.iterator.for-each.js';
11
+ import { isFunction, isEqual } from 'lodash';
12
+
13
+ const defaultPropUpdateOnChange = prop => prop;
14
+
15
+ function defaultShouldUpdate(_ref) {
16
+ let {
17
+ prop,
18
+ prevProp,
19
+ stateValue
20
+ } = _ref;
6
21
  return !isEqual(prop, prevProp) && !isEqual(prop, stateValue);
7
22
  }
23
+
8
24
  function setStateWithUpdate(onUpdate, setState) {
9
- return (state) => {
10
- setState((prevState) => onUpdate(isFunction(state) ? state(prevState) : state, prevState));
25
+ return state => {
26
+ setState(prevState => onUpdate(isFunction(state) ? state(prevState) : state, prevState));
11
27
  };
12
28
  }
13
- const useDerivedStateFromProps = (prop, options = {}) => {
29
+
30
+ function useDerivedStateFromProp(prop) {
31
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
32
  const {
15
33
  onUpdate = defaultPropUpdateOnChange,
16
34
  shouldUpdate = defaultShouldUpdate,
@@ -19,6 +37,7 @@ const useDerivedStateFromProps = (prop, options = {}) => {
19
37
  const [stateValue, setState] = useState(onUpdate(prop, {}));
20
38
  const handleSetState = updateOnStateChange ? setStateWithUpdate(onUpdate, setState) : setState;
21
39
  const prevProp = useRef(prop);
40
+
22
41
  if (shouldUpdate({
23
42
  prop,
24
43
  prevProp: prevProp.current,
@@ -27,12 +46,9 @@ const useDerivedStateFromProps = (prop, options = {}) => {
27
46
  const nextProp = onUpdate(prop, prevProp.current);
28
47
  setState(nextProp);
29
48
  }
49
+
30
50
  prevProp.current = prop;
31
51
  return [stateValue, handleSetState];
32
- };
33
- var useDerivedStateFromProps_default = useDerivedStateFromProps;
34
- export {
35
- useDerivedStateFromProps_default as default,
36
- useDerivedStateFromProps
37
- };
38
- //# sourceMappingURL=useDerivedStateFromProps.js.map
52
+ }
53
+
54
+ export { useDerivedStateFromProp as default };
@@ -1,21 +1,29 @@
1
- import * as React from "react";
2
- import { useRef } from "react";
3
- const useExecutionTimer = (startFn, cleanFn, delayTime) => {
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useRef } from 'react';
3
+
4
+ function useExecutionDelay(startFn, cleanFn, delayTime) {
4
5
  const startTimer = useRef();
5
6
  const closeTimer = useRef();
6
- const startFunction = (...args) => {
7
+
8
+ const startFunction = function () {
9
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10
+ args[_key] = arguments[_key];
11
+ }
12
+
7
13
  clearTimeout(closeTimer.current);
8
14
  startTimer.current = setTimeout(() => startFn(...args), delayTime);
9
15
  };
10
- const cleanFunction = (...args) => {
16
+
17
+ const cleanFunction = function () {
18
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
19
+ args[_key2] = arguments[_key2];
20
+ }
21
+
11
22
  clearTimeout(startTimer.current);
12
23
  closeTimer.current = setTimeout(() => cleanFn(...args), 30);
13
24
  };
25
+
14
26
  return [startFunction, cleanFunction];
15
- };
16
- var useExecutionTimer_default = useExecutionTimer;
17
- export {
18
- useExecutionTimer_default as default,
19
- useExecutionTimer
20
- };
21
- //# sourceMappingURL=useExecutionTimer.js.map
27
+ }
28
+
29
+ export { useExecutionDelay as default };
@@ -1,79 +1,119 @@
1
- import * as React from "react";
2
- import { useMemo } from "react";
3
- import { isFunction } from "../utils";
4
- import { useDerivedStateFromProps } from "./useDerivedStateFromProps";
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.filter.js';
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';
8
+ import { useMemo } from 'react';
9
+ import 'core-js/modules/esnext.async-iterator.reduce.js';
10
+ import 'core-js/modules/esnext.iterator.reduce.js';
11
+ import { isFunction } from 'lodash';
12
+ import useDerivedStateFromProp from './useDerivedStateFromProps.js';
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
5
18
  const toggleStateInObject = (obj, key, value) => {
6
- const nextObj = { ...obj };
19
+ const nextObj = _objectSpread({}, obj);
20
+
7
21
  if (nextObj[key]) {
8
22
  delete nextObj[key];
9
23
  } else {
10
24
  nextObj[key] = value;
11
25
  }
26
+
12
27
  return nextObj;
13
28
  };
29
+
14
30
  const noop = () => null;
15
- const useExpandState = ({
16
- items = [],
17
- itemKey = "id",
18
- expanded: expandedProp = {},
19
- onExpand,
20
- onExpandChange = noop,
21
- onExpandAll = noop,
22
- onToggleExpand,
23
- onCollapse
24
- }) => {
25
- const [expanded, setExpanded] = useDerivedStateFromProps(expandedProp);
31
+
32
+ function useExpandState(_ref) {
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);
26
44
  const isExpandedAll = useMemo(() => Object.keys(expanded).length === items.length, [expanded, items]);
27
- const toggleExpandAll = (stateData = true) => {
45
+
46
+ const toggleExpandAll = function () {
47
+ let stateData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
28
48
  setExpanded(() => {
29
49
  const nextState = {};
50
+
30
51
  if (!isExpandedAll) {
31
- items.forEach((item) => {
52
+ items.forEach(item => {
32
53
  nextState[item[itemKey]] = stateData;
33
54
  });
34
55
  }
56
+
35
57
  onExpandChange(nextState);
36
58
  onExpandAll(nextState);
37
59
  return nextState;
38
60
  });
39
61
  };
40
- const expand = (item, stateData = true) => {
41
- if (!item)
42
- return;
62
+
63
+ const expand = function (item) {
64
+ let stateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
65
+ if (!item) return;
66
+
43
67
  if (isFunction(onExpand)) {
44
68
  onExpand(item);
45
69
  }
46
- setExpanded((prevState) => {
70
+
71
+ setExpanded(prevState => {
47
72
  const key = item[itemKey];
48
- const nextState = { ...prevState, [key]: stateData };
73
+
74
+ const nextState = _objectSpread(_objectSpread({}, prevState), {}, {
75
+ [key]: stateData
76
+ });
77
+
49
78
  onExpandChange(nextState, item);
50
79
  return nextState;
51
80
  });
52
81
  };
53
- const toggleExpand = (item, stateData = true) => {
82
+
83
+ const toggleExpand = function (item) {
84
+ let stateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
85
+
54
86
  if (isFunction(onToggleExpand)) {
55
87
  onToggleExpand(item);
56
88
  }
57
- setExpanded((prevState) => {
89
+
90
+ setExpanded(prevState => {
58
91
  const key = item[itemKey];
59
92
  const nextState = toggleStateInObject(prevState, key, stateData);
60
93
  onExpandChange(nextState, item);
61
94
  return nextState;
62
95
  });
63
96
  };
64
- const collapse = (item) => {
97
+
98
+ const collapse = item => {
65
99
  if (isFunction(onCollapse)) {
66
100
  onCollapse(item);
67
101
  }
68
- setExpanded((prevState) => {
69
- const nextState = { ...prevState };
102
+
103
+ setExpanded(prevState => {
104
+ const nextState = _objectSpread({}, prevState);
105
+
70
106
  delete nextState[item[itemKey]];
71
107
  onExpandChange(nextState, item);
72
108
  return nextState;
73
109
  });
74
110
  };
111
+
75
112
  return {
76
- state: { expanded, isExpandedAll },
113
+ state: {
114
+ expanded,
115
+ isExpandedAll
116
+ },
77
117
  actions: {
78
118
  expand,
79
119
  toggleExpandAll,
@@ -82,10 +122,6 @@ const useExpandState = ({
82
122
  },
83
123
  setExpanded
84
124
  };
85
- };
86
- var useExpandState_default = useExpandState;
87
- export {
88
- useExpandState_default as default,
89
- useExpandState
90
- };
91
- //# sourceMappingURL=useExpandState.js.map
125
+ }
126
+
127
+ export { useExpandState as default };
@@ -1,16 +1,19 @@
1
- import * as React from "react";
2
- import hotkeys from "hotkeys-js";
3
- import { useCallback, useEffect } from "react";
4
- const useHotkeys = ({ keys, handler, options = {} }, deps = []) => {
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import hotkeys from 'hotkeys-js';
3
+ import { useCallback, useEffect } from 'react';
4
+
5
+ function useHotkeys(_ref) {
6
+ let {
7
+ keys,
8
+ handler,
9
+ options = {}
10
+ } = _ref;
11
+ let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
5
12
  const memoizedCallback = useCallback(handler, deps);
6
13
  useEffect(() => {
7
14
  hotkeys(keys, options, memoizedCallback);
8
15
  return () => hotkeys.unbind(keys);
9
16
  }, [memoizedCallback]);
10
- };
11
- var useHotkeys_default = useHotkeys;
12
- export {
13
- useHotkeys_default as default,
14
- useHotkeys
15
- };
16
- //# sourceMappingURL=useHotkeys.js.map
17
+ }
18
+
19
+ export { useHotkeys as default };
@@ -1,11 +1,12 @@
1
- import * as React from "react";
2
- import { useCallback, useRef } from "react";
3
- const useHoverHandlersDelay = ({
4
- onMouseOver,
5
- onMouseLeave,
6
- hideDelay = 300,
7
- showDelay = 300
8
- }) => {
1
+ import { useRef, useCallback } from 'react';
2
+
3
+ function useHoverHandlersDelay(_ref) {
4
+ let {
5
+ onMouseOver,
6
+ onMouseLeave,
7
+ hideDelay = 300,
8
+ showDelay = 300
9
+ } = _ref;
9
10
  const hideTimer = useRef();
10
11
  const showTimer = useRef();
11
12
  const delayedHide = useCallback(() => {
@@ -20,10 +21,6 @@ const useHoverHandlersDelay = ({
20
21
  onMouseOver: delayedShow,
21
22
  onMouseLeave: delayedHide
22
23
  };
23
- };
24
- var useHoverHandlersDelay_default = useHoverHandlersDelay;
25
- export {
26
- useHoverHandlersDelay_default as default,
27
- useHoverHandlersDelay
28
- };
29
- //# sourceMappingURL=useHoverHandlersDelay.js.map
24
+ }
25
+
26
+ export { useHoverHandlersDelay as default };
@@ -1,17 +1,27 @@
1
- import * as React from "react";
2
- import { useState, useEffect, useRef, useMemo } from "react";
3
- const useOnElementResize = (targetRef) => {
4
- const [width, setWidth] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);
5
- const [height, setHeight] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useState, useRef, useEffect, useMemo } from 'react';
3
+
4
+ // Taken and modified from https://stackoverflow.com/a/60218754
5
+
6
+ const useOnElementResize = targetRef => {
7
+ var _targetRef$current, _targetRef$current2;
8
+
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);
6
11
  const observer = useRef(null);
7
12
  useEffect(() => {
8
13
  function outputsize() {
9
- setWidth(targetRef.current?.offsetWidth);
10
- setHeight(targetRef.current?.offsetHeight);
14
+ var _targetRef$current3, _targetRef$current4;
15
+
16
+ setWidth((_targetRef$current3 = targetRef.current) === null || _targetRef$current3 === void 0 ? void 0 : _targetRef$current3.offsetWidth);
17
+ setHeight((_targetRef$current4 = targetRef.current) === null || _targetRef$current4 === void 0 ? void 0 : _targetRef$current4.offsetHeight);
11
18
  }
19
+
12
20
  observer.current = new ResizeObserver(outputsize).observe(targetRef.current);
13
21
  return () => {
14
- observer.current?.disconnect();
22
+ var _observer$current;
23
+
24
+ (_observer$current = observer.current) === null || _observer$current === void 0 ? void 0 : _observer$current.disconnect();
15
25
  };
16
26
  }, [targetRef]);
17
27
  return useMemo(() => ({
@@ -19,7 +29,5 @@ const useOnElementResize = (targetRef) => {
19
29
  height
20
30
  }), [width, height]);
21
31
  };
22
- export {
23
- useOnElementResize
24
- };
25
- //# sourceMappingURL=useOnElementResize.js.map
32
+
33
+ export { useOnElementResize };
@@ -1,14 +1,12 @@
1
- import * as React from "react";
2
- import { useEffect, useState } from "react";
3
- const useParentElement = (ref) => {
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useState, useEffect } from 'react';
3
+
4
+ const useParentElement = ref => {
4
5
  const [parent, setParent] = useState(ref.current);
5
6
  useEffect(() => {
6
- if (ref.current)
7
- setParent(ref.current.parentNode);
7
+ if (ref.current) setParent(ref.current.parentNode);
8
8
  });
9
9
  return parent;
10
10
  };
11
- export {
12
- useParentElement
13
- };
14
- //# sourceMappingURL=useParentElement.js.map
11
+
12
+ export { useParentElement };
@@ -1,15 +1,11 @@
1
- import * as React from "react";
2
- import { useEffect, useRef } from "react";
3
- const usePrevious = (value) => {
1
+ import { useRef, useEffect } from 'react';
2
+
3
+ function usePrevious(value) {
4
4
  const ref = useRef();
5
5
  useEffect(() => {
6
6
  ref.current = value;
7
7
  }, [value]);
8
8
  return ref.current;
9
- };
10
- var usePrevious_default = usePrevious;
11
- export {
12
- usePrevious_default as default,
13
- usePrevious
14
- };
15
- //# sourceMappingURL=usePrevious.js.map
9
+ }
10
+
11
+ export { usePrevious as default };
@@ -1,15 +1,15 @@
1
- import * as React from "react";
2
- import { useEffect, useState } from "react";
3
- import raf from "raf";
4
- import ResizeObserver from "resize-observer-polyfill";
5
- const useResizeObserver = (handler, el) => {
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useState, useEffect } from 'react';
3
+ import raf from 'raf';
4
+ import ResizeObserver from 'resize-observer-polyfill';
5
+
6
+ function useResizeObserver(handler, el) {
6
7
  const [node, setRef] = useState(el);
7
- const resizeObserver = new ResizeObserver((entries) => {
8
- if (!Array.isArray(entries))
9
- return;
10
- if (!entries.length)
11
- return;
12
- const entry = entries[0];
8
+ const resizeObserver = new ResizeObserver(entries => {
9
+ if (!Array.isArray(entries)) return;
10
+ if (!entries.length) return;
11
+ const entry = entries[0]; // execute on the next animation frame
12
+
13
13
  raf(() => handler({
14
14
  width: entry.target.offsetWidth,
15
15
  height: entry.target.offsetHeight
@@ -17,15 +17,10 @@ const useResizeObserver = (handler, el) => {
17
17
  });
18
18
  const htmlEl = el || node;
19
19
  useEffect(() => {
20
- if (htmlEl)
21
- resizeObserver.observe(htmlEl);
20
+ if (htmlEl) resizeObserver.observe(htmlEl);
22
21
  return () => htmlEl && resizeObserver.unobserve(htmlEl);
23
22
  }, [htmlEl]);
24
23
  return [setRef];
25
- };
26
- var useResizeObserver_default = useResizeObserver;
27
- export {
28
- useResizeObserver_default as default,
29
- useResizeObserver
30
- };
31
- //# sourceMappingURL=useResizeObserver.js.map
24
+ }
25
+
26
+ export { useResizeObserver as default };
@@ -1,13 +1,11 @@
1
- import * as React from "react";
2
- import { useCallback, useRef } from "react";
3
- const useSetRef = (initial) => {
1
+ import { useRef, useCallback } from 'react';
2
+
3
+ const useSetRef = initial => {
4
4
  const ref = useRef(initial);
5
- const setRef = useCallback((node) => {
5
+ const setRef = useCallback(node => {
6
6
  ref.current = node;
7
7
  }, []);
8
8
  return [ref, setRef];
9
9
  };
10
- export {
11
- useSetRef
12
- };
13
- //# sourceMappingURL=useSetRef.js.map
10
+
11
+ export { useSetRef };
@@ -1,15 +1,15 @@
1
- import * as React from "react";
2
- import { useRef } from "react";
3
- const useShouldRecalculate = (bool) => {
1
+ import { useRef } from 'react';
2
+
3
+ function useShouldRecalculate(bool) {
4
4
  const prevValueRef = useRef(0);
5
+
5
6
  if (!bool) {
7
+ // If we need to recalculate, change the value we return
6
8
  prevValueRef.current += 1;
7
- }
9
+ } // else we return the same value as the previous render, which won't trigger a recalculation
10
+
11
+
8
12
  return prevValueRef.current;
9
- };
10
- var useShouldRecalculate_default = useShouldRecalculate;
11
- export {
12
- useShouldRecalculate_default as default,
13
- useShouldRecalculate
14
- };
15
- //# sourceMappingURL=useShouldRecalculate.js.map
13
+ }
14
+
15
+ export { useShouldRecalculate as default };
@@ -1,11 +1,16 @@
1
- import * as React from "react";
2
- import { useEffect, useRef } from "react";
3
- function getScrollOffset(element = { scrollTop: 0, scrollLeft: 0 }) {
1
+ import { useRef, useEffect } from 'react';
2
+
3
+ function getScrollOffset() {
4
+ let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5
+ scrollTop: 0,
6
+ scrollLeft: 0
7
+ };
4
8
  return {
5
9
  top: element.scrollTop,
6
10
  left: element.scrollLeft
7
11
  };
8
12
  }
13
+
9
14
  function getPositionOffset(listEl, scrollableEl) {
10
15
  const scrollOffset = getScrollOffset(scrollableEl);
11
16
  const elementRect = listEl.getBoundingClientRect();
@@ -15,40 +20,44 @@ function getPositionOffset(listEl, scrollableEl) {
15
20
  left: elementRect.left + scrollOffset.top - containerRect.left
16
21
  };
17
22
  }
23
+
18
24
  function isParent(parentNode, childNode) {
19
25
  return childNode.parentNode === parentNode || childNode.parentNode && isParent(parentNode, childNode.parentNode);
20
26
  }
21
- const useWindowScrollerList = ({ listInstance, outerListRef }) => {
27
+
28
+ function useWindowScrollerList(_ref) {
29
+ let {
30
+ listInstance,
31
+ outerListRef
32
+ } = _ref;
22
33
  const scrollableParent = useRef();
23
34
  const listOffset = useRef();
35
+
24
36
  const getElementOffset = () => {
25
37
  listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);
26
38
  };
27
- const handleScroll = (e) => {
39
+
40
+ const handleScroll = e => {
28
41
  if (!scrollableParent.current) {
29
42
  const containerTarget = e.target === document ? document.body : e.target;
30
43
  scrollableParent.current = isParent(containerTarget, outerListRef.current) && containerTarget;
31
44
  }
32
- if (!scrollableParent.current)
33
- return;
45
+
46
+ if (!scrollableParent.current) return;
34
47
  getElementOffset();
35
48
  const scrollOffset = getScrollOffset(scrollableParent.current);
36
49
  const scrollTop = Math.max(0, scrollOffset.top - listOffset.current.top);
37
- if (listInstance.current)
38
- listInstance.current.scrollTo(scrollTop);
50
+ if (listInstance.current) listInstance.current.scrollTo(scrollTop);
39
51
  };
52
+
40
53
  useEffect(() => {
41
- window.addEventListener("scroll", handleScroll, true);
42
- window.addEventListener("resize", getElementOffset, true);
54
+ window.addEventListener('scroll', handleScroll, true);
55
+ window.addEventListener('resize', getElementOffset, true);
43
56
  return () => {
44
- window.removeEventListener("scroll", handleScroll, true);
45
- window.removeEventListener("resize", getElementOffset, true);
57
+ window.removeEventListener('scroll', handleScroll, true);
58
+ window.removeEventListener('resize', getElementOffset, true);
46
59
  };
47
60
  }, []);
48
- };
49
- var useWindowScrollerList_default = useWindowScrollerList;
50
- export {
51
- useWindowScrollerList_default as default,
52
- useWindowScrollerList
53
- };
54
- //# sourceMappingURL=useWindowScrollerList.js.map
61
+ }
62
+
63
+ export { useWindowScrollerList as default };
@@ -1,28 +1,25 @@
1
- import * as React from "react";
2
- import { useLayoutEffect, useState } from "react";
3
- const useWindowSize = () => {
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useState, useLayoutEffect } from 'react';
3
+
4
+ function useWindowSize() {
4
5
  const [size, setSize] = useState([0, 0]);
5
6
  useLayoutEffect(() => {
6
- if (!window)
7
- return false;
7
+ if (!window) return false;
8
+
8
9
  function updateSize() {
9
10
  setSize([window.innerWidth, window.innerHeight]);
10
11
  }
11
- window.addEventListener("resize", updateSize);
12
- window.addEventListener("orientationchange", updateSize);
12
+
13
+ window.addEventListener('resize', updateSize);
14
+ window.addEventListener('orientationchange', updateSize);
13
15
  updateSize();
14
16
  return () => {
15
- window.removeEventListener("resize", updateSize);
16
- window.removeEventListener("orientationchange", updateSize);
17
+ window.removeEventListener('resize', updateSize);
18
+ window.removeEventListener('orientationchange', updateSize);
17
19
  };
18
20
  }, []);
19
- if (!window)
20
- return false;
21
+ if (!window) return false;
21
22
  return size;
22
- };
23
- var useWindowSize_default = useWindowSize;
24
- export {
25
- useWindowSize_default as default,
26
- useWindowSize
27
- };
28
- //# sourceMappingURL=useWindowSize.js.map
23
+ }
24
+
25
+ export { useWindowSize as default };