@elliemae/ds-utilities 3.0.0-next.8 → 3.0.0-next.80

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 (279) hide show
  1. package/dist/cjs/capitalize.js +9 -16
  2. package/dist/cjs/capitalize.js.map +1 -1
  3. package/dist/cjs/compose.js +9 -16
  4. package/dist/cjs/compose.js.map +2 -2
  5. package/dist/cjs/deprecated/deprecatedMsg.js +28 -0
  6. package/dist/cjs/deprecated/deprecatedMsg.js.map +7 -0
  7. package/dist/cjs/deprecated/index.js +27 -0
  8. package/dist/cjs/deprecated/index.js.map +7 -0
  9. package/dist/cjs/deprecated/reactTypesUtility.js +53 -0
  10. package/dist/cjs/deprecated/reactTypesUtility.js.map +7 -0
  11. package/dist/cjs/deprecated/scrollingTimer.js +41 -0
  12. package/dist/cjs/deprecated/scrollingTimer.js.map +7 -0
  13. package/dist/cjs/deprecated/useParentElement.js +36 -0
  14. package/dist/cjs/deprecated/useParentElement.js.map +7 -0
  15. package/dist/cjs/deprecated/useSetRef.js +37 -0
  16. package/dist/cjs/deprecated/useSetRef.js.map +7 -0
  17. package/dist/cjs/deprecated/useUncontrolled.js +33 -0
  18. package/dist/cjs/deprecated/useUncontrolled.js.map +7 -0
  19. package/dist/cjs/{hooks → deprecated}/useWindowSize.js +15 -18
  20. package/dist/cjs/deprecated/useWindowSize.js.map +7 -0
  21. package/dist/cjs/getComponentFromProps.js +10 -17
  22. package/dist/cjs/getComponentFromProps.js.map +2 -2
  23. package/dist/cjs/hooks/index.js +29 -32
  24. package/dist/cjs/hooks/index.js.map +2 -2
  25. package/dist/cjs/hooks/useCallbackAfterRender.js +12 -18
  26. package/dist/cjs/hooks/useCallbackAfterRender.js.map +2 -2
  27. package/dist/cjs/hooks/useCancellableDelayedCallback.js +9 -16
  28. package/dist/cjs/hooks/useCancellableDelayedCallback.js.map +2 -2
  29. package/dist/cjs/hooks/useDerivedStateFromProps.js +9 -16
  30. package/dist/cjs/hooks/useDerivedStateFromProps.js.map +2 -2
  31. package/dist/cjs/hooks/useExecutionTimer.js +13 -18
  32. package/dist/cjs/hooks/useExecutionTimer.js.map +2 -2
  33. package/dist/cjs/hooks/useExpandState.js +9 -16
  34. package/dist/cjs/hooks/useExpandState.js.map +2 -2
  35. package/dist/cjs/hooks/useFocusTrap.js +76 -28
  36. package/dist/cjs/hooks/useFocusTrap.js.map +2 -2
  37. package/dist/cjs/hooks/useHotkeys.js +10 -17
  38. package/dist/cjs/hooks/useHotkeys.js.map +2 -2
  39. package/dist/cjs/hooks/useHoverHandlersDelay.js +15 -20
  40. package/dist/cjs/hooks/useHoverHandlersDelay.js.map +2 -2
  41. package/dist/cjs/hooks/useIsMobile.js +50 -0
  42. package/dist/cjs/hooks/useIsMobile.js.map +7 -0
  43. package/dist/cjs/hooks/useIsShowingEllipsis.js +9 -16
  44. package/dist/cjs/hooks/useIsShowingEllipsis.js.map +1 -1
  45. package/dist/cjs/hooks/useOnBlurOut.js +43 -0
  46. package/dist/cjs/hooks/useOnBlurOut.js.map +7 -0
  47. package/dist/cjs/hooks/useOnElementResize.js +9 -16
  48. package/dist/cjs/hooks/useOnElementResize.js.map +1 -1
  49. package/dist/cjs/hooks/useOnFirstFocusIn.js +61 -0
  50. package/dist/cjs/hooks/useOnFirstFocusIn.js.map +7 -0
  51. package/dist/cjs/hooks/useOnSpecificFocus.js +40 -0
  52. package/dist/cjs/hooks/useOnSpecificFocus.js.map +7 -0
  53. package/dist/cjs/hooks/usePrevious.js +9 -16
  54. package/dist/cjs/hooks/usePrevious.js.map +2 -2
  55. package/dist/cjs/hooks/useResizeObserver.js +12 -19
  56. package/dist/cjs/hooks/useResizeObserver.js.map +2 -2
  57. package/dist/cjs/hooks/useShouldRecalculate.js +9 -16
  58. package/dist/cjs/hooks/useShouldRecalculate.js.map +2 -2
  59. package/dist/cjs/hooks/useWindowScrollerList.js +20 -25
  60. package/dist/cjs/hooks/useWindowScrollerList.js.map +2 -2
  61. package/dist/cjs/index.js +23 -27
  62. package/dist/cjs/index.js.map +2 -2
  63. package/dist/cjs/objectUtilities.js +46 -0
  64. package/dist/cjs/objectUtilities.js.map +7 -0
  65. package/dist/cjs/onClickHandlerForNonInteractiveElements.js +11 -18
  66. package/dist/cjs/onClickHandlerForNonInteractiveElements.js.map +2 -2
  67. package/dist/cjs/operators.js +9 -16
  68. package/dist/cjs/operators.js.map +2 -2
  69. package/dist/cjs/platform.js +9 -16
  70. package/dist/cjs/platform.js.map +1 -1
  71. package/dist/cjs/props-helpers/defaultProps/index.js +22 -0
  72. package/dist/cjs/props-helpers/defaultProps/index.js.map +7 -0
  73. package/dist/cjs/props-helpers/defaultProps/useMemoMergePropsWithDefault.js +55 -0
  74. package/dist/cjs/props-helpers/defaultProps/useMemoMergePropsWithDefault.js.map +7 -0
  75. package/dist/cjs/props-helpers/getProps/index.js +30 -0
  76. package/dist/cjs/props-helpers/getProps/index.js.map +7 -0
  77. package/dist/cjs/props-helpers/globalProps/constants.js +390 -0
  78. package/dist/cjs/props-helpers/globalProps/constants.js.map +7 -0
  79. package/dist/cjs/props-helpers/globalProps/getGlobalAttributes.js +45 -0
  80. package/dist/cjs/props-helpers/globalProps/getGlobalAttributes.js.map +7 -0
  81. package/dist/cjs/props-helpers/globalProps/globalAttributesPropTypes.js +391 -0
  82. package/dist/cjs/props-helpers/globalProps/globalAttributesPropTypes.js.map +7 -0
  83. package/dist/cjs/props-helpers/globalProps/index.js +24 -0
  84. package/dist/cjs/props-helpers/globalProps/index.js.map +7 -0
  85. package/dist/cjs/props-helpers/globalProps/useGetGlobalAttributes.js +33 -0
  86. package/dist/cjs/props-helpers/globalProps/useGetGlobalAttributes.js.map +7 -0
  87. package/dist/cjs/props-helpers/index.js +28 -0
  88. package/dist/cjs/props-helpers/index.js.map +7 -0
  89. package/dist/cjs/props-helpers/propTypes/PropTypes.js +144 -0
  90. package/dist/cjs/props-helpers/propTypes/PropTypes.js.map +7 -0
  91. package/dist/cjs/props-helpers/propTypes/customPropTypes.js +31 -0
  92. package/dist/cjs/props-helpers/propTypes/customPropTypes.js.map +7 -0
  93. package/dist/cjs/props-helpers/propTypes/describe.js +74 -0
  94. package/dist/cjs/props-helpers/propTypes/describe.js.map +7 -0
  95. package/dist/cjs/props-helpers/propTypes/describeConversions.js +89 -0
  96. package/dist/cjs/props-helpers/propTypes/describeConversions.js.map +7 -0
  97. package/dist/cjs/props-helpers/propTypes/describeGuards.js +42 -0
  98. package/dist/cjs/props-helpers/propTypes/describeGuards.js.map +7 -0
  99. package/dist/cjs/props-helpers/propTypes/index.js +30 -0
  100. package/dist/cjs/props-helpers/propTypes/index.js.map +7 -0
  101. package/dist/cjs/props-helpers/propTypes/toTypescript.js +147 -0
  102. package/dist/cjs/props-helpers/propTypes/toTypescript.js.map +7 -0
  103. package/dist/cjs/props-helpers/propTypes/types.js +20 -0
  104. package/dist/cjs/props-helpers/propTypes/types.js.map +7 -0
  105. package/dist/cjs/props-helpers/tests/globalProps/TestComponent.js +47 -0
  106. package/dist/cjs/props-helpers/tests/globalProps/TestComponent.js.map +7 -0
  107. package/dist/cjs/props-helpers/tests/validation/test.schema.js +62 -0
  108. package/dist/cjs/props-helpers/tests/validation/test.schema.js.map +7 -0
  109. package/dist/cjs/props-helpers/tests/xstyledProps/TestComponent.js +53 -0
  110. package/dist/cjs/props-helpers/tests/xstyledProps/TestComponent.js.map +7 -0
  111. package/dist/cjs/props-helpers/useDeprecateComponent/index.js +33 -0
  112. package/dist/cjs/props-helpers/useDeprecateComponent/index.js.map +7 -0
  113. package/dist/cjs/props-helpers/validation/errorTemplates.js +41 -0
  114. package/dist/cjs/props-helpers/validation/errorTemplates.js.map +7 -0
  115. package/dist/cjs/props-helpers/validation/index.js +23 -0
  116. package/dist/cjs/props-helpers/validation/index.js.map +7 -0
  117. package/dist/cjs/props-helpers/validation/typescriptGuards.js +76 -0
  118. package/dist/cjs/props-helpers/validation/typescriptGuards.js.map +7 -0
  119. package/dist/cjs/props-helpers/validation/typescriptParsers.js +69 -0
  120. package/dist/cjs/props-helpers/validation/typescriptParsers.js.map +7 -0
  121. package/dist/cjs/props-helpers/validation/typescriptValidator.js +170 -0
  122. package/dist/cjs/props-helpers/validation/typescriptValidator.js.map +7 -0
  123. package/dist/cjs/props-helpers/xstyledProps/constants.js +81 -0
  124. package/dist/cjs/props-helpers/xstyledProps/constants.js.map +7 -0
  125. package/dist/cjs/props-helpers/xstyledProps/index.js +23 -0
  126. package/dist/cjs/props-helpers/xstyledProps/index.js.map +7 -0
  127. package/dist/cjs/props-helpers/xstyledProps/useGetXstyledProps.js +41 -0
  128. package/dist/cjs/props-helpers/xstyledProps/useGetXstyledProps.js.map +7 -0
  129. package/dist/cjs/props-helpers/xstyledProps/xstyledPropTypes.js +94 -0
  130. package/dist/cjs/props-helpers/xstyledProps/xstyledPropTypes.js.map +7 -0
  131. package/dist/cjs/reactTypesUtility.js +12 -40
  132. package/dist/cjs/reactTypesUtility.js.map +2 -2
  133. package/dist/cjs/system.js +14 -26
  134. package/dist/cjs/system.js.map +2 -2
  135. package/dist/cjs/timeUtils.js +9 -16
  136. package/dist/cjs/timeUtils.js.map +2 -2
  137. package/dist/cjs/utils.js +15 -19
  138. package/dist/cjs/utils.js.map +2 -2
  139. package/dist/cjs/validations.js +13 -22
  140. package/dist/cjs/validations.js.map +2 -2
  141. package/dist/esm/capitalize.js.map +1 -1
  142. package/dist/esm/compose.js.map +2 -2
  143. package/dist/esm/deprecated/deprecatedMsg.js +6 -0
  144. package/dist/esm/deprecated/deprecatedMsg.js.map +7 -0
  145. package/dist/esm/deprecated/index.js +8 -0
  146. package/dist/esm/deprecated/index.js.map +7 -0
  147. package/dist/esm/deprecated/reactTypesUtility.js +31 -0
  148. package/dist/esm/deprecated/reactTypesUtility.js.map +7 -0
  149. package/dist/esm/{scrollingTimer.js → deprecated/scrollingTimer.js} +5 -3
  150. package/dist/esm/deprecated/scrollingTimer.js.map +7 -0
  151. package/dist/esm/{hooks → deprecated}/useParentElement.js +0 -0
  152. package/dist/esm/deprecated/useParentElement.js.map +7 -0
  153. package/dist/esm/{hooks → deprecated}/useSetRef.js +2 -0
  154. package/dist/esm/deprecated/useSetRef.js.map +7 -0
  155. package/dist/esm/deprecated/useUncontrolled.js +11 -0
  156. package/dist/esm/deprecated/useUncontrolled.js.map +7 -0
  157. package/dist/esm/{hooks → deprecated}/useWindowSize.js +6 -2
  158. package/dist/esm/deprecated/useWindowSize.js.map +7 -0
  159. package/dist/esm/getComponentFromProps.js +1 -1
  160. package/dist/esm/getComponentFromProps.js.map +2 -2
  161. package/dist/esm/hooks/index.js +20 -16
  162. package/dist/esm/hooks/index.js.map +2 -2
  163. package/dist/esm/hooks/useCallbackAfterRender.js +4 -3
  164. package/dist/esm/hooks/useCallbackAfterRender.js.map +2 -2
  165. package/dist/esm/hooks/useCancellableDelayedCallback.js.map +2 -2
  166. package/dist/esm/hooks/useDerivedStateFromProps.js.map +2 -2
  167. package/dist/esm/hooks/useExecutionTimer.js +4 -2
  168. package/dist/esm/hooks/useExecutionTimer.js.map +2 -2
  169. package/dist/esm/hooks/useExpandState.js.map +2 -2
  170. package/dist/esm/hooks/useFocusTrap.js +68 -13
  171. package/dist/esm/hooks/useFocusTrap.js.map +2 -2
  172. package/dist/esm/hooks/useHotkeys.js +1 -1
  173. package/dist/esm/hooks/useHotkeys.js.map +2 -2
  174. package/dist/esm/hooks/useHoverHandlersDelay.js +6 -4
  175. package/dist/esm/hooks/useHoverHandlersDelay.js.map +2 -2
  176. package/dist/esm/hooks/useIsMobile.js +28 -0
  177. package/dist/esm/hooks/useIsMobile.js.map +7 -0
  178. package/dist/esm/hooks/useIsShowingEllipsis.js.map +1 -1
  179. package/dist/esm/hooks/useOnBlurOut.js +21 -0
  180. package/dist/esm/hooks/useOnBlurOut.js.map +7 -0
  181. package/dist/esm/hooks/useOnElementResize.js.map +1 -1
  182. package/dist/esm/hooks/useOnFirstFocusIn.js +39 -0
  183. package/dist/esm/hooks/useOnFirstFocusIn.js.map +7 -0
  184. package/dist/esm/hooks/useOnSpecificFocus.js +18 -0
  185. package/dist/esm/hooks/useOnSpecificFocus.js.map +7 -0
  186. package/dist/esm/hooks/usePrevious.js.map +2 -2
  187. package/dist/esm/hooks/useResizeObserver.js +4 -4
  188. package/dist/esm/hooks/useResizeObserver.js.map +2 -2
  189. package/dist/esm/hooks/useShouldRecalculate.js.map +2 -2
  190. package/dist/esm/hooks/useWindowScrollerList.js +12 -10
  191. package/dist/esm/hooks/useWindowScrollerList.js.map +2 -2
  192. package/dist/esm/index.js +23 -24
  193. package/dist/esm/index.js.map +2 -2
  194. package/dist/esm/objectUtilities.js +24 -0
  195. package/dist/esm/objectUtilities.js.map +7 -0
  196. package/dist/esm/onClickHandlerForNonInteractiveElements.js +2 -2
  197. package/dist/esm/onClickHandlerForNonInteractiveElements.js.map +2 -2
  198. package/dist/esm/operators.js.map +2 -2
  199. package/dist/esm/props-helpers/defaultProps/index.js +3 -0
  200. package/dist/esm/props-helpers/defaultProps/index.js.map +7 -0
  201. package/dist/esm/props-helpers/defaultProps/useMemoMergePropsWithDefault.js +35 -0
  202. package/dist/esm/props-helpers/defaultProps/useMemoMergePropsWithDefault.js.map +7 -0
  203. package/dist/esm/props-helpers/getProps/index.js +8 -0
  204. package/dist/esm/props-helpers/getProps/index.js.map +7 -0
  205. package/dist/esm/props-helpers/globalProps/constants.js +368 -0
  206. package/dist/esm/props-helpers/globalProps/constants.js.map +7 -0
  207. package/dist/esm/props-helpers/globalProps/getGlobalAttributes.js +23 -0
  208. package/dist/esm/props-helpers/globalProps/getGlobalAttributes.js.map +7 -0
  209. package/dist/esm/props-helpers/globalProps/globalAttributesPropTypes.js +369 -0
  210. package/dist/esm/props-helpers/globalProps/globalAttributesPropTypes.js.map +7 -0
  211. package/dist/esm/props-helpers/globalProps/index.js +5 -0
  212. package/dist/esm/props-helpers/globalProps/index.js.map +7 -0
  213. package/dist/esm/props-helpers/globalProps/useGetGlobalAttributes.js +11 -0
  214. package/dist/esm/props-helpers/globalProps/useGetGlobalAttributes.js.map +7 -0
  215. package/dist/esm/props-helpers/index.js +9 -0
  216. package/dist/esm/props-helpers/index.js.map +7 -0
  217. package/dist/esm/props-helpers/propTypes/PropTypes.js +124 -0
  218. package/dist/esm/props-helpers/propTypes/PropTypes.js.map +7 -0
  219. package/dist/esm/props-helpers/propTypes/customPropTypes.js +9 -0
  220. package/dist/esm/props-helpers/propTypes/customPropTypes.js.map +7 -0
  221. package/dist/esm/props-helpers/propTypes/describe.js +52 -0
  222. package/dist/esm/props-helpers/propTypes/describe.js.map +7 -0
  223. package/dist/esm/props-helpers/propTypes/describeConversions.js +76 -0
  224. package/dist/esm/props-helpers/propTypes/describeConversions.js.map +7 -0
  225. package/dist/esm/props-helpers/propTypes/describeGuards.js +20 -0
  226. package/dist/esm/props-helpers/propTypes/describeGuards.js.map +7 -0
  227. package/dist/esm/props-helpers/propTypes/index.js +8 -0
  228. package/dist/esm/props-helpers/propTypes/index.js.map +7 -0
  229. package/dist/esm/props-helpers/propTypes/toTypescript.js +127 -0
  230. package/dist/esm/props-helpers/propTypes/toTypescript.js.map +7 -0
  231. package/dist/esm/props-helpers/propTypes/types.js +2 -0
  232. package/dist/esm/props-helpers/propTypes/types.js.map +7 -0
  233. package/dist/esm/props-helpers/tests/globalProps/TestComponent.js +27 -0
  234. package/dist/esm/props-helpers/tests/globalProps/TestComponent.js.map +7 -0
  235. package/dist/esm/props-helpers/tests/validation/test.schema.js +40 -0
  236. package/dist/esm/props-helpers/tests/validation/test.schema.js.map +7 -0
  237. package/dist/esm/props-helpers/tests/xstyledProps/TestComponent.js +33 -0
  238. package/dist/esm/props-helpers/tests/xstyledProps/TestComponent.js.map +7 -0
  239. package/dist/esm/props-helpers/useDeprecateComponent/index.js +11 -0
  240. package/dist/esm/props-helpers/useDeprecateComponent/index.js.map +7 -0
  241. package/dist/esm/props-helpers/validation/errorTemplates.js +19 -0
  242. package/dist/esm/props-helpers/validation/errorTemplates.js.map +7 -0
  243. package/dist/esm/props-helpers/validation/index.js +4 -0
  244. package/dist/esm/props-helpers/validation/index.js.map +7 -0
  245. package/dist/esm/props-helpers/validation/typescriptGuards.js +54 -0
  246. package/dist/esm/props-helpers/validation/typescriptGuards.js.map +7 -0
  247. package/dist/esm/props-helpers/validation/typescriptParsers.js +47 -0
  248. package/dist/esm/props-helpers/validation/typescriptParsers.js.map +7 -0
  249. package/dist/esm/props-helpers/validation/typescriptValidator.js +159 -0
  250. package/dist/esm/props-helpers/validation/typescriptValidator.js.map +7 -0
  251. package/dist/esm/props-helpers/xstyledProps/constants.js +59 -0
  252. package/dist/esm/props-helpers/xstyledProps/constants.js.map +7 -0
  253. package/dist/esm/props-helpers/xstyledProps/index.js +4 -0
  254. package/dist/esm/props-helpers/xstyledProps/index.js.map +7 -0
  255. package/dist/esm/props-helpers/xstyledProps/useGetXstyledProps.js +19 -0
  256. package/dist/esm/props-helpers/xstyledProps/useGetXstyledProps.js.map +7 -0
  257. package/dist/esm/props-helpers/xstyledProps/xstyledPropTypes.js +72 -0
  258. package/dist/esm/props-helpers/xstyledProps/xstyledPropTypes.js.map +7 -0
  259. package/dist/esm/reactTypesUtility.js +3 -24
  260. package/dist/esm/reactTypesUtility.js.map +2 -2
  261. package/dist/esm/system.js +5 -10
  262. package/dist/esm/system.js.map +2 -2
  263. package/dist/esm/timeUtils.js.map +2 -2
  264. package/dist/esm/utils.js +6 -3
  265. package/dist/esm/utils.js.map +2 -2
  266. package/dist/esm/validations.js +4 -6
  267. package/dist/esm/validations.js.map +2 -2
  268. package/package.json +10 -9
  269. package/dist/cjs/hooks/useParentElement.js +0 -43
  270. package/dist/cjs/hooks/useParentElement.js.map +0 -7
  271. package/dist/cjs/hooks/useSetRef.js +0 -42
  272. package/dist/cjs/hooks/useSetRef.js.map +0 -7
  273. package/dist/cjs/hooks/useWindowSize.js.map +0 -7
  274. package/dist/cjs/scrollingTimer.js +0 -46
  275. package/dist/cjs/scrollingTimer.js.map +0 -7
  276. package/dist/esm/hooks/useParentElement.js.map +0 -7
  277. package/dist/esm/hooks/useSetRef.js.map +0 -7
  278. package/dist/esm/hooks/useWindowSize.js.map +0 -7
  279. package/dist/esm/scrollingTimer.js.map +0 -7
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
- import { useEffect, useState } from "react";
2
+ import { useEffect, useMemo, useState } from "react";
3
3
  import raf from "raf";
