@fluentui/react-utilities 9.0.0-nightly.46b9ea7036.0 → 9.0.0-rc.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.
- package/CHANGELOG.json +163 -10
- package/CHANGELOG.md +44 -7
- package/dist/react-utilities.d.ts +232 -105
- package/lib/compose/getSlots.d.ts +11 -10
- package/lib/compose/getSlots.js +21 -30
- package/lib/compose/getSlots.js.map +1 -1
- package/lib/compose/index.d.ts +0 -1
- package/lib/compose/index.js +0 -1
- package/lib/compose/index.js.map +1 -1
- package/lib/compose/resolveShorthand.d.ts +10 -6
- package/lib/compose/resolveShorthand.js +13 -12
- package/lib/compose/resolveShorthand.js.map +1 -1
- package/lib/compose/types.d.ts +86 -35
- package/lib/compose/types.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -1
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useBoolean.js +10 -21
- package/lib/hooks/useBoolean.js.map +1 -1
- package/lib/hooks/useConst.js +1 -1
- package/lib/hooks/useConst.js.map +1 -1
- package/lib/hooks/useControllableState.d.ts +16 -6
- package/lib/hooks/useControllableState.js +26 -25
- package/lib/hooks/useControllableState.js.map +1 -1
- package/lib/hooks/useEventCallback.js +6 -12
- package/lib/hooks/useEventCallback.js.map +1 -1
- package/lib/hooks/useFirstMount.js +1 -1
- package/lib/hooks/useFirstMount.js.map +1 -1
- package/lib/hooks/useForceUpdate.js +1 -3
- package/lib/hooks/useForceUpdate.js.map +1 -1
- package/lib/hooks/useId.js +2 -4
- package/lib/hooks/useId.js.map +1 -1
- package/lib/hooks/useIsomorphicLayoutEffect.js +1 -1
- package/lib/hooks/useIsomorphicLayoutEffect.js.map +1 -1
- package/lib/hooks/useMergedEventCallbacks.d.ts +18 -0
- package/lib/hooks/useMergedEventCallbacks.js +26 -0
- package/lib/hooks/useMergedEventCallbacks.js.map +1 -0
- package/lib/hooks/useMergedRefs.js +5 -13
- package/lib/hooks/useMergedRefs.js.map +1 -1
- package/lib/hooks/useMount.js +3 -3
- package/lib/hooks/useMount.js.map +1 -1
- package/lib/hooks/useOnClickOutside.js +30 -36
- package/lib/hooks/useOnClickOutside.js.map +1 -1
- package/lib/hooks/useOnScrollOutside.js +13 -15
- package/lib/hooks/useOnScrollOutside.js.map +1 -1
- package/lib/hooks/usePrevious.js +3 -3
- package/lib/hooks/usePrevious.js.map +1 -1
- package/lib/hooks/useTimeout.js +13 -17
- package/lib/hooks/useTimeout.js.map +1 -1
- package/lib/hooks/useUnmount.js +5 -7
- package/lib/hooks/useUnmount.js.map +1 -1
- package/lib/ssr/SSRContext.js +9 -15
- package/lib/ssr/SSRContext.js.map +1 -1
- package/lib/utils/applyTriggerPropsToChildren.d.ts +1 -1
- package/lib/utils/applyTriggerPropsToChildren.js +24 -4
- package/lib/utils/applyTriggerPropsToChildren.js.map +1 -1
- package/lib/utils/clamp.js +1 -3
- package/lib/utils/clamp.js.map +1 -1
- package/lib/utils/getNativeElementProps.d.ts +22 -0
- package/lib/utils/getNativeElementProps.js +24 -2
- package/lib/utils/getNativeElementProps.js.map +1 -1
- package/lib/utils/getRTLSafeKey.js +1 -1
- package/lib/utils/getRTLSafeKey.js.map +1 -1
- package/lib/utils/getReactCallbackName.d.ts +25 -0
- package/lib/utils/getReactCallbackName.js +26 -0
- package/lib/utils/getReactCallbackName.js.map +1 -0
- package/lib/utils/getTriggerChild.d.ts +22 -0
- package/lib/utils/getTriggerChild.js +26 -0
- package/lib/utils/getTriggerChild.js.map +1 -0
- package/lib/utils/index.d.ts +2 -1
- package/lib/utils/index.js +2 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/isFluentTrigger.d.ts +22 -0
- package/lib/utils/isFluentTrigger.js +8 -0
- package/lib/utils/isFluentTrigger.js.map +1 -0
- package/lib/utils/omit.js +2 -2
- package/lib/utils/omit.js.map +1 -1
- package/lib/utils/properties.js +55 -44
- package/lib/utils/properties.js.map +1 -1
- package/lib/utils/shouldPreventDefaultOnKeyDown.js +4 -4
- package/lib/utils/shouldPreventDefaultOnKeyDown.js.map +1 -1
- package/lib-commonjs/compose/getSlots.d.ts +11 -10
- package/lib-commonjs/compose/getSlots.js +23 -34
- package/lib-commonjs/compose/getSlots.js.map +1 -1
- package/lib-commonjs/compose/index.d.ts +0 -1
- package/lib-commonjs/compose/index.js +1 -3
- package/lib-commonjs/compose/index.js.map +1 -1
- package/lib-commonjs/compose/resolveShorthand.d.ts +10 -6
- package/lib-commonjs/compose/resolveShorthand.js +14 -14
- package/lib-commonjs/compose/resolveShorthand.js.map +1 -1
- package/lib-commonjs/compose/types.d.ts +86 -35
- package/lib-commonjs/compose/types.js.map +1 -1
- package/lib-commonjs/hooks/index.d.ts +1 -1
- package/lib-commonjs/hooks/index.js +3 -3
- package/lib-commonjs/hooks/index.js.map +1 -1
- package/lib-commonjs/hooks/useBoolean.js +12 -23
- package/lib-commonjs/hooks/useBoolean.js.map +1 -1
- package/lib-commonjs/hooks/useConst.js +2 -2
- package/lib-commonjs/hooks/useConst.js.map +1 -1
- package/lib-commonjs/hooks/useControllableState.d.ts +16 -6
- package/lib-commonjs/hooks/useControllableState.js +28 -27
- package/lib-commonjs/hooks/useControllableState.js.map +1 -1
- package/lib-commonjs/hooks/useEventCallback.js +8 -14
- package/lib-commonjs/hooks/useEventCallback.js.map +1 -1
- package/lib-commonjs/hooks/useFirstMount.js +2 -2
- package/lib-commonjs/hooks/useFirstMount.js.map +1 -1
- package/lib-commonjs/hooks/useForceUpdate.js +2 -4
- package/lib-commonjs/hooks/useForceUpdate.js.map +1 -1
- package/lib-commonjs/hooks/useId.js +4 -6
- package/lib-commonjs/hooks/useId.js.map +1 -1
- package/lib-commonjs/hooks/useIsomorphicLayoutEffect.js +2 -2
- package/lib-commonjs/hooks/useIsomorphicLayoutEffect.js.map +1 -1
- package/lib-commonjs/hooks/useMergedEventCallbacks.d.ts +18 -0
- package/lib-commonjs/hooks/useMergedEventCallbacks.js +36 -0
- package/lib-commonjs/hooks/useMergedEventCallbacks.js.map +1 -0
- package/lib-commonjs/hooks/useMergedRefs.js +6 -15
- package/lib-commonjs/hooks/useMergedRefs.js.map +1 -1
- package/lib-commonjs/hooks/useMount.js +4 -4
- package/lib-commonjs/hooks/useMount.js.map +1 -1
- package/lib-commonjs/hooks/useOnClickOutside.js +32 -38
- package/lib-commonjs/hooks/useOnClickOutside.js.map +1 -1
- package/lib-commonjs/hooks/useOnScrollOutside.js +15 -17
- package/lib-commonjs/hooks/useOnScrollOutside.js.map +1 -1
- package/lib-commonjs/hooks/usePrevious.js +4 -4
- package/lib-commonjs/hooks/usePrevious.js.map +1 -1
- package/lib-commonjs/hooks/useTimeout.js +15 -19
- package/lib-commonjs/hooks/useTimeout.js.map +1 -1
- package/lib-commonjs/hooks/useUnmount.js +6 -8
- package/lib-commonjs/hooks/useUnmount.js.map +1 -1
- package/lib-commonjs/index.js +1 -1
- package/lib-commonjs/ssr/SSRContext.js +9 -15
- package/lib-commonjs/ssr/SSRContext.js.map +1 -1
- package/lib-commonjs/ssr/index.js +1 -1
- package/lib-commonjs/utils/applyTriggerPropsToChildren.d.ts +1 -1
- package/lib-commonjs/utils/applyTriggerPropsToChildren.js +26 -6
- package/lib-commonjs/utils/applyTriggerPropsToChildren.js.map +1 -1
- package/lib-commonjs/utils/clamp.js +1 -3
- package/lib-commonjs/utils/clamp.js.map +1 -1
- package/lib-commonjs/utils/getNativeElementProps.d.ts +22 -0
- package/lib-commonjs/utils/getNativeElementProps.js +28 -4
- package/lib-commonjs/utils/getNativeElementProps.js.map +1 -1
- package/lib-commonjs/utils/getRTLSafeKey.js +1 -1
- package/lib-commonjs/utils/getRTLSafeKey.js.map +1 -1
- package/lib-commonjs/utils/getReactCallbackName.d.ts +25 -0
- package/lib-commonjs/utils/getReactCallbackName.js +35 -0
- package/lib-commonjs/utils/getReactCallbackName.js.map +1 -0
- package/lib-commonjs/utils/getTriggerChild.d.ts +22 -0
- package/lib-commonjs/utils/getTriggerChild.js +37 -0
- package/lib-commonjs/utils/getTriggerChild.js.map +1 -0
- package/lib-commonjs/utils/index.d.ts +2 -1
- package/lib-commonjs/utils/index.js +5 -3
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/isFluentTrigger.d.ts +22 -0
- package/lib-commonjs/utils/isFluentTrigger.js +17 -0
- package/lib-commonjs/utils/isFluentTrigger.js.map +1 -0
- package/lib-commonjs/utils/omit.js +2 -2
- package/lib-commonjs/utils/omit.js.map +1 -1
- package/lib-commonjs/utils/properties.js +51 -40
- package/lib-commonjs/utils/properties.js.map +1 -1
- package/lib-commonjs/utils/shouldPreventDefaultOnKeyDown.js +5 -5
- package/lib-commonjs/utils/shouldPreventDefaultOnKeyDown.js.map +1 -1
- package/package.json +6 -11
- package/lib/compose/nullRender.d.ts +0 -4
- package/lib/compose/nullRender.js +0 -7
- package/lib/compose/nullRender.js.map +0 -1
- package/lib/hooks/useControllableValue.d.ts +0 -20
- package/lib/hooks/useControllableValue.js +0 -62
- package/lib/hooks/useControllableValue.js.map +0 -1
- package/lib/utils/onlyChild.d.ts +0 -5
- package/lib/utils/onlyChild.js +0 -13
- package/lib/utils/onlyChild.js.map +0 -1
- package/lib-commonjs/compose/nullRender.d.ts +0 -4
- package/lib-commonjs/compose/nullRender.js +0 -16
- package/lib-commonjs/compose/nullRender.js.map +0 -1
- package/lib-commonjs/hooks/useControllableValue.d.ts +0 -20
- package/lib-commonjs/hooks/useControllableValue.js +0 -73
- package/lib-commonjs/hooks/useControllableValue.js.map +0 -1
- package/lib-commonjs/utils/onlyChild.d.ts +0 -5
- package/lib-commonjs/utils/onlyChild.js +0 -23
- package/lib-commonjs/utils/onlyChild.js.map +0 -1
@@ -5,40 +5,41 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useControllableState = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
function isUndefined(state) {
|
13
|
-
return typeof state === 'undefined';
|
14
|
-
}
|
10
|
+
const useConst_1 = /*#__PURE__*/require("./useConst");
|
15
11
|
|
16
12
|
function isFactoryDispatch(newState) {
|
17
13
|
return typeof newState === 'function';
|
18
14
|
}
|
19
15
|
/**
|
20
|
-
* A useState
|
21
|
-
*
|
22
|
-
*
|
16
|
+
* A `useState`-like hook to manage a value that could be either controlled or uncontrolled,
|
17
|
+
* such as a checked state or text input string.
|
18
|
+
*
|
19
|
+
* Unlike `setState`, it's okay to call the returned updater (dispatch) function for either a
|
20
|
+
* controlled or uncontrolled component. Calls will only be respected if the component is uncontrolled.
|
21
|
+
*
|
22
|
+
* @returns Same as [`useState`](https://reactjs.org/docs/hooks-reference.html#usestate): an array
|
23
|
+
* of the current value and an updater (dispatch) function. The updater function is referentially
|
24
|
+
* stable (won't change during the component's lifecycle). It can take either a new value, or a
|
25
|
+
* function which is passed the previous value and returns the new value. Unlike `setState`, calls
|
26
|
+
* to the updater function will only be respected if the component is uncontrolled.
|
27
|
+
* @see https://reactjs.org/docs/uncontrolled-components.html
|
23
28
|
*/
|
24
29
|
|
25
30
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
var state = isControlled ? options.state : internalState;
|
35
|
-
var stateRef = React.useRef(state);
|
36
|
-
React.useEffect(function () {
|
31
|
+
const useControllableState = options => {
|
32
|
+
const isControlled = useIsControlled(options.state);
|
33
|
+
const initialState = typeof options.defaultState === 'undefined' ? options.initialState : options.defaultState;
|
34
|
+
const [internalState, setInternalState] = React.useState(initialState);
|
35
|
+
const state = isControlled ? options.state : internalState;
|
36
|
+
const stateRef = React.useRef(state);
|
37
|
+
React.useEffect(() => {
|
37
38
|
stateRef.current = state;
|
38
39
|
}, [state]); // To match the behavior of the setter returned by React.useState, this callback's identity
|
39
40
|
// should never change. This means it MUST NOT directly reference variables that can change.
|
40
41
|
|
41
|
-
|
42
|
+
const setState = React.useCallback(newState => {
|
42
43
|
// React dispatch can use a factory
|
43
44
|
// https://reactjs.org/docs/hooks-reference.html#functional-updates
|
44
45
|
if (isFactoryDispatch(newState)) {
|
@@ -59,17 +60,17 @@ exports.useControllableState = useControllableState;
|
|
59
60
|
* @returns - whether the value is controlled
|
60
61
|
*/
|
61
62
|
|
62
|
-
|
63
|
-
|
63
|
+
const useIsControlled = controlledValue => {
|
64
|
+
const isControlled = useConst_1.useConst(controlledValue !== undefined);
|
64
65
|
|
65
66
|
if (process.env.NODE_ENV !== 'production') {
|
66
67
|
// We don't want these warnings in production even though it is against native behaviour
|
67
68
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
68
|
-
React.useEffect(
|
69
|
+
React.useEffect(() => {
|
69
70
|
if (isControlled !== (controlledValue !== undefined)) {
|
70
|
-
|
71
|
-
|
72
|
-
|
71
|
+
const error = new Error();
|
72
|
+
const controlWarning = isControlled ? 'a controlled value to be uncontrolled' : 'an uncontrolled value to be controlled';
|
73
|
+
const undefinedWarning = isControlled ? 'defined to an undefined' : 'undefined to a defined'; // eslint-disable-next-line no-console
|
73
74
|
|
74
75
|
console.error([// Default react error
|
75
76
|
'A component is changing ' + controlWarning + '. This is likely caused by the value', 'changing from ' + undefinedWarning + ' value, which should not happen.', 'Decide between using a controlled or uncontrolled input element for the lifetime of the component.', 'More info: https://reactjs.org/link/controlled-components', error.stack].join(' '));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useControllableState.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useControllableState.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,UAAA,gBAAA,OAAA,CAAA,YAAA,CAAA;;AAkBA,SAAS,iBAAT,CAAkC,QAAlC,EAAuE;AACrE,SAAO,OAAO,QAAP,KAAoB,UAA3B;AACD;AAED;;;;;;;;;;;;;AAaG;;;AACI,MAAM,oBAAoB,GAC/B,OADkC,IAEsB;AACxD,QAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,KAAT,CAApC;AACA,QAAM,YAAY,GAAG,OAAO,OAAO,CAAC,YAAf,KAAgC,WAAhC,GAA8C,OAAO,CAAC,YAAtD,GAAqE,OAAO,CAAC,YAAlG;AACA,QAAM,CAAC,aAAD,EAAgB,gBAAhB,IAAoC,KAAK,CAAC,QAAN,CAAsB,YAAtB,CAA1C;AAEA,QAAM,KAAK,GAAG,YAAY,GAAI,OAAO,CAAC,KAAZ,GAA8B,aAAxD;AAEA,QAAM,QAAQ,GAAG,KAAK,CAAC,MAAN,CAAa,KAAb,CAAjB;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,IAAA,QAAQ,CAAC,OAAT,GAAmB,KAAnB;AACD,GAFD,EAEG,CAAC,KAAD,CAFH,EARwD,CAYxD;AACA;;AACA,QAAM,QAAQ,GAAG,KAAK,CAAC,WAAN,CAAmB,QAAD,IAA0C;AAC3E;AACA;AACA,QAAI,iBAAiB,CAAC,QAAD,CAArB,EAAiC;AAC/B,MAAA,QAAQ,CAAC,OAAT,GAAmB,QAAQ,CAAC,QAAQ,CAAC,OAAV,CAA3B;AACD,KAFD,MAEO;AACL,MAAA,QAAQ,CAAC,OAAT,GAAmB,QAAnB;AACD;;AAED,IAAA,gBAAgB,CAAC,QAAQ,CAAC,OAAV,CAAhB;AACD,GAVgB,EAUd,EAVc,CAAjB;AAYA,SAAO,CAAC,KAAD,EAAQ,QAAR,CAAP;AACD,CA7BM;;AAAM,OAAA,CAAA,oBAAA,GAAoB,oBAApB;AA+Bb;;;;AAIG;;AACH,MAAM,eAAe,GAAI,eAAD,IAA6B;AACnD,QAAM,YAAY,GAAG,UAAA,CAAA,QAAA,CAAkB,eAAe,KAAK,SAAtC,CAArB;;AAEA,MAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA;AACA,IAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,UAAI,YAAY,MAAM,eAAe,KAAK,SAA1B,CAAhB,EAAsD;AACpD,cAAM,KAAK,GAAG,IAAI,KAAJ,EAAd;AAEA,cAAM,cAAc,GAAG,YAAY,GAC/B,uCAD+B,GAE/B,wCAFJ;AAIA,cAAM,gBAAgB,GAAG,YAAY,GAAG,yBAAH,GAA+B,wBAApE,CAPoD,CASpD;;AACA,QAAA,OAAO,CAAC,KAAR,CACE,CACE;AACA,qCAA6B,cAA7B,GAA8C,sCAFhD,EAGE,mBAAmB,gBAAnB,GAAsC,kCAHxC,EAIE,oGAJF,EAKE,2DALF,EAME,KAAK,CAAC,KANR,EAOE,IAPF,CAOO,GAPP,CADF;AAUD;AACF,KAtBD,EAsBG,CAAC,YAAD,EAAe,eAAf,CAtBH;AAuBD;;AAED,SAAO,YAAP;AACD,CAhCD","sourceRoot":""}
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useEventCallback = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
|
10
|
-
|
10
|
+
const useIsomorphicLayoutEffect_1 = /*#__PURE__*/require("./useIsomorphicLayoutEffect");
|
11
11
|
/**
|
12
12
|
* https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
|
13
13
|
*
|
@@ -22,22 +22,16 @@ var useIsomorphicLayoutEffect_1 = /*#__PURE__*/require("./useIsomorphicLayoutEff
|
|
22
22
|
*/
|
23
23
|
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
const useEventCallback = fn => {
|
26
|
+
const callbackRef = React.useRef(() => {
|
27
27
|
throw new Error('Cannot call an event handler while rendering');
|
28
28
|
});
|
29
|
-
useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect(
|
29
|
+
useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect(() => {
|
30
30
|
callbackRef.current = fn;
|
31
31
|
}, [fn]);
|
32
|
-
return React.useCallback(
|
33
|
-
|
34
|
-
|
35
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
36
|
-
args[_i] = arguments[_i];
|
37
|
-
}
|
38
|
-
|
39
|
-
var callback = callbackRef.current;
|
40
|
-
return callback.apply(void 0, args);
|
32
|
+
return React.useCallback((...args) => {
|
33
|
+
const callback = callbackRef.current;
|
34
|
+
return callback(...args);
|
41
35
|
}, [callbackRef]);
|
42
36
|
};
|
43
37
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useEventCallback.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useEventCallback.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,2BAAA,gBAAA,OAAA,CAAA,6BAAA,CAAA;AAEA;;;;;;;;;;;AAWG;;;AACI,MAAM,gBAAgB,GAAoC,EAAjC,IAAkE;AAChG,QAAM,WAAW,GAAG,KAAK,CAAC,MAAN,CAAwB,MAAK;AAC/C,UAAM,IAAI,KAAJ,CAAU,8CAAV,CAAN;AACD,GAFmB,CAApB;AAIA,EAAA,2BAAA,CAAA,yBAAA,CAA0B,MAAK;AAC7B,IAAA,WAAW,CAAC,OAAZ,GAAsB,EAAtB;AACD,GAFD,EAEG,CAAC,EAAD,CAFH;AAIA,SAAO,KAAK,CAAC,WAAN,CACL,CAAC,GAAG,IAAJ,KAAkB;AAChB,UAAM,QAAQ,GAAG,WAAW,CAAC,OAA7B;AACA,WAAO,QAAQ,CAAC,GAAG,IAAJ,CAAf;AACD,GAJI,EAKL,CAAC,WAAD,CALK,CAAP;AAOD,CAhBM;;AAAM,OAAA,CAAA,gBAAA,GAAgB,gBAAhB","sourceRoot":""}
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useFirstMount = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
/**
|
10
10
|
* Checks if components was mounted the first time.
|
11
11
|
* Since concurrent mode will be released in the future this needs to be verified
|
@@ -19,7 +19,7 @@ var React = /*#__PURE__*/require("react");
|
|
19
19
|
|
20
20
|
|
21
21
|
function useFirstMount() {
|
22
|
-
|
22
|
+
const isFirst = React.useRef(true);
|
23
23
|
|
24
24
|
if (isFirst.current) {
|
25
25
|
isFirst.current = false;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useFirstMount.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useFirstMount.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;AAEA;;;;;;;;;AASG;;;AACH,SAAgB,aAAhB,GAA6B;AAC3B,QAAM,OAAO,GAAG,KAAK,CAAC,MAAN,CAAa,IAAb,CAAhB;;AAEA,MAAI,OAAO,CAAC,OAAZ,EAAqB;AACnB,IAAA,OAAO,CAAC,OAAR,GAAkB,KAAlB;AACA,WAAO,IAAP;AACD;;AAED,SAAO,OAAO,CAAC,OAAf;AACD;;AATD,OAAA,CAAA,aAAA,GAAA,aAAA","sourceRoot":""}
|
@@ -5,16 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useForceUpdate = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const react_1 = /*#__PURE__*/require("react");
|
9
9
|
/**
|
10
10
|
* Forces a re-render, similar to `forceUpdate` in class components.
|
11
11
|
*/
|
12
12
|
|
13
13
|
|
14
14
|
function useForceUpdate() {
|
15
|
-
return react_1.useReducer(
|
16
|
-
return x + 1;
|
17
|
-
}, 0)[1];
|
15
|
+
return react_1.useReducer(x => x + 1, 0)[1];
|
18
16
|
}
|
19
17
|
|
20
18
|
exports.useForceUpdate = useForceUpdate;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useForceUpdate.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useForceUpdate.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,OAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;AAEA;;AAEG;;;AACH,SAAgB,cAAhB,GAA8B;AAC5B,SAAO,OAAA,CAAA,UAAA,CAAW,CAAC,IAAI,CAAC,GAAG,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAP;AACD;;AAFD,OAAA,CAAA,cAAA,GAAA,cAAA","sourceRoot":""}
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useId = exports.resetIdsForTests = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
|
10
|
-
|
10
|
+
const index_1 = /*#__PURE__*/require("../ssr/index");
|
11
11
|
/**
|
12
12
|
* Resets generated IDs, should be used only in tests.
|
13
13
|
*
|
@@ -30,10 +30,8 @@ exports.resetIdsForTests = resetIdsForTests;
|
|
30
30
|
*/
|
31
31
|
|
32
32
|
function useId(prefix, providedId) {
|
33
|
-
|
34
|
-
return React.useMemo(
|
35
|
-
return providedId || "" + prefix + ++contextValue.current;
|
36
|
-
}, [prefix, providedId, contextValue]);
|
33
|
+
const contextValue = index_1.useSSRContext();
|
34
|
+
return React.useMemo(() => providedId || `${prefix}${++contextValue.current}`, [prefix, providedId, contextValue]);
|
37
35
|
}
|
38
36
|
|
39
37
|
exports.useId = useId;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useId.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useId.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,cAAA,CAAA;AAEA;;;;AAIG;;;AACH,SAAgB,gBAAhB,GAAgC;AAC9B,EAAA,OAAA,CAAA,sBAAA,CAAuB,OAAvB,GAAiC,CAAjC;AACD;;AAFD,OAAA,CAAA,gBAAA,GAAA,gBAAA;AAIA;;;;;;;AAOG;;AACH,SAAgB,KAAhB,CAAsB,MAAtB,EAAuC,UAAvC,EAA0D;AACxD,QAAM,YAAY,GAAG,OAAA,CAAA,aAAA,EAArB;AAEA,SAAO,KAAK,CAAC,OAAN,CAAc,MAAM,UAAU,IAAI,GAAG,MAAM,GAAG,EAAE,YAAY,CAAC,OAAO,EAApE,EAAwE,CAAC,MAAD,EAAS,UAAT,EAAqB,YAArB,CAAxE,CAAP;AACD;;AAJD,OAAA,CAAA,KAAA,GAAA,KAAA","sourceRoot":""}
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useIsomorphicLayoutEffect = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
|
10
|
-
|
10
|
+
const index_1 = /*#__PURE__*/require("../ssr/index");
|
11
11
|
/**
|
12
12
|
* React currently throws a warning when using useLayoutEffect on the server. To get around it, we can conditionally
|
13
13
|
* useEffect on the server (no-op) and useLayoutEffect in the browser. We occasionally need useLayoutEffect to
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useIsomorphicLayoutEffect.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useIsomorphicLayoutEffect.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,cAAA,CAAA;AAEA;;;;;;;;AAQG;AACH;;;AACa,OAAA,CAAA,yBAAA,GAAoD,aAAA,OAAA,CAAA,SAAA,KAAc,KAAK,CAAC,eAApB,GAAsC,KAAK,CAAC,SAAhG","sourceRoot":""}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* Combine two event callbacks into a single callback function that calls each one in order.
|
3
|
+
*
|
4
|
+
* This is useful to add an event listener to an existing element without overwriting the current listener, if any.
|
5
|
+
*
|
6
|
+
* For example:
|
7
|
+
* ```ts
|
8
|
+
* state.slot.onChange = useMergedCallbacks(state.slot.onChange, ev => {
|
9
|
+
* // Handle onChange
|
10
|
+
* });
|
11
|
+
* ```
|
12
|
+
*
|
13
|
+
* @param callback1 - The first callback to be called
|
14
|
+
* @param callback2 - The second callback to be called
|
15
|
+
*
|
16
|
+
* @returns An event callback that calls the callbacks in order, and is stable between renders
|
17
|
+
*/
|
18
|
+
export declare function useMergedEventCallbacks<Args extends unknown[]>(callback1: ((...args: Args) => void) | undefined, callback2: ((...args: Args) => void) | undefined): (...args: Args) => void;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.useMergedEventCallbacks = void 0;
|
7
|
+
|
8
|
+
const useEventCallback_1 = /*#__PURE__*/require("./useEventCallback");
|
9
|
+
/**
|
10
|
+
* Combine two event callbacks into a single callback function that calls each one in order.
|
11
|
+
*
|
12
|
+
* This is useful to add an event listener to an existing element without overwriting the current listener, if any.
|
13
|
+
*
|
14
|
+
* For example:
|
15
|
+
* ```ts
|
16
|
+
* state.slot.onChange = useMergedCallbacks(state.slot.onChange, ev => {
|
17
|
+
* // Handle onChange
|
18
|
+
* });
|
19
|
+
* ```
|
20
|
+
*
|
21
|
+
* @param callback1 - The first callback to be called
|
22
|
+
* @param callback2 - The second callback to be called
|
23
|
+
*
|
24
|
+
* @returns An event callback that calls the callbacks in order, and is stable between renders
|
25
|
+
*/
|
26
|
+
|
27
|
+
|
28
|
+
function useMergedEventCallbacks(callback1, callback2) {
|
29
|
+
return useEventCallback_1.useEventCallback((...args) => {
|
30
|
+
callback1 === null || callback1 === void 0 ? void 0 : callback1(...args);
|
31
|
+
callback2 === null || callback2 === void 0 ? void 0 : callback2(...args);
|
32
|
+
});
|
33
|
+
}
|
34
|
+
|
35
|
+
exports.useMergedEventCallbacks = useMergedEventCallbacks;
|
36
|
+
//# sourceMappingURL=useMergedEventCallbacks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useMergedEventCallbacks.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,kBAAA,gBAAA,OAAA,CAAA,oBAAA,CAAA;AAEA;;;;;;;;;;;;;;;;AAgBG;;;AACH,SAAgB,uBAAhB,CACE,SADF,EAEE,SAFF,EAEkD;AAEhD,SAAO,kBAAA,CAAA,gBAAA,CAAiB,CAAC,GAAG,IAAJ,KAAkB;AACxC,IAAA,SAAS,KAAA,IAAT,IAAA,SAAS,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAA,SAAS,CAAG,GAAG,IAAN,CAAT;AACA,IAAA,SAAS,KAAA,IAAT,IAAA,SAAS,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAA,SAAS,CAAG,GAAG,IAAN,CAAT;AACD,GAHM,CAAP;AAID;;AARD,OAAA,CAAA,uBAAA,GAAA,uBAAA","sourceRoot":""}
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useMergedRefs = void 0;
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
var React = /*#__PURE__*/require("react");
|
8
|
+
const React = /*#__PURE__*/require("react");
|
11
9
|
/**
|
12
10
|
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
13
11
|
* updates all provided refs
|
@@ -16,20 +14,12 @@ var React = /*#__PURE__*/require("react");
|
|
16
14
|
*/
|
17
15
|
|
18
16
|
|
19
|
-
function useMergedRefs() {
|
20
|
-
|
21
|
-
|
22
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
23
|
-
refs[_i] = arguments[_i];
|
24
|
-
}
|
25
|
-
|
26
|
-
var mergedCallback = React.useCallback(function (value) {
|
17
|
+
function useMergedRefs(...refs) {
|
18
|
+
const mergedCallback = React.useCallback(value => {
|
27
19
|
// Update the "current" prop hanging on the function.
|
28
20
|
mergedCallback.current = value;
|
29
21
|
|
30
|
-
for (
|
31
|
-
var ref = refs_1[_i];
|
32
|
-
|
22
|
+
for (const ref of refs) {
|
33
23
|
if (typeof ref === 'function') {
|
34
24
|
ref(value);
|
35
25
|
} else if (ref) {
|
@@ -37,7 +27,8 @@ function useMergedRefs() {
|
|
37
27
|
ref.current = value;
|
38
28
|
}
|
39
29
|
}
|
40
|
-
},
|
30
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps -- already exhaustive
|
31
|
+
[...refs]);
|
41
32
|
return mergedCallback;
|
42
33
|
}
|
43
34
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useMergedRefs.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"sources":["../../src/hooks/useMergedRefs.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;AAQA;;;;;AAKG;;;AACH,SAAgB,aAAhB,CAAiC,GAAG,IAApC,EAAsE;AACpE,QAAM,cAAc,GAA0B,KAAK,CAAC,WAAN,CAC3C,KAAD,IAAa;AACX;AACE,IAAA,cAAwD,CAAC,OAAzD,GAAmE,KAAnE;;AAEF,SAAK,MAAM,GAAX,IAAkB,IAAlB,EAAwB;AACtB,UAAI,OAAO,GAAP,KAAe,UAAnB,EAA+B;AAC7B,QAAA,GAAG,CAAC,KAAD,CAAH;AACD,OAFD,MAEO,IAAI,GAAJ,EAAS;AACd;AACE,QAAA,GAA6C,CAAC,OAA9C,GAAwD,KAAxD;AACH;AACF;AACF,GAb2C,EAc5C;AACA,GAAC,GAAG,IAAJ,CAf4C,CAA9C;AAkBA,SAAO,cAAP;AACD;;AApBD,OAAA,CAAA,aAAA,GAAA,aAAA","sourceRoot":""}
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useMount = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
/**
|
10
10
|
* Hook which asynchronously executes a callback once the component has been mounted.
|
11
11
|
*
|
@@ -13,10 +13,10 @@ var React = /*#__PURE__*/require("react");
|
|
13
13
|
*/
|
14
14
|
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
const useMount = callback => {
|
17
|
+
const mountRef = React.useRef(callback);
|
18
18
|
mountRef.current = callback;
|
19
|
-
React.useEffect(
|
19
|
+
React.useEffect(() => {
|
20
20
|
var _a;
|
21
21
|
|
22
22
|
(_a = mountRef.current) === null || _a === void 0 ? void 0 : _a.call(mountRef);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useMount.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useMount.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;AAEA;;;;AAIG;;;AACI,MAAM,QAAQ,GAAI,QAAD,IAAyB;AAC/C,QAAM,QAAQ,GAAG,KAAK,CAAC,MAAN,CAAa,QAAb,CAAjB;AACA,EAAA,QAAQ,CAAC,OAAT,GAAmB,QAAnB;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;;;AACnB,KAAA,EAAA,GAAA,QAAQ,CAAC,OAAT,MAAgB,IAAhB,IAAgB,EAAA,KAAA,KAAA,CAAhB,GAAgB,KAAA,CAAhB,GAAgB,EAAA,CAAA,IAAA,CAAhB,QAAgB,CAAhB;AACD,GAFD,EAEG,EAFH;AAGD,CANM;;AAAM,OAAA,CAAA,QAAA,GAAQ,QAAR","sourceRoot":""}
|
@@ -5,42 +5,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useOnClickOutside = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
|
10
|
-
|
10
|
+
const useEventCallback_1 = /*#__PURE__*/require("./useEventCallback");
|
11
11
|
/**
|
12
12
|
* Utility to perform checks where a click/touch event was made outside a component
|
13
13
|
*/
|
14
14
|
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
const useOnClickOutside = options => {
|
17
|
+
const {
|
18
|
+
refs,
|
19
|
+
callback,
|
20
|
+
element,
|
21
|
+
disabled,
|
22
|
+
contains: containsProp
|
23
|
+
} = options;
|
24
|
+
const timeoutId = React.useRef(undefined);
|
23
25
|
useIFrameFocus(!disabled, element, callback);
|
24
|
-
|
25
|
-
|
26
|
-
return !!(parent === null || parent === void 0 ? void 0 : parent.contains(child));
|
27
|
-
};
|
26
|
+
const listener = useEventCallback_1.useEventCallback(ev => {
|
27
|
+
const contains = containsProp || ((parent, child) => !!(parent === null || parent === void 0 ? void 0 : parent.contains(child)));
|
28
28
|
|
29
|
-
|
30
|
-
return !contains(ref.current || null, ev.target);
|
31
|
-
});
|
29
|
+
const isOutside = refs.every(ref => !contains(ref.current || null, ev.target));
|
32
30
|
|
33
31
|
if (isOutside && !disabled) {
|
34
32
|
callback(ev);
|
35
33
|
}
|
36
34
|
});
|
37
|
-
React.useEffect(
|
35
|
+
React.useEffect(() => {
|
38
36
|
// Store the current event to avoid triggering handlers immediately
|
39
37
|
// Note this depends on a deprecated but extremely well supported quirk of the web platform
|
40
38
|
// https://github.com/facebook/react/issues/20074
|
41
|
-
|
39
|
+
let currentEvent = getWindowEvent(window);
|
42
40
|
|
43
|
-
|
41
|
+
const conditionalHandler = event => {
|
44
42
|
// Skip if this event is the same as the one running when we added the handlers
|
45
43
|
if (event === currentEvent) {
|
46
44
|
currentEvent = undefined;
|
@@ -58,10 +56,10 @@ var useOnClickOutside = function (options) {
|
|
58
56
|
} // Garbage collect this event after it's no longer useful to avoid memory leaks
|
59
57
|
|
60
58
|
|
61
|
-
timeoutId.current = window.setTimeout(
|
59
|
+
timeoutId.current = window.setTimeout(() => {
|
62
60
|
currentEvent = undefined;
|
63
61
|
}, 1);
|
64
|
-
return
|
62
|
+
return () => {
|
65
63
|
element === null || element === void 0 ? void 0 : element.removeEventListener('click', conditionalHandler, true);
|
66
64
|
element === null || element === void 0 ? void 0 : element.removeEventListener('touchstart', conditionalHandler, true);
|
67
65
|
element === null || element === void 0 ? void 0 : element.removeEventListener('contextmenu', conditionalHandler, true);
|
@@ -73,7 +71,7 @@ var useOnClickOutside = function (options) {
|
|
73
71
|
|
74
72
|
exports.useOnClickOutside = useOnClickOutside;
|
75
73
|
|
76
|
-
|
74
|
+
const getWindowEvent = target => {
|
77
75
|
var _a, _b, _c;
|
78
76
|
|
79
77
|
if (target) {
|
@@ -89,7 +87,7 @@ var getWindowEvent = function (target) {
|
|
89
87
|
return undefined;
|
90
88
|
};
|
91
89
|
|
92
|
-
|
90
|
+
const FUI_FRAME_EVENT = 'fuiframefocus';
|
93
91
|
/**
|
94
92
|
* Since click events do not propagate past iframes, we use focus to detect if a
|
95
93
|
* click has happened inside an iframe, since the only ways of focusing inside an
|
@@ -105,45 +103,41 @@ var FUI_FRAME_EVENT = 'fuiframefocus';
|
|
105
103
|
* @param pollDuration - in milliseconds
|
106
104
|
*/
|
107
105
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
}
|
112
|
-
|
113
|
-
var timeoutRef = React.useRef();
|
114
|
-
var listener = useEventCallback_1.useEventCallback(function (e) {
|
106
|
+
const useIFrameFocus = (enableFrameFocusDispatch, targetDocument, callback, pollDuration = 1000) => {
|
107
|
+
const timeoutRef = React.useRef();
|
108
|
+
const listener = useEventCallback_1.useEventCallback(e => {
|
115
109
|
if (callback) {
|
116
110
|
callback(e);
|
117
111
|
}
|
118
112
|
}); // Adds listener to the custom iframe focus event
|
119
113
|
|
120
|
-
React.useEffect(
|
114
|
+
React.useEffect(() => {
|
121
115
|
if (enableFrameFocusDispatch) {
|
122
116
|
targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener(FUI_FRAME_EVENT, listener, true);
|
123
117
|
}
|
124
118
|
|
125
|
-
return
|
119
|
+
return () => {
|
126
120
|
targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener(FUI_FRAME_EVENT, listener, true);
|
127
121
|
};
|
128
122
|
}, [targetDocument, enableFrameFocusDispatch, listener]); // Starts polling for the active element
|
129
123
|
|
130
|
-
React.useEffect(
|
124
|
+
React.useEffect(() => {
|
131
125
|
var _a;
|
132
126
|
|
133
127
|
if (enableFrameFocusDispatch) {
|
134
|
-
timeoutRef.current = (_a = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) === null || _a === void 0 ? void 0 : _a.setInterval(
|
135
|
-
|
128
|
+
timeoutRef.current = (_a = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) === null || _a === void 0 ? void 0 : _a.setInterval(() => {
|
129
|
+
const activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;
|
136
130
|
|
137
131
|
if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.tagName) === 'IFRAME') {
|
138
|
-
|
132
|
+
const event = new CustomEvent(FUI_FRAME_EVENT, {
|
139
133
|
bubbles: true
|
140
134
|
});
|
141
|
-
activeElement.dispatchEvent(
|
135
|
+
activeElement.dispatchEvent(event);
|
142
136
|
}
|
143
137
|
}, pollDuration);
|
144
138
|
}
|
145
139
|
|
146
|
-
return
|
140
|
+
return () => {
|
147
141
|
var _a;
|
148
142
|
|
149
143
|
(_a = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) === null || _a === void 0 ? void 0 : _a.clearTimeout(timeoutRef.current);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useOnClickOutside.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/hooks/useOnClickOutside.ts"],"names":[],"mappings":"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","sourceRoot":""}
|
@@ -5,40 +5,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useOnScrollOutside = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const React = /*#__PURE__*/require("react");
|
9
9
|
|
10
|
-
|
10
|
+
const useEventCallback_1 = /*#__PURE__*/require("./useEventCallback");
|
11
11
|
/**
|
12
12
|
* Utility to perform checks where a click/touch event was made outside a component
|
13
13
|
*/
|
14
14
|
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
const useOnScrollOutside = options => {
|
17
|
+
const {
|
18
|
+
refs,
|
19
|
+
callback,
|
20
|
+
element,
|
21
|
+
disabled,
|
22
|
+
contains: containsProp
|
23
|
+
} = options;
|
24
|
+
const listener = useEventCallback_1.useEventCallback(ev => {
|
25
|
+
const contains = containsProp || ((parent, child) => !!(parent === null || parent === void 0 ? void 0 : parent.contains(child)));
|
26
26
|
|
27
|
-
|
28
|
-
return !contains(ref.current || null, ev.target);
|
29
|
-
});
|
27
|
+
const isOutside = refs.every(ref => !contains(ref.current || null, ev.target));
|
30
28
|
|
31
29
|
if (isOutside && !disabled) {
|
32
30
|
callback(ev);
|
33
31
|
}
|
34
32
|
});
|
35
|
-
React.useEffect(
|
33
|
+
React.useEffect(() => {
|
36
34
|
if (!disabled) {
|
37
35
|
element === null || element === void 0 ? void 0 : element.addEventListener('wheel', listener);
|
38
36
|
element === null || element === void 0 ? void 0 : element.addEventListener('touchmove', listener);
|
39
37
|
}
|
40
38
|
|
41
|
-
return
|
39
|
+
return () => {
|
42
40
|
element === null || element === void 0 ? void 0 : element.removeEventListener('wheel', listener);
|
43
41
|
element === null || element === void 0 ? void 0 : element.removeEventListener('touchmove', listener);
|
44
42
|
};
|