react-tooltip 5.10.0-beta.0 → 5.10.0-beta.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/dist/react-tooltip.cjs.js +36 -37
- package/dist/react-tooltip.cjs.js.map +4 -4
- package/dist/react-tooltip.cjs.min.js +1 -1
- package/dist/react-tooltip.cjs.min.js.map +4 -4
- package/dist/react-tooltip.d.ts +8 -5
- package/dist/react-tooltip.esm.js +35 -36
- package/dist/react-tooltip.esm.js.map +4 -4
- package/dist/react-tooltip.esm.min.js +1 -1
- package/dist/react-tooltip.esm.min.js.map +4 -4
- package/dist/react-tooltip.iife.js +36 -37
- package/dist/react-tooltip.iife.js.map +4 -4
- package/dist/react-tooltip.iife.min.js +1 -1
- package/dist/react-tooltip.iife.min.js.map +4 -4
- package/dist/react-tooltip.min.js +1 -1
- package/dist/react-tooltip.min.js.map +4 -4
- package/package.json +1 -1
|
@@ -115,9 +115,16 @@ var debounce = (func, wait, immediate) => {
|
|
|
115
115
|
};
|
|
116
116
|
var debounce_default = debounce;
|
|
117
117
|
|
|
118
|
+
// src/components/TooltipContent/TooltipContent.tsx
|
|
119
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
120
|
+
var TooltipContent = ({ content }) => {
|
|
121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: content } });
|
|
122
|
+
};
|
|
123
|
+
var TooltipContent_default = TooltipContent;
|
|
124
|
+
|
|
118
125
|
// src/components/TooltipProvider/TooltipProvider.tsx
|
|
119
126
|
var import_react = require("react");
|
|
120
|
-
var
|
|
127
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
121
128
|
var DEFAULT_TOOLTIP_ID = "DEFAULT_TOOLTIP_ID";
|
|
122
129
|
var DEFAULT_CONTEXT_DATA = {
|
|
123
130
|
anchorRefs: /* @__PURE__ */ new Set(),
|
|
@@ -185,7 +192,7 @@ var TooltipProvider = ({ children }) => {
|
|
|
185
192
|
getTooltipData
|
|
186
193
|
};
|
|
187
194
|
}, [getTooltipData]);
|
|
188
|
-
return /* @__PURE__ */ (0,
|
|
195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(TooltipContext.Provider, { value: context, children });
|
|
189
196
|
};
|
|
190
197
|
function useTooltip(tooltipId = DEFAULT_TOOLTIP_ID) {
|
|
191
198
|
return (0, import_react.useContext)(TooltipContext).getTooltipData(tooltipId);
|
|
@@ -195,7 +202,7 @@ var TooltipProvider_default = TooltipProvider;
|
|
|
195
202
|
// src/components/TooltipProvider/TooltipWrapper.tsx
|
|
196
203
|
var import_react2 = require("react");
|
|
197
204
|
var import_classnames = __toESM(require_classnames());
|
|
198
|
-
var
|
|
205
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
199
206
|
var TooltipWrapper = ({
|
|
200
207
|
tooltipId,
|
|
201
208
|
children,
|
|
@@ -219,7 +226,7 @@ var TooltipWrapper = ({
|
|
|
219
226
|
detach(anchorRef);
|
|
220
227
|
};
|
|
221
228
|
}, []);
|
|
222
|
-
return /* @__PURE__ */ (0,
|
|
229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
223
230
|
"span",
|
|
224
231
|
{
|
|
225
232
|
ref: anchorRef,
|
|
@@ -711,7 +718,7 @@ var computeTooltipPosition = async ({
|
|
|
711
718
|
var styles_module_default = { "arrow": "react-tooltip__arrow_KtSkBq", "clickable": "react-tooltip__clickable_KtSkBq", "dark": "react-tooltip__dark_KtSkBq", "error": "react-tooltip__error_KtSkBq", "fixed": "react-tooltip__fixed_KtSkBq", "info": "react-tooltip__info_KtSkBq", "light": "react-tooltip__light_KtSkBq", "noArrow": "react-tooltip__no-arrow_KtSkBq", "show": "react-tooltip__show_KtSkBq", "success": "react-tooltip__success_KtSkBq", "tooltip": "react-tooltip__tooltip_KtSkBq", "warning": "react-tooltip__warning_KtSkBq" };
|
|
712
719
|
|
|
713
720
|
// src/components/Tooltip/Tooltip.tsx
|
|
714
|
-
var
|
|
721
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
715
722
|
var Tooltip = ({
|
|
716
723
|
// props
|
|
717
724
|
id,
|
|
@@ -723,9 +730,11 @@ var Tooltip = ({
|
|
|
723
730
|
place = "top",
|
|
724
731
|
offset = 10,
|
|
725
732
|
events = ["hover"],
|
|
733
|
+
openOnClick = false,
|
|
726
734
|
positionStrategy = "absolute",
|
|
727
735
|
middlewares,
|
|
728
736
|
wrapper: WrapperElement,
|
|
737
|
+
children = null,
|
|
729
738
|
delayShow = 0,
|
|
730
739
|
delayHide = 0,
|
|
731
740
|
float = false,
|
|
@@ -738,6 +747,7 @@ var Tooltip = ({
|
|
|
738
747
|
afterHide,
|
|
739
748
|
// props handled by controller
|
|
740
749
|
content,
|
|
750
|
+
html,
|
|
741
751
|
isOpen,
|
|
742
752
|
setIsOpen,
|
|
743
753
|
activeAnchor,
|
|
@@ -758,6 +768,7 @@ var Tooltip = ({
|
|
|
758
768
|
const hoveringTooltip = (0, import_react4.useRef)(false);
|
|
759
769
|
const [anchorsBySelect, setAnchorsBySelect] = (0, import_react4.useState)([]);
|
|
760
770
|
const mounted = (0, import_react4.useRef)(false);
|
|
771
|
+
const shouldOpenOnClick = openOnClick || events.includes("click");
|
|
761
772
|
use_isomorphic_layout_effect_default(() => {
|
|
762
773
|
mounted.current = true;
|
|
763
774
|
return () => {
|
|
@@ -917,11 +928,13 @@ var Tooltip = ({
|
|
|
917
928
|
}
|
|
918
929
|
};
|
|
919
930
|
const handleClickOutsideAnchors = (event) => {
|
|
931
|
+
var _a;
|
|
920
932
|
const anchorById = document.querySelector(`[id='${anchorId}']`);
|
|
921
|
-
|
|
933
|
+
const anchors = [anchorById, ...anchorsBySelect];
|
|
934
|
+
if (anchors.some((anchor) => anchor == null ? void 0 : anchor.contains(event.target))) {
|
|
922
935
|
return;
|
|
923
936
|
}
|
|
924
|
-
if (
|
|
937
|
+
if ((_a = tooltipRef.current) == null ? void 0 : _a.contains(event.target)) {
|
|
925
938
|
return;
|
|
926
939
|
}
|
|
927
940
|
handleShow(false);
|
|
@@ -948,11 +961,10 @@ var Tooltip = ({
|
|
|
948
961
|
window.addEventListener("keydown", handleEsc);
|
|
949
962
|
}
|
|
950
963
|
const enabledEvents = [];
|
|
951
|
-
if (
|
|
964
|
+
if (shouldOpenOnClick) {
|
|
952
965
|
window.addEventListener("click", handleClickOutsideAnchors);
|
|
953
966
|
enabledEvents.push({ event: "click", listener: handleClickTooltipAnchor });
|
|
954
|
-
}
|
|
955
|
-
if (events.find((event) => event === "hover")) {
|
|
967
|
+
} else {
|
|
956
968
|
enabledEvents.push(
|
|
957
969
|
{ event: "mouseenter", listener: debouncedHandleShowTooltip },
|
|
958
970
|
{ event: "mouseleave", listener: debouncedHandleHideTooltip },
|
|
@@ -973,7 +985,7 @@ var Tooltip = ({
|
|
|
973
985
|
hoveringTooltip.current = false;
|
|
974
986
|
handleHideTooltip();
|
|
975
987
|
};
|
|
976
|
-
if (clickable) {
|
|
988
|
+
if (clickable && !shouldOpenOnClick) {
|
|
977
989
|
(_a = tooltipRef.current) == null ? void 0 : _a.addEventListener("mouseenter", handleMouseEnterTooltip);
|
|
978
990
|
(_b = tooltipRef.current) == null ? void 0 : _b.addEventListener("mouseleave", handleMouseLeaveTooltip);
|
|
979
991
|
}
|
|
@@ -985,13 +997,13 @@ var Tooltip = ({
|
|
|
985
997
|
});
|
|
986
998
|
return () => {
|
|
987
999
|
var _a2, _b2;
|
|
988
|
-
if (
|
|
1000
|
+
if (shouldOpenOnClick) {
|
|
989
1001
|
window.removeEventListener("click", handleClickOutsideAnchors);
|
|
990
1002
|
}
|
|
991
1003
|
if (closeOnEsc) {
|
|
992
1004
|
window.removeEventListener("keydown", handleEsc);
|
|
993
1005
|
}
|
|
994
|
-
if (clickable) {
|
|
1006
|
+
if (clickable && !shouldOpenOnClick) {
|
|
995
1007
|
(_a2 = tooltipRef.current) == null ? void 0 : _a2.removeEventListener("mouseenter", handleMouseEnterTooltip);
|
|
996
1008
|
(_b2 = tooltipRef.current) == null ? void 0 : _b2.removeEventListener("mouseleave", handleMouseLeaveTooltip);
|
|
997
1009
|
}
|
|
@@ -1096,7 +1108,7 @@ var Tooltip = ({
|
|
|
1096
1108
|
}
|
|
1097
1109
|
setActualPlacement(computedStylesData.place);
|
|
1098
1110
|
});
|
|
1099
|
-
}, [show, activeAnchor, content, place, offset, positionStrategy, position]);
|
|
1111
|
+
}, [show, activeAnchor, content, html, place, offset, positionStrategy, position]);
|
|
1100
1112
|
(0, import_react4.useEffect)(() => {
|
|
1101
1113
|
var _a;
|
|
1102
1114
|
const anchorById = document.querySelector(`[id='${anchorId}']`);
|
|
@@ -1130,8 +1142,9 @@ var Tooltip = ({
|
|
|
1130
1142
|
setAnchorsBySelect([]);
|
|
1131
1143
|
}
|
|
1132
1144
|
}, [id, anchorSelect]);
|
|
1133
|
-
const
|
|
1134
|
-
|
|
1145
|
+
const hasContentOrChildren = Boolean(html || content || children);
|
|
1146
|
+
const canShow = hasContentOrChildren && show && Object.keys(inlineStyles).length > 0;
|
|
1147
|
+
return rendered ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
1135
1148
|
WrapperElement,
|
|
1136
1149
|
{
|
|
1137
1150
|
id,
|
|
@@ -1151,8 +1164,8 @@ var Tooltip = ({
|
|
|
1151
1164
|
style: { ...externalStyles, ...inlineStyles },
|
|
1152
1165
|
ref: tooltipRef,
|
|
1153
1166
|
children: [
|
|
1154
|
-
content,
|
|
1155
|
-
/* @__PURE__ */ (0,
|
|
1167
|
+
html && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipContent_default, { content: html }) || content || children,
|
|
1168
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
1156
1169
|
WrapperElement,
|
|
1157
1170
|
{
|
|
1158
1171
|
className: (0, import_classnames2.default)("react-tooltip-arrow", styles_module_default["arrow"], classNameArrow, {
|
|
@@ -1172,13 +1185,6 @@ var Tooltip = ({
|
|
|
1172
1185
|
};
|
|
1173
1186
|
var Tooltip_default = Tooltip;
|
|
1174
1187
|
|
|
1175
|
-
// src/components/TooltipContent/TooltipContent.tsx
|
|
1176
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
1177
|
-
var TooltipContent = ({ content }) => {
|
|
1178
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { dangerouslySetInnerHTML: { __html: content } });
|
|
1179
|
-
};
|
|
1180
|
-
var TooltipContent_default = TooltipContent;
|
|
1181
|
-
|
|
1182
1188
|
// src/components/TooltipController/TooltipController.tsx
|
|
1183
1189
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
1184
1190
|
var TooltipController = ({
|
|
@@ -1187,7 +1193,6 @@ var TooltipController = ({
|
|
|
1187
1193
|
anchorSelect,
|
|
1188
1194
|
content,
|
|
1189
1195
|
html,
|
|
1190
|
-
render,
|
|
1191
1196
|
className,
|
|
1192
1197
|
classNameArrow,
|
|
1193
1198
|
variant = "dark",
|
|
@@ -1196,6 +1201,7 @@ var TooltipController = ({
|
|
|
1196
1201
|
wrapper = "div",
|
|
1197
1202
|
children = null,
|
|
1198
1203
|
events = ["hover"],
|
|
1204
|
+
openOnClick = false,
|
|
1199
1205
|
positionStrategy = "absolute",
|
|
1200
1206
|
middlewares,
|
|
1201
1207
|
delayShow = 0,
|
|
@@ -1335,27 +1341,20 @@ var TooltipController = ({
|
|
|
1335
1341
|
observer.disconnect();
|
|
1336
1342
|
};
|
|
1337
1343
|
}, [anchorRefs, providerActiveAnchor, activeAnchor, anchorId, anchorSelect]);
|
|
1338
|
-
let renderedContent = children;
|
|
1339
|
-
if (render) {
|
|
1340
|
-
renderedContent = render({ content: tooltipContent != null ? tooltipContent : null, activeAnchor });
|
|
1341
|
-
} else if (tooltipContent) {
|
|
1342
|
-
renderedContent = tooltipContent;
|
|
1343
|
-
}
|
|
1344
|
-
if (tooltipHtml) {
|
|
1345
|
-
renderedContent = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipContent_default, { content: tooltipHtml });
|
|
1346
|
-
}
|
|
1347
1344
|
const props = {
|
|
1348
1345
|
id,
|
|
1349
1346
|
anchorId,
|
|
1350
1347
|
anchorSelect,
|
|
1351
1348
|
className,
|
|
1352
1349
|
classNameArrow,
|
|
1353
|
-
content:
|
|
1350
|
+
content: tooltipContent,
|
|
1351
|
+
html: tooltipHtml,
|
|
1354
1352
|
place: tooltipPlace,
|
|
1355
1353
|
variant: tooltipVariant,
|
|
1356
1354
|
offset: tooltipOffset,
|
|
1357
1355
|
wrapper: tooltipWrapper,
|
|
1358
1356
|
events: tooltipEvents,
|
|
1357
|
+
openOnClick,
|
|
1359
1358
|
positionStrategy: tooltipPositionStrategy,
|
|
1360
1359
|
middlewares,
|
|
1361
1360
|
delayShow: tooltipDelayShow,
|
|
@@ -1373,7 +1372,7 @@ var TooltipController = ({
|
|
|
1373
1372
|
activeAnchor,
|
|
1374
1373
|
setActiveAnchor: (anchor) => setActiveAnchor(anchor)
|
|
1375
1374
|
};
|
|
1376
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Tooltip_default, { ...props });
|
|
1375
|
+
return children ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Tooltip_default, { ...props, children }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Tooltip_default, { ...props });
|
|
1377
1376
|
};
|
|
1378
1377
|
var TooltipController_default = TooltipController;
|
|
1379
1378
|
/*! Bundled license information:
|