4
4
  import ResizeObserver from "resize-observer-polyfill";
5
5
  const useResizeObserver = (handler, el) => {
6
6
  const [node, setRef] = useState(el);
7
- const resizeObserver = new ResizeObserver((entries) => {
7
+ const resizeObserver = useMemo(() => new ResizeObserver((entries) => {
8
8
  if (!Array.isArray(entries))
9
9
  return;
10
10
  if (!entries.length)
@@ -14,13 +14,13 @@ const useResizeObserver = (handler, el) => {
14
14
  width: entry.target.offsetWidth,
15
15
  height: entry.target.offsetHeight
16
16
  }, entry.target));
17
- });
17
+ }), [handler]);
18
18
  const htmlEl = el || node;
19
19
  useEffect(() => {
20
20
  if (htmlEl)
21
21
  resizeObserver.observe(htmlEl);
22
22
  return () => htmlEl && resizeObserver.unobserve(htmlEl);
23
- }, [htmlEl]);
23
+ }, [htmlEl, resizeObserver]);
24
24
  return [setRef];
25
25
  };
26
26
  var useResizeObserver_default = useResizeObserver;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useMemo, useState } from 'react';\nimport raf from 'raf';\nimport ResizeObserver from 'resize-observer-polyfill';\n\ntype HandlerT = (measures: { width: number; height: number }, element: Element) => void;\n\nexport const useResizeObserver = (handler: HandlerT, el: HTMLElement) => {\n const [node, setRef] = useState(el);\n\n const resizeObserver = useMemo(\n () =>\n 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 as HTMLElement).offsetWidth,\n height: (entry.target as HTMLElement).offsetHeight,\n },\n entry.target,\n ),\n );\n }),\n [handler],\n );\n\n const htmlEl = el || node;\n\n useEffect(() => {\n if (htmlEl) resizeObserver.observe(htmlEl);\n return () => htmlEl && resizeObserver.unobserve(htmlEl);\n }, [htmlEl, resizeObserver]);\n\n return [setRef];\n};\n\nexport default useResizeObserver;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAIO,MAAM,oBAAoB,CAAC,SAAmB,OAAoB;AACvE,QAAM,CAAC,MAAM,UAAU,SAAS,EAAE;AAElC,QAAM,iBAAiB,QACrB,MACE,IAAI,eAAe,CAAC,YAAY;AAC9B,QAAI,CAAC,MAAM,QAAQ,OAAO;AAAG;AAC7B,QAAI,CAAC,QAAQ;AAAQ;AACrB,UAAM,QAAQ,QAAQ;AAGtB,QAAI,MACF,QACE;AAAA,MACE,OAAQ,MAAM,OAAuB;AAAA,MACrC,QAAS,MAAM,OAAuB;AAAA,IACxC,GACA,MAAM,MACR,CACF;AAAA,EACF,CAAC,GACH,CAAC,OAAO,CACV;AAEA,QAAM,SAAS,MAAM;AAErB,YAAU,MAAM;AACd,QAAI;AAAQ,qBAAe,QAAQ,MAAM;AACzC,WAAO,MAAM,UAAU,eAAe,UAAU,MAAM;AAAA,EACxD,GAAG,CAAC,QAAQ,cAAc,CAAC;AAE3B,SAAO,CAAC,MAAM;AAChB;AAEA,IAAO,4BAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef } from 'react';\n\nexport const useShouldRecalculate = (bool: boolean) => {\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,SAAkB;AACrD,QAAM,eAAe,OAAO,CAAC;AAC7B,MAAI,CAAC,MAAM;AAET,iBAAa,WAAW;AAAA,EAC1B;AACA,SAAO,aAAa;AACtB;AAEA,IAAO,+BAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { useEffect, useRef } from "react";
2
+ import { useCallback, useEffect, useRef } from "react";
3
3
  function getScrollOffset(element = { scrollTop: 0, scrollLeft: 0 }) {
4
4
  return {
5
5
  top: element.scrollTop,
@@ -16,15 +16,17 @@ function getPositionOffset(listEl, scrollableEl) {
16
16
  };
17
17
  }
18
18
  function isParent(parentNode, childNode) {
19
- return childNode.parentNode === parentNode || childNode.parentNode && isParent(parentNode, childNode.parentNode);
19
+ return childNode?.parentNode === parentNode || !!childNode?.parentNode && isParent(parentNode, childNode.parentNode);
20
20
  }
21
21
  const useWindowScrollerList = ({ listInstance, outerListRef }) => {
22
22
  const scrollableParent = useRef();
23
23
  const listOffset = useRef();
24
- const getElementOffset = () => {
25
- listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);
26
- };
27
- const handleScroll = (e) => {
24
+ const getElementOffset = useCallback(() => {
25
+ if (outerListRef.current && scrollableParent.current) {
26
+ listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);
27
+ }
28
+ }, [outerListRef]);
29
+ const handleScroll = useCallback((e) => {
28
30
  if (!scrollableParent.current) {
29
31
  const containerTarget = e.target === document ? document.body : e.target;
30
32
  scrollableParent.current = isParent(containerTarget, outerListRef.current) && containerTarget;
@@ -33,10 +35,10 @@ const useWindowScrollerList = ({ listInstance, outerListRef }) => {
33
35
  return;
34
36
  getElementOffset();
35
37
  const scrollOffset = getScrollOffset(scrollableParent.current);
36
- const scrollTop = Math.max(0, scrollOffset.top - listOffset.current.top);
38
+ const scrollTop = Math.max(0, scrollOffset.top - (listOffset.current?.top ?? 0));
37
39
  if (listInstance.current)
38
- listInstance.current.scrollTo(scrollTop);
39
- };
40
+ listInstance.current.scrollTo({ top: scrollTop });
41
+ }, [getElementOffset, listInstance, outerListRef]);
40
42
  useEffect(() => {
41
43
  window.addEventListener("scroll", handleScroll, true);
42
44
  window.addEventListener("resize", getElementOffset, true);
@@ -44,7 +46,7 @@ const useWindowScrollerList = ({ listInstance, outerListRef }) => {
44
46
  window.removeEventListener("scroll", handleScroll, true);
45
47
  window.removeEventListener("resize", getElementOffset, true);
46
48
  };
47
- }, []);
49
+ }, [getElementOffset, handleScroll]);
48
50
  };
