@elliemae/ds-utilities 2.3.1 → 3.0.0-alpha.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 (208) 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 +73 -0
  8. package/dist/cjs/hooks/index.js.map +7 -0
  9. package/dist/cjs/hooks/useCancellableDelayedCallback.js +51 -0
  10. package/dist/cjs/hooks/useCancellableDelayedCallback.js.map +7 -0
  11. package/dist/cjs/hooks/useDerivedStateFromProps.js +67 -0
  12. package/dist/cjs/hooks/useDerivedStateFromProps.js.map +7 -0
  13. package/dist/cjs/hooks/useExecutionTimer.js +50 -0
  14. package/dist/cjs/hooks/useExecutionTimer.js.map +7 -0
  15. package/dist/cjs/hooks/useExpandState.js +137 -0
  16. package/dist/cjs/hooks/useExpandState.js.map +7 -0
  17. package/dist/cjs/hooks/useFocusTrap.js +49 -0
  18. package/dist/cjs/hooks/useFocusTrap.js.map +7 -0
  19. package/dist/cjs/hooks/useHotkeys.js +45 -0
  20. package/dist/cjs/hooks/useHotkeys.js.map +7 -0
  21. package/dist/cjs/hooks/useHoverHandlersDelay.js +58 -0
  22. package/dist/cjs/hooks/useHoverHandlersDelay.js.map +7 -0
  23. package/dist/cjs/hooks/useIsShowingEllipsis.js +58 -0
  24. package/dist/cjs/hooks/useIsShowingEllipsis.js.map +7 -0
  25. package/dist/cjs/hooks/useOnElementResize.js +55 -0
  26. package/dist/cjs/hooks/useOnElementResize.js.map +7 -0
  27. package/dist/cjs/hooks/useParentElement.js +43 -0
  28. package/dist/cjs/hooks/useParentElement.js.map +7 -0
  29. package/dist/cjs/hooks/usePrevious.js +44 -0
  30. package/dist/cjs/hooks/usePrevious.js.map +7 -0
  31. package/dist/cjs/hooks/useResizeObserver.js +60 -0
  32. package/dist/cjs/hooks/useResizeObserver.js.map +7 -0
  33. package/dist/cjs/hooks/useSetRef.js +42 -0
  34. package/dist/cjs/hooks/useSetRef.js.map +7 -0
  35. package/dist/cjs/hooks/useShouldRecalculate.js +44 -0
  36. package/dist/cjs/hooks/useShouldRecalculate.js.map +7 -0
  37. package/dist/cjs/hooks/useWindowScrollerList.js +83 -0
  38. package/dist/cjs/hooks/useWindowScrollerList.js.map +7 -0
  39. package/dist/cjs/hooks/useWindowSize.js +57 -0
  40. package/dist/cjs/hooks/useWindowSize.js.map +7 -0
  41. package/dist/cjs/index.js +146 -0
  42. package/dist/cjs/index.js.map +7 -0
  43. package/dist/cjs/onClickHandlerForNonInteractiveElements.js +49 -0
  44. package/dist/cjs/onClickHandlerForNonInteractiveElements.js.map +7 -0
  45. package/dist/cjs/operators.js +68 -0
  46. package/dist/cjs/operators.js.map +7 -0
  47. package/dist/cjs/platform.js +37 -0
  48. package/dist/cjs/platform.js.map +7 -0
  49. package/dist/cjs/reactTypesUtility.js +58 -0
  50. package/dist/cjs/reactTypesUtility.js.map +7 -0
  51. package/dist/cjs/scrollingTimer.js +46 -0
  52. package/dist/cjs/scrollingTimer.js.map +7 -0
  53. package/dist/cjs/system.js +60 -0
  54. package/dist/cjs/system.js.map +7 -0
  55. package/dist/cjs/timeUtils.js +43 -0
  56. package/dist/cjs/timeUtils.js.map +7 -0
  57. package/dist/cjs/utils.js +143 -0
  58. package/dist/cjs/utils.js.map +7 -0
  59. package/dist/cjs/validations.js +57 -0
  60. package/dist/cjs/validations.js.map +7 -0
  61. package/dist/esm/capitalize.js +6 -0
  62. package/dist/esm/capitalize.js.map +7 -0
  63. package/dist/esm/compose.js +16 -0
  64. package/dist/esm/compose.js.map +7 -0
  65. package/dist/esm/getComponentFromProps.js +30 -0
  66. package/dist/esm/getComponentFromProps.js.map +7 -0
  67. package/dist/esm/hooks/index.js +44 -0
  68. package/dist/esm/hooks/index.js.map +7 -0
  69. package/dist/esm/hooks/useCancellableDelayedCallback.js +22 -0
  70. package/dist/esm/hooks/useCancellableDelayedCallback.js.map +7 -0
  71. package/dist/esm/hooks/useDerivedStateFromProps.js +38 -0
  72. package/dist/esm/hooks/useDerivedStateFromProps.js.map +7 -0
  73. package/dist/esm/hooks/useExecutionTimer.js +21 -0
  74. package/dist/esm/hooks/useExecutionTimer.js.map +7 -0
  75. package/dist/esm/hooks/useExpandState.js +110 -0
  76. package/dist/esm/hooks/useExpandState.js.map +7 -0
  77. package/dist/esm/hooks/useFocusTrap.js +20 -0
  78. package/dist/esm/hooks/useFocusTrap.js.map +7 -0
  79. package/dist/esm/hooks/useHotkeys.js +16 -0
  80. package/dist/esm/hooks/useHotkeys.js.map +7 -0
  81. package/{esm → dist/esm}/hooks/useHoverHandlersDelay.js +15 -12
  82. package/dist/esm/hooks/useHoverHandlersDelay.js.map +7 -0
  83. package/{esm → dist/esm}/hooks/useIsShowingEllipsis.js +9 -12
  84. package/dist/esm/hooks/useIsShowingEllipsis.js.map +7 -0
  85. package/dist/esm/hooks/useOnElementResize.js +26 -0
  86. package/dist/esm/hooks/useOnElementResize.js.map +7 -0
  87. package/dist/esm/hooks/useParentElement.js +14 -0
  88. package/dist/esm/hooks/useParentElement.js.map +7 -0
  89. package/dist/esm/hooks/usePrevious.js +15 -0
  90. package/dist/esm/hooks/usePrevious.js.map +7 -0
  91. package/dist/esm/hooks/useResizeObserver.js +31 -0
  92. package/dist/esm/hooks/useResizeObserver.js.map +7 -0
  93. package/dist/esm/hooks/useSetRef.js +13 -0
  94. package/dist/esm/hooks/useSetRef.js.map +7 -0
  95. package/dist/esm/hooks/useShouldRecalculate.js +15 -0
  96. package/dist/esm/hooks/useShouldRecalculate.js.map +7 -0
  97. package/{esm → dist/esm}/hooks/useWindowScrollerList.js +20 -29
  98. package/dist/esm/hooks/useWindowScrollerList.js.map +7 -0
  99. package/dist/esm/hooks/useWindowSize.js +28 -0
  100. package/dist/esm/hooks/useWindowSize.js.map +7 -0
  101. package/dist/esm/index.js +206 -0
  102. package/dist/esm/index.js.map +7 -0
  103. package/dist/esm/onClickHandlerForNonInteractiveElements.js +20 -0
  104. package/dist/esm/onClickHandlerForNonInteractiveElements.js.map +7 -0
  105. package/dist/esm/operators.js +39 -0
  106. package/dist/esm/operators.js.map +7 -0
  107. package/dist/esm/platform.js +8 -0
  108. package/dist/esm/platform.js.map +7 -0
  109. package/dist/esm/reactTypesUtility.js +29 -0
  110. package/dist/esm/reactTypesUtility.js.map +7 -0
  111. package/dist/esm/scrollingTimer.js +17 -0
  112. package/dist/esm/scrollingTimer.js.map +7 -0
  113. package/dist/esm/system.js +31 -0
  114. package/dist/esm/system.js.map +7 -0
  115. package/dist/esm/timeUtils.js +14 -0
  116. package/dist/esm/timeUtils.js.map +7 -0
  117. package/dist/esm/utils.js +154 -0
  118. package/dist/esm/utils.js.map +7 -0
  119. package/dist/esm/validations.js +28 -0
  120. package/dist/esm/validations.js.map +7 -0
  121. package/package.json +80 -75
  122. package/cjs/capitalize.js +0 -7
  123. package/cjs/compose.js +0 -38
  124. package/cjs/getComponentFromProps.js +0 -30
  125. package/cjs/hooks/index.js +0 -65
  126. package/cjs/hooks/useCancellableDelayedCallback.js +0 -26
  127. package/cjs/hooks/useDerivedStateFromProps.js +0 -56
  128. package/cjs/hooks/useExecutionTimer.js +0 -31
  129. package/cjs/hooks/useExpandState.js +0 -133
  130. package/cjs/hooks/useFocusTrap.js +0 -31
  131. package/cjs/hooks/useHotkeys.js +0 -25
  132. package/cjs/hooks/useHoverHandlersDelay.js +0 -28
  133. package/cjs/hooks/useIsShowingEllipsis.js +0 -36
  134. package/cjs/hooks/useOnElementResize.js +0 -38
  135. package/cjs/hooks/useParentElement.js +0 -16
  136. package/cjs/hooks/usePrevious.js +0 -13
  137. package/cjs/hooks/useResizeObserver.js +0 -33
  138. package/cjs/hooks/useSetRef.js +0 -15
  139. package/cjs/hooks/useShouldRecalculate.js +0 -17
  140. package/cjs/hooks/useWindowScrollerList.js +0 -65
  141. package/cjs/hooks/useWindowSize.js +0 -27
  142. package/cjs/index.js +0 -270
  143. package/cjs/onClickHandlerForNonInteractiveElements.js +0 -22
  144. package/cjs/operators.js +0 -63
  145. package/cjs/platform.js +0 -9
  146. package/cjs/reactTypesUtility.js +0 -35
  147. package/cjs/scrollingTimer.js +0 -24
  148. package/cjs/system.js +0 -43
  149. package/cjs/timeUtils.js +0 -25
  150. package/cjs/utils.js +0 -263
  151. package/cjs/validations.js +0 -44
  152. package/esm/capitalize.js +0 -3
  153. package/esm/compose.js +0 -34
  154. package/esm/getComponentFromProps.js +0 -23
  155. package/esm/hooks/index.js +0 -20
  156. package/esm/hooks/useCancellableDelayedCallback.js +0 -24
  157. package/esm/hooks/useDerivedStateFromProps.js +0 -54
  158. package/esm/hooks/useExecutionTimer.js +0 -29
  159. package/esm/hooks/useExpandState.js +0 -127
  160. package/esm/hooks/useFocusTrap.js +0 -27
  161. package/esm/hooks/useHotkeys.js +0 -19
  162. package/esm/hooks/useOnElementResize.js +0 -34
  163. package/esm/hooks/useParentElement.js +0 -12
  164. package/esm/hooks/usePrevious.js +0 -11
  165. package/esm/hooks/useResizeObserver.js +0 -26
  166. package/esm/hooks/useSetRef.js +0 -11
  167. package/esm/hooks/useShouldRecalculate.js +0 -15
  168. package/esm/hooks/useWindowSize.js +0 -25
  169. package/esm/index.js +0 -33
  170. package/esm/onClickHandlerForNonInteractiveElements.js +0 -20
  171. package/esm/operators.js +0 -46
  172. package/esm/platform.js +0 -4
  173. package/esm/reactTypesUtility.js +0 -22
  174. package/esm/scrollingTimer.js +0 -20
  175. package/esm/system.js +0 -37
  176. package/esm/timeUtils.js +0 -20
  177. package/esm/utils.js +0 -99
  178. package/esm/validations.js +0 -38
  179. package/types/capitalize.d.ts +0 -1
  180. package/types/compose.d.ts +0 -11
  181. package/types/getComponentFromProps.d.ts +0 -2
  182. package/types/hooks/index.d.ts +0 -20
  183. package/types/hooks/useCancellableDelayedCallback.d.ts +0 -1
  184. package/types/hooks/useDerivedStateFromProps.d.ts +0 -1
  185. package/types/hooks/useExecutionTimer.d.ts +0 -1
  186. package/types/hooks/useExpandState.d.ts +0 -22
  187. package/types/hooks/useFocusTrap.d.ts +0 -8
  188. package/types/hooks/useHotkeys.d.ts +0 -5
  189. package/types/hooks/useHoverHandlersDelay.d.ts +0 -9
  190. package/types/hooks/useIsShowingEllipsis.d.ts +0 -5
  191. package/types/hooks/useOnElementResize.d.ts +0 -2
  192. package/types/hooks/useParentElement.d.ts +0 -1
  193. package/types/hooks/usePrevious.d.ts +0 -2
  194. package/types/hooks/useResizeObserver.d.ts +0 -2
  195. package/types/hooks/useSetRef.d.ts +0 -2
  196. package/types/hooks/useShouldRecalculate.d.ts +0 -1
  197. package/types/hooks/useWindowScrollerList.d.ts +0 -4
  198. package/types/hooks/useWindowSize.d.ts +0 -1
  199. package/types/index.d.ts +0 -13
  200. package/types/onClickHandlerForNonInteractiveElements.d.ts +0 -12
  201. package/types/operators.d.ts +0 -31
  202. package/types/platform.d.ts +0 -2
  203. package/types/reactTypesUtility.d.ts +0 -6
  204. package/types/scrollingTimer.d.ts +0 -1
  205. package/types/system.d.ts +0 -3
  206. package/types/timeUtils.d.ts +0 -7
  207. package/types/utils.d.ts +0 -23
  208. package/types/validations.d.ts +0 -23
