@elliemae/ds-utilities 3.0.0-next.2 → 3.0.0-next.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.
Files changed (207) hide show
  1. package/dist/cjs/capitalize.js +35 -0
  2. package/dist/cjs/capitalize.js.map +7 -0
  3. package/dist/cjs/compose.js +45 -0
  4. package/dist/cjs/compose.js.map +7 -0
  5. package/dist/cjs/getComponentFromProps.js +57 -0
  6. package/dist/cjs/getComponentFromProps.js.map +7 -0
  7. package/dist/cjs/hooks/index.js +75 -0
  8. package/dist/cjs/hooks/index.js.map +7 -0
  9. package/dist/cjs/hooks/useCallbackAfterRender.js +45 -0
  10. package/dist/cjs/hooks/useCallbackAfterRender.js.map +7 -0
  11. package/dist/cjs/hooks/useCancellableDelayedCallback.js +51 -0
  12. package/dist/cjs/hooks/useCancellableDelayedCallback.js.map +7 -0
  13. package/dist/cjs/hooks/useDerivedStateFromProps.js +67 -0
  14. package/dist/cjs/hooks/useDerivedStateFromProps.js.map +7 -0
  15. package/dist/cjs/hooks/useExecutionTimer.js +50 -0
  16. package/dist/cjs/hooks/useExecutionTimer.js.map +7 -0
  17. package/dist/cjs/hooks/useExpandState.js +137 -0
  18. package/dist/cjs/hooks/useExpandState.js.map +7 -0
  19. package/dist/cjs/hooks/useFocusTrap.js +49 -0
  20. package/dist/cjs/hooks/useFocusTrap.js.map +7 -0
  21. package/dist/cjs/hooks/useHotkeys.js +45 -0
  22. package/dist/cjs/hooks/useHotkeys.js.map +7 -0
  23. package/dist/cjs/hooks/useHoverHandlersDelay.js +58 -0
  24. package/dist/cjs/hooks/useHoverHandlersDelay.js.map +7 -0
  25. package/dist/cjs/hooks/useIsShowingEllipsis.js +58 -0
  26. package/dist/cjs/hooks/useIsShowingEllipsis.js.map +7 -0
  27. package/dist/cjs/hooks/useOnElementResize.js +55 -0
  28. package/dist/cjs/hooks/useOnElementResize.js.map +7 -0
  29. package/dist/cjs/hooks/useParentElement.js +43 -0
  30. package/dist/cjs/hooks/useParentElement.js.map +7 -0
  31. package/dist/cjs/hooks/usePrevious.js +44 -0
  32. package/dist/cjs/hooks/usePrevious.js.map +7 -0
  33. package/dist/cjs/hooks/useResizeObserver.js +60 -0
  34. package/dist/cjs/hooks/useResizeObserver.js.map +7 -0
  35. package/dist/cjs/hooks/useSetRef.js +42 -0
  36. package/dist/cjs/hooks/useSetRef.js.map +7 -0
  37. package/dist/cjs/hooks/useShouldRecalculate.js +44 -0
  38. package/dist/cjs/hooks/useShouldRecalculate.js.map +7 -0
  39. package/dist/cjs/hooks/useWindowScrollerList.js +83 -0
  40. package/dist/cjs/hooks/useWindowScrollerList.js.map +7 -0
  41. package/dist/cjs/hooks/useWindowSize.js +57 -0
  42. package/dist/cjs/hooks/useWindowSize.js.map +7 -0
  43. package/dist/cjs/index.js +148 -0
  44. package/dist/cjs/index.js.map +7 -0
  45. package/dist/cjs/onClickHandlerForNonInteractiveElements.js +49 -0
  46. package/dist/cjs/onClickHandlerForNonInteractiveElements.js.map +7 -0
  47. package/dist/cjs/operators.js +68 -0
  48. package/dist/cjs/operators.js.map +7 -0
  49. package/dist/cjs/platform.js +37 -0
  50. package/dist/cjs/platform.js.map +7 -0
  51. package/dist/cjs/reactTypesUtility.js +58 -0
  52. package/dist/cjs/reactTypesUtility.js.map +7 -0
  53. package/dist/cjs/scrollingTimer.js +46 -0
  54. package/dist/cjs/scrollingTimer.js.map +7 -0
  55. package/dist/cjs/system.js +60 -0
  56. package/dist/cjs/system.js.map +7 -0
  57. package/dist/cjs/timeUtils.js +43 -0
  58. package/dist/cjs/timeUtils.js.map +7 -0
  59. package/dist/cjs/utils.js +143 -0
  60. package/dist/cjs/utils.js.map +7 -0
  61. package/dist/cjs/validations.js +57 -0
  62. package/dist/cjs/validations.js.map +7 -0
  63. package/dist/esm/capitalize.js +6 -0
  64. package/dist/esm/capitalize.js.map +7 -0
  65. package/dist/esm/compose.js +16 -0
  66. package/dist/esm/compose.js.map +7 -0
  67. package/dist/esm/getComponentFromProps.js +30 -0
  68. package/dist/esm/getComponentFromProps.js.map +7 -0
  69. package/dist/esm/hooks/index.js +46 -0
  70. package/dist/esm/hooks/index.js.map +7 -0
  71. package/dist/esm/hooks/useCallbackAfterRender.js +16 -0
  72. package/dist/esm/hooks/useCallbackAfterRender.js.map +7 -0
  73. package/dist/esm/hooks/useCancellableDelayedCallback.js +22 -0
  74. package/dist/esm/hooks/useCancellableDelayedCallback.js.map +7 -0
  75. package/dist/esm/hooks/useDerivedStateFromProps.js +38 -0
  76. package/dist/esm/hooks/useDerivedStateFromProps.js.map +7 -0
  77. package/dist/esm/hooks/useExecutionTimer.js +21 -0
  78. package/dist/esm/hooks/useExecutionTimer.js.map +7 -0
  79. package/dist/esm/hooks/useExpandState.js +110 -0
  80. package/dist/esm/hooks/useExpandState.js.map +7 -0
  81. package/dist/esm/hooks/useFocusTrap.js +20 -0
  82. package/dist/esm/hooks/useFocusTrap.js.map +7 -0
  83. package/dist/esm/hooks/useHotkeys.js +16 -0
  84. package/dist/esm/hooks/useHotkeys.js.map +7 -0
  85. package/{esm → dist/esm}/hooks/useHoverHandlersDelay.js +15 -12
  86. package/dist/esm/hooks/useHoverHandlersDelay.js.map +7 -0
  87. package/dist/esm/hooks/useIsShowingEllipsis.js +29 -0
  88. package/dist/esm/hooks/useIsShowingEllipsis.js.map +7 -0
  89. package/dist/esm/hooks/useOnElementResize.js +26 -0
  90. package/dist/esm/hooks/useOnElementResize.js.map +7 -0
  91. package/dist/esm/hooks/useParentElement.js +14 -0
  92. package/dist/esm/hooks/useParentElement.js.map +7 -0
  93. package/dist/esm/hooks/usePrevious.js +15 -0
  94. package/dist/esm/hooks/usePrevious.js.map +7 -0
  95. package/dist/esm/hooks/useResizeObserver.js +31 -0
  96. package/dist/esm/hooks/useResizeObserver.js.map +7 -0
  97. package/dist/esm/hooks/useSetRef.js +13 -0
  98. package/dist/esm/hooks/useSetRef.js.map +7 -0
  99. package/dist/esm/hooks/useShouldRecalculate.js +15 -0
  100. package/dist/esm/hooks/useShouldRecalculate.js.map +7 -0
  101. package/{esm → dist/esm}/hooks/useWindowScrollerList.js +20 -29
  102. package/dist/esm/hooks/useWindowScrollerList.js.map +7 -0
  103. package/dist/esm/hooks/useWindowSize.js +28 -0
  104. package/dist/esm/hooks/useWindowSize.js.map +7 -0
  105. package/dist/esm/index.js +210 -0
  106. package/dist/esm/index.js.map +7 -0
  107. package/dist/esm/onClickHandlerForNonInteractiveElements.js +20 -0
  108. package/dist/esm/onClickHandlerForNonInteractiveElements.js.map +7 -0
  109. package/dist/esm/operators.js +39 -0
  110. package/dist/esm/operators.js.map +7 -0
  111. package/dist/esm/platform.js +8 -0
  112. package/dist/esm/platform.js.map +7 -0
  113. package/dist/esm/reactTypesUtility.js +29 -0
  114. package/dist/esm/reactTypesUtility.js.map +7 -0
  115. package/dist/esm/scrollingTimer.js +17 -0
  116. package/dist/esm/scrollingTimer.js.map +7 -0
  117. package/dist/esm/system.js +31 -0
  118. package/dist/esm/system.js.map +7 -0
  119. package/dist/esm/timeUtils.js +14 -0
  120. package/dist/esm/timeUtils.js.map +7 -0
  121. package/dist/esm/utils.js +154 -0
  122. package/dist/esm/utils.js.map +7 -0
  123. package/dist/esm/validations.js +28 -0
  124. package/dist/esm/validations.js.map +7 -0
  125. package/package.json +82 -69
  126. package/cjs/capitalize.js +0 -7
  127. package/cjs/compose.js +0 -38
  128. package/cjs/getComponentFromProps.js +0 -30
  129. package/cjs/hooks/index.js +0 -61
  130. package/cjs/hooks/useCancellableDelayedCallback.js +0 -26
  131. package/cjs/hooks/useDerivedStateFromProps.js +0 -56
  132. package/cjs/hooks/useExecutionTimer.js +0 -31
  133. package/cjs/hooks/useExpandState.js +0 -133
  134. package/cjs/hooks/useHotkeys.js +0 -25
  135. package/cjs/hooks/useHoverHandlersDelay.js +0 -28
  136. package/cjs/hooks/useOnElementResize.js +0 -37
  137. package/cjs/hooks/useParentElement.js +0 -16
  138. package/cjs/hooks/usePrevious.js +0 -13
  139. package/cjs/hooks/useResizeObserver.js +0 -33
  140. package/cjs/hooks/useSetRef.js +0 -15
  141. package/cjs/hooks/useShouldRecalculate.js +0 -17
  142. package/cjs/hooks/useWindowScrollerList.js +0 -65
  143. package/cjs/hooks/useWindowSize.js +0 -27
  144. package/cjs/index.js +0 -266
  145. package/cjs/onClickHandlerForNonInteractiveElements.js +0 -22
  146. package/cjs/operators.js +0 -63
  147. package/cjs/platform.js +0 -9
  148. package/cjs/reactTypesUtility.js +0 -35
  149. package/cjs/scrollingTimer.js +0 -24
  150. package/cjs/system.js +0 -43
  151. package/cjs/timeUtils.js +0 -25
  152. package/cjs/utils.js +0 -263
  153. package/cjs/validations.js +0 -44
  154. package/esm/capitalize.js +0 -3
  155. package/esm/compose.js +0 -34
  156. package/esm/getComponentFromProps.js +0 -23
  157. package/esm/hooks/index.js +0 -18
  158. package/esm/hooks/useCancellableDelayedCallback.js +0 -24
  159. package/esm/hooks/useDerivedStateFromProps.js +0 -54
  160. package/esm/hooks/useExecutionTimer.js +0 -29
  161. package/esm/hooks/useExpandState.js +0 -127
  162. package/esm/hooks/useHotkeys.js +0 -19
  163. package/esm/hooks/useOnElementResize.js +0 -33
  164. package/esm/hooks/useParentElement.js +0 -12
  165. package/esm/hooks/usePrevious.js +0 -11
  166. package/esm/hooks/useResizeObserver.js +0 -26
  167. package/esm/hooks/useSetRef.js +0 -11
  168. package/esm/hooks/useShouldRecalculate.js +0 -15
  169. package/esm/hooks/useWindowSize.js +0 -25
  170. package/esm/index.js +0 -31
  171. package/esm/onClickHandlerForNonInteractiveElements.js +0 -20
  172. package/esm/operators.js +0 -46
  173. package/esm/platform.js +0 -4
  174. package/esm/reactTypesUtility.js +0 -22
  175. package/esm/scrollingTimer.js +0 -20
  176. package/esm/system.js +0 -37
  177. package/esm/timeUtils.js +0 -20
  178. package/esm/utils.js +0 -99
  179. package/esm/validations.js +0 -38
  180. package/types/capitalize.d.ts +0 -1
  181. package/types/compose.d.ts +0 -11
  182. package/types/getComponentFromProps.d.ts +0 -2
  183. package/types/hooks/index.d.ts +0 -18
  184. package/types/hooks/useCancellableDelayedCallback.d.ts +0 -1
  185. package/types/hooks/useDerivedStateFromProps.d.ts +0 -1
  186. package/types/hooks/useExecutionTimer.d.ts +0 -1
  187. package/types/hooks/useExpandState.d.ts +0 -22
  188. package/types/hooks/useHotkeys.d.ts +0 -5
  189. package/types/hooks/useHoverHandlersDelay.d.ts +0 -9
  190. package/types/hooks/useOnElementResize.d.ts +0 -2
  191. package/types/hooks/useParentElement.d.ts +0 -1
  192. package/types/hooks/usePrevious.d.ts +0 -2
  193. package/types/hooks/useResizeObserver.d.ts +0 -2
  194. package/types/hooks/useSetRef.d.ts +0 -2
  195. package/types/hooks/useShouldRecalculate.d.ts +0 -1
  196. package/types/hooks/useWindowScrollerList.d.ts +0 -4
  197. package/types/hooks/useWindowSize.d.ts +0 -1
  198. package/types/index.d.ts +0 -13
  199. package/types/onClickHandlerForNonInteractiveElements.d.ts +0 -12
  200. package/types/operators.d.ts +0 -31
  201. package/types/platform.d.ts +0 -2
  202. package/types/reactTypesUtility.d.ts +0 -6
  203. package/types/scrollingTimer.d.ts +0 -1
  204. package/types/system.d.ts +0 -3
  205. package/types/timeUtils.d.ts +0 -7
  206. package/types/utils.d.ts +0 -23
  207. package/types/validations.d.ts +0 -23