49
51
  var useWindowScrollerList_default = useWindowScrollerList;
50
52
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useEffect, useRef } from 'react';\n\ninterface UseWindowScrollerListArg {\n listInstance: React.RefObject<HTMLElement>;\n outerListRef: React.RefObject<HTMLElement>;\n}\n\nfunction getScrollOffset(element = { scrollTop: 0, scrollLeft: 0 }) {\n return {\n top: element.scrollTop,\n left: element.scrollLeft,\n };\n}\n\nfunction getPositionOffset(listEl: HTMLElement, scrollableEl: HTMLElement) {\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: EventTarget | null, childNode: HTMLElement | null): boolean {\n return (\n childNode?.parentNode === (parentNode as ParentNode) ||\n (!!childNode?.parentNode && isParent(parentNode, childNode.parentNode as HTMLElement))\n );\n}\n\nexport const useWindowScrollerList = ({ listInstance, outerListRef }: UseWindowScrollerListArg) => {\n const scrollableParent = useRef<HTMLElement | false>();\n const listOffset = useRef<ReturnType<typeof getPositionOffset>>();\n\n const getElementOffset = useCallback(() => {\n if (outerListRef.current && scrollableParent.current) {\n listOffset.current = getPositionOffset(outerListRef.current, scrollableParent.current);\n }\n }, [outerListRef]);\n\n const handleScroll: EventListener = useCallback(\n (e) => {\n if (!scrollableParent.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const containerTarget = e.target === document ? document.body : e.target;\n scrollableParent.current = isParent(containerTarget, outerListRef.current) && (containerTarget as HTMLElement);\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 ?? 0));\n if (listInstance.current) listInstance.current.scrollTo({ top: scrollTop });\n },\n [getElementOffset, listInstance, outerListRef],\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 }, [getElementOffset, handleScroll]);\n};\n\nexport default useWindowScrollerList;\n"],
5
+ "mappings": "AAAA;ACAA;AAOA,yBAAyB,UAAU,EAAE,WAAW,GAAG,YAAY,EAAE,GAAG;AAClE,SAAO;AAAA,IACL,KAAK,QAAQ;AAAA,IACb,MAAM,QAAQ;AAAA,EAChB;AACF;AAEA,2BAA2B,QAAqB,cAA2B;AACzE,QAAM,eAAe,gBAAgB,YAAY;AACjD,QAAM,cAAc,OAAO,sBAAsB;AACjD,QAAM,gBAAgB,aAAa,sBAAsB;AACzD,SAAO;AAAA,IACL,KAAK,YAAY,MAAM,aAAa,MAAM,cAAc;AAAA,IACxD,MAAM,YAAY,OAAO,aAAa,MAAM,cAAc;AAAA,EAC5D;AACF;AAEA,kBAAkB,YAAgC,WAAwC;AACxF,SACE,WAAW,eAAgB,cAC1B,CAAC,CAAC,WAAW,cAAc,SAAS,YAAY,UAAU,UAAyB;AAExF;AAEO,MAAM,wBAAwB,CAAC,EAAE,cAAc,mBAA6C;AACjG,QAAM,mBAAmB,OAA4B;AACrD,QAAM,aAAa,OAA6C;AAEhE,QAAM,mBAAmB,YAAY,MAAM;AACzC,QAAI,aAAa,WAAW,iBAAiB,SAAS;AACpD,iBAAW,UAAU,kBAAkB,aAAa,SAAS,iBAAiB,OAAO;AAAA,IACvF;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,eAA8B,YAClC,CAAC,MAAM;AACL,QAAI,CAAC,iBAAiB,SAAS;AAE7B,YAAM,kBAAkB,EAAE,WAAW,WAAW,SAAS,OAAO,EAAE;AAClE,uBAAiB,UAAU,SAAS,iBAAiB,aAAa,OAAO,KAAM;AAAA,IACjF;AAEA,QAAI,CAAC,iBAAiB;AAAS;AAE/B,qBAAiB;AAEjB,UAAM,eAAe,gBAAgB,iBAAiB,OAAO;AAC7D,UAAM,YAAY,KAAK,IAAI,GAAG,aAAa,MAAO,YAAW,SAAS,OAAO,EAAE;AAC/E,QAAI,aAAa;AAAS,mBAAa,QAAQ,SAAS,EAAE,KAAK,UAAU,CAAC;AAAA,EAC5E,GACA,CAAC,kBAAkB,cAAc,YAAY,CAC/C;AAEA,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,cAAc,IAAI;AACpD,WAAO,iBAAiB,UAAU,kBAAkB,IAAI;AACxD,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,cAAc,IAAI;AACvD,aAAO,oBAAoB,UAAU,kBAAkB,IAAI;AAAA,IAC7D;AAAA,EACF,GAAG,CAAC,kBAAkB,YAAY,CAAC;AACrC;AAEA,IAAO,gCAAQ;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -2,6 +2,7 @@ import * as React from "react";
2
2
  import { default as default2 } from "./getComponentFromProps";