@@ -0,0 +1,110 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import * as React from "react";
21
+ import { useMemo } from "react";
22
+ import { isFunction } from "../utils";
23
+ import { useDerivedStateFromProps } from "./useDerivedStateFromProps";
24
+ const toggleStateInObject = (obj, key, value) => {
25
+ const nextObj = __spreadValues({}, obj);
26
+ if (nextObj[key]) {
27
+ delete nextObj[key];
28
+ } else {
29
+ nextObj[key] = value;
30
+ }
31
+ return nextObj;
32
+ };
33
+ const noop = () => null;
34
+ const useExpandState = ({
35
+ items = [],
36
+ itemKey = "id",
37
+ expanded: expandedProp = {},
38
+ onExpand,
39
+ onExpandChange = noop,
40
+ onExpandAll = noop,
41
+ onToggleExpand,
42
+ onCollapse
43
+ }) => {
44
+ const [expanded, setExpanded] = useDerivedStateFromProps(expandedProp);
45
+ const isExpandedAll = useMemo(() => Object.keys(expanded).length === items.length, [expanded, items]);
46
+ const toggleExpandAll = (stateData = true) => {
47
+ setExpanded(() => {
48
+ const nextState = {};
49
+ if (!isExpandedAll) {
50
+ items.forEach((item) => {
51
+ nextState[item[itemKey]] = stateData;
52
+ });
53
+ }
54
+ onExpandChange(nextState);
55
+ onExpandAll(nextState);
56
+ return nextState;
57
+ });
58
+ };
59
+ const expand = (item, stateData = true) => {
60
+ if (!item)
61
+ return;
62
+ if (isFunction(onExpand)) {
63
+ onExpand(item);
64
+ }
65
+ setExpanded((prevState) => {
66
+ const key = item[itemKey];
67
+ const nextState = __spreadProps(__spreadValues({}, prevState), { [key]: stateData });
68
+ onExpandChange(nextState, item);
69
+ return nextState;
70
+ });
71
+ };
72
+ const toggleExpand = (item, stateData = true) => {
73
+ if (isFunction(onToggleExpand)) {
74
+ onToggleExpand(item);
75
+ }
76
+ setExpanded((prevState) => {
77
+ const key = item[itemKey];
78
+ const nextState = toggleStateInObject(prevState, key, stateData);
79
+ onExpandChange(nextState, item);
80
+ return nextState;
81
+ });
82
+ };
83
+ const collapse = (item) => {
84
+ if (isFunction(onCollapse)) {
85
+ onCollapse(item);
86
+ }
87
+ setExpanded((prevState) => {
88
+ const nextState = __spreadValues({}, prevState);
89
+ delete nextState[item[itemKey]];
90
+ onExpandChange(nextState, item);
91
+ return nextState;
92
+ });
93
+ };
94
+ return {
95
+ state: { expanded, isExpandedAll },
96
+ actions: {
97
+ expand,
98
+ toggleExpandAll,
99
+ toggleExpand,
100
+ collapse
101
+ },
102
+ setExpanded
103
+ };
104
+ };
105
+ var useExpandState_default = useExpandState;
106
+ export {
107
+ useExpandState_default as default,
108
+ useExpandState
109
+ };
110
+ //# sourceMappingURL=useExpandState.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useExpandState.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useMemo } from 'react';\nimport { isFunction } from '../utils';\nimport { useDerivedStateFromProps } from './useDerivedStateFromProps';\n\nconst toggleStateInObject = (obj, key, value) => {\n const nextObj = { ...obj };\n if (nextObj[key]) {\n delete nextObj[key];\n } else {\n nextObj[key] = value;\n }\n return nextObj;\n};\n\nconst noop = () => null;\n\nexport const useExpandState = ({\n items = [],\n itemKey = 'id',\n expanded: expandedProp = {},\n onExpand,\n onExpandChange = noop,\n onExpandAll = noop,\n onToggleExpand,\n onCollapse,\n}) => {\n const [expanded, setExpanded] = useDerivedStateFromProps(expandedProp);\n\n const isExpandedAll = useMemo(\n () => Object.keys(expanded).length === items.length,\n [expanded, items],\n );\n\n const toggleExpandAll = (stateData = true) => {\n setExpanded(() => {\n const nextState = {};\n if (!isExpandedAll) {\n items.forEach(item => {\n nextState[item[itemKey]] = stateData;\n });\n }\n onExpandChange(nextState);\n onExpandAll(nextState);\n return nextState;\n });\n };\n\n const expand = (item, stateData = true) => {\n if (!item) return;\n if (isFunction(onExpand)) {\n onExpand(item);\n }\n setExpanded(prevState => {\n const key = item[itemKey];\n const nextState = { ...prevState, [key]: stateData };\n onExpandChange(nextState, item);\n return nextState;\n });\n };\n\n const toggleExpand = (item, stateData = true) => {\n if (isFunction(onToggleExpand)) {\n onToggleExpand(item);\n }\n setExpanded(prevState => {\n const key = item[itemKey];\n const nextState = toggleStateInObject(prevState, key, stateData);\n onExpandChange(nextState, item);\n return nextState;\n });\n };\n\n const collapse = item => {\n if (isFunction(onCollapse)) {\n onCollapse(item);\n }\n setExpanded(prevState => {\n const nextState = { ...prevState };\n delete nextState[item[itemKey]];\n onExpandChange(nextState, item);\n return nextState;\n });\n };\n\n return {\n state: { expanded, isExpandedAll },\n actions: {\n expand,\n toggleExpandAll,\n toggleExpand,\n collapse,\n },\n setExpanded,\n };\n};\n\nexport default useExpandState;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AAEA,MAAM,sBAAsB,CAAC,KAAK,KAAK,UAAU;AAC/C,QAAM,UAAU,mBAAK;AACrB,MAAI,QAAQ,MAAM;AAChB,WAAO,QAAQ;AAAA,SACV;AACL,YAAQ,OAAO;AAAA;AAEjB,SAAO;AAAA;AAGT,MAAM,OAAO,MAAM;AAEZ,MAAM,iBAAiB,CAAC;AAAA,EAC7B,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU,eAAe;AAAA,EACzB;AAAA,EACA,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,MACI;AACJ,QAAM,CAAC,UAAU,eAAe,yBAAyB;AAEzD,QAAM,gBAAgB,QACpB,MAAM,OAAO,KAAK,UAAU,WAAW,MAAM,QAC7C,CAAC,UAAU;AAGb,QAAM,kBAAkB,CAAC,YAAY,SAAS;AAC5C,gBAAY,MAAM;AAChB,YAAM,YAAY;AAClB,UAAI,CAAC,eAAe;AAClB,cAAM,QAAQ,UAAQ;AACpB,oBAAU,KAAK,YAAY;AAAA;AAAA;AAG/B,qBAAe;AACf,kBAAY;AACZ,aAAO;AAAA;AAAA;AAIX,QAAM,SAAS,CAAC,MAAM,YAAY,SAAS;AACzC,QAAI,CAAC;AAAM;AACX,QAAI,WAAW,WAAW;AACxB,eAAS;AAAA;AAEX,gBAAY,eAAa;AACvB,YAAM,MAAM,KAAK;AACjB,YAAM,YAAY,iCAAK,YAAL,GAAiB,MAAM;AACzC,qBAAe,WAAW;AAC1B,aAAO;AAAA;AAAA;AAIX,QAAM,eAAe,CAAC,MAAM,YAAY,SAAS;AAC/C,QAAI,WAAW,iBAAiB;AAC9B,qBAAe;AAAA;AAEjB,gBAAY,eAAa;AACvB,YAAM,MAAM,KAAK;AACjB,YAAM,YAAY,oBAAoB,WAAW,KAAK;AACtD,qBAAe,WAAW;AAC1B,aAAO;AAAA;AAAA;AAIX,QAAM,WAAW,UAAQ;AACvB,QAAI,WAAW,aAAa;AAC1B,iBAAW;AAAA;AAEb,gBAAY,eAAa;AACvB,YAAM,YAAY,mBAAK;AACvB,aAAO,UAAU,KAAK;AACtB,qBAAe,WAAW;AAC1B,aAAO;AAAA;AAAA;AAIX,SAAO;AAAA,IACL,OAAO,EAAE,UAAU;AAAA,IACnB,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEF;AAAA;AAAA;AAIJ,IAAO,yBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import { useCallback } from "react";
3
+ const useFocusTrap = ({ firstElementRef, lastElementRef, onKeyDown }) => useCallback((e) => {
4
+ if (onKeyDown)
5
+ onKeyDown(e);
6
+ if (e.key === "Tab" && !e.shiftKey && e.target === lastElementRef.current && firstElementRef.current) {
7
+ e.preventDefault();
8
+ e.stopPropagation();
9
+ firstElementRef.current.focus();
10
+ }
11
+ if (e.key === "Tab" && e.shiftKey && e.target === firstElementRef.current && lastElementRef.current) {
12
+ e.preventDefault();
13
+ e.stopPropagation();
14
+ lastElementRef.current.focus();
15
+ }
16
+ }, [firstElementRef, lastElementRef, onKeyDown]);
17
+ export {
18
+ useFocusTrap
19
+ };
20
+ //# sourceMappingURL=useFocusTrap.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useFocusTrap.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\n\ntype UseFocusTrapT = <T extends HTMLElement = HTMLElement, K extends HTMLElement = HTMLElement>({\n firstElementRef,\n lastElementRef,\n onKeyDown,\n}: {\n firstElementRef: React.MutableRefObject<T | null>;\n lastElementRef: React.MutableRefObject<K | null>;\n onKeyDown?: (e: KeyboardEvent) => void;\n}) => (e: KeyboardEvent) => void;\n\nexport const useFocusTrap: UseFocusTrapT = ({ firstElementRef, lastElementRef, onKeyDown }) =>\n useCallback(\n (e: KeyboardEvent) => {\n if (onKeyDown) onKeyDown(e);\n // we need to check all the condition before preventing default\n // because we want last-element/first-element tab/shift-tab to keep working\n\n if (e.key === 'Tab' && !e.shiftKey && e.target === lastElementRef.current && firstElementRef.current) {\n e.preventDefault();\n e.stopPropagation();\n firstElementRef.current.focus();\n }\n if (e.key === 'Tab' && e.shiftKey && e.target === firstElementRef.current && lastElementRef.current) {\n e.preventDefault();\n e.stopPropagation();\n lastElementRef.current.focus();\n }\n },\n [firstElementRef, lastElementRef, onKeyDown],\n );\n"],
5
+ "mappings": "AAAA;ACAA;AAYO,MAAM,eAA8B,CAAC,EAAE,iBAAiB,gBAAgB,gBAC7E,YACE,CAAC,MAAqB;AACpB,MAAI;AAAW,cAAU;AAIzB,MAAI,EAAE,QAAQ,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW,eAAe,WAAW,gBAAgB,SAAS;AACpG,MAAE;AACF,MAAE;AACF,oBAAgB,QAAQ;AAAA;AAE1B,MAAI,EAAE,QAAQ,SAAS,EAAE,YAAY,EAAE,WAAW,gBAAgB,WAAW,eAAe,SAAS;AACnG,MAAE;AACF,MAAE;AACF,mBAAe,QAAQ;AAAA;AAAA,GAG3B,CAAC,iBAAiB,gBAAgB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,16 @@
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 = []) => {
5
+ const memoizedCallback = useCallback(handler, deps);
6
+ useEffect(() => {
7
+ hotkeys(keys, options, memoizedCallback);
8
+ return () => hotkeys.unbind(keys);
9
+ }, [memoizedCallback]);
10
+ };
11
+ var useHotkeys_default = useHotkeys;
12
+ export {
13
+ useHotkeys_default as default,
14
+ useHotkeys
15
+ };
16
+ //# sourceMappingURL=useHotkeys.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useHotkeys.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import hotkeys from 'hotkeys-js';\nimport { useCallback, useEffect } from 'react';\n\nexport const useHotkeys = ({ keys, handler, options = {} }, deps = []) => {\n const memoizedCallback = useCallback(handler, deps);\n\n useEffect(() => {\n hotkeys(keys, options, memoizedCallback);\n\n return () => hotkeys.unbind(keys);\n }, [memoizedCallback]);\n};\n\nexport default useHotkeys;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAEO,MAAM,aAAa,CAAC,EAAE,MAAM,SAAS,UAAU,MAAM,OAAO,OAAO;AACxE,QAAM,mBAAmB,YAAY,SAAS;AAE9C,YAAU,MAAM;AACd,YAAQ,MAAM,SAAS;AAEvB,WAAO,MAAM,QAAQ,OAAO;AAAA,KAC3B,CAAC;AAAA;AAGN,IAAO,qBAAQ;",
6
+ "names": []
7
+ }
@@ -1,12 +1,11 @@
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;
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
+ }) => {
10
9
  const hideTimer = useRef();
11
10
  const showTimer = useRef();
12
11
  const delayedHide = useCallback(() => {
@@ -21,6 +20,10 @@ function useHoverHandlersDelay(_ref) {
21
20
  onMouseOver: delayedShow,
22
21
  onMouseLeave: delayedHide
23
22
  };
24
- }
25
-
26
- export { useHoverHandlersDelay as default };
23
+ };
24
+ var useHoverHandlersDelay_default = useHoverHandlersDelay;
25
+ export {
26
+ useHoverHandlersDelay_default as default,
27
+ useHoverHandlersDelay
28
+ };
29
+ //# sourceMappingURL=useHoverHandlersDelay.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useHoverHandlersDelay.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback, useRef } from 'react';\n\nexport const useHoverHandlersDelay = ({\n onMouseOver,\n onMouseLeave,\n hideDelay = 300,\n showDelay = 300,\n}) => {\n const hideTimer = useRef();\n const showTimer = useRef();\n\n const delayedHide = useCallback(() => {\n clearTimeout(showTimer.current);\n hideTimer.current = setTimeout(onMouseLeave, hideDelay);\n }, []);\n\n const delayedShow = useCallback(() => {\n clearTimeout(hideTimer.current);\n showTimer.current = setTimeout(onMouseOver, showDelay);\n }, []);\n\n return {\n onMouseOver: delayedShow,\n onMouseLeave: delayedHide,\n };\n};\n\nexport default useHoverHandlersDelay;\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,wBAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,YAAY;AAAA,MACR;AACJ,QAAM,YAAY;AAClB,QAAM,YAAY;AAElB,QAAM,cAAc,YAAY,MAAM;AACpC,iBAAa,UAAU;AACvB,cAAU,UAAU,WAAW,cAAc;AAAA,KAC5C;AAEH,QAAM,cAAc,YAAY,MAAM;AACpC,iBAAa,UAAU;AACvB,cAAU,UAAU,WAAW,aAAa;AAAA,KAC3C;AAEH,SAAO;AAAA,IACL,aAAa;AAAA,IACb,cAAc;AAAA;AAAA;AAIlB,IAAO,gCAAQ;",
6
+ "names": []
7
+ }
@@ -1,14 +1,13 @@
1
- import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { useState, useMemo, useEffect } from 'react';
3
-
1
+ import * as React from "react";
2
+ import { useEffect, useState, useMemo } from "react";
4
3
  const useIsShowingEllipsis = () => {
5
4
  const [element, setElement] = useState();
6
5
  const [isShowingEllipsis, setIsShowingEllipsis] = useState(false);
7
- const resizeObserver = useMemo(() => new ResizeObserver(entries => {
6
+ const resizeObserver = useMemo(() => new ResizeObserver((entries) => {
8
7
  if (entries.length) {
9
8
  const [textWrapperEntry] = entries;
10
9
  const el = textWrapperEntry.target;
11
- setIsShowingEllipsis((el === null || el === void 0 ? void 0 : el.scrollWidth) > (el === null || el === void 0 ? void 0 : el.clientWidth));
10
+ setIsShowingEllipsis(el?.scrollWidth > el?.clientWidth);
12
11
  }
13
12
  }), []);
14
13
  useEffect(() => {
@@ -16,17 +15,15 @@ const useIsShowingEllipsis = () => {
16
15
  setIsShowingEllipsis(element.scrollWidth > element.clientWidth);
17
16
  resizeObserver.observe(element);
18
17
  }
19
-
20
18
  return () => {
21
19
  if (element) {
22
20
  resizeObserver.unobserve(element);
23
21
  }
24
22
  };
25
23
  }, [resizeObserver, element]);
26
- return {
27
- setElement,
28
- isShowingEllipsis
29
- };
24
+ return { setElement, isShowingEllipsis };
30
25
  };
31
-
32
- export { useIsShowingEllipsis };
26
+ export {
27
+ useIsShowingEllipsis
28
+ };
29
+ //# sourceMappingURL=useIsShowingEllipsis.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useIsShowingEllipsis.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useState, useMemo } from 'react';\n\nexport const useIsShowingEllipsis = <T extends HTMLElement = HTMLSpanElement>() => {\n const [element, setElement] = useState<T>();\n\n const [isShowingEllipsis, setIsShowingEllipsis] = useState(false);\n\n const resizeObserver = useMemo(\n () =>\n new ResizeObserver((entries) => {\n if (entries.length) {\n const [textWrapperEntry] = entries;\n const el = textWrapperEntry.target;\n setIsShowingEllipsis(el?.scrollWidth > el?.clientWidth);\n }\n }),\n [],\n );\n\n useEffect(() => {\n if (element) {\n setIsShowingEllipsis(element.scrollWidth > element.clientWidth);\n resizeObserver.observe(element);\n }\n return () => {\n if (element) {\n resizeObserver.unobserve(element);\n }\n };\n }, [resizeObserver, element]);\n\n return { setElement, isShowingEllipsis };\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,uBAAuB,MAA+C;AACjF,QAAM,CAAC,SAAS,cAAc;AAE9B,QAAM,CAAC,mBAAmB,wBAAwB,SAAS;AAE3D,QAAM,iBAAiB,QACrB,MACE,IAAI,eAAe,CAAC,YAAY;AAC9B,QAAI,QAAQ,QAAQ;AAClB,YAAM,CAAC,oBAAoB;AAC3B,YAAM,KAAK,iBAAiB;AAC5B,2BAAqB,IAAI,cAAc,IAAI;AAAA;AAAA,MAGjD;AAGF,YAAU,MAAM;AACd,QAAI,SAAS;AACX,2BAAqB,QAAQ,cAAc,QAAQ;AACnD,qBAAe,QAAQ;AAAA;AAEzB,WAAO,MAAM;AACX,UAAI,SAAS;AACX,uBAAe,UAAU;AAAA;AAAA;AAAA,KAG5B,CAAC,gBAAgB;AAEpB,SAAO,EAAE,YAAY;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
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?.offsetWidth ?? 0);
5
+ const [height, setHeight] = useState(targetRef.current?.offsetHeight ?? 0);
6
+ const observer = useRef();
7
+ useEffect(() => {
8
+ function outputsize() {
9
+ setWidth(targetRef.current?.offsetWidth ?? 0);
10
+ setHeight(targetRef.current?.offsetHeight ?? 0);
11
+ }
12
+ observer.current = new ResizeObserver(outputsize);
13
+ observer.current.observe(targetRef.current);
14
+ return () => {
15
+ observer.current?.disconnect();
16
+ };
17
+ }, [targetRef]);
18
+ return useMemo(() => ({
19
+ width,
20
+ height
21
+ }), [width, height]);
22
+ };
23
+ export {
24
+ useOnElementResize
25
+ };
26
+ //# sourceMappingURL=useOnElementResize.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useOnElementResize.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useState, useEffect, useRef, useMemo } from 'react';\n\n// Custom hook to track dimension of a component\n// Taken and modified from https://stackoverflow.com/a/60218754\nexport const useOnElementResize = <T extends HTMLElement>(\n targetRef: React.RefObject<T>,\n): Record<'width' | 'height', number> => {\n const [width, setWidth] = useState(targetRef.current?.offsetWidth ?? 0);\n const [height, setHeight] = useState(targetRef.current?.offsetHeight ?? 0);\n const observer = useRef<ResizeObserver>();\n\n useEffect(() => {\n function outputsize() {\n setWidth(targetRef.current?.offsetWidth ?? 0);\n setHeight(targetRef.current?.offsetHeight ?? 0);\n }\n\n observer.current = new ResizeObserver(outputsize);\n observer.current.observe(targetRef.current as Element);\n\n return () => {\n observer.current?.disconnect();\n };\n }, [targetRef]);\n\n return useMemo(\n () => ({\n width,\n height,\n }),\n [width, height],\n );\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAIO,MAAM,qBAAqB,CAChC,cACuC;AACvC,QAAM,CAAC,OAAO,YAAY,SAAS,UAAU,SAAS,eAAe;AACrE,QAAM,CAAC,QAAQ,aAAa,SAAS,UAAU,SAAS,gBAAgB;AACxE,QAAM,WAAW;AAEjB,YAAU,MAAM;AACd,0BAAsB;AACpB,eAAS,UAAU,SAAS,eAAe;AAC3C,gBAAU,UAAU,SAAS,gBAAgB;AAAA;AAG/C,aAAS,UAAU,IAAI,eAAe;AACtC,aAAS,QAAQ,QAAQ,UAAU;AAEnC,WAAO,MAAM;AACX,eAAS,SAAS;AAAA;AAAA,KAEnB,CAAC;AAEJ,SAAO,QACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,MAEF,CAAC,OAAO;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { useEffect, useState } from "react";
3
+ const useParentElement = (ref) => {
4
+ const [parent, setParent] = useState(ref.current);
5
+ useEffect(() => {
6
+ if (ref.current)
7
+ setParent(ref.current.parentNode);
8
+ });
9
+ return parent;
10
+ };
11
+ export {
12
+ useParentElement
13
+ };
14
+ //# sourceMappingURL=useParentElement.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useParentElement.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useState } from 'react';\n\nexport const useParentElement = (ref) => {\n const [parent, setParent] = useState(ref.current);\n\n useEffect(() => {\n if (ref.current) setParent(ref.current.parentNode);\n });\n return parent;\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,mBAAmB,CAAC,QAAQ;AACvC,QAAM,CAAC,QAAQ,aAAa,SAAS,IAAI;AAEzC,YAAU,MAAM;AACd,QAAI,IAAI;AAAS,gBAAU,IAAI,QAAQ;AAAA;AAEzC,SAAO;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import { useEffect, useRef } from "react";
3
+ const usePrevious = (value) => {
4
+ const ref = useRef();
5
+ useEffect(() => {
6
+ ref.current = value;
7
+ }, [value]);
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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/usePrevious.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useRef } from 'react';\n\nexport const usePrevious = (value) => {\n const ref = useRef();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n\nexport default usePrevious;\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,cAAc,CAAC,UAAU;AACpC,QAAM,MAAM;AAEZ,YAAU,MAAM;AACd,QAAI,UAAU;AAAA,KACb,CAAC;AAEJ,SAAO,IAAI;AAAA;AAGb,IAAO,sBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,31 @@
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) => {
6
+ 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];
13
+ raf(() => handler({
14
+ width: entry.target.offsetWidth,
15
+ height: entry.target.offsetHeight
16
+ }, entry.target));
17
+ });
18
+ const htmlEl = el || node;
19
+ useEffect(() => {
20
+ if (htmlEl)
21
+ resizeObserver.observe(htmlEl);
22
+ return () => htmlEl && resizeObserver.unobserve(htmlEl);
23
+ }, [htmlEl]);
24
+ return [setRef];
25
+ };
26
+ var useResizeObserver_default = useResizeObserver;
27
+ export {
28
+ useResizeObserver_default as default,
29
+ useResizeObserver
30
+ };
31
+ //# sourceMappingURL=useResizeObserver.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useResizeObserver.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useState } from 'react';\nimport raf from 'raf';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nexport const useResizeObserver = (handler, el) => {\n const [node, setRef] = useState(el);\n\n const resizeObserver = new ResizeObserver(entries => {\n if (!Array.isArray(entries)) return;\n if (!entries.length) return;\n const entry = entries[0];\n\n // execute on the next animation frame\n raf(() =>\n handler(\n {\n width: entry.target.offsetWidth,\n height: entry.target.offsetHeight,\n },\n entry.target,\n ),\n );\n });\n\n const htmlEl = el || node;\n\n useEffect(() => {\n if (htmlEl) resizeObserver.observe(htmlEl);\n return () => htmlEl && resizeObserver.unobserve(htmlEl);\n }, [htmlEl]);\n\n return [setRef];\n};\n\nexport default useResizeObserver;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAEO,MAAM,oBAAoB,CAAC,SAAS,OAAO;AAChD,QAAM,CAAC,MAAM,UAAU,SAAS;AAEhC,QAAM,iBAAiB,IAAI,eAAe,aAAW;AACnD,QAAI,CAAC,MAAM,QAAQ;AAAU;AAC7B,QAAI,CAAC,QAAQ;AAAQ;AACrB,UAAM,QAAQ,QAAQ;AAGtB,QAAI,MACF,QACE;AAAA,MACE,OAAO,MAAM,OAAO;AAAA,MACpB,QAAQ,MAAM,OAAO;AAAA,OAEvB,MAAM;AAAA;AAKZ,QAAM,SAAS,MAAM;AAErB,YAAU,MAAM;AACd,QAAI;AAAQ,qBAAe,QAAQ;AACnC,WAAO,MAAM,UAAU,eAAe,UAAU;AAAA,KAC/C,CAAC;AAEJ,SAAO,CAAC;AAAA;AAGV,IAAO,4BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { useCallback, useRef } from "react";
3
+ const useSetRef = (initial) => {
4
+ const ref = useRef(initial);
5
+ const setRef = useCallback((node) => {
6
+ ref.current = node;
7
+ }, []);
8
+ return [ref, setRef];
9
+ };
10
+ export {
11
+ useSetRef
12
+ };
13
+ //# sourceMappingURL=useSetRef.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useSetRef.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback, useRef } from 'react';\n\nexport const useSetRef = (initial) => {\n const ref = useRef(initial);\n const setRef = useCallback((node) => {\n ref.current = node;\n }, []);\n return [ref, setRef];\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,YAAY,CAAC,YAAY;AACpC,QAAM,MAAM,OAAO;AACnB,QAAM,SAAS,YAAY,CAAC,SAAS;AACnC,QAAI,UAAU;AAAA,KACb;AACH,SAAO,CAAC,KAAK;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import { useRef } from "react";
3
+ const useShouldRecalculate = (bool) => {
4
+ const prevValueRef = useRef(0);
5
+ if (!bool) {
6
+ prevValueRef.current += 1;
7
+ }
8
+ return prevValueRef.current;
9
+ };
10
+ var useShouldRecalculate_default = useShouldRecalculate;
11
+ export {
12
+ useShouldRecalculate_default as default,
13
+ useShouldRecalculate
14
+ };
15
+ //# sourceMappingURL=useShouldRecalculate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useShouldRecalculate.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef } from 'react';\n\nexport const useShouldRecalculate = (bool) => {\n const prevValueRef = useRef(0);\n if (!bool) {\n // If we need to recalculate, change the value we return\n prevValueRef.current += 1;\n } // else we return the same value as the previous render, which won't trigger a recalculation\n return prevValueRef.current;\n};\n\nexport default useShouldRecalculate;\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,uBAAuB,CAAC,SAAS;AAC5C,QAAM,eAAe,OAAO;AAC5B,MAAI,CAAC,MAAM;AAET,iBAAa,WAAW;AAAA;AAE1B,SAAO,aAAa;AAAA;AAGtB,IAAO,+BAAQ;",
6
+ "names": []
7
+ }
@@ -1,16 +1,11 @@
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
- };
1
+ import * as React from "react";
2
+ import { useEffect, useRef } from "react";
3
+ function getScrollOffset(element = { scrollTop: 0, scrollLeft: 0 }) {
8
4
  return {
9
5
  top: element.scrollTop,
10
6
  left: element.scrollLeft
11
7
  };
12
8
  }