@@ -1,56 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/web.dom-collections.iterator.js');
4
- var React = require('react');
5
- require('@babel/runtime/helpers/defineProperty');
6
- require('core-js/modules/esnext.async-iterator.reduce.js');
7
- require('core-js/modules/esnext.iterator.constructor.js');
8
- require('core-js/modules/esnext.iterator.reduce.js');
9
- require('core-js/modules/esnext.async-iterator.for-each.js');
10
- require('core-js/modules/esnext.iterator.for-each.js');
11
- require('core-js/modules/esnext.async-iterator.filter.js');
12
- require('core-js/modules/esnext.iterator.filter.js');
13
- var lodash = require('lodash');
14
-
15
- const defaultPropUpdateOnChange = prop => prop;
16
-
17
- function defaultShouldUpdate(_ref) {
18
- let {
19
- prop,
20
- prevProp,
21
- stateValue
22
- } = _ref;
23
- return !lodash.isEqual(prop, prevProp) && !lodash.isEqual(prop, stateValue);
24
- }
25
-
26
- function setStateWithUpdate(onUpdate, setState) {
27
- return state => {
28
- setState(prevState => onUpdate(lodash.isFunction(state) ? state(prevState) : state, prevState));
29
- };
30
- }
31
-
32
- function useDerivedStateFromProp(prop) {
33
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
34
- const {
35
- onUpdate = defaultPropUpdateOnChange,
36
- shouldUpdate = defaultShouldUpdate,
37
- updateOnStateChange = false
38
- } = options;
39
- const [stateValue, setState] = React.useState(onUpdate(prop, {}));
40
- const handleSetState = updateOnStateChange ? setStateWithUpdate(onUpdate, setState) : setState;
41
- const prevProp = React.useRef(prop);
42
-
43
- if (shouldUpdate({
44
- prop,
45
- prevProp: prevProp.current,
46
- stateValue
47
- })) {
48
- const nextProp = onUpdate(prop, prevProp.current);
49
- setState(nextProp);
50
- }
51
-
52
- prevProp.current = prop;
53
- return [stateValue, handleSetState];
54
- }
55
-
56
- module.exports = useDerivedStateFromProp;
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/web.dom-collections.iterator.js');
4
- var React = require('react');
5
-
6
- function useExecutionDelay(startFn, cleanFn, delayTime) {
7
- const startTimer = React.useRef();
8
- const closeTimer = React.useRef();
9
-
10
- const startFunction = function () {
11
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
12
- args[_key] = arguments[_key];
13
- }
14
-
15
- clearTimeout(closeTimer.current);
16
- startTimer.current = setTimeout(() => startFn(...args), delayTime);
17
- };
18
-
19
- const cleanFunction = function () {
20
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
21
- args[_key2] = arguments[_key2];
22
- }
23
-
24
- clearTimeout(startTimer.current);
25
- closeTimer.current = setTimeout(() => cleanFn(...args), 30);
26
- };
27
-
28
- return [startFunction, cleanFunction];
29
- }
30
-
31
- module.exports = useExecutionDelay;
@@ -1,133 +0,0 @@
1
- 'use strict';
2
-
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- require('core-js/modules/web.dom-collections.iterator.js');
5
- require('core-js/modules/esnext.async-iterator.for-each.js');
6
- require('core-js/modules/esnext.iterator.constructor.js');
7
- require('core-js/modules/esnext.iterator.for-each.js');
8
- require('core-js/modules/esnext.async-iterator.filter.js');
9
- require('core-js/modules/esnext.iterator.filter.js');
10
- var React = require('react');
11
- require('core-js/modules/esnext.async-iterator.reduce.js');
12
- require('core-js/modules/esnext.iterator.reduce.js');
13
- var lodash = require('lodash');
14
- var useDerivedStateFromProps = require('./useDerivedStateFromProps.js');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
19
-
20
- 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; }
21
-
22
- 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__default["default"](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; }
23
-
24
- const toggleStateInObject = (obj, key, value) => {
25
- const nextObj = _objectSpread({}, obj);
26
-
27
- if (nextObj[key]) {
28
- delete nextObj[key];
29
- } else {
30
- nextObj[key] = value;
31
- }
32
-
33
- return nextObj;
34
- };
35
-
36
- const noop = () => null;
37
-
38
- function useExpandState(_ref) {
39
- let {
40
- items = [],
41
- itemKey = 'id',
42
- expanded: expandedProp = {},
43
- onExpand,
44
- onExpandChange = noop,
45
- onExpandAll = noop,
46
- onToggleExpand,
47
- onCollapse
48
- } = _ref;
49
- const [expanded, setExpanded] = useDerivedStateFromProps(expandedProp);
50
- const isExpandedAll = React.useMemo(() => Object.keys(expanded).length === items.length, [expanded, items]);
51
-
52
- const toggleExpandAll = function () {
53
- let stateData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
54
- setExpanded(() => {
55
- const nextState = {};
56
-
57
- if (!isExpandedAll) {
58
- items.forEach(item => {
59
- nextState[item[itemKey]] = stateData;
60
- });
61
- }
62
-
63
- onExpandChange(nextState);
64
- onExpandAll(nextState);
65
- return nextState;
66
- });
67
- };
68
-
69
- const expand = function (item) {
70
- let stateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
71
- if (!item) return;
72
-
73
- if (lodash.isFunction(onExpand)) {
74
- onExpand(item);
75
- }
76
-
77
- setExpanded(prevState => {
78
- const key = item[itemKey];
79
-
80
- const nextState = _objectSpread(_objectSpread({}, prevState), {}, {
81
- [key]: stateData
82
- });
83
-
84
- onExpandChange(nextState, item);
85
- return nextState;
86
- });
87
- };
88
-
89
- const toggleExpand = function (item) {
90
- let stateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
91
-
92
- if (lodash.isFunction(onToggleExpand)) {
93
- onToggleExpand(item);
94
- }
95
-
96
- setExpanded(prevState => {
97
- const key = item[itemKey];
98
- const nextState = toggleStateInObject(prevState, key, stateData);
99
- onExpandChange(nextState, item);
100
- return nextState;
101
- });
102
- };
103
-
104
- const collapse = item => {
105
- if (lodash.isFunction(onCollapse)) {
106
- onCollapse(item);
107
- }
108
-
109
- setExpanded(prevState => {
110
- const nextState = _objectSpread({}, prevState);
111
-
112
- delete nextState[item[itemKey]];
113
- onExpandChange(nextState, item);
114
- return nextState;
115
- });
116
- };
117
-
118
- return {
119
- state: {
120
- expanded,
121
- isExpandedAll
122
- },
123
- actions: {
124
- expand,
125
- toggleExpandAll,
126
- toggleExpand,
127
- collapse
128
- },
129
- setExpanded
130
- };
131
- }
132
-
133
- module.exports = useExpandState;
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/web.dom-collections.iterator.js');
4
- var hotkeys = require('hotkeys-js');
5
- var React = require('react');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var hotkeys__default = /*#__PURE__*/_interopDefaultLegacy(hotkeys);
10
-
11
- function useHotkeys(_ref) {
12
- let {
13
- keys,
14
- handler,
15
- options = {}
16
- } = _ref;
17
- let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
18
- const memoizedCallback = React.useCallback(handler, deps);
19
- React.useEffect(() => {
20
- hotkeys__default["default"](keys, options, memoizedCallback);
21
- return () => hotkeys__default["default"].unbind(keys);
22
- }, [memoizedCallback]);
23
- }
24
-
25
- module.exports = useHotkeys;
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- function useHoverHandlersDelay(_ref) {
6
- let {
7
- onMouseOver,
8
- onMouseLeave,
9
- hideDelay = 300,
10
- showDelay = 300
11
- } = _ref;
12
- const hideTimer = React.useRef();
13
- const showTimer = React.useRef();
14
- const delayedHide = React.useCallback(() => {
15
- clearTimeout(showTimer.current);
16
- hideTimer.current = setTimeout(onMouseLeave, hideDelay);
17
- }, []);
18
- const delayedShow = React.useCallback(() => {
19
- clearTimeout(hideTimer.current);
20
- showTimer.current = setTimeout(onMouseOver, showDelay);
21
- }, []);
22
- return {
23
- onMouseOver: delayedShow,
24
- onMouseLeave: delayedHide
25
- };
26
- }
27
-
28
- module.exports = useHoverHandlersDelay;
@@ -1,37 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- require('core-js/modules/web.dom-collections.iterator.js');
6
- var React = require('react');
7
-
8
- // Taken and modified from https://stackoverflow.com/a/60218754
9
-
10
- const useOnElementResize = targetRef => {
11
- var _targetRef$current, _targetRef$current2;
12
-
13
- const [width, setWidth] = React.useState(targetRef.current ? (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.offsetWidth : 0);
14
- const [height, setHeight] = React.useState(targetRef.current ? (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.offsetWidth : 0);
15
- const observer = React.useRef(null);
16
- React.useEffect(() => {
17
- function outputsize() {
18
- var _targetRef$current3, _targetRef$current4;
19
-
20
- setWidth((_targetRef$current3 = targetRef.current) === null || _targetRef$current3 === void 0 ? void 0 : _targetRef$current3.offsetWidth);
21
- setHeight((_targetRef$current4 = targetRef.current) === null || _targetRef$current4 === void 0 ? void 0 : _targetRef$current4.offsetHeight);
22
- }
23
-
24
- observer.current = new ResizeObserver(outputsize).observe(targetRef.current);
25
- return () => {
26
- var _observer$current;
27
-
28
- (_observer$current = observer.current) === null || _observer$current === void 0 ? void 0 : _observer$current.disconnect();
29
- };
30
- }, [targetRef]);
31
- return React.useMemo(() => ({
32
- width,
33
- height
34
- }), [width, height]);
35
- };
36
-
37
- exports.useOnElementResize = useOnElementResize;
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- require('core-js/modules/web.dom-collections.iterator.js');
6
- var React = require('react');
7
-
8
- const useParentElement = ref => {
9
- const [parent, setParent] = React.useState(ref.current);
10
- React.useEffect(() => {
11
- if (ref.current) setParent(ref.current.parentNode);
12
- });
13
- return parent;
14
- };
15
-
16
- exports.useParentElement = useParentElement;
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- function usePrevious(value) {
6
- const ref = React.useRef();
7
- React.useEffect(() => {
8
- ref.current = value;
9
- }, [value]);
10
- return ref.current;
11
- }
12
-
13
- module.exports = usePrevious;
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/web.dom-collections.iterator.js');
4
- var React = require('react');
5
- var raf = require('raf');
6
- var ResizeObserver = require('resize-observer-polyfill');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
-
10
- var raf__default = /*#__PURE__*/_interopDefaultLegacy(raf);
11
- var ResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(ResizeObserver);
12
-
13
- function useResizeObserver(handler, el) {
14
- const [node, setRef] = React.useState(el);
15
- const resizeObserver = new ResizeObserver__default["default"](entries => {
16
- if (!Array.isArray(entries)) return;
17
- if (!entries.length) return;
18
- const entry = entries[0]; // execute on the next animation frame
19
-
20
- raf__default["default"](() => handler({
21
- width: entry.target.offsetWidth,
22
- height: entry.target.offsetHeight
23
- }, entry.target));
24
- });
25
- const htmlEl = el || node;
26
- React.useEffect(() => {
27
- if (htmlEl) resizeObserver.observe(htmlEl);
28
- return () => htmlEl && resizeObserver.unobserve(htmlEl);
29
- }, [htmlEl]);
30
- return [setRef];
31
- }
32
-
33
- module.exports = useResizeObserver;
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
-
7
- const useSetRef = initial => {
8
- const ref = React.useRef(initial);
9
- const setRef = React.useCallback(node => {
10
- ref.current = node;
11
- }, []);
12
- return [ref, setRef];
13
- };
14
-
15
- exports.useSetRef = useSetRef;
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- function useShouldRecalculate(bool) {
6
- const prevValueRef = React.useRef(0);
7
-
8
- if (!bool) {
9
- // If we need to recalculate, change the value we return
10
- prevValueRef.current += 1;
11
- } // else we return the same value as the previous render, which won't trigger a recalculation
12
-
13
-
14
- return prevValueRef.current;
15
- }
16
-
17
- module.exports = useShouldRecalculate;
@@ -1,65 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- function getScrollOffset() {
6
- let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
7
- scrollTop: 0,
8
- scrollLeft: 0
9
- };
10
- return {
11
- top: element.scrollTop,
12
- left: element.scrollLeft
13
- };
14
- }
15
-
16
- function getPositionOffset(listEl, scrollableEl) {
17
- const scrollOffset = getScrollOffset(scrollableEl);
18
- const elementRect = listEl.getBoundingClientRect();
19
- const containerRect = scrollableEl.getBoundingClientRect();
20
- return {
21
- top: elementRect.top + scrollOffset.top - containerRect.top,
22
- left: elementRect.left + scrollOffset.top - containerRect.left
23
- };
24
- }
25
-
26
- function isParent(parentNode, childNode) {
27
- return childNode.parentNode === parentNode || childNode.parentNode && isParent(parentNode, childNode.parentNode);
28
- }
29
-
30
- function useWindowScrollerList(_ref) {
31
- let {
32
- listInstance,
33
- outerListRef
34
- } = _ref;
35
- const scrollableParent = React.useRef();
36
- const listOffset = React.useRef();
37
-
38
- const getElementOffset = () => {
39
- listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);
40
- };
41
-
42
- const handleScroll = e => {
43
- if (!scrollableParent.current) {
44
- const containerTarget = e.target === document ? document.body : e.target;
45
- scrollableParent.current = isParent(containerTarget, outerListRef.current) && containerTarget;
46
- }
47
-
48
- if (!scrollableParent.current) return;
49
- getElementOffset();
50
- const scrollOffset = getScrollOffset(scrollableParent.current);
51
- const scrollTop = Math.max(0, scrollOffset.top - listOffset.current.top);
52
- if (listInstance.current) listInstance.current.scrollTo(scrollTop);
53
- };
54
-
55
- React.useEffect(() => {
56
- window.addEventListener('scroll', handleScroll, true);
57
- window.addEventListener('resize', getElementOffset, true);
58
- return () => {
59
- window.removeEventListener('scroll', handleScroll, true);
60
- window.removeEventListener('resize', getElementOffset, true);
61
- };
62
- }, []);
63
- }
64
-
65
- module.exports = useWindowScrollerList;
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/web.dom-collections.iterator.js');
4
- var React = require('react');
5
-
6
- function useWindowSize() {
7
- const [size, setSize] = React.useState([0, 0]);
8
- React.useLayoutEffect(() => {
9
- if (!window) return false;
10
-
11
- function updateSize() {
12
- setSize([window.innerWidth, window.innerHeight]);
13
- }
14
-
15
- window.addEventListener('resize', updateSize);
16
- window.addEventListener('orientationchange', updateSize);
17
- updateSize();
18
- return () => {
19
- window.removeEventListener('resize', updateSize);
20
- window.removeEventListener('orientationchange', updateSize);
21
- };
22
- }, []);
23
- if (!window) return false;
24
- return size;
25
- }
26
-
27
- module.exports = useWindowSize;