@elliemae/ds-utilities 3.0.0-alpha.0 → 3.0.0-alpha.1

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 (46) hide show
  1. package/dist/cjs/getComponentFromProps.js +15 -6
  2. package/dist/cjs/getComponentFromProps.js.map +1 -1
  3. package/dist/cjs/hooks/useExpandState.js +20 -3
  4. package/dist/cjs/hooks/useExpandState.js.map +1 -1
  5. package/dist/cjs/hooks/useOnElementResize.js +7 -6
  6. package/dist/cjs/hooks/useOnElementResize.js.map +2 -2
  7. package/dist/cjs/utils.js +20 -4
  8. package/dist/cjs/utils.js.map +1 -1
  9. package/dist/esm/getComponentFromProps.js +17 -6
  10. package/dist/esm/getComponentFromProps.js.map +1 -1
  11. package/dist/esm/hooks/useExpandState.js +22 -3
  12. package/dist/esm/hooks/useExpandState.js.map +1 -1
  13. package/dist/esm/hooks/useOnElementResize.js +7 -6
  14. package/dist/esm/hooks/useOnElementResize.js.map +2 -2
  15. package/dist/esm/utils.js +22 -4
  16. package/dist/esm/utils.js.map +1 -1
  17. package/package.json +2 -1
  18. package/dist/types/capitalize.d.ts +0 -1
  19. package/dist/types/compose.d.ts +0 -12
  20. package/dist/types/getComponentFromProps.d.ts +0 -3
  21. package/dist/types/hooks/index.d.ts +0 -19
  22. package/dist/types/hooks/useCancellableDelayedCallback.d.ts +0 -2
  23. package/dist/types/hooks/useDerivedStateFromProps.d.ts +0 -2
  24. package/dist/types/hooks/useExecutionTimer.d.ts +0 -2
  25. package/dist/types/hooks/useExpandState.d.ts +0 -23
  26. package/dist/types/hooks/useHotkeys.d.ts +0 -6
  27. package/dist/types/hooks/useHoverHandlersDelay.d.ts +0 -10
  28. package/dist/types/hooks/useIsShowingEllipsis.d.ts +0 -5
  29. package/dist/types/hooks/useOnElementResize.d.ts +0 -2
  30. package/dist/types/hooks/useParentElement.d.ts +0 -1
  31. package/dist/types/hooks/usePrevious.d.ts +0 -2
  32. package/dist/types/hooks/useResizeObserver.d.ts +0 -3
  33. package/dist/types/hooks/useSetRef.d.ts +0 -2
  34. package/dist/types/hooks/useShouldRecalculate.d.ts +0 -2
  35. package/dist/types/hooks/useWindowScrollerList.d.ts +0 -5
  36. package/dist/types/hooks/useWindowSize.d.ts +0 -2
  37. package/dist/types/index.d.ts +0 -13
  38. package/dist/types/onClickHandlerForNonInteractiveElements.d.ts +0 -12
  39. package/dist/types/operators.d.ts +0 -31
  40. package/dist/types/platform.d.ts +0 -2
  41. package/dist/types/reactTypesUtility.d.ts +0 -6
  42. package/dist/types/scrollingTimer.d.ts +0 -1
  43. package/dist/types/system.d.ts +0 -3
  44. package/dist/types/timeUtils.d.ts +0 -7
  45. package/dist/types/utils.d.ts +0 -23
  46. package/dist/types/validations.d.ts +0 -23
@@ -2,8 +2,22 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
7
21
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
22
  var __export = (target, all) => {
9
23
  for (var name in all)
@@ -36,12 +50,7 @@ const getComponentFromProps = (Component, props, children = []) => {
36
50
  if (!Component)
37
51
  return null;
38
52
  const componentChildren = Component.props ? Array.isArray(Component.props.children) ? Component.props.children : [Component.props.children] : null;
39
- return typeof Component === "function" ? /* @__PURE__ */ import_react.default.createElement(Component, {
40
- ...props
41
- }, children) : import_react.default.cloneElement(Component, {
42
- ...Component.props,
43
- ...props
44
- }, componentChildren ? [...componentChildren, ...children] : [...children]);
53
+ return typeof Component === "function" ? /* @__PURE__ */ import_react.default.createElement(Component, __spreadValues({}, props), children) : import_react.default.cloneElement(Component, __spreadValues(__spreadValues({}, Component.props), props), componentChildren ? [...componentChildren, ...children] : [...children]);
45
54
  };
46
55
  var getComponentFromProps_default = getComponentFromProps;
47
56
  module.exports = __toCommonJS(getComponentFromProps_exports);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/getComponentFromProps.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable no-nested-ternary */\nimport React from 'react';\n\nexport const getComponentFromProps = (Component, props, children = []) => {\n if (!Component) return null;\n const componentChildren = Component.props\n ? Array.isArray(Component.props.children)\n ? Component.props.children\n : [Component.props.children]\n : null;\n return typeof Component === 'function' ? (\n <Component {...props}>{children}</Component>\n ) : (\n React.cloneElement(\n Component,\n {\n ...Component.props,\n ...props,\n },\n componentChildren ? [...componentChildren, ...children] : [...children],\n )\n );\n};\n\nexport default getComponentFromProps;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAEX,MAAM,wBAAwB,CAAC,WAAW,OAAO,WAAW,OAAO;AACxE,MAAI,CAAC;AAAW,WAAO;AACvB,QAAM,oBAAoB,UAAU,QAChC,MAAM,QAAQ,UAAU,MAAM,YAC5B,UAAU,MAAM,WAChB,CAAC,UAAU,MAAM,YACnB;AACJ,SAAO,OAAO,cAAc,aAC1B,mDAAC,WAAD;AAAA,OAAe;AAAA,KAAQ,YAEvB,qBAAM,aACJ,WACA;AAAA,OACK,UAAU;AAAA,OACV;AAAA,KAEL,oBAAoB,CAAC,GAAG,mBAAmB,GAAG,YAAY,CAAC,GAAG;AAAA;AAKpE,IAAO,gCAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAEX,MAAM,wBAAwB,CAAC,WAAW,OAAO,WAAW,OAAO;AACxE,MAAI,CAAC;AAAW,WAAO;AACvB,QAAM,oBAAoB,UAAU,QAChC,MAAM,QAAQ,UAAU,MAAM,YAC5B,UAAU,MAAM,WAChB,CAAC,UAAU,MAAM,YACnB;AACJ,SAAO,OAAO,cAAc,aAC1B,mDAAC,WAAD,mBAAe,QAAQ,YAEvB,qBAAM,aACJ,WACA,kCACK,UAAU,QACV,QAEL,oBAAoB,CAAC,GAAG,mBAAmB,GAAG,YAAY,CAAC,GAAG;AAAA;AAKpE,IAAO,gCAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,26 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
25
  var __export = (target, all) => {
9
26
  for (var name in all)
@@ -35,7 +52,7 @@ var import_react = require("react");
35
52
  var import_utils = require("../utils");
36
53
  var import_useDerivedStateFromProps = require("./useDerivedStateFromProps");
37
54
  const toggleStateInObject = (obj, key, value) => {
38
- const nextObj = { ...obj };
55
+ const nextObj = __spreadValues({}, obj);
39
56
  if (nextObj[key]) {
40
57
  delete nextObj[key];
41
58
  } else {
@@ -77,7 +94,7 @@ const useExpandState = ({
77
94
  }
78
95
  setExpanded((prevState) => {
79
96
  const key = item[itemKey];
80
- const nextState = { ...prevState, [key]: stateData };
97
+ const nextState = __spreadProps(__spreadValues({}, prevState), { [key]: stateData });
81
98
  onExpandChange(nextState, item);
82
99
  return nextState;
83
100
  });
@@ -98,7 +115,7 @@ const useExpandState = ({
98
115
  onCollapse(item);
99
116
  }
100
117
  setExpanded((prevState) => {
101
- const nextState = { ...prevState };
118
+ const nextState = __spreadValues({}, prevState);
102
119
  delete nextState[item[itemKey]];
103
120
  onExpandChange(nextState, item);
104
121
  return nextState;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useExpandState.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAwB;AACxB,mBAA2B;AAC3B,sCAAyC;AAEzC,MAAM,sBAAsB,CAAC,KAAK,KAAK,UAAU;AAC/C,QAAM,UAAU,KAAK;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,8DAAyB;AAEzD,QAAM,gBAAgB,0BACpB,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,6BAAW,WAAW;AACxB,eAAS;AAAA;AAEX,gBAAY,eAAa;AACvB,YAAM,MAAM,KAAK;AACjB,YAAM,YAAY,KAAK,YAAY,MAAM;AACzC,qBAAe,WAAW;AAC1B,aAAO;AAAA;AAAA;AAIX,QAAM,eAAe,CAAC,MAAM,YAAY,SAAS;AAC/C,QAAI,6BAAW,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,6BAAW,aAAa;AAC1B,iBAAW;AAAA;AAEb,gBAAY,eAAa;AACvB,YAAM,YAAY,KAAK;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;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAwB;AACxB,mBAA2B;AAC3B,sCAAyC;AAEzC,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,8DAAyB;AAEzD,QAAM,gBAAgB,0BACpB,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,6BAAW,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,6BAAW,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,6BAAW,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
6
  "names": []
7
7
  }
@@ -32,15 +32,16 @@ __export(useOnElementResize_exports, {
32
32
  var React = __toESM(require("react"));
33
33
  var import_react = require("react");
34
34
  const useOnElementResize = (targetRef) => {
35
- const [width, setWidth] = (0, import_react.useState)(targetRef.current ? targetRef.current?.offsetWidth : 0);
36
- const [height, setHeight] = (0, import_react.useState)(targetRef.current ? targetRef.current?.offsetWidth : 0);
37
- const observer = (0, import_react.useRef)(null);
35
+ const [width, setWidth] = (0, import_react.useState)(targetRef.current?.offsetWidth ?? 0);
36
+ const [height, setHeight] = (0, import_react.useState)(targetRef.current?.offsetHeight ?? 0);
37
+ const observer = (0, import_react.useRef)();
38
38
  (0, import_react.useEffect)(() => {
39
39
  function outputsize() {
40
- setWidth(targetRef.current?.offsetWidth);
41
- setHeight(targetRef.current?.offsetHeight);
40
+ setWidth(targetRef.current?.offsetWidth ?? 0);
41
+ setHeight(targetRef.current?.offsetHeight ?? 0);
42
42
  }
43
- observer.current = new ResizeObserver(outputsize).observe(targetRef.current);
43
+ observer.current = new ResizeObserver(outputsize);
44
+ observer.current.observe(targetRef.current);
44
45
  return () => {
45
46
  observer.current?.disconnect();
46
47
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useOnElementResize.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["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 = (targetRef: React.RefObject<HTMLDivElement>): Record<'width' | 'height', number> => {\n const [width, setWidth] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);\n const [height, setHeight] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);\n const observer = useRef(null);\n\n useEffect(() => {\n function outputsize() {\n setWidth(targetRef.current?.offsetWidth);\n setHeight(targetRef.current?.offsetHeight);\n }\n\n observer.current = new ResizeObserver(outputsize).observe(targetRef.current);\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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4D;AAIrD,MAAM,qBAAqB,CAAC,cAAmF;AACpH,QAAM,CAAC,OAAO,YAAY,2BAAS,UAAU,UAAU,UAAU,SAAS,cAAc;AACxF,QAAM,CAAC,QAAQ,aAAa,2BAAS,UAAU,UAAU,UAAU,SAAS,cAAc;AAC1F,QAAM,WAAW,yBAAO;AAExB,8BAAU,MAAM;AACd,0BAAsB;AACpB,eAAS,UAAU,SAAS;AAC5B,gBAAU,UAAU,SAAS;AAAA;AAG/B,aAAS,UAAU,IAAI,eAAe,YAAY,QAAQ,UAAU;AAEpE,WAAO,MAAM;AACX,eAAS,SAAS;AAAA;AAAA,KAEnB,CAAC;AAEJ,SAAO,0BACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,MAEF,CAAC,OAAO;AAAA;",
4
+ "sourcesContent": ["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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4D;AAIrD,MAAM,qBAAqB,CAChC,cACuC;AACvC,QAAM,CAAC,OAAO,YAAY,2BAAS,UAAU,SAAS,eAAe;AACrE,QAAM,CAAC,QAAQ,aAAa,2BAAS,UAAU,SAAS,gBAAgB;AACxE,QAAM,WAAW;AAEjB,8BAAU,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,0BACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,MAEF,CAAC,OAAO;AAAA;",
6
6
  "names": []
7
7
  }
package/dist/cjs/utils.js CHANGED
@@ -1,9 +1,26 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
25
  var __export = (target, all) => {
9
26
  for (var name in all)
@@ -78,7 +95,7 @@ __export(utils_exports, {
78
95
  var React = __toESM(require("react"));
79
96
  var import_lodash = require("lodash");
80
97
  const cx = (...classnames) => classnames.reduce((result, cn) => `${result} ${cn || ""}`, "");
81
- const toggleInObject = (obj, key, value) => obj[key] !== void 0 ? (0, import_lodash.omit)(obj, [key]) : { ...obj, [key]: value };
98
+ const toggleInObject = (obj, key, value) => obj[key] !== void 0 ? (0, import_lodash.omit)(obj, [key]) : __spreadProps(__spreadValues({}, obj), { [key]: value });
82
99
  const toggleInArray = (array, value) => array.indexOf(value) === -1 ? [value] : [];
83
100
  const arrayMoveMutate = (array, from, to) => {
84
101
  array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
@@ -107,8 +124,7 @@ function runAll(...fns) {
107
124
  });
108
125
  }
109
126
  function hashArray(arr, fieldName) {
110
- return arr.reduce((result, item) => ({
111
- ...result,
127
+ return arr.reduce((result, item) => __spreadProps(__spreadValues({}, result), {
112
128
  [fieldName ? item[fieldName] : item]: true
113
129
  }), {});
114
130
  }
@@ -118,7 +134,7 @@ function safeCall(fun, ...args) {
118
134
  }
119
135
  }
120
136
  const removeUndefinedProperties = (obj) => {
121
- const cleanObject = { ...obj };
137
+ const cleanObject = __spreadValues({}, obj);
122
138
  Object.keys(obj).forEach((key) => cleanObject[key] === void 0 && delete cleanObject[key]);
123
139
  return cleanObject;
124
140
  };
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable no-param-reassign */\n/* eslint-disable max-lines */\n/**\n * commonly used functions\n * Add a level of indirection to lodash so we can replace\n * it if desired, while keeping function names the same\n */\n// TODO: Import individual packages vs referencing all of lodash\nimport {\n cloneDeep,\n filter,\n debounce,\n findIndex,\n isEmpty,\n isString,\n isEqual,\n noop,\n omit,\n orderBy,\n pull,\n sumBy,\n maxBy,\n meanBy,\n sortBy,\n transform,\n isFunction,\n uniq,\n uniqBy,\n groupBy,\n property,\n get,\n set,\n range,\n parseInt,\n padStart,\n isNaN,\n values,\n throttle,\n pick,\n pickBy,\n differenceBy,\n differenceWith,\n isEqualWith,\n curry,\n isObject,\n isBoolean,\n} from 'lodash';\n\n/**\n * Concatenates classNames from arguments\n *\n * @param {...any} classnames\n */\nexport const cx = (...classnames) => classnames.reduce((result, cn) => `${result} ${cn || ''}`, '');\n\n// if entry exists, remove it, if not, add it\nconst toggleInObject = (obj, key, value) => (obj[key] !== undefined ? omit(obj, [key]) : { ...obj, [key]: value });\nconst toggleInArray = (array, value) => (array.indexOf(value) === -1 ? [value] : []);\n\nconst arrayMoveMutate = (array, from, to) => {\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n};\n\nconst arrayMove = (array, from, to) => {\n array = array.slice();\n arrayMoveMutate(array, from, to);\n return array;\n};\n\nconst accessorDefault = (item) => item;\nconst addOrRemove = (array, item, accessor = accessorDefault) => {\n const index = array.findIndex((iItem) => accessor(iItem) === accessor(item));\n\n if (index !== -1) {\n const nextArray = cloneDeep(array);\n nextArray.splice(index, 1);\n return nextArray;\n }\n\n return [...array, item];\n};\n\nexport function runAll(...fns) {\n return (...args) =>\n fns.forEach((fn) => {\n if (Array.isArray(fn)) runAll(fn);\n if (isFunction(fn)) fn(...args);\n });\n}\n\nexport function hashArray(arr, fieldName) {\n return arr.reduce(\n (result, item) => ({\n ...result,\n [fieldName ? item[fieldName] : item]: true,\n }),\n {},\n );\n}\n\nexport function safeCall(fun, ...args) {\n if (isFunction(fun)) {\n fun(...args);\n }\n}\n\nexport const removeUndefinedProperties = (obj) => {\n const cleanObject = { ...obj };\n Object.keys(obj).forEach((key) => cleanObject[key] === undefined && delete cleanObject[key]);\n return cleanObject;\n};\n\nexport default {};\nexport {\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};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAAA;AAAA;AAAA;ACAA,YAAuB;ADQvB,oBAsCO;AAOA,MAAM,KAAK,IAAI,eAAe,WAAW,OAAO,CAAC,QAAQ,OAAO,GAAG,UAAU,MAAM,MAAM;AAGhG,MAAM,iBAAiB,CAAC,KAAK,KAAK,UAAW,IAAI,SAAS,SAAY,wBAAK,KAAK,CAAC,QAAQ,KAAK,MAAM,MAAM;AAC1G,MAAM,gBAAgB,CAAC,OAAO,UAAW,MAAM,QAAQ,WAAW,KAAK,CAAC,SAAS;AAEjF,MAAM,kBAAkB,CAAC,OAAO,MAAM,OAAO;AAC3C,QAAM,OAAO,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI,GAAG,MAAM,OAAO,MAAM,GAAG;AAAA;AAGzE,MAAM,YAAY,CAAC,OAAO,MAAM,OAAO;AACrC,UAAQ,MAAM;AACd,kBAAgB,OAAO,MAAM;AAC7B,SAAO;AAAA;AAGT,MAAM,kBAAkB,CAAC,SAAS;AAClC,MAAM,cAAc,CAAC,OAAO,MAAM,WAAW,oBAAoB;AAC/D,QAAM,QAAQ,MAAM,UAAU,CAAC,UAAU,SAAS,WAAW,SAAS;AAEtE,MAAI,UAAU,IAAI;AAChB,UAAM,YAAY,6BAAU;AAC5B,cAAU,OAAO,OAAO;AACxB,WAAO;AAAA;AAGT,SAAO,CAAC,GAAG,OAAO;AAAA;AAGb,mBAAmB,KAAK;AAC7B,SAAO,IAAI,SACT,IAAI,QAAQ,CAAC,OAAO;AAClB,QAAI,MAAM,QAAQ;AAAK,aAAO;AAC9B,QAAI,8BAAW;AAAK,SAAG,GAAG;AAAA;AAAA;AAIzB,mBAAmB,KAAK,WAAW;AACxC,SAAO,IAAI,OACT,CAAC,QAAQ,SAAU;AAAA,OACd;AAAA,KACF,YAAY,KAAK,aAAa,OAAO;AAAA,MAExC;AAAA;AAIG,kBAAkB,QAAQ,MAAM;AACrC,MAAI,8BAAW,MAAM;AACnB,QAAI,GAAG;AAAA;AAAA;AAIJ,MAAM,4BAA4B,CAAC,QAAQ;AAChD,QAAM,cAAc,KAAK;AACzB,SAAO,KAAK,KAAK,QAAQ,CAAC,QAAQ,YAAY,SAAS,UAAa,OAAO,YAAY;AACvF,SAAO;AAAA;AAGT,IAAO,gBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAAA;AAAA;AAAA;ACAA,YAAuB;ADQvB,oBAsCO;AAOA,MAAM,KAAK,IAAI,eAAe,WAAW,OAAO,CAAC,QAAQ,OAAO,GAAG,UAAU,MAAM,MAAM;AAGhG,MAAM,iBAAiB,CAAC,KAAK,KAAK,UAAW,IAAI,SAAS,SAAY,wBAAK,KAAK,CAAC,QAAQ,iCAAK,MAAL,GAAW,MAAM;AAC1G,MAAM,gBAAgB,CAAC,OAAO,UAAW,MAAM,QAAQ,WAAW,KAAK,CAAC,SAAS;AAEjF,MAAM,kBAAkB,CAAC,OAAO,MAAM,OAAO;AAC3C,QAAM,OAAO,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI,GAAG,MAAM,OAAO,MAAM,GAAG;AAAA;AAGzE,MAAM,YAAY,CAAC,OAAO,MAAM,OAAO;AACrC,UAAQ,MAAM;AACd,kBAAgB,OAAO,MAAM;AAC7B,SAAO;AAAA;AAGT,MAAM,kBAAkB,CAAC,SAAS;AAClC,MAAM,cAAc,CAAC,OAAO,MAAM,WAAW,oBAAoB;AAC/D,QAAM,QAAQ,MAAM,UAAU,CAAC,UAAU,SAAS,WAAW,SAAS;AAEtE,MAAI,UAAU,IAAI;AAChB,UAAM,YAAY,6BAAU;AAC5B,cAAU,OAAO,OAAO;AACxB,WAAO;AAAA;AAGT,SAAO,CAAC,GAAG,OAAO;AAAA;AAGb,mBAAmB,KAAK;AAC7B,SAAO,IAAI,SACT,IAAI,QAAQ,CAAC,OAAO;AAClB,QAAI,MAAM,QAAQ;AAAK,aAAO;AAC9B,QAAI,8BAAW;AAAK,SAAG,GAAG;AAAA;AAAA;AAIzB,mBAAmB,KAAK,WAAW;AACxC,SAAO,IAAI,OACT,CAAC,QAAQ,SAAU,iCACd,SADc;AAAA,KAEhB,YAAY,KAAK,aAAa,OAAO;AAAA,MAExC;AAAA;AAIG,kBAAkB,QAAQ,MAAM;AACrC,MAAI,8BAAW,MAAM;AACnB,QAAI,GAAG;AAAA;AAAA;AAIJ,MAAM,4BAA4B,CAAC,QAAQ;AAChD,QAAM,cAAc,mBAAK;AACzB,SAAO,KAAK,KAAK,QAAQ,CAAC,QAAQ,YAAY,SAAS,UAAa,OAAO,YAAY;AACvF,SAAO;AAAA;AAGT,IAAO,gBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,15 +1,26 @@
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
+ };
1
17
  import * as React from "react";
2
18
  import React2 from "react";
3
19
  const getComponentFromProps = (Component, props, children = []) => {
4
20
  if (!Component)
5
21
  return null;
6
22
  const componentChildren = Component.props ? Array.isArray(Component.props.children) ? Component.props.children : [Component.props.children] : null;
7
- return typeof Component === "function" ? /* @__PURE__ */ React2.createElement(Component, {
8
- ...props
9
- }, children) : React2.cloneElement(Component, {
10
- ...Component.props,
11
- ...props
12
- }, componentChildren ? [...componentChildren, ...children] : [...children]);
23
+ return typeof Component === "function" ? /* @__PURE__ */ React2.createElement(Component, __spreadValues({}, props), children) : React2.cloneElement(Component, __spreadValues(__spreadValues({}, Component.props), props), componentChildren ? [...componentChildren, ...children] : [...children]);
13
24
  };
14
25
  var getComponentFromProps_default = getComponentFromProps;
15
26
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/getComponentFromProps.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-nested-ternary */\nimport React from 'react';\n\nexport const getComponentFromProps = (Component, props, children = []) => {\n if (!Component) return null;\n const componentChildren = Component.props\n ? Array.isArray(Component.props.children)\n ? Component.props.children\n : [Component.props.children]\n : null;\n return typeof Component === 'function' ? (\n <Component {...props}>{children}</Component>\n ) : (\n React.cloneElement(\n Component,\n {\n ...Component.props,\n ...props,\n },\n componentChildren ? [...componentChildren, ...children] : [...children],\n )\n );\n};\n\nexport default getComponentFromProps;\n"],
5
- "mappings": "AAAA;ACCA;AAEO,MAAM,wBAAwB,CAAC,WAAW,OAAO,WAAW,OAAO;AACxE,MAAI,CAAC;AAAW,WAAO;AACvB,QAAM,oBAAoB,UAAU,QAChC,MAAM,QAAQ,UAAU,MAAM,YAC5B,UAAU,MAAM,WAChB,CAAC,UAAU,MAAM,YACnB;AACJ,SAAO,OAAO,cAAc,aAC1B,qCAAC,WAAD;AAAA,OAAe;AAAA,KAAQ,YAEvB,OAAM,aACJ,WACA;AAAA,OACK,UAAU;AAAA,OACV;AAAA,KAEL,oBAAoB,CAAC,GAAG,mBAAmB,GAAG,YAAY,CAAC,GAAG;AAAA;AAKpE,IAAO,gCAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;ACCA;AAEO,MAAM,wBAAwB,CAAC,WAAW,OAAO,WAAW,OAAO;AACxE,MAAI,CAAC;AAAW,WAAO;AACvB,QAAM,oBAAoB,UAAU,QAChC,MAAM,QAAQ,UAAU,MAAM,YAC5B,UAAU,MAAM,WAChB,CAAC,UAAU,MAAM,YACnB;AACJ,SAAO,OAAO,cAAc,aAC1B,qCAAC,WAAD,mBAAe,QAAQ,YAEvB,OAAM,aACJ,WACA,kCACK,UAAU,QACV,QAEL,oBAAoB,CAAC,GAAG,mBAAmB,GAAG,YAAY,CAAC,GAAG;AAAA;AAKpE,IAAO,gCAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,28 @@
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));
1
20
  import * as React from "react";
2
21
  import { useMemo } from "react";
3
22
  import { isFunction } from "../utils";
4
23
  import { useDerivedStateFromProps } from "./useDerivedStateFromProps";
5
24
  const toggleStateInObject = (obj, key, value) => {
6
- const nextObj = { ...obj };
25
+ const nextObj = __spreadValues({}, obj);
7
26
  if (nextObj[key]) {
8
27
  delete nextObj[key];
9
28
  } else {
@@ -45,7 +64,7 @@ const useExpandState = ({
45
64
  }
46
65
  setExpanded((prevState) => {
47
66
  const key = item[itemKey];
48
- const nextState = { ...prevState, [key]: stateData };
67
+ const nextState = __spreadProps(__spreadValues({}, prevState), { [key]: stateData });
49
68
  onExpandChange(nextState, item);
50
69
  return nextState;
51
70
  });
@@ -66,7 +85,7 @@ const useExpandState = ({
66
85
  onCollapse(item);
67
86
  }
68
87
  setExpanded((prevState) => {
69
- const nextState = { ...prevState };
88
+ const nextState = __spreadValues({}, prevState);
70
89
  delete nextState[item[itemKey]];
71
90
  onExpandChange(nextState, item);
72
91
  return nextState;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useExpandState.tsx"],
4
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,KAAK;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,KAAK,YAAY,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,KAAK;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;",
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
6
  "names": []
7
7
  }
@@ -1,15 +1,16 @@
1
1
  import * as React from "react";
2
2
  import { useState, useEffect, useRef, useMemo } from "react";
3
3
  const useOnElementResize = (targetRef) => {
4
- const [width, setWidth] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);
5
- const [height, setHeight] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);
6
- const observer = useRef(null);
4
+ const [width, setWidth] = useState(targetRef.current?.offsetWidth ?? 0);
5
+ const [height, setHeight] = useState(targetRef.current?.offsetHeight ?? 0);
6
+ const observer = useRef();
7
7
  useEffect(() => {
8
8
  function outputsize() {
9
- setWidth(targetRef.current?.offsetWidth);
10
- setHeight(targetRef.current?.offsetHeight);
9
+ setWidth(targetRef.current?.offsetWidth ?? 0);
10
+ setHeight(targetRef.current?.offsetHeight ?? 0);
11
11
  }
12
- observer.current = new ResizeObserver(outputsize).observe(targetRef.current);
12
+ observer.current = new ResizeObserver(outputsize);
13
+ observer.current.observe(targetRef.current);
13
14
  return () => {
14
15
  observer.current?.disconnect();
15
16
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 = (targetRef: React.RefObject<HTMLDivElement>): Record<'width' | 'height', number> => {\n const [width, setWidth] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);\n const [height, setHeight] = useState(targetRef.current ? targetRef.current?.offsetWidth : 0);\n const observer = useRef(null);\n\n useEffect(() => {\n function outputsize() {\n setWidth(targetRef.current?.offsetWidth);\n setHeight(targetRef.current?.offsetHeight);\n }\n\n observer.current = new ResizeObserver(outputsize).observe(targetRef.current);\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,CAAC,cAAmF;AACpH,QAAM,CAAC,OAAO,YAAY,SAAS,UAAU,UAAU,UAAU,SAAS,cAAc;AACxF,QAAM,CAAC,QAAQ,aAAa,SAAS,UAAU,UAAU,UAAU,SAAS,cAAc;AAC1F,QAAM,WAAW,OAAO;AAExB,YAAU,MAAM;AACd,0BAAsB;AACpB,eAAS,UAAU,SAAS;AAC5B,gBAAU,UAAU,SAAS;AAAA;AAG/B,aAAS,UAAU,IAAI,eAAe,YAAY,QAAQ,UAAU;AAEpE,WAAO,MAAM;AACX,eAAS,SAAS;AAAA;AAAA,KAEnB,CAAC;AAEJ,SAAO,QACL,MAAO;AAAA,IACL;AAAA,IACA;AAAA,MAEF,CAAC,OAAO;AAAA;",
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
6
  "names": []
7
7
  }
package/dist/esm/utils.js CHANGED
@@ -1,3 +1,22 @@
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));
1
20
  import * as React from "react";
2
21
  import {
3
22
  cloneDeep,
@@ -39,7 +58,7 @@ import {
39
58
  isBoolean
40
59
  } from "lodash";
41
60
  const cx = (...classnames) => classnames.reduce((result, cn) => `${result} ${cn || ""}`, "");
42
- const toggleInObject = (obj, key, value) => obj[key] !== void 0 ? omit(obj, [key]) : { ...obj, [key]: value };
61
+ const toggleInObject = (obj, key, value) => obj[key] !== void 0 ? omit(obj, [key]) : __spreadProps(__spreadValues({}, obj), { [key]: value });
43
62
  const toggleInArray = (array, value) => array.indexOf(value) === -1 ? [value] : [];
44
63
  const arrayMoveMutate = (array, from, to) => {
45
64
  array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
@@ -68,8 +87,7 @@ function runAll(...fns) {
68
87
  });
69
88
  }
70
89
  function hashArray(arr, fieldName) {
71
- return arr.reduce((result, item) => ({
72
- ...result,
90
+ return arr.reduce((result, item) => __spreadProps(__spreadValues({}, result), {
73
91
  [fieldName ? item[fieldName] : item]: true
74
92
  }), {});
75
93
  }
@@ -79,7 +97,7 @@ function safeCall(fun, ...args) {
79
97
  }
80
98
  }
81
99
  const removeUndefinedProperties = (obj) => {
82
- const cleanObject = { ...obj };
100
+ const cleanObject = __spreadValues({}, obj);
83
101
  Object.keys(obj).forEach((key) => cleanObject[key] === void 0 && delete cleanObject[key]);
84
102
  return cleanObject;
85
103
  };
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/utils.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable max-lines */\n/**\n * commonly used functions\n * Add a level of indirection to lodash so we can replace\n * it if desired, while keeping function names the same\n */\n// TODO: Import individual packages vs referencing all of lodash\nimport {\n cloneDeep,\n filter,\n debounce,\n findIndex,\n isEmpty,\n isString,\n isEqual,\n noop,\n omit,\n orderBy,\n pull,\n sumBy,\n maxBy,\n meanBy,\n sortBy,\n transform,\n isFunction,\n uniq,\n uniqBy,\n groupBy,\n property,\n get,\n set,\n range,\n parseInt,\n padStart,\n isNaN,\n values,\n throttle,\n pick,\n pickBy,\n differenceBy,\n differenceWith,\n isEqualWith,\n curry,\n isObject,\n isBoolean,\n} from 'lodash';\n\n/**\n * Concatenates classNames from arguments\n *\n * @param {...any} classnames\n */\nexport const cx = (...classnames) => classnames.reduce((result, cn) => `${result} ${cn || ''}`, '');\n\n// if entry exists, remove it, if not, add it\nconst toggleInObject = (obj, key, value) => (obj[key] !== undefined ? omit(obj, [key]) : { ...obj, [key]: value });\nconst toggleInArray = (array, value) => (array.indexOf(value) === -1 ? [value] : []);\n\nconst arrayMoveMutate = (array, from, to) => {\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n};\n\nconst arrayMove = (array, from, to) => {\n array = array.slice();\n arrayMoveMutate(array, from, to);\n return array;\n};\n\nconst accessorDefault = (item) => item;\nconst addOrRemove = (array, item, accessor = accessorDefault) => {\n const index = array.findIndex((iItem) => accessor(iItem) === accessor(item));\n\n if (index !== -1) {\n const nextArray = cloneDeep(array);\n nextArray.splice(index, 1);\n return nextArray;\n }\n\n return [...array, item];\n};\n\nexport function runAll(...fns) {\n return (...args) =>\n fns.forEach((fn) => {\n if (Array.isArray(fn)) runAll(fn);\n if (isFunction(fn)) fn(...args);\n });\n}\n\nexport function hashArray(arr, fieldName) {\n return arr.reduce(\n (result, item) => ({\n ...result,\n [fieldName ? item[fieldName] : item]: true,\n }),\n {},\n );\n}\n\nexport function safeCall(fun, ...args) {\n if (isFunction(fun)) {\n fun(...args);\n }\n}\n\nexport const removeUndefinedProperties = (obj) => {\n const cleanObject = { ...obj };\n Object.keys(obj).forEach((key) => cleanObject[key] === undefined && delete cleanObject[key]);\n return cleanObject;\n};\n\nexport default {};\nexport {\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};\n"],
5
- "mappings": "AAAA;ACQA;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;AA6CO,MAAM,KAAK,IAAI,eAAe,WAAW,OAAO,CAAC,QAAQ,OAAO,GAAG,UAAU,MAAM,MAAM;AAGhG,MAAM,iBAAiB,CAAC,KAAK,KAAK,UAAW,IAAI,SAAS,SAAY,KAAK,KAAK,CAAC,QAAQ,KAAK,MAAM,MAAM;AAC1G,MAAM,gBAAgB,CAAC,OAAO,UAAW,MAAM,QAAQ,WAAW,KAAK,CAAC,SAAS;AAEjF,MAAM,kBAAkB,CAAC,OAAO,MAAM,OAAO;AAC3C,QAAM,OAAO,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI,GAAG,MAAM,OAAO,MAAM,GAAG;AAAA;AAGzE,MAAM,YAAY,CAAC,OAAO,MAAM,OAAO;AACrC,UAAQ,MAAM;AACd,kBAAgB,OAAO,MAAM;AAC7B,SAAO;AAAA;AAGT,MAAM,kBAAkB,CAAC,SAAS;AAClC,MAAM,cAAc,CAAC,OAAO,MAAM,WAAW,oBAAoB;AAC/D,QAAM,QAAQ,MAAM,UAAU,CAAC,UAAU,SAAS,WAAW,SAAS;AAEtE,MAAI,UAAU,IAAI;AAChB,UAAM,YAAY,UAAU;AAC5B,cAAU,OAAO,OAAO;AACxB,WAAO;AAAA;AAGT,SAAO,CAAC,GAAG,OAAO;AAAA;AAGb,mBAAmB,KAAK;AAC7B,SAAO,IAAI,SACT,IAAI,QAAQ,CAAC,OAAO;AAClB,QAAI,MAAM,QAAQ;AAAK,aAAO;AAC9B,QAAI,WAAW;AAAK,SAAG,GAAG;AAAA;AAAA;AAIzB,mBAAmB,KAAK,WAAW;AACxC,SAAO,IAAI,OACT,CAAC,QAAQ,SAAU;AAAA,OACd;AAAA,KACF,YAAY,KAAK,aAAa,OAAO;AAAA,MAExC;AAAA;AAIG,kBAAkB,QAAQ,MAAM;AACrC,MAAI,WAAW,MAAM;AACnB,QAAI,GAAG;AAAA;AAAA;AAIJ,MAAM,4BAA4B,CAAC,QAAQ;AAChD,QAAM,cAAc,KAAK;AACzB,SAAO,KAAK,KAAK,QAAQ,CAAC,QAAQ,YAAY,SAAS,UAAa,OAAO,YAAY;AACvF,SAAO;AAAA;AAGT,IAAO,gBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACQA;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;AA6CO,MAAM,KAAK,IAAI,eAAe,WAAW,OAAO,CAAC,QAAQ,OAAO,GAAG,UAAU,MAAM,MAAM;AAGhG,MAAM,iBAAiB,CAAC,KAAK,KAAK,UAAW,IAAI,SAAS,SAAY,KAAK,KAAK,CAAC,QAAQ,iCAAK,MAAL,GAAW,MAAM;AAC1G,MAAM,gBAAgB,CAAC,OAAO,UAAW,MAAM,QAAQ,WAAW,KAAK,CAAC,SAAS;AAEjF,MAAM,kBAAkB,CAAC,OAAO,MAAM,OAAO;AAC3C,QAAM,OAAO,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI,GAAG,MAAM,OAAO,MAAM,GAAG;AAAA;AAGzE,MAAM,YAAY,CAAC,OAAO,MAAM,OAAO;AACrC,UAAQ,MAAM;AACd,kBAAgB,OAAO,MAAM;AAC7B,SAAO;AAAA;AAGT,MAAM,kBAAkB,CAAC,SAAS;AAClC,MAAM,cAAc,CAAC,OAAO,MAAM,WAAW,oBAAoB;AAC/D,QAAM,QAAQ,MAAM,UAAU,CAAC,UAAU,SAAS,WAAW,SAAS;AAEtE,MAAI,UAAU,IAAI;AAChB,UAAM,YAAY,UAAU;AAC5B,cAAU,OAAO,OAAO;AACxB,WAAO;AAAA;AAGT,SAAO,CAAC,GAAG,OAAO;AAAA;AAGb,mBAAmB,KAAK;AAC7B,SAAO,IAAI,SACT,IAAI,QAAQ,CAAC,OAAO;AAClB,QAAI,MAAM,QAAQ;AAAK,aAAO;AAC9B,QAAI,WAAW;AAAK,SAAG,GAAG;AAAA;AAAA;AAIzB,mBAAmB,KAAK,WAAW;AACxC,SAAO,IAAI,OACT,CAAC,QAAQ,SAAU,iCACd,SADc;AAAA,KAEhB,YAAY,KAAK,aAAa,OAAO;AAAA,MAExC;AAAA;AAIG,kBAAkB,QAAQ,MAAM;AACrC,MAAI,WAAW,MAAM;AACnB,QAAI,GAAG;AAAA;AAAA;AAIJ,MAAM,4BAA4B,CAAC,QAAQ;AAChD,QAAM,cAAc,mBAAK;AACzB,SAAO,KAAK,KAAK,QAAQ,CAAC,QAAQ,YAAY,SAAS,UAAa,OAAO,YAAY;AACvF,SAAO;AAAA;AAGT,IAAO,gBAAQ;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-utilities",
3
- "version": "3.0.0-alpha.0",
3
+ "version": "3.0.0-alpha.1",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Utilities",
6
6
  "files": [
@@ -167,6 +167,7 @@
167
167
  "scripts": {
168
168
  "test": "node ../../scripts/testing/test.mjs",
169
169
  "lint": "node ../../scripts/lint.mjs",
170
+ "dts": "node ../../scripts/dts.mjs",
170
171
  "build": "cross-env NODE_ENV=production node ../../scripts/build/build.mjs",
171
172
  "dev": "cross-env NODE_ENV=development node ../../scripts/build/build.mjs --watch"
172
173
  }
@@ -1 +0,0 @@
1
- export declare const capitalize: (string: string) => string;
@@ -1,12 +0,0 @@
1
- /**
2
- * Composes single-argument functions from right to left. The rightmost
3
- * function can take multiple arguments as it provides the signature for
4
- * the resulting composite function. [From redux v4.0.5]
5
- *
6
- * @param {...Function} funcs The functions to compose.
7
- * @returns {Function} A function obtained by composing the argument functions
8
- * from right to left. For example, compose(f, g, h) is identical to doing
9
- * (...args) => f(g(h(...args))).
10
- */
11
- export declare const compose: (...funcs: any[]) => any;
12
- export default compose;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const getComponentFromProps: (Component: any, props: any, children?: never[]) => JSX.Element | null;
3
- export default getComponentFromProps;
@@ -1,19 +0,0 @@
1
- export { default as useMeasure } from 'use-measure';
2
- export { default as useForceUpdate } from 'use-force-update';
3
- export { default as useOnClickOutside } from 'use-onclickoutside';
4
- export { useUncontrolled } from 'uncontrollable';
5
- export { useExecutionTimer } from './useExecutionTimer';
6
- export { useExpandState } from './useExpandState';
7
- export { useHotkeys } from './useHotkeys';
8
- export { useHoverHandlersDelay } from './useHoverHandlersDelay';
9
- export { useResizeObserver } from './useResizeObserver';
10
- export { useShouldRecalculate } from './useShouldRecalculate';
11
- export { useWindowScrollerList } from './useWindowScrollerList';
12
- export { useWindowSize } from './useWindowSize';
13
- export { usePrevious } from './usePrevious';
14
- export { useCancellableDelayedCallback } from './useCancellableDelayedCallback';
15
- export { useDerivedStateFromProps } from './useDerivedStateFromProps';
16
- export { useSetRef } from './useSetRef';
17
- export { useParentElement } from './useParentElement';
18
- export { useOnElementResize } from './useOnElementResize';
19
- export { useIsShowingEllipsis } from './useIsShowingEllipsis';
@@ -1,2 +0,0 @@
1
- export declare const useCancellableDelayedCallback: (cb: any, delay: any) => ((...args: any[]) => void)[];
2
- export default useCancellableDelayedCallback;
@@ -1,2 +0,0 @@
1
- export declare const useDerivedStateFromProps: (prop: any, options?: {}) => any[];
2
- export default useDerivedStateFromProps;
@@ -1,2 +0,0 @@
1
- export declare const useExecutionTimer: (startFn: any, cleanFn: any, delayTime: any) => ((...args: any[]) => void)[];
2
- export default useExecutionTimer;
@@ -1,23 +0,0 @@
1
- export declare const useExpandState: ({ items, itemKey, expanded: expandedProp, onExpand, onExpandChange, onExpandAll, onToggleExpand, onCollapse, }: {
2
- items?: never[] | undefined;
3
- itemKey?: string | undefined;
4
- expanded?: {} | undefined;
5
- onExpand: any;
6
- onExpandChange?: (() => null) | undefined;
7
- onExpandAll?: (() => null) | undefined;
8
- onToggleExpand: any;
9
- onCollapse: any;
10
- }) => {
11
- state: {
12
- expanded: any;
13
- isExpandedAll: boolean;
14
- };
15
- actions: {
16
- expand: (item: any, stateData?: boolean) => void;
17
- toggleExpandAll: (stateData?: boolean) => void;
18
- toggleExpand: (item: any, stateData?: boolean) => void;
19
- collapse: (item: any) => void;
20
- };
21
- setExpanded: any;
22
- };
23
- export default useExpandState;
@@ -1,6 +0,0 @@
1
- export declare const useHotkeys: ({ keys, handler, options }: {
2
- keys: any;
3
- handler: any;
4
- options?: {} | undefined;
5
- }, deps?: never[]) => void;
6
- export default useHotkeys;
@@ -1,10 +0,0 @@
1
- export declare const useHoverHandlersDelay: ({ onMouseOver, onMouseLeave, hideDelay, showDelay, }: {
2
- onMouseOver: any;
3
- onMouseLeave: any;
4
- hideDelay?: number | undefined;
5
- showDelay?: number | undefined;
6
- }) => {
7
- onMouseOver: () => void;
8
- onMouseLeave: () => void;
9
- };
10
- export default useHoverHandlersDelay;
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const useIsShowingEllipsis: <T extends HTMLElement = HTMLSpanElement>() => {
3
- setElement: import("react").Dispatch<import("react").SetStateAction<T | undefined>>;
4
- isShowingEllipsis: boolean;
5
- };
@@ -1,2 +0,0 @@
1
- import React from 'react';
2
- export declare const useOnElementResize: (targetRef: React.RefObject<HTMLDivElement>) => Record<'width' | 'height', number>;
@@ -1 +0,0 @@
1
- export declare const useParentElement: (ref: any) => any;
@@ -1,2 +0,0 @@
1
- export declare const usePrevious: (value: any) => undefined;
2
- export default usePrevious;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const useResizeObserver: (handler: any, el: any) => import("react").Dispatch<any>[];
3
- export default useResizeObserver;
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const useSetRef: (initial: any) => (import("react").MutableRefObject<any> | ((node: any) => void))[];
@@ -1,2 +0,0 @@
1
- export declare const useShouldRecalculate: (bool: any) => number;
2
- export default useShouldRecalculate;
@@ -1,5 +0,0 @@
1
- export declare const useWindowScrollerList: ({ listInstance, outerListRef }: {
2
- listInstance: any;
3
- outerListRef: any;
4
- }) => void;
5
- export default useWindowScrollerList;
@@ -1,2 +0,0 @@
1
- export declare const useWindowSize: () => false | number[];
2
- export default useWindowSize;
@@ -1,13 +0,0 @@
1
- export { default as getComponentFromProps } from './getComponentFromProps';
2
- export { default as onClickHandlerForNonInteractiveElements } from './onClickHandlerForNonInteractiveElements';
3
- export { capitalize } from './capitalize';
4
- export { checkNotEmpty, checkEmpty, greaterThan, validDate, equal, notEqual, isNull, isNotNull, isIn, isNotIn, greaterThanOrEquals, lessThanOrEquals, startsWith, contains, } from './operators';
5
- export { cx, runAll, hashArray, safeCall, removeUndefinedProperties, isObject, curry, arrayMove, uniq, filter, uniqBy, groupBy, property, get, set, cloneDeep, debounce, findIndex, isEmpty, isString, isEqual, maxBy, meanBy, noop, omit, orderBy, pull, sortBy, sumBy, transform, isFunction, range, parseInt, padStart, isNaN, values, throttle, toggleInObject, toggleInArray, pick, pickBy, differenceBy, differenceWith, addOrRemove, isEqualWith, isBoolean, } from './utils';
6
- export { setRef, mergeRefs, logger } from './system';
7
- export { useMeasure, useForceUpdate, useOnClickOutside, useUncontrolled, useExecutionTimer, useExpandState, useHotkeys, useHoverHandlersDelay, useResizeObserver, useShouldRecalculate, useWindowScrollerList, useWindowSize, usePrevious, useCancellableDelayedCallback, useDerivedStateFromProps, useSetRef, useParentElement, useOnElementResize, useIsShowingEllipsis, } from './hooks';
8
- export { getVisibleTimeByFormat, addLeadingZeros } from './timeUtils';
9
- export { compose } from './compose';
10
- export { DOCUMENT, WINDOW } from './platform';
11
- export { isClassComponent, isFunctionComponent, isReactComponent, isElement, isDOMTypeElement, isCompositeTypeElement, } from './reactTypesUtility';
12
- export { resetTimer } from './scrollingTimer';
13
- export { isRequired, isGreaterThan, isValidDate } from './validations';
@@ -1,12 +0,0 @@
1
- /**
2
- * onClickHandler: callback
3
- *
4
- * @param onClickHandler
5
- */
6
- export declare const onClickHandlerForNonInteractiveElements: (onClickHandler: any) => {
7
- role: string;
8
- tabIndex: string;
9
- onClick: any;
10
- onKeyPress: (event: any) => void;
11
- };
12
- export default onClickHandlerForNonInteractiveElements;
@@ -1,31 +0,0 @@
1
- /**
2
- * Check if the value is null undefined ''
3
- *
4
- * @param value
5
- */
6
- export declare const checkNotEmpty: (value: any) => boolean;
7
- export declare const checkEmpty: (value: any) => boolean;
8
- /**
9
- * @param value: number
10
- * @param comparator: number
11
- * @param value
12
- * @param comparator
13
- */
14
- export declare const greaterThan: (value: any, comparator: any) => boolean;
15
- /**
16
- * Check if a valid date with format MM/DD/YYYY
17
- *
18
- * @param {*} value: string
19
- * @param value
20
- */
21
- export declare const validDate: (value: any) => boolean;
22
- export declare const equal: (a: any, b: any) => boolean;
23
- export declare const notEqual: (a: any, b: any) => boolean;
24
- export declare const isNull: (a: any) => boolean;
25
- export declare const isNotNull: (a: any) => boolean;
26
- export declare const isIn: (a: any, b: any) => boolean;
27
- export declare const isNotIn: (a: any, b: any) => boolean;
28
- export declare const greaterThanOrEquals: (value: any, comparator: any) => boolean;
29
- export declare const lessThanOrEquals: (value: any, comparator: any) => boolean;
30
- export declare const startsWith: (value: any, comparator: any) => boolean;
31
- export declare const contains: (value: any, comparator: any) => boolean;
@@ -1,2 +0,0 @@
1
- export declare const DOCUMENT: Document | null;
2
- export declare const WINDOW: (Window & typeof globalThis) | null;
@@ -1,6 +0,0 @@
1
- export declare function isClassComponent(component: any): boolean;
2
- export declare function isFunctionComponent(component: any): boolean;
3
- export declare function isReactComponent(component: any): boolean;
4
- export declare function isElement(element: any): boolean;
5
- export declare function isDOMTypeElement(element: any): boolean;
6
- export declare function isCompositeTypeElement(element: any): boolean;
@@ -1 +0,0 @@
1
- export declare const resetTimer: (func: any) => (...args: any[]) => void;
@@ -1,3 +0,0 @@
1
- export declare const setRef: (ref: any, value: any) => void;
2
- export declare function mergeRefs(...refs: any[]): (node: any) => void;
3
- export declare function logger(...args: any[]): void;
@@ -1,7 +0,0 @@
1
- export declare const getVisibleTimeByFormat: (format: any) => {
2
- showHours: boolean;
3
- showMinutes: boolean;
4
- showSeconds: boolean;
5
- use12Hours: boolean;
6
- };
7
- export declare const addLeadingZeros: (count: any) => (number: any) => string;
@@ -1,23 +0,0 @@
1
- /**
2
- * commonly used functions
3
- * Add a level of indirection to lodash so we can replace
4
- * it if desired, while keeping function names the same
5
- */
6
- import { cloneDeep, filter, debounce, findIndex, isEmpty, isString, isEqual, noop, omit, orderBy, pull, sumBy, maxBy, meanBy, sortBy, transform, isFunction, uniq, uniqBy, groupBy, property, get, set, range, parseInt, padStart, isNaN, values, throttle, pick, pickBy, differenceBy, differenceWith, isEqualWith, curry, isObject, isBoolean } from 'lodash';
7
- /**
8
- * Concatenates classNames from arguments
9
- *
10
- * @param {...any} classnames
11
- */
12
- export declare const cx: (...classnames: any[]) => any;
13
- declare const toggleInObject: (obj: any, key: any, value: any) => any;
14
- declare const toggleInArray: (array: any, value: any) => any[];
15
- declare const arrayMove: (array: any, from: any, to: any) => any;
16
- declare const addOrRemove: (array: any, item: any, accessor?: (item: any) => any) => any;
17
- export declare function runAll(...fns: any[]): (...args: any[]) => void;
18
- export declare function hashArray(arr: any, fieldName: any): any;
19
- export declare function safeCall(fun: any, ...args: any[]): void;
20
- export declare const removeUndefinedProperties: (obj: any) => any;
21
- declare const _default: {};
22
- export default _default;
23
- export { isObject, curry, arrayMove, uniq, filter, uniqBy, groupBy, property, get, set, cloneDeep, debounce, findIndex, isEmpty, isString, isEqual, maxBy, meanBy, noop, omit, orderBy, pull, sortBy, sumBy, transform, isFunction, range, parseInt, padStart, isNaN, values, throttle, toggleInObject, toggleInArray, pick, pickBy, differenceBy, differenceWith, addOrRemove, isEqualWith, isBoolean, };
@@ -1,23 +0,0 @@
1
- export declare const isRequired: ({ value, help }: {
2
- value: any;
3
- help?: string | undefined;
4
- }) => {
5
- payload: string;
6
- error: boolean;
7
- };
8
- export declare const isGreaterThan: ({ value, help, comparator }: {
9
- value: any;
10
- help: any;
11
- comparator?: number | undefined;
12
- }) => {
13
- payload: any;
14
- error: boolean;
15
- };
16
- export declare const isValidDate: ({ value, help, format }: {
17
- value: any;
18
- help: any;
19
- format?: string | undefined;
20
- }) => {
21
- payload: any;
22
- error: boolean;
23
- };