@lobehub/ui 3.3.4 → 3.4.0
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/es/Avatar/Avatar.js +2 -1
- package/es/Tooltip/Tooltip.js +78 -59
- package/es/Tooltip/TooltipFloating.js +7 -24
- package/es/Tooltip/TooltipGroup.d.ts +2 -1
- package/es/Tooltip/TooltipGroup.js +20 -13
- package/es/Tooltip/groupContext.d.ts +3 -1
- package/es/Tooltip/groupContext.js +2 -1
- package/package.json +1 -1
package/es/Avatar/Avatar.js
CHANGED
|
@@ -44,7 +44,8 @@ var Avatar = /*#__PURE__*/memo(function (_ref) {
|
|
|
44
44
|
loading = _ref.loading,
|
|
45
45
|
_ref$sliceText = _ref.sliceText,
|
|
46
46
|
sliceText = _ref$sliceText === void 0 ? true : _ref$sliceText,
|
|
47
|
-
|
|
47
|
+
_ref$emojiScaleWithBa = _ref.emojiScaleWithBackground,
|
|
48
|
+
emojiScaleWithBackground = _ref$emojiScaleWithBa === void 0 ? true : _ref$emojiScaleWithBa,
|
|
48
49
|
ref = _ref.ref,
|
|
49
50
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
50
51
|
var isStringAvatar = typeof avatar === 'string';
|
package/es/Tooltip/Tooltip.js
CHANGED
|
@@ -19,7 +19,7 @@ import { antdPlacementToFloating } from "./antdPlacementToFloating";
|
|
|
19
19
|
import { composeEventHandlers } from "../utils/composeEventHandlers";
|
|
20
20
|
import TooltipFloating from "./TooltipFloating";
|
|
21
21
|
import TooltipPortal from "./TooltipPortal";
|
|
22
|
-
import {
|
|
22
|
+
import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext";
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
24
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
25
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -27,50 +27,71 @@ var TooltipInGroup = function TooltipInGroup(_ref) {
|
|
|
27
27
|
var ref = _ref.ref,
|
|
28
28
|
hotkey = _ref.hotkey,
|
|
29
29
|
className = _ref.className,
|
|
30
|
-
|
|
31
|
-
arrow = _ref$arrow === void 0 ? false : _ref$arrow,
|
|
30
|
+
arrow = _ref.arrow,
|
|
32
31
|
title = _ref.title,
|
|
33
32
|
hotkeyProps = _ref.hotkeyProps,
|
|
34
33
|
children = _ref.children,
|
|
35
|
-
|
|
36
|
-
placement = _ref$placement === void 0 ? 'top' : _ref$placement,
|
|
34
|
+
placement = _ref.placement,
|
|
37
35
|
openDelay = _ref.openDelay,
|
|
38
36
|
closeDelay = _ref.closeDelay,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_ref$mouseLeaveDelay = _ref.mouseLeaveDelay,
|
|
42
|
-
mouseLeaveDelay = _ref$mouseLeaveDelay === void 0 ? 0 : _ref$mouseLeaveDelay,
|
|
37
|
+
mouseEnterDelay = _ref.mouseEnterDelay,
|
|
38
|
+
mouseLeaveDelay = _ref.mouseLeaveDelay,
|
|
43
39
|
onOpenChange = _ref.onOpenChange,
|
|
44
40
|
disabled = _ref.disabled,
|
|
45
41
|
classNames = _ref.classNames,
|
|
46
42
|
styleProps = _ref.styles,
|
|
47
43
|
zIndex = _ref.zIndex,
|
|
48
|
-
|
|
49
|
-
portalled = _ref$portalled === void 0 ? true : _ref$portalled,
|
|
44
|
+
portalled = _ref.portalled,
|
|
50
45
|
getPopupContainer = _ref.getPopupContainer;
|
|
51
|
-
var group = useContext(
|
|
46
|
+
var group = useContext(TooltipGroupApiContext);
|
|
47
|
+
var sharedProps = useContext(TooltipGroupPropsContext);
|
|
52
48
|
var triggerElRef = useRef(null);
|
|
49
|
+
var mergedClassName = useMemo(function () {
|
|
50
|
+
if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.className) && !className) return undefined;
|
|
51
|
+
return [sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.className, className].filter(Boolean).join(' ');
|
|
52
|
+
}, [className, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.className]);
|
|
53
|
+
var mergedClassNames = useMemo(function () {
|
|
54
|
+
if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.classNames) && !classNames) return undefined;
|
|
55
|
+
return _objectSpread(_objectSpread({}, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.classNames), classNames);
|
|
56
|
+
}, [classNames, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.classNames]);
|
|
57
|
+
var mergedStyles = useMemo(function () {
|
|
58
|
+
if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.styles) && !styleProps) return undefined;
|
|
59
|
+
return _objectSpread(_objectSpread({}, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.styles), styleProps);
|
|
60
|
+
}, [sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.styles, styleProps]);
|
|
61
|
+
var mergedHotkeyProps = useMemo(function () {
|
|
62
|
+
if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.hotkeyProps) && !hotkeyProps) return undefined;
|
|
63
|
+
return _objectSpread(_objectSpread({}, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkeyProps), hotkeyProps);
|
|
64
|
+
}, [hotkeyProps, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkeyProps]);
|
|
65
|
+
var mergedOnOpenChange = useMemo(function () {
|
|
66
|
+
if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.onOpenChange) && !onOpenChange) return undefined;
|
|
67
|
+
return function (open) {
|
|
68
|
+
var _sharedProps$onOpenCh;
|
|
69
|
+
sharedProps === null || sharedProps === void 0 || (_sharedProps$onOpenCh = sharedProps.onOpenChange) === null || _sharedProps$onOpenCh === void 0 || _sharedProps$onOpenCh.call(sharedProps, open);
|
|
70
|
+
onOpenChange === null || onOpenChange === void 0 || onOpenChange(open);
|
|
71
|
+
};
|
|
72
|
+
}, [onOpenChange, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.onOpenChange]);
|
|
53
73
|
var item = useMemo(function () {
|
|
74
|
+
var _ref2, _ref3;
|
|
54
75
|
return {
|
|
55
|
-
arrow: arrow,
|
|
56
|
-
className:
|
|
57
|
-
classNames:
|
|
58
|
-
closeDelay: closeDelay,
|
|
59
|
-
disabled: disabled,
|
|
60
|
-
getPopupContainer: getPopupContainer,
|
|
61
|
-
hotkey: hotkey,
|
|
62
|
-
hotkeyProps:
|
|
63
|
-
mouseEnterDelay: mouseEnterDelay,
|
|
64
|
-
mouseLeaveDelay: mouseLeaveDelay,
|
|
65
|
-
onOpenChange:
|
|
66
|
-
openDelay: openDelay,
|
|
67
|
-
placement: placement,
|
|
68
|
-
portalled: portalled,
|
|
69
|
-
styles:
|
|
76
|
+
arrow: (_ref2 = arrow !== null && arrow !== void 0 ? arrow : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.arrow) !== null && _ref2 !== void 0 ? _ref2 : false,
|
|
77
|
+
className: mergedClassName,
|
|
78
|
+
classNames: mergedClassNames,
|
|
79
|
+
closeDelay: closeDelay !== null && closeDelay !== void 0 ? closeDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.closeDelay,
|
|
80
|
+
disabled: disabled !== null && disabled !== void 0 ? disabled : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.disabled,
|
|
81
|
+
getPopupContainer: getPopupContainer !== null && getPopupContainer !== void 0 ? getPopupContainer : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.getPopupContainer,
|
|
82
|
+
hotkey: hotkey !== null && hotkey !== void 0 ? hotkey : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkey,
|
|
83
|
+
hotkeyProps: mergedHotkeyProps,
|
|
84
|
+
mouseEnterDelay: mouseEnterDelay !== null && mouseEnterDelay !== void 0 ? mouseEnterDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseEnterDelay,
|
|
85
|
+
mouseLeaveDelay: mouseLeaveDelay !== null && mouseLeaveDelay !== void 0 ? mouseLeaveDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseLeaveDelay,
|
|
86
|
+
onOpenChange: mergedOnOpenChange,
|
|
87
|
+
openDelay: openDelay !== null && openDelay !== void 0 ? openDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.openDelay,
|
|
88
|
+
placement: (_ref3 = placement !== null && placement !== void 0 ? placement : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.placement) !== null && _ref3 !== void 0 ? _ref3 : 'top',
|
|
89
|
+
portalled: portalled !== null && portalled !== void 0 ? portalled : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.portalled,
|
|
90
|
+
styles: mergedStyles,
|
|
70
91
|
title: title,
|
|
71
|
-
zIndex: zIndex
|
|
92
|
+
zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.zIndex
|
|
72
93
|
};
|
|
73
|
-
}, [arrow,
|
|
94
|
+
}, [arrow, closeDelay, disabled, getPopupContainer, hotkey, mergedClassName, mergedClassNames, mergedHotkeyProps, mergedOnOpenChange, mergedStyles, mouseEnterDelay, mouseLeaveDelay, openDelay, placement, portalled, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.arrow, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.closeDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.disabled, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.getPopupContainer, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkey, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseEnterDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseLeaveDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.openDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.placement, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.portalled, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.zIndex, title, zIndex]);
|
|
74
95
|
var trigger = useMemo(function () {
|
|
75
96
|
var _children$props;
|
|
76
97
|
if (! /*#__PURE__*/isValidElement(children)) return /*#__PURE__*/_jsx("span", {
|
|
@@ -121,33 +142,31 @@ var TooltipInGroup = function TooltipInGroup(_ref) {
|
|
|
121
142
|
return referenceNode;
|
|
122
143
|
};
|
|
123
144
|
TooltipInGroup.displayName = 'TooltipInGroup';
|
|
124
|
-
var TooltipStandalone = function TooltipStandalone(
|
|
125
|
-
var ref =
|
|
126
|
-
hotkey =
|
|
127
|
-
className =
|
|
128
|
-
|
|
129
|
-
arrow =
|
|
130
|
-
title =
|
|
131
|
-
hotkeyProps =
|
|
132
|
-
children =
|
|
133
|
-
|
|
134
|
-
placement =
|
|
135
|
-
openDelay =
|
|
136
|
-
closeDelay =
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
portalled = _ref2$portalled === void 0 ? true : _ref2$portalled,
|
|
150
|
-
getPopupContainer = _ref2.getPopupContainer;
|
|
145
|
+
var TooltipStandalone = function TooltipStandalone(_ref4) {
|
|
146
|
+
var ref = _ref4.ref,
|
|
147
|
+
hotkey = _ref4.hotkey,
|
|
148
|
+
className = _ref4.className,
|
|
149
|
+
_ref4$arrow = _ref4.arrow,
|
|
150
|
+
arrow = _ref4$arrow === void 0 ? false : _ref4$arrow,
|
|
151
|
+
title = _ref4.title,
|
|
152
|
+
hotkeyProps = _ref4.hotkeyProps,
|
|
153
|
+
children = _ref4.children,
|
|
154
|
+
_ref4$placement = _ref4.placement,
|
|
155
|
+
placement = _ref4$placement === void 0 ? 'top' : _ref4$placement,
|
|
156
|
+
openDelay = _ref4.openDelay,
|
|
157
|
+
closeDelay = _ref4.closeDelay,
|
|
158
|
+
mouseEnterDelay = _ref4.mouseEnterDelay,
|
|
159
|
+
mouseLeaveDelay = _ref4.mouseLeaveDelay,
|
|
160
|
+
open = _ref4.open,
|
|
161
|
+
defaultOpen = _ref4.defaultOpen,
|
|
162
|
+
onOpenChange = _ref4.onOpenChange,
|
|
163
|
+
disabled = _ref4.disabled,
|
|
164
|
+
classNames = _ref4.classNames,
|
|
165
|
+
styleProps = _ref4.styles,
|
|
166
|
+
zIndex = _ref4.zIndex,
|
|
167
|
+
_ref4$portalled = _ref4.portalled,
|
|
168
|
+
portalled = _ref4$portalled === void 0 ? true : _ref4$portalled,
|
|
169
|
+
getPopupContainer = _ref4.getPopupContainer;
|
|
151
170
|
var arrowRef = useRef(null);
|
|
152
171
|
var _useState = useState(Boolean(defaultOpen)),
|
|
153
172
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -182,8 +201,8 @@ var TooltipStandalone = function TooltipStandalone(_ref2) {
|
|
|
182
201
|
refs = _useFloating.refs;
|
|
183
202
|
var resolvedDelay = useMemo(function () {
|
|
184
203
|
return {
|
|
185
|
-
close: closeDelay !== null && closeDelay !== void 0 ? closeDelay : mouseLeaveDelay * 1000,
|
|
186
|
-
open: openDelay !== null && openDelay !== void 0 ? openDelay : mouseEnterDelay * 1000
|
|
204
|
+
close: closeDelay !== null && closeDelay !== void 0 ? closeDelay : mouseLeaveDelay !== undefined ? mouseLeaveDelay * 1000 : 100,
|
|
205
|
+
open: openDelay !== null && openDelay !== void 0 ? openDelay : mouseEnterDelay !== undefined ? mouseEnterDelay * 1000 : 100
|
|
187
206
|
};
|
|
188
207
|
}, [closeDelay, mouseEnterDelay, mouseLeaveDelay, openDelay]);
|
|
189
208
|
var hover = useHover(context, {
|
|
@@ -250,7 +269,7 @@ var TooltipStandalone = function TooltipStandalone(_ref2) {
|
|
|
250
269
|
});
|
|
251
270
|
};
|
|
252
271
|
export var Tooltip = function Tooltip(props) {
|
|
253
|
-
var group = useContext(
|
|
272
|
+
var group = useContext(TooltipGroupApiContext);
|
|
254
273
|
|
|
255
274
|
// Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.
|
|
256
275
|
var canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;
|
|
@@ -6,14 +6,9 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
6
6
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
7
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
8
8
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
14
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
15
9
|
import { FloatingArrow } from '@floating-ui/react';
|
|
16
|
-
import
|
|
10
|
+
import { useDebounce } from 'ahooks';
|
|
11
|
+
import React, { useMemo } from 'react';
|
|
17
12
|
import { Flexbox } from "../Flex";
|
|
18
13
|
import Hotkey from "../Hotkey";
|
|
19
14
|
import { AnimatePresence, LazyMotion, m } from "../motion";
|
|
@@ -64,26 +59,14 @@ var TooltipFloating = function TooltipFloating(_ref) {
|
|
|
64
59
|
}
|
|
65
60
|
}
|
|
66
61
|
}, [placement]);
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
useLayoutEffect(function () {
|
|
72
|
-
if (!open) {
|
|
73
|
-
setOpenNextTick(false);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
var rafId = requestAnimationFrame(function () {
|
|
77
|
-
setOpenNextTick(true);
|
|
78
|
-
});
|
|
79
|
-
return function () {
|
|
80
|
-
cancelAnimationFrame(rafId);
|
|
81
|
-
};
|
|
82
|
-
}, [open]);
|
|
62
|
+
var hasTransform = useDebounce(Boolean(floatingStyles === null || floatingStyles === void 0 ? void 0 : floatingStyles.transform), {
|
|
63
|
+
leading: false,
|
|
64
|
+
wait: 16
|
|
65
|
+
});
|
|
83
66
|
return /*#__PURE__*/_jsx(LazyMotion, {
|
|
84
67
|
children: /*#__PURE__*/_jsx(AnimatePresence, {
|
|
85
68
|
children: open && title && /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({
|
|
86
|
-
className: cx(styles.tooltip,
|
|
69
|
+
className: cx(styles.tooltip, hasTransform && styles.tooltipLayout, classNames === null || classNames === void 0 ? void 0 : classNames.container, classNames === null || classNames === void 0 ? void 0 : classNames.root, className),
|
|
87
70
|
ref: setFloating,
|
|
88
71
|
role: "tooltip",
|
|
89
72
|
style: styleProps !== null && styleProps !== void 0 && styleProps.root ? _objectSpread(_objectSpread(_objectSpread({}, floatingStyles), {}, {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type FC, type ReactNode } from 'react';
|
|
2
|
-
type
|
|
2
|
+
import { type TooltipGroupSharedProps } from './groupContext';
|
|
3
|
+
type TooltipGroupProps = TooltipGroupSharedProps & {
|
|
3
4
|
children: ReactNode;
|
|
4
5
|
};
|
|
5
6
|
declare const TooltipGroup: FC<TooltipGroupProps>;
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
var _excluded = ["children"];
|
|
3
4
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
5
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
6
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
7
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
8
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
8
9
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
10
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
11
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
9
12
|
import { arrow as arrowMiddleware, autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';
|
|
10
13
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
11
14
|
import { antdPlacementToFloating } from "./antdPlacementToFloating";
|
|
12
15
|
import TooltipFloating from "./TooltipFloating";
|
|
13
16
|
import TooltipPortal from "./TooltipPortal";
|
|
14
|
-
import {
|
|
17
|
+
import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext";
|
|
15
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
20
|
var TooltipGroup = function TooltipGroup(_ref) {
|
|
18
21
|
var _active$item$portalle;
|
|
19
|
-
var children = _ref.children
|
|
22
|
+
var children = _ref.children,
|
|
23
|
+
sharedProps = _objectWithoutProperties(_ref, _excluded);
|
|
20
24
|
var arrowRef = useRef(null);
|
|
21
25
|
var openTimerRef = useRef(null);
|
|
22
26
|
var closeTimerRef = useRef(null);
|
|
@@ -73,10 +77,10 @@ var TooltipGroup = function TooltipGroup(_ref) {
|
|
|
73
77
|
return Boolean(activeRef.current && activeRef.current.triggerEl === triggerEl);
|
|
74
78
|
}, []);
|
|
75
79
|
var closeFromTrigger = useCallback(function (triggerEl, item) {
|
|
76
|
-
var _item$closeDelay
|
|
80
|
+
var _item$closeDelay;
|
|
77
81
|
if (!activeRef.current || activeRef.current.triggerEl !== triggerEl) return;
|
|
78
82
|
clearTimers();
|
|
79
|
-
var delayMs = (_item$closeDelay = item.closeDelay) !== null && _item$closeDelay !== void 0 ? _item$closeDelay :
|
|
83
|
+
var delayMs = (_item$closeDelay = item.closeDelay) !== null && _item$closeDelay !== void 0 ? _item$closeDelay : item.mouseLeaveDelay !== undefined ? item.mouseLeaveDelay * 1000 : 100;
|
|
80
84
|
if (delayMs <= 0) {
|
|
81
85
|
var _item$onOpenChange;
|
|
82
86
|
setOpen(false);
|
|
@@ -90,7 +94,7 @@ var TooltipGroup = function TooltipGroup(_ref) {
|
|
|
90
94
|
}, delayMs);
|
|
91
95
|
}, [clearTimers]);
|
|
92
96
|
var openFromTrigger = useCallback(function (triggerEl, item) {
|
|
93
|
-
var _item$openDelay
|
|
97
|
+
var _item$openDelay;
|
|
94
98
|
if (!triggerEl) return;
|
|
95
99
|
if (!item.title) return;
|
|
96
100
|
if (item.disabled) return;
|
|
@@ -99,7 +103,7 @@ var TooltipGroup = function TooltipGroup(_ref) {
|
|
|
99
103
|
item: item,
|
|
100
104
|
triggerEl: triggerEl
|
|
101
105
|
});
|
|
102
|
-
var delayMs = (_item$openDelay = item.openDelay) !== null && _item$openDelay !== void 0 ? _item$openDelay :
|
|
106
|
+
var delayMs = (_item$openDelay = item.openDelay) !== null && _item$openDelay !== void 0 ? _item$openDelay : item.mouseEnterDelay !== undefined ? item.mouseEnterDelay * 1000 : 100;
|
|
103
107
|
if (delayMs <= 0) {
|
|
104
108
|
var _item$onOpenChange3;
|
|
105
109
|
setOpen(true);
|
|
@@ -112,7 +116,7 @@ var TooltipGroup = function TooltipGroup(_ref) {
|
|
|
112
116
|
(_item$onOpenChange4 = item.onOpenChange) === null || _item$onOpenChange4 === void 0 || _item$onOpenChange4.call(item, true);
|
|
113
117
|
}, delayMs);
|
|
114
118
|
}, [clearTimers]);
|
|
115
|
-
var
|
|
119
|
+
var groupApi = useMemo(function () {
|
|
116
120
|
return {
|
|
117
121
|
closeFromTrigger: closeFromTrigger,
|
|
118
122
|
closeImmediately: closeImmediately,
|
|
@@ -142,12 +146,15 @@ var TooltipGroup = function TooltipGroup(_ref) {
|
|
|
142
146
|
title: active === null || active === void 0 ? void 0 : active.item.title,
|
|
143
147
|
zIndex: active === null || active === void 0 ? void 0 : active.item.zIndex
|
|
144
148
|
});
|
|
145
|
-
return /*#__PURE__*/
|
|
146
|
-
value:
|
|
147
|
-
children:
|
|
148
|
-
|
|
149
|
-
children:
|
|
150
|
-
|
|
149
|
+
return /*#__PURE__*/_jsx(TooltipGroupApiContext.Provider, {
|
|
150
|
+
value: groupApi,
|
|
151
|
+
children: /*#__PURE__*/_jsxs(TooltipGroupPropsContext.Provider, {
|
|
152
|
+
value: sharedProps,
|
|
153
|
+
children: [children, (active === null || active === void 0 ? void 0 : active.item.title) && !active.item.disabled && (((_active$item$portalle = active.item.portalled) !== null && _active$item$portalle !== void 0 ? _active$item$portalle : true) ? /*#__PURE__*/_jsx(TooltipPortal, {
|
|
154
|
+
root: portalRoot,
|
|
155
|
+
children: floatingNode
|
|
156
|
+
}) : floatingNode)]
|
|
157
|
+
})
|
|
151
158
|
});
|
|
152
159
|
};
|
|
153
160
|
export default TooltipGroup;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { TooltipProps } from './type';
|
|
3
3
|
export type TooltipGroupItem = Omit<TooltipProps, 'children' | 'open' | 'defaultOpen'>;
|
|
4
|
+
export type TooltipGroupSharedProps = Omit<TooltipProps, 'children' | 'defaultOpen' | 'open' | 'ref' | 'title'>;
|
|
4
5
|
export type TooltipGroupApi = {
|
|
5
6
|
closeFromTrigger: (triggerEl: HTMLElement, item: TooltipGroupItem) => void;
|
|
6
7
|
closeImmediately: () => void;
|
|
7
8
|
isActiveTrigger: (triggerEl: HTMLElement) => boolean;
|
|
8
9
|
openFromTrigger: (triggerEl: HTMLElement, item: TooltipGroupItem) => void;
|
|
9
10
|
};
|
|
10
|
-
export declare const
|
|
11
|
+
export declare const TooltipGroupApiContext: import("react").Context<TooltipGroupApi | null>;
|
|
12
|
+
export declare const TooltipGroupPropsContext: import("react").Context<TooltipGroupSharedProps | null>;
|