3
3
  import { default as default3 } from "./onClickHandlerForNonInteractiveElements";
4
4
  import { capitalize } from "./capitalize";
5
+ import { getObjectValuesToArray, getObjectKeysToArray } from "./objectUtilities";
5
6
  import {
6
7
  checkNotEmpty,
7
8
  checkEmpty,
@@ -71,7 +72,6 @@ import {
71
72
  useMeasure,
72
73
  useForceUpdate,
73
74
  useOnClickOutside,
74
- useUncontrolled,
75
75
  useExecutionTimer,
76
76
  useExpandState,
77
77
  useHotkeys,
@@ -79,32 +79,35 @@ import {
79
79
  useResizeObserver,
80
80
  useShouldRecalculate,
81
81
  useWindowScrollerList,
82
- useWindowSize,
83
82
  usePrevious,
84
83
  useCancellableDelayedCallback,
85
84
  useDerivedStateFromProps,
86
- useSetRef,
87
- useParentElement,
88
85
  useOnElementResize,
89
86
  useIsShowingEllipsis,
90
87
  useCallbackAfterRender,
91
- useFocusTrap
88
+ useFocusTrap,
89
+ UseFocusTrapWithSchema,
90
+ useIsMobile,
91
+ useOnBlurOut,
92
+ UseOnBlurOutWithSchema,
93
+ useOnFirstFocusIn,
94
+ UseOnFirstFocusInWithSchema,
95
+ useOnSpecificFocus,
96
+ UseOnSpecificFocusWithSchema
92
97
  } from "./hooks";
93
98
  import { getVisibleTimeByFormat, addLeadingZeros } from "./timeUtils";
94
99
  import { compose } from "./compose";
95
100
  import { DOCUMENT, WINDOW } from "./platform";
96
- import {
97
- isClassComponent,
98
- isFunctionComponent,
99
- isReactComponent,
100
- isElement,
101
- isDOMTypeElement,
102
- isCompositeTypeElement
103
- } from "./reactTypesUtility";
104
- import { resetTimer } from "./scrollingTimer";
101
+ import { isDOMTypeElement } from "./reactTypesUtility";
105
102
  import { isRequired, isGreaterThan, isValidDate } from "./validations";
103
+ export * from "./deprecated";
104
+ export * from "./props-helpers";
106
105
  export {
107
106
  DOCUMENT,
107
+ UseFocusTrapWithSchema,
108
+ UseOnBlurOutWithSchema,
109
+ UseOnFirstFocusInWithSchema,
110
+ UseOnSpecificFocusWithSchema,
108
111
  WINDOW,
109
112
  addLeadingZeros,
110
113
  addOrRemove,
@@ -125,21 +128,19 @@ export {
125
128
  findIndex,
126
129
  get,
127
130
  default2 as getComponentFromProps,
131
+ getObjectKeysToArray,
132
+ getObjectValuesToArray,
128
133
  getVisibleTimeByFormat,
129
134
  greaterThan,
130
135
  greaterThanOrEquals,
131
136
  groupBy,
132
137
  hashArray,
133
138
  isBoolean,
134
- isClassComponent,
135
- isCompositeTypeElement,
136
139
  isDOMTypeElement,
137
- isElement,
138
140
  isEmpty,
139
141
  isEqual,
140
142
  isEqualWith,
141
143
  isFunction,
142
- isFunctionComponent,
143
144
  isGreaterThan,
144
145
  isIn,
145
146
  isNaN,
@@ -147,7 +148,6 @@ export {
147
148
  isNotNull,
148
149
  isNull,
149
150
  isObject,
150
- isReactComponent,
151
151
  isRequired,
152
152
  isString,
153
153
  isValidDate,
@@ -169,7 +169,6 @@ export {
169
169
  pull,
170
170
  range,
171
171
  removeUndefinedProperties,
172
- resetTimer,
173
172
  runAll,
174
173
  safeCall,
175
174
  set,
@@ -192,18 +191,18 @@ export {
192
191
  useForceUpdate,
193
192
  useHotkeys,
194
193
  useHoverHandlersDelay,
194
+ useIsMobile,
195
195
  useIsShowingEllipsis,
196
196
  useMeasure,
197
+ useOnBlurOut,
197
198
  useOnClickOutside,
198
199
  useOnElementResize,
199
- useParentElement,
200
+ useOnFirstFocusIn,
201
+ useOnSpecificFocus,
200
202
  usePrevious,
201
203
  useResizeObserver,
202
- useSetRef,
203
204
  useShouldRecalculate,
204
- useUncontrolled,
205
205
  useWindowScrollerList,
206
- useWindowSize,
207
206
  validDate,
208
207
  values
209
208
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default as getComponentFromProps } from './getComponentFromProps';\nexport { default as onClickHandlerForNonInteractiveElements } from './onClickHandlerForNonInteractiveElements';\nexport { capitalize } from './capitalize';\nexport {\n checkNotEmpty,\n checkEmpty,\n greaterThan,\n validDate,\n equal,\n notEqual,\n isNull,\n isNotNull,\n isIn,\n isNotIn,\n greaterThanOrEquals,\n lessThanOrEquals,\n startsWith,\n contains,\n} from './operators';\nexport {\n cx,\n runAll,\n hashArray,\n safeCall,\n removeUndefinedProperties,\n isObject,\n curry,\n arrayMove,\n uniq,\n filter,\n uniqBy,\n groupBy,\n property,\n get,\n set,\n cloneDeep,\n debounce,\n findIndex,\n isEmpty,\n isString,\n isEqual,\n maxBy,\n meanBy,\n noop,\n omit,\n orderBy,\n pull,\n sortBy,\n sumBy,\n transform,\n isFunction,\n range,\n parseInt,\n padStart,\n isNaN,\n values,\n throttle,\n toggleInObject,\n toggleInArray,\n pick,\n pickBy,\n differenceBy,\n differenceWith,\n addOrRemove,\n isEqualWith,\n isBoolean,\n} from './utils';\nexport { setRef, mergeRefs, logger } from './system';\nexport {\n useMeasure,\n useForceUpdate,\n useOnClickOutside,\n useUncontrolled,\n useExecutionTimer,\n useExpandState,\n useHotkeys,\n useHoverHandlersDelay,\n useResizeObserver,\n useShouldRecalculate,\n useWindowScrollerList,\n useWindowSize,\n usePrevious,\n useCancellableDelayedCallback,\n useDerivedStateFromProps,\n useSetRef,\n useParentElement,\n useOnElementResize,\n useIsShowingEllipsis,\n useCallbackAfterRender,\n useFocusTrap,\n} from './hooks';\nexport { getVisibleTimeByFormat, addLeadingZeros } from './timeUtils';\nexport { compose } from './compose';\nexport { DOCUMENT, WINDOW } from './platform';\nexport {\n isClassComponent,\n isFunctionComponent,\n isReactComponent,\n isElement,\n isDOMTypeElement,\n isCompositeTypeElement,\n} from './reactTypesUtility';\nexport { resetTimer } from './scrollingTimer';\nexport { isRequired, isGreaterThan, isValidDate } from './validations';\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;AACA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default as getComponentFromProps } from './getComponentFromProps';\nexport { default as onClickHandlerForNonInteractiveElements } from './onClickHandlerForNonInteractiveElements';\nexport { capitalize } from './capitalize';\nexport { getObjectValuesToArray, getObjectKeysToArray } from './objectUtilities';\nexport {\n checkNotEmpty,\n checkEmpty,\n greaterThan,\n validDate,\n equal,\n notEqual,\n isNull,\n isNotNull,\n isIn,\n isNotIn,\n greaterThanOrEquals,\n lessThanOrEquals,\n startsWith,\n contains,\n} from './operators';\nexport {\n cx,\n runAll,\n hashArray,\n safeCall,\n removeUndefinedProperties,\n isObject,\n curry,\n arrayMove,\n uniq,\n filter,\n uniqBy,\n groupBy,\n property,\n get,\n set,\n cloneDeep,\n debounce,\n findIndex,\n isEmpty,\n isString,\n isEqual,\n maxBy,\n meanBy,\n noop,\n omit,\n orderBy,\n pull,\n sortBy,\n sumBy,\n transform,\n isFunction,\n range,\n parseInt,\n padStart,\n isNaN,\n values,\n throttle,\n toggleInObject,\n toggleInArray,\n pick,\n pickBy,\n differenceBy,\n differenceWith,\n addOrRemove,\n isEqualWith,\n isBoolean,\n} from './utils';\nexport { setRef, mergeRefs, logger } from './system';\nexport {\n useMeasure,\n useForceUpdate,\n useOnClickOutside,\n useExecutionTimer,\n useExpandState,\n useHotkeys,\n useHoverHandlersDelay,\n useResizeObserver,\n useShouldRecalculate,\n useWindowScrollerList,\n usePrevious,\n useCancellableDelayedCallback,\n useDerivedStateFromProps,\n useOnElementResize,\n useIsShowingEllipsis,\n useCallbackAfterRender,\n useFocusTrap,\n UseFocusTrapWithSchema,\n useIsMobile,\n useOnBlurOut,\n UseOnBlurOutWithSchema,\n useOnFirstFocusIn,\n UseOnFirstFocusInWithSchema,\n useOnSpecificFocus,\n UseOnSpecificFocusWithSchema,\n} from './hooks';\nexport { getVisibleTimeByFormat, addLeadingZeros } from './timeUtils';\nexport { compose } from './compose';\nexport { DOCUMENT, WINDOW } from './platform';\nexport { isDOMTypeElement } from './reactTypesUtility';\nexport { isRequired, isGreaterThan, isValidDate } from './validations';\n\n// TODO -- REMOVE WHEN READY\nexport * from './deprecated';\nexport * from './props-helpers';\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AACA;AACA;AACA;AACA;AAGA;AACA;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,24 @@
1
+ import * as React from "react";
2
+ const JSONKeyValueRegExp = /"(.+?)": "(.+?)",?$/gm;
3
+ const prettyStringfy = (obj) => JSON.stringify(obj, null, 2);
4
+ function getFirstGroup(regexp, str) {
5
+ const array = [...str.matchAll(regexp)];
6
+ const firstGroup = array.map((m) => m[1]).filter((v) => v !== void 0);
7
+ if (firstGroup.length > 0)
8
+ return firstGroup;
9
+ return null;
10
+ }
11
+ function getSecondGroup(regexp, str) {
12
+ const array = [...str.matchAll(regexp)];
13
+ const secondGroup = array.map((m) => m[2]).filter((v) => v !== void 0);
14
+ if (secondGroup.length > 0)
15
+ return secondGroup;
16
+ return null;
17
+ }
18
+ const getObjectValuesToArray = (obj) => getSecondGroup(JSONKeyValueRegExp, prettyStringfy(obj));
19
+ const getObjectKeysToArray = (obj) => getFirstGroup(JSONKeyValueRegExp, prettyStringfy(obj));
20
+ export {
21
+ getObjectKeysToArray,
22
+ getObjectValuesToArray
23
+ };
24
+ //# sourceMappingURL=objectUtilities.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/objectUtilities.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const JSONKeyValueRegExp = /\"(.+?)\": \"(.+?)\",?$/gm;\nconst prettyStringfy = (obj: Record<string, unknown>): string => JSON.stringify(obj, null, 2);\nfunction getFirstGroup(regexp: RegExp, str: string) {\n const array = [...str.matchAll(regexp)];\n const firstGroup = array.map((m) => m[1]).filter((v) => v !== undefined);\n if (firstGroup.length > 0) return firstGroup;\n return null;\n}\nfunction getSecondGroup(regexp: RegExp, str: string) {\n const array = [...str.matchAll(regexp)];\n const secondGroup = array.map((m) => m[2]).filter((v) => v !== undefined);\n if (secondGroup.length > 0) return secondGroup;\n return null;\n}\nexport const getObjectValuesToArray = (obj: Record<string, unknown>): string[] | null =>\n getSecondGroup(JSONKeyValueRegExp, prettyStringfy(obj));\n\nexport const getObjectKeysToArray = (obj: Record<string, unknown>): string[] | null =>\n getFirstGroup(JSONKeyValueRegExp, prettyStringfy(obj));"],
5
+ "mappings": "AAAA;ACAA,MAAM,qBAAqB;AAC3B,MAAM,iBAAiB,CAAC,QAAyC,KAAK,UAAU,KAAK,MAAM,CAAC;AAC5F,uBAAuB,QAAgB,KAAa;AAClD,QAAM,QAAQ,CAAC,GAAG,IAAI,SAAS,MAAM,CAAC;AACtC,QAAM,aAAa,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,MAAM,MAAS;AACvE,MAAI,WAAW,SAAS;AAAG,WAAO;AAClC,SAAO;AACT;AACA,wBAAwB,QAAgB,KAAa;AACnD,QAAM,QAAQ,CAAC,GAAG,IAAI,SAAS,MAAM,CAAC;AACtC,QAAM,cAAc,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,MAAM,MAAS;AACxE,MAAI,YAAY,SAAS;AAAG,WAAO;AACnC,SAAO;AACT;AACO,MAAM,yBAAyB,CAAC,QACrC,eAAe,oBAAoB,eAAe,GAAG,CAAC;AAEjD,MAAM,uBAAuB,CAAC,QACnC,cAAc,oBAAoB,eAAe,GAAG,CAAC;",
6
+ "names": []
7
+ }
@@ -5,10 +5,10 @@ const onClickHandlerForNonInteractiveElements = (onClickHandler) => ({
5
5
  onClick: onClickHandler,
6
6
  onKeyPress: (event) => {
7
7
  event.stopPropagation();
8
- const { keycode, key } = event;
8
+ const { keyCode, key } = event;
9
9
  if (key === "Enter")
10
10
  onClickHandler(event);
11
- else if (keycode === 13)
11
+ else if (keyCode === 13)
12
12
  onClickHandler(event);
13
13
  }
14
14
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/onClickHandlerForNonInteractiveElements.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/**\n * onClickHandler: callback\n *\n * @param onClickHandler\n */\nexport const onClickHandlerForNonInteractiveElements = onClickHandler => ({\n role: 'button',\n tabIndex: '0',\n onClick: onClickHandler,\n onKeyPress: event => {\n event.stopPropagation();\n const { keycode, key } = event;\n if (key === 'Enter') onClickHandler(event);\n else if (keycode === 13) onClickHandler(event);\n },\n});\n\nexport default onClickHandlerForNonInteractiveElements;\n"],
5
- "mappings": "AAAA;ACKO,MAAM,0CAA0C,oBAAmB;AAAA,EACxE,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY,WAAS;AACnB,UAAM;AACN,UAAM,EAAE,SAAS,QAAQ;AACzB,QAAI,QAAQ;AAAS,qBAAe;AAAA,aAC3B,YAAY;AAAI,qBAAe;AAAA;AAAA;AAI5C,IAAO,kDAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\n\nexport const onClickHandlerForNonInteractiveElements = (\n onClickHandler: React.MouseEventHandler & React.KeyboardEventHandler,\n) => ({\n role: 'button',\n tabIndex: '0',\n onClick: onClickHandler,\n onKeyPress: (event: React.KeyboardEvent) => {\n event.stopPropagation();\n const { keyCode, key } = event;\n if (key === 'Enter') onClickHandler(event);\n else if (keyCode === 13) onClickHandler(event);\n },\n});\n\nexport default onClickHandlerForNonInteractiveElements;\n"],
5
+ "mappings": "AAAA;ACEO,MAAM,0CAA0C,CACrD,mBACI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY,CAAC,UAA+B;AAC1C,UAAM,gBAAgB;AACtB,UAAM,EAAE,SAAS,QAAQ;AACzB,QAAI,QAAQ;AAAS,qBAAe,KAAK;AAAA,aAChC,YAAY;AAAI,qBAAe,KAAK;AAAA,EAC/C;AACF;AAEA,IAAO,kDAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/operators.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { isEmpty } from 'lodash';\n/**\n * Check if the value is null undefined ''\n *\n * @param value\n */\nexport const checkNotEmpty = (value) =>\n value === '' || value === undefined || value == [] || value === null || isEmpty(value);\n\nexport const checkEmpty = (value) => !isEmpty(value)\n/**\n * @param value: number\n * @param comparator: number\n * @param value\n * @param comparator\n */\nexport const greaterThan = (value, comparator) => value > comparator;\n\n/**\n * Check if a valid date with format MM/DD/YYYY\n *\n * @param {*} value: string\n * @param value\n */\nexport const validDate = (value) => {\n const dateValidationRegex = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/;\n if (!dateValidationRegex.test(value)) return false;\n const [m, d, y] = value.split('/').map((n) => Number(n));\n return (\n m === Number(new Date(y, m - 1, d).getMonth()) + 1 &&\n d === Number(new Date(y, m - 1, d).getDate())\n );\n};\n\nexport const equal = (a, b) => a === b;\n\nexport const notEqual = (a, b) => !equal(a, b);\n\nexport const isNull = (a) => checkNotEmpty(a);\n\nexport const isNotNull = (a) => !isNull(a);\n\nexport const isIn = (a, b) => b.indexOf(a) > -1;\n\nexport const isNotIn = (a, b) => !isIn(a, b);\n\nexport const greaterThanOrEquals = (value, comparator) => value >= comparator;\nexport const lessThanOrEquals = (value, comparator) => value <= comparator;\nexport const startsWith = (value, comparator) =>\n String(value).startsWith(comparator);\nexport const contains = (value, comparator) =>\n String(value).includes(comparator);\n"],
5
- "mappings": "AAAA;ACAA;AAMO,MAAM,gBAAgB,CAAC,UAC5B,UAAU,MAAM,UAAU,UAAa,SAAS,MAAM,UAAU,QAAQ,QAAQ;AAE3E,MAAM,aAAa,CAAC,UAAU,CAAC,QAAQ;AAOvC,MAAM,cAAc,CAAC,OAAO,eAAe,QAAQ;AAQnD,MAAM,YAAY,CAAC,UAAU;AAClC,QAAM,sBAAsB;AAC5B,MAAI,CAAC,oBAAoB,KAAK;AAAQ,WAAO;AAC7C,QAAM,CAAC,GAAG,GAAG,KAAK,MAAM,MAAM,KAAK,IAAI,CAAC,MAAM,OAAO;AACrD,SACE,MAAM,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,GAAG,cAAc,KACjD,MAAM,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,GAAG;AAAA;AAIhC,MAAM,QAAQ,CAAC,GAAG,MAAM,MAAM;AAE9B,MAAM,WAAW,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG;AAErC,MAAM,SAAS,CAAC,MAAM,cAAc;AAEpC,MAAM,YAAY,CAAC,MAAM,CAAC,OAAO;AAEjC,MAAM,OAAO,CAAC,GAAG,MAAM,EAAE,QAAQ,KAAK;AAEtC,MAAM,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG;AAEnC,MAAM,sBAAsB,CAAC,OAAO,eAAe,SAAS;AAC5D,MAAM,mBAAmB,CAAC,OAAO,eAAe,SAAS;AACzD,MAAM,aAAa,CAAC,OAAO,eAChC,OAAO,OAAO,WAAW;AACpB,MAAM,WAAW,CAAC,OAAO,eAC9B,OAAO,OAAO,SAAS;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { isEmpty } from 'lodash';\n\n// Check if the value is empty\nexport const checkNotEmpty = (value: unknown) =>\n // eslint-disable-next-line eqeqeq\n value === '' || value === undefined || value == [] || value === null || isEmpty(value);\n\n// Check if the value is not empty\nexport const checkEmpty = (value: unknown) => !isEmpty(value);\n\nexport const greaterThan = (value: number, comparator: number) => value > comparator;\n\n// Check if a valid date with format MM/DD/YYYY\nexport const validDate = (value: string) => {\n const dateValidationRegex = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/;\n if (!dateValidationRegex.test(value)) return false;\n const [m, d, y] = value.split('/').map((n) => Number(n));\n return m === Number(new Date(y, m - 1, d).getMonth()) + 1 && d === Number(new Date(y, m - 1, d).getDate());\n};\n\nexport const equal = (a: unknown, b: unknown) => a === b;\n\nexport const notEqual = (a: unknown, b: unknown) => !equal(a, b);\n\nexport const isNull = (a: unknown) => checkNotEmpty(a);\n\nexport const isNotNull = (a: unknown) => !isNull(a);\n\nexport const isIn = <T,>(a: T, b: T[]) => b.indexOf(a) > -1;\n\nexport const isNotIn = <T,>(a: T, b: T[]) => !isIn(a, b);\n\nexport const greaterThanOrEquals = (value: number, comparator: number) => value >= comparator;\nexport const lessThanOrEquals = (value: number, comparator: number) => value <= comparator;\nexport const startsWith = (value: unknown, comparator: string) => String(value).startsWith(comparator);\nexport const contains = (value: unknown, comparator: string) => String(value).includes(comparator);\n"],
5
+ "mappings": "AAAA;ACAA;AAGO,MAAM,gBAAgB,CAAC,UAE5B,UAAU,MAAM,UAAU,UAAa,SAAS,CAAC,KAAK,UAAU,QAAQ,QAAQ,KAAK;AAGhF,MAAM,aAAa,CAAC,UAAmB,CAAC,QAAQ,KAAK;AAErD,MAAM,cAAc,CAAC,OAAe,eAAuB,QAAQ;AAGnE,MAAM,YAAY,CAAC,UAAkB;AAC1C,QAAM,sBAAsB;AAC5B,MAAI,CAAC,oBAAoB,KAAK,KAAK;AAAG,WAAO;AAC7C,QAAM,CAAC,GAAG,GAAG,KAAK,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;AACvD,SAAO,MAAM,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,KAAK,MAAM,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC3G;AAEO,MAAM,QAAQ,CAAC,GAAY,MAAe,MAAM;AAEhD,MAAM,WAAW,CAAC,GAAY,MAAe,CAAC,MAAM,GAAG,CAAC;AAExD,MAAM,SAAS,CAAC,MAAe,cAAc,CAAC;AAE9C,MAAM,YAAY,CAAC,MAAe,CAAC,OAAO,CAAC;AAE3C,MAAM,OAAO,CAAK,GAAM,MAAW,EAAE,QAAQ,CAAC,IAAI;AAElD,MAAM,UAAU,CAAK,GAAM,MAAW,CAAC,KAAK,GAAG,CAAC;AAEhD,MAAM,sBAAsB,CAAC,OAAe,eAAuB,SAAS;AAC5E,MAAM,mBAAmB,CAAC,OAAe,eAAuB,SAAS;AACzE,MAAM,aAAa,CAAC,OAAgB,eAAuB,OAAO,KAAK,EAAE,WAAW,UAAU;AAC9F,MAAM,WAAW,CAAC,OAAgB,eAAuB,OAAO,KAAK,EAAE,SAAS,UAAU;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ export * from "./useMemoMergePropsWithDefault";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/props-helpers/defaultProps/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './useMemoMergePropsWithDefault';\n"],
5
+ "mappings": "AAAA;ACAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import * as React from "react";
18
+ import { useRef } from "react";
19
+ import deepequal from "fast-deep-equal/react";
20
+ const useMemoCompare = (next, compare) => {
21
+ const previousRef = useRef(next);
22
+ const previous = previousRef.current;
23
+ const isEqual = compare(previous, next);
24
+ if (!isEqual)
25
+ previousRef.current = next;
26
+ return isEqual ? previous : next;
27
+ };
28
+ const useMemoMergePropsWithDefault = (props, defaultProps, compare = deepequal) => {
29
+ const mergedProps = __spreadValues(__spreadValues({}, defaultProps), props);
30
+ return useMemoCompare(mergedProps, compare);
31
+ };
32
+ export {
33
+ useMemoMergePropsWithDefault
34
+ };
35
+ //# sourceMappingURL=useMemoMergePropsWithDefault.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/props-helpers/defaultProps/useMemoMergePropsWithDefault.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef } from 'react';\nimport deepequal from 'fast-deep-equal/react';\n\n// Hook\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst useMemoCompare = <T = any>(next: T, compare: (prevToCompare: T, nextToCompare: T) => boolean): T => {\n // Ref for storing previous value\n const previousRef = useRef(next);\n const previous = previousRef.current;\n // Pass previous and next value to compare function\n // to determine whether to consider them equal.\n const isEqual = compare(previous, next);\n // If not equal update previousRef to next value.\n // We only update if not equal so that this hook continues to return\n // the same old value if compare keeps returning true.\n if (!isEqual) previousRef.current = next;\n // Finally, if equal then return the previous value\n return isEqual ? previous : next;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const useMemoMergePropsWithDefault = <T = Record<string, any>>(\n props: Partial<T>,\n defaultProps: Partial<T>,\n compare = deepequal,\n): T => {\n const mergedProps = { ...defaultProps, ...props } as T;\n\n return useMemoCompare<T>(mergedProps, compare);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AAIA,MAAM,iBAAiB,CAAU,MAAS,YAAgE;AAExG,QAAM,cAAc,OAAO,IAAI;AAC/B,QAAM,WAAW,YAAY;AAG7B,QAAM,UAAU,QAAQ,UAAU,IAAI;AAItC,MAAI,CAAC;AAAS,gBAAY,UAAU;AAEpC,SAAO,UAAU,WAAW;AAC9B;AAGO,MAAM,+BAA+B,CAC1C,OACA,cACA,UAAU,cACJ;AACN,QAAM,cAAc,kCAAK,eAAiB;AAE1C,SAAO,eAAkB,aAAa,OAAO;AAC/C;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ const getAriaProps = (props) => Object.fromEntries(Object.entries(props).filter(([key]) => key.includes("aria-")));
3
+ const getDataProps = (props) => Object.fromEntries(Object.entries(props).filter(([key]) => key.includes("data-")));
4
+ export {
5
+ getAriaProps,
6
+ getDataProps
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/props-helpers/getProps/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const getAriaProps = <T = Record<string, unknown>>(props: T): Record<string, string> =>\n Object.fromEntries(Object.entries(props).filter(([key]) => key.includes('aria-')));\n\nexport const getDataProps = <T = Record<string, unknown>>(props: T): Record<string, string> =>\n Object.fromEntries(Object.entries(props).filter(([key]) => key.includes('data-')));\n"],
5
+ "mappings": "AAAA;ACAO,MAAM,eAAe,CAA8B,UACxD,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,OAAO,CAAC,CAAC;AAE5E,MAAM,eAAe,CAA8B,UACxD,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,OAAO,CAAC,CAAC;",
6
+ "names": []
7
+ }