13
-
14
9
  function getPositionOffset(listEl, scrollableEl) {
15
10
  const scrollOffset = getScrollOffset(scrollableEl);
16
11
  const elementRect = listEl.getBoundingClientRect();
@@ -20,44 +15,40 @@ function getPositionOffset(listEl, scrollableEl) {
20
15
  left: elementRect.left + scrollOffset.top - containerRect.left
21
16
  };
22
17
  }
23
-
24
18
  function isParent(parentNode, childNode) {
25
19
  return childNode.parentNode === parentNode || childNode.parentNode && isParent(parentNode, childNode.parentNode);
26
20
  }
27
-
28
- function useWindowScrollerList(_ref) {
29
- let {
30
- listInstance,
31
- outerListRef
32
- } = _ref;
21
+ const useWindowScrollerList = ({ listInstance, outerListRef }) => {
33
22
  const scrollableParent = useRef();
34
23
  const listOffset = useRef();
35
-
36
24
  const getElementOffset = () => {
37
25
  listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);
38
26
  };
39
-
40
- const handleScroll = e => {
27
+ const handleScroll = (e) => {
41
28
  if (!scrollableParent.current) {
42
29
  const containerTarget = e.target === document ? document.body : e.target;
43
30
  scrollableParent.current = isParent(containerTarget, outerListRef.current) && containerTarget;
44
31
  }
45
-
46
- if (!scrollableParent.current) return;
32
+ if (!scrollableParent.current)
33
+ return;
47
34
  getElementOffset();
48
35
  const scrollOffset = getScrollOffset(scrollableParent.current);
49
36
  const scrollTop = Math.max(0, scrollOffset.top - listOffset.current.top);
50
- if (listInstance.current) listInstance.current.scrollTo(scrollTop);
37
+ if (listInstance.current)
38
+ listInstance.current.scrollTo(scrollTop);
51
39
  };
52
-
53
40
  useEffect(() => {
54
- window.addEventListener('scroll', handleScroll, true);
55
- window.addEventListener('resize', getElementOffset, true);
41
+ window.addEventListener("scroll", handleScroll, true);
42
+ window.addEventListener("resize", getElementOffset, true);
56
43
  return () => {
57
- window.removeEventListener('scroll', handleScroll, true);
58
- window.removeEventListener('resize', getElementOffset, true);
44
+ window.removeEventListener("scroll", handleScroll, true);
45
+ window.removeEventListener("resize", getElementOffset, true);
59
46
  };
60
47
  }, []);
61
- }
62
-
63
- export { useWindowScrollerList as default };
48
+ };
49
+ var useWindowScrollerList_default = useWindowScrollerList;
50
+ export {
51
+ useWindowScrollerList_default as default,
52
+ useWindowScrollerList
53
+ };
54
+ //# sourceMappingURL=useWindowScrollerList.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useWindowScrollerList.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useRef } from 'react';\n\nfunction getScrollOffset(element = { scrollTop: 0, scrollLeft: 0 }) {\n return {\n top: element.scrollTop,\n left: element.scrollLeft,\n };\n}\n\nfunction getPositionOffset(listEl, scrollableEl) {\n const scrollOffset = getScrollOffset(scrollableEl);\n const elementRect = listEl.getBoundingClientRect();\n const containerRect = scrollableEl.getBoundingClientRect();\n return {\n top: elementRect.top + scrollOffset.top - containerRect.top,\n left: elementRect.left + scrollOffset.top - containerRect.left,\n };\n}\n\nfunction isParent(parentNode, childNode) {\n return (\n childNode.parentNode === parentNode ||\n (childNode.parentNode && isParent(parentNode, childNode.parentNode))\n );\n}\n\nexport const useWindowScrollerList = ({ listInstance, outerListRef }) => {\n const scrollableParent = useRef();\n const listOffset = useRef();\n\n const getElementOffset = () => {\n listOffset.current = getPositionOffset(\n outerListRef.current,\n scrollableParent.current,\n );\n };\n\n const handleScroll = e => {\n if (!scrollableParent.current) {\n const containerTarget = e.target === document ? document.body : e.target;\n scrollableParent.current =\n isParent(containerTarget, outerListRef.current) && containerTarget;\n }\n\n if (!scrollableParent.current) return;\n\n getElementOffset();\n\n const scrollOffset = getScrollOffset(scrollableParent.current);\n const scrollTop = Math.max(0, scrollOffset.top - listOffset.current.top);\n if (listInstance.current) listInstance.current.scrollTo(scrollTop);\n };\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll, true);\n window.addEventListener('resize', getElementOffset, true);\n return () => {\n window.removeEventListener('scroll', handleScroll, true);\n window.removeEventListener('resize', getElementOffset, true);\n };\n }, []);\n};\n\nexport default useWindowScrollerList;"],
5
+ "mappings": "AAAA;ACAA;AAEA,yBAAyB,UAAU,EAAE,WAAW,GAAG,YAAY,KAAK;AAClE,SAAO;AAAA,IACL,KAAK,QAAQ;AAAA,IACb,MAAM,QAAQ;AAAA;AAAA;AAIlB,2BAA2B,QAAQ,cAAc;AAC/C,QAAM,eAAe,gBAAgB;AACrC,QAAM,cAAc,OAAO;AAC3B,QAAM,gBAAgB,aAAa;AACnC,SAAO;AAAA,IACL,KAAK,YAAY,MAAM,aAAa,MAAM,cAAc;AAAA,IACxD,MAAM,YAAY,OAAO,aAAa,MAAM,cAAc;AAAA;AAAA;AAI9D,kBAAkB,YAAY,WAAW;AACvC,SACE,UAAU,eAAe,cACxB,UAAU,cAAc,SAAS,YAAY,UAAU;AAAA;AAIrD,MAAM,wBAAwB,CAAC,EAAE,cAAc,mBAAmB;AACvE,QAAM,mBAAmB;AACzB,QAAM,aAAa;AAEnB,QAAM,mBAAmB,MAAM;AAC7B,eAAW,UAAU,kBACnB,aAAa,SACb,iBAAiB;AAAA;AAIrB,QAAM,eAAe,OAAK;AACxB,QAAI,CAAC,iBAAiB,SAAS;AAC7B,YAAM,kBAAkB,EAAE,WAAW,WAAW,SAAS,OAAO,EAAE;AAClE,uBAAiB,UACf,SAAS,iBAAiB,aAAa,YAAY;AAAA;AAGvD,QAAI,CAAC,iBAAiB;AAAS;AAE/B;AAEA,UAAM,eAAe,gBAAgB,iBAAiB;AACtD,UAAM,YAAY,KAAK,IAAI,GAAG,aAAa,MAAM,WAAW,QAAQ;AACpE,QAAI,aAAa;AAAS,mBAAa,QAAQ,SAAS;AAAA;AAG1D,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,cAAc;AAChD,WAAO,iBAAiB,UAAU,kBAAkB;AACpD,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,cAAc;AACnD,aAAO,oBAAoB,UAAU,kBAAkB;AAAA;AAAA,KAExD;AAAA;AAGL,IAAO,gCAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ import { useLayoutEffect, useState } from "react";
3
+ const useWindowSize = () => {
4
+ const [size, setSize] = useState([0, 0]);
5
+ useLayoutEffect(() => {
6
+ if (!window)
7
+ return false;
8
+ function updateSize() {
9
+ setSize([window.innerWidth, window.innerHeight]);
10
+ }
11
+ window.addEventListener("resize", updateSize);
12
+ window.addEventListener("orientationchange", updateSize);
13
+ updateSize();
14
+ return () => {
15
+ window.removeEventListener("resize", updateSize);
16
+ window.removeEventListener("orientationchange", updateSize);
17
+ };
18
+ }, []);
19
+ if (!window)
20
+ return false;
21
+ return size;
22
+ };
23
+ var useWindowSize_default = useWindowSize;
24
+ export {
25
+ useWindowSize_default as default,
26
+ useWindowSize
27
+ };
28
+ //# sourceMappingURL=useWindowSize.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useWindowSize.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useLayoutEffect, useState } from 'react';\n\nexport const useWindowSize = () => {\n const [size, setSize] = useState([0, 0]);\n useLayoutEffect(() => {\n if (!window) return false;\n function updateSize() {\n setSize([window.innerWidth, window.innerHeight]);\n }\n window.addEventListener('resize', updateSize);\n window.addEventListener('orientationchange', updateSize);\n updateSize();\n return () => {\n window.removeEventListener('resize', updateSize);\n window.removeEventListener('orientationchange', updateSize);\n };\n }, []);\n if (!window) return false;\n return size;\n};\n\nexport default useWindowSize;\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,gBAAgB,MAAM;AACjC,QAAM,CAAC,MAAM,WAAW,SAAS,CAAC,GAAG;AACrC,kBAAgB,MAAM;AACpB,QAAI,CAAC;AAAQ,aAAO;AACpB,0BAAsB;AACpB,cAAQ,CAAC,OAAO,YAAY,OAAO;AAAA;AAErC,WAAO,iBAAiB,UAAU;AAClC,WAAO,iBAAiB,qBAAqB;AAC7C;AACA,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU;AACrC,aAAO,oBAAoB,qBAAqB;AAAA;AAAA,KAEjD;AACH,MAAI,CAAC;AAAQ,WAAO;AACpB,SAAO;AAAA;AAGT,IAAO,wBAAQ;",
6
+ "names": []
7
+ }