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