@elliemae/ds-utilities 3.0.0-next.2 → 3.0.0-next.6

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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useCallbackAfterRender.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef, useLayoutEffect } from 'react';\n\n// Inspired in https://github.com/ryuuji3/react-hooks/blob/4b183d61c30abf17efeab2240f8ff652a5dbb8e2/packages/use-callback-after-render/src/hooks/useCallbackAfterRender.ts\nexport const useCallbackAfterRender = (): Callback => {\n const lastRun = useRef<(() => void) | null>(null);\n\n useLayoutEffect(() => {\n lastRun.current?.();\n lastRun.current = null;\n });\n\n return (callback) => {\n lastRun.current = callback; // schedule callback after render\n };\n};\n\ntype Callback = (callback: () => void) => void;\n"],
5
+ "mappings": "AAAA;ACAA;AAGO,MAAM,yBAAyB,MAAgB;AACpD,QAAM,UAAU,OAA4B;AAE5C,kBAAgB,MAAM;AACpB,YAAQ;AACR,YAAQ,UAAU;AAAA;AAGpB,SAAO,CAAC,aAAa;AACnB,YAAQ,UAAU;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ import { useCallback, useRef } from "react";
3
+ const useCancellableDelayedCallback = (cb, delay) => {
4
+ const timeoutRef = useRef();
5
+ const cancel = useCallback(() => {
6
+ const timeoutId = timeoutRef.current;
7
+ if (timeoutId) {
8
+ timeoutRef.current = void 0;
9
+ clearTimeout(timeoutId);
10
+ }
11
+ }, [timeoutRef]);
12
+ const delayedCb = useCallback((...args) => {
13
+ timeoutRef.current = setTimeout(() => cb(...args), delay);
14
+ }, [cb, delay]);
15
+ return [delayedCb, cancel];
16
+ };
17
+ var useCancellableDelayedCallback_default = useCancellableDelayedCallback;
18
+ export {
19
+ useCancellableDelayedCallback_default as default,
20
+ useCancellableDelayedCallback
21
+ };
22
+ //# sourceMappingURL=useCancellableDelayedCallback.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useCancellableDelayedCallback.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback, useRef } from 'react';\n\nexport const useCancellableDelayedCallback = (cb, delay) => {\n const timeoutRef = useRef();\n const cancel = useCallback(() => {\n const timeoutId = timeoutRef.current;\n if (timeoutId) {\n timeoutRef.current = undefined;\n clearTimeout(timeoutId);\n }\n }, [timeoutRef]);\n const delayedCb = useCallback(\n (...args) => {\n timeoutRef.current = setTimeout(() => cb(...args), delay);\n },\n [cb, delay],\n );\n\n return [delayedCb, cancel];\n};\n\nexport default useCancellableDelayedCallback;\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,gCAAgC,CAAC,IAAI,UAAU;AAC1D,QAAM,aAAa;AACnB,QAAM,SAAS,YAAY,MAAM;AAC/B,UAAM,YAAY,WAAW;AAC7B,QAAI,WAAW;AACb,iBAAW,UAAU;AACrB,mBAAa;AAAA;AAAA,KAEd,CAAC;AACJ,QAAM,YAAY,YAChB,IAAI,SAAS;AACX,eAAW,UAAU,WAAW,MAAM,GAAG,GAAG,OAAO;AAAA,KAErD,CAAC,IAAI;AAGP,SAAO,CAAC,WAAW;AAAA;AAGrB,IAAO,wCAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,38 @@
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 }) {
6
+ return !isEqual(prop, prevProp) && !isEqual(prop, stateValue);
7
+ }
8
+ function setStateWithUpdate(onUpdate, setState) {
9
+ return (state) => {
10
+ setState((prevState) => onUpdate(isFunction(state) ? state(prevState) : state, prevState));
11
+ };
12
+ }
13
+ const useDerivedStateFromProps = (prop, options = {}) => {
14
+ const {
15
+ onUpdate = defaultPropUpdateOnChange,
16
+ shouldUpdate = defaultShouldUpdate,
17
+ updateOnStateChange = false
18
+ } = options;
19
+ const [stateValue, setState] = useState(onUpdate(prop, {}));
20
+ const handleSetState = updateOnStateChange ? setStateWithUpdate(onUpdate, setState) : setState;
21
+ const prevProp = useRef(prop);
22
+ if (shouldUpdate({
23
+ prop,
24
+ prevProp: prevProp.current,
25
+ stateValue
26
+ })) {
27
+ const nextProp = onUpdate(prop, prevProp.current);
28
+ setState(nextProp);
29
+ }
30
+ prevProp.current = prop;
31
+ return [stateValue, handleSetState];
32
+ };
33
+ var useDerivedStateFromProps_default = useDerivedStateFromProps;
34
+ export {
35
+ useDerivedStateFromProps_default as default,
36
+ useDerivedStateFromProps
37
+ };
38
+ //# sourceMappingURL=useDerivedStateFromProps.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useDerivedStateFromProps.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef, useState } from 'react';\nimport { isEqual, isFunction } from '../utils';\n\nconst defaultPropUpdateOnChange = prop => prop;\n\nfunction defaultShouldUpdate({ prop, prevProp, stateValue }) {\n return !isEqual(prop, prevProp) && !isEqual(prop, stateValue);\n}\n\nfunction setStateWithUpdate(onUpdate, setState) {\n return state => {\n setState(prevState =>\n onUpdate(isFunction(state) ? state(prevState) : state, prevState),\n );\n };\n}\n\nexport const useDerivedStateFromProps = (prop, options = {}) => {\n const {\n onUpdate = defaultPropUpdateOnChange,\n shouldUpdate = defaultShouldUpdate,\n updateOnStateChange = false,\n } = options;\n\n const [stateValue, setState] = useState(onUpdate(prop, {}));\n const handleSetState = updateOnStateChange\n ? setStateWithUpdate(onUpdate, setState)\n : setState;\n const prevProp = useRef(prop);\n\n if (\n shouldUpdate({\n prop,\n prevProp: prevProp.current,\n stateValue,\n })\n ) {\n const nextProp = onUpdate(prop, prevProp.current);\n setState(nextProp);\n }\n prevProp.current = prop;\n return [stateValue, handleSetState];\n};\n\nexport default useDerivedStateFromProps;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAEA,MAAM,4BAA4B,UAAQ;AAE1C,6BAA6B,EAAE,MAAM,UAAU,cAAc;AAC3D,SAAO,CAAC,QAAQ,MAAM,aAAa,CAAC,QAAQ,MAAM;AAAA;AAGpD,4BAA4B,UAAU,UAAU;AAC9C,SAAO,WAAS;AACd,aAAS,eACP,SAAS,WAAW,SAAS,MAAM,aAAa,OAAO;AAAA;AAAA;AAKtD,MAAM,2BAA2B,CAAC,MAAM,UAAU,OAAO;AAC9D,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,eAAe;AAAA,IACf,sBAAsB;AAAA,MACpB;AAEJ,QAAM,CAAC,YAAY,YAAY,SAAS,SAAS,MAAM;AACvD,QAAM,iBAAiB,sBACnB,mBAAmB,UAAU,YAC7B;AACJ,QAAM,WAAW,OAAO;AAExB,MACE,aAAa;AAAA,IACX;AAAA,IACA,UAAU,SAAS;AAAA,IACnB;AAAA,MAEF;AACA,UAAM,WAAW,SAAS,MAAM,SAAS;AACzC,aAAS;AAAA;AAEX,WAAS,UAAU;AACnB,SAAO,CAAC,YAAY;AAAA;AAGtB,IAAO,mCAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { useRef } from "react";
3
+ const useExecutionTimer = (startFn, cleanFn, delayTime) => {
4
+ const startTimer = useRef();
5
+ const closeTimer = useRef();
6
+ const startFunction = (...args) => {
7
+ clearTimeout(closeTimer.current);
8
+ startTimer.current = setTimeout(() => startFn(...args), delayTime);
9
+ };
10
+ const cleanFunction = (...args) => {
11
+ clearTimeout(startTimer.current);
12
+ closeTimer.current = setTimeout(() => cleanFn(...args), 30);
13
+ };
14
+ return [startFunction, cleanFunction];
15
+ };
16
+ var useExecutionTimer_default = useExecutionTimer;
17
+ export {
18
+ useExecutionTimer_default as default,
19
+ useExecutionTimer
20
+ };
21
+ //# sourceMappingURL=useExecutionTimer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useExecutionTimer.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef } from 'react';\n\nexport const useExecutionTimer = (startFn, cleanFn, delayTime) => {\n const startTimer = useRef();\n const closeTimer = useRef();\n\n const startFunction = (...args) => {\n clearTimeout(closeTimer.current);\n startTimer.current = setTimeout(() => startFn(...args), delayTime);\n };\n\n const cleanFunction = (...args) => {\n clearTimeout(startTimer.current);\n closeTimer.current = setTimeout(() => cleanFn(...args), 30);\n };\n return [startFunction, cleanFunction];\n};\n\nexport default useExecutionTimer;\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,oBAAoB,CAAC,SAAS,SAAS,cAAc;AAChE,QAAM,aAAa;AACnB,QAAM,aAAa;AAEnB,QAAM,gBAAgB,IAAI,SAAS;AACjC,iBAAa,WAAW;AACxB,eAAW,UAAU,WAAW,MAAM,QAAQ,GAAG,OAAO;AAAA;AAG1D,QAAM,gBAAgB,IAAI,SAAS;AACjC,iBAAa,WAAW;AACxB,eAAW,UAAU,WAAW,MAAM,QAAQ,GAAG,OAAO;AAAA;AAE1D,SAAO,CAAC,eAAe;AAAA;AAGzB,IAAO,4BAAQ;",
6
+ "names": []
7
+ }
@@ -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
+ }
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import { useEffect, useState, useMemo } from "react";
3
+ const useIsShowingEllipsis = () => {
4
+ const [element, setElement] = useState();
5
+ const [isShowingEllipsis, setIsShowingEllipsis] = useState(false);
6
+ const resizeObserver = useMemo(() => new ResizeObserver((entries) => {
7
+ if (entries.length) {
8
+ const [textWrapperEntry] = entries;
9
+ const el = textWrapperEntry.target;
10
+ setIsShowingEllipsis(el?.scrollWidth > el?.clientWidth);
11
+ }
12
+ }), []);
13
+ useEffect(() => {
14
+ if (element) {
15
+ setIsShowingEllipsis(element.scrollWidth > element.clientWidth);
16
+ resizeObserver.observe(element);
17
+ }
18
+ return () => {
19
+ if (element) {
20
+ resizeObserver.unobserve(element);
21
+ }
22
+ };
23
+ }, [resizeObserver, element]);
24
+ return { setElement, isShowingEllipsis };
25
+ };
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 | null = HTMLElement | null>() => {\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,MAAyD;AAC3F,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
+ }