react-tooltip 6.0.0-beta.1179.rc.1 → 6.0.0-beta.1179.rc.2

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/README.md CHANGED
@@ -54,9 +54,9 @@ React Tooltip is proud to be sponsored by [Frigade](https://frigade.com/?source=
54
54
 
55
55
  #### Silver Sponsors ✪
56
56
 
57
- <a href="https://dopt.com/?source=react-tooltip">
58
- <img alt="Dopt" style="height: 200px; width: 200px;" src="docs/static/img/sponsors/dopt.png" />
59
- </a>
57
+ <!-- <a href="#">
58
+ <img alt="Slot" style="height: 200px; width: 200px;" src="docs/static/img/sponsors/slot.png" />
59
+ </a> -->
60
60
 
61
61
  ## Powered by
62
62
 
@@ -44,11 +44,7 @@ function injectStyle({ css, id = REACT_TOOLTIP_BASE_STYLES_ID, type = 'base', re
44
44
  }
45
45
  const { insertAt } = ref;
46
46
  if (document.getElementById(id)) {
47
- // this should never happen because of `injected[type]`
48
- {
49
- // eslint-disable-next-line no-console
50
- console.warn(`[react-tooltip] Element with id '${id}' already exists. Call \`removeStyle()\` first`);
51
- }
47
+ // this could happen in cases the tooltip is imported by multiple js modules
52
48
  return;
53
49
  }
54
50
  const head = document.head || document.getElementsByTagName('head')[0];
@@ -152,11 +148,6 @@ const computeTooltipPosition = async ({ elementReference = null, tooltipReferenc
152
148
  });
153
149
  };
154
150
 
155
- const cssSupports = (property, value) => {
156
- const hasCssSupports = 'CSS' in window && 'supports' in window.CSS;
157
- return hasCssSupports ? window.CSS.supports(property, value) : true;
158
- };
159
-
160
151
  const cssTimeToMs = (time) => {
161
152
  const match = time.match(/^([\d.]+)(m?s)$/);
162
153
  if (!match) {
@@ -253,6 +244,14 @@ const getScrollParent = (node) => {
253
244
 
254
245
  const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
255
246
 
247
+ const clearTimeoutRef = (ref) => {
248
+ if (ref.current) {
249
+ clearTimeout(ref.current);
250
+ // eslint-disable-next-line no-param-reassign
251
+ ref.current = null;
252
+ }
253
+ };
254
+
256
255
  var coreStyles = {"tooltip":"core-styles-module_tooltip__3vRRp","fixed":"core-styles-module_fixed__pcSol","arrow":"core-styles-module_arrow__cvMwQ","noArrow":"core-styles-module_noArrow__xock6","clickable":"core-styles-module_clickable__ZuTTB","show":"core-styles-module_show__Nt9eE","closing":"core-styles-module_closing__sGnxF"};
257
256
 
258
257
  var styles = {"tooltip":"styles-module_tooltip__mnnfp","arrow":"styles-module_arrow__K0L3T","dark":"styles-module_dark__xNqje","light":"styles-module_light__Z6W-X","success":"styles-module_success__A2AKt","warning":"styles-module_warning__SCK0X","error":"styles-module_error__JvumD","info":"styles-module_info__BWdHW"};
@@ -335,9 +334,7 @@ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnch
335
334
  if (show === wasShowing.current) {
336
335
  return;
337
336
  }
338
- if (missedTransitionTimerRef.current) {
339
- clearTimeout(missedTransitionTimerRef.current);
340
- }
337
+ clearTimeoutRef(missedTransitionTimerRef);
341
338
  wasShowing.current = show;
342
339
  if (show) {
343
340
  afterShow === null || afterShow === void 0 ? void 0 : afterShow();
@@ -688,7 +685,7 @@ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnch
688
685
  }
689
686
  handleHideTooltip();
690
687
  };
691
- const regularEvents = ['mouseenter', 'mouseleave', 'focus', 'blur'];
688
+ const regularEvents = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'focus', 'blur'];
692
689
  const clickEvents = ['click', 'dblclick', 'mousedown', 'mouseup'];
693
690
  Object.entries(actualOpenEvents).forEach(([event, enabled]) => {
694
691
  if (!enabled) {
@@ -832,12 +829,8 @@ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnch
832
829
  setRendered(false);
833
830
  handleShow(false);
834
831
  setActiveAnchor(null);
835
- if (tooltipShowDelayTimerRef.current) {
836
- clearTimeout(tooltipShowDelayTimerRef.current);
837
- }
838
- if (tooltipHideDelayTimerRef.current) {
839
- clearTimeout(tooltipHideDelayTimerRef.current);
840
- }
832
+ clearTimeoutRef(tooltipShowDelayTimerRef);
833
+ clearTimeoutRef(tooltipHideDelayTimerRef);
841
834
  return true;
842
835
  }
843
836
  return false;
@@ -956,12 +949,8 @@ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnch
956
949
  handleShow(true);
957
950
  }
958
951
  return () => {
959
- if (tooltipShowDelayTimerRef.current) {
960
- clearTimeout(tooltipShowDelayTimerRef.current);
961
- }
962
- if (tooltipHideDelayTimerRef.current) {
963
- clearTimeout(tooltipHideDelayTimerRef.current);
964
- }
952
+ clearTimeoutRef(tooltipShowDelayTimerRef);
953
+ clearTimeoutRef(tooltipHideDelayTimerRef);
965
954
  };
966
955
  }, [defaultIsOpen, handleShow]);
967
956
  React.useEffect(() => {
@@ -984,7 +973,11 @@ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnch
984
973
  }, [id, anchorSelect, imperativeOptions === null || imperativeOptions === void 0 ? void 0 : imperativeOptions.anchorSelect]);
985
974
  React.useEffect(() => {
986
975
  if (tooltipShowDelayTimerRef.current) {
987
- clearTimeout(tooltipShowDelayTimerRef.current);
976
+ /**
977
+ * if the delay changes while the tooltip is waiting to show,
978
+ * reset the timer with the new delay
979
+ */
980
+ clearTimeoutRef(tooltipShowDelayTimerRef);
988
981
  handleShowTooltipDelayed(delayShow);
989
982
  }
990
983
  }, [delayShow, handleShowTooltipDelayed]);
@@ -1025,9 +1018,7 @@ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnch
1025
1018
  isOpen: Boolean(rendered && !hidden && actualContent && canShow),
1026
1019
  }));
1027
1020
  return rendered && !hidden && actualContent ? (React.createElement(WrapperElement, { id: id, role: role, className: clsx('react-tooltip', coreStyles['tooltip'], styles['tooltip'], styles[variant], className, `react-tooltip__place-${computedPosition.place}`, coreStyles[canShow ? 'show' : 'closing'], canShow ? 'react-tooltip__show' : 'react-tooltip__closing', positionStrategy === 'fixed' && coreStyles['fixed'], clickable && coreStyles['clickable']), onTransitionEnd: (event) => {
1028
- if (missedTransitionTimerRef.current) {
1029
- clearTimeout(missedTransitionTimerRef.current);
1030
- }
1021
+ clearTimeoutRef(missedTransitionTimerRef);
1031
1022
  if (show || event.propertyName !== 'opacity') {
1032
1023
  return;
1033
1024
  }
@@ -1217,18 +1208,10 @@ const TooltipController = React.forwardRef(({ id, anchorSelect, content, render,
1217
1208
  // eslint-disable-next-line no-console
1218
1209
  console.warn('[react-tooltip] Do not set `style.border`. Use `border` prop instead.');
1219
1210
  }
1220
- if (border && !cssSupports('border', `${border}`)) {
1221
- // eslint-disable-next-line no-console
1222
- console.warn(`[react-tooltip] "${border}" is not a valid \`border\`.`);
1223
- }
1224
1211
  if (style === null || style === void 0 ? void 0 : style.opacity) {
1225
1212
  // eslint-disable-next-line no-console
1226
1213
  console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.');
1227
1214
  }
1228
- if (opacity && !cssSupports('opacity', `${opacity}`)) {
1229
- // eslint-disable-next-line no-console
1230
- console.warn(`[react-tooltip] "${opacity}" is not a valid \`opacity\`.`);
1231
- }
1232
1215
  }, [border, opacity, style === null || style === void 0 ? void 0 : style.border, style === null || style === void 0 ? void 0 : style.opacity]);
1233
1216
  /**
1234
1217
  * content priority: children < render or content < html
@@ -1 +1 @@
1
- {"version":3,"file":"react-tooltip.cjs","sources":["../src/utils/handle-style.ts","../src/utils/compute-tooltip-position.ts","../src/utils/css-supports.ts","../src/utils/css-time-to-ms.ts","../src/utils/debounce.ts","../src/utils/deep-equal.ts","../src/utils/get-scroll-parent.ts","../src/utils/use-isomorphic-layout-effect.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/TooltipController/TooltipController.tsx","../src/index.tsx"],"sourcesContent":["// This is the ID for the core styles of ReactTooltip\nconst REACT_TOOLTIP_CORE_STYLES_ID = 'react-tooltip-core-styles'\n// This is the ID for the visual styles of ReactTooltip\nconst REACT_TOOLTIP_BASE_STYLES_ID = 'react-tooltip-base-styles'\n\nconst injected = {\n core: false,\n base: false,\n}\n\nfunction injectStyle({\n css,\n id = REACT_TOOLTIP_BASE_STYLES_ID,\n type = 'base',\n ref,\n}: {\n css: string\n id?: string\n type?: 'core' | 'base'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref?: any\n}) {\n if (!css || typeof document === 'undefined' || injected[type]) {\n return\n }\n\n if (\n type === 'core' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_CORE_STYLES\n ) {\n return\n }\n\n if (\n type !== 'base' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_BASE_STYLES\n ) {\n return\n }\n\n if (type === 'core') {\n // eslint-disable-next-line no-param-reassign\n id = REACT_TOOLTIP_CORE_STYLES_ID\n }\n\n if (!ref) {\n // eslint-disable-next-line no-param-reassign\n ref = {}\n }\n const { insertAt } = ref\n\n if (document.getElementById(id)) {\n // this should never happen because of `injected[type]`\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n `[react-tooltip] Element with id '${id}' already exists. Call \\`removeStyle()\\` first`,\n )\n }\n return\n }\n\n const head = document.head || document.getElementsByTagName('head')[0]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const style: any = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n\n injected[type] = true\n}\n\nexport { injectStyle }\n","import { computePosition, offset, shift, arrow, flip } from '@floating-ui/dom'\nimport type { IComputePositionArgs } from './compute-tooltip-position-types'\n\nconst computeTooltipPosition = async ({\n elementReference = null,\n tooltipReference = null,\n tooltipArrowReference = null,\n place = 'top',\n offset: offsetValue = 10,\n strategy = 'absolute',\n middlewares = [\n offset(Number(offsetValue)),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift({ padding: 5 }),\n ],\n border,\n}: IComputePositionArgs) => {\n if (!elementReference) {\n // elementReference can be null or undefined and we will not compute the position\n // eslint-disable-next-line no-console\n // console.error('The reference element for tooltip was not defined: ', elementReference)\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n if (tooltipReference === null) {\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n const middleware = middlewares\n\n if (tooltipArrowReference) {\n middleware.push(arrow({ element: tooltipArrowReference as HTMLElement, padding: 5 }))\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: place,\n strategy,\n middleware,\n }).then(({ x, y, placement, middlewareData }) => {\n const styles = { left: `${x}px`, top: `${y}px`, border }\n\n /* c8 ignore start */\n const { x: arrowX, y: arrowY } = middlewareData.arrow ?? { x: 0, y: 0 }\n\n const staticSide =\n {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]] ?? 'bottom'\n /* c8 ignore end */\n\n const borderSide = border && {\n borderBottom: border,\n borderRight: border,\n }\n\n let borderWidth = 0\n if (border) {\n const match = `${border}`.match(/(\\d+)px/)\n if (match?.[1]) {\n borderWidth = Number(match[1])\n } else {\n /**\n * this means `border` was set without `width`,\n * or non-px value (such as `medium`, `thick`, ...)\n */\n borderWidth = 1\n }\n }\n\n /* c8 ignore start */\n const arrowStyle = {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n ...borderSide,\n [staticSide]: `-${4 + borderWidth}px`,\n }\n /* c8 ignore end */\n\n return { tooltipStyles: styles, tooltipArrowStyles: arrowStyle, place: placement }\n })\n }\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: 'bottom',\n strategy,\n middleware,\n }).then(({ x, y, placement }) => {\n const styles = { left: `${x}px`, top: `${y}px` }\n\n return { tooltipStyles: styles, tooltipArrowStyles: {}, place: placement }\n })\n}\n\nexport default computeTooltipPosition\n","const cssSupports = (property: string, value: string): boolean => {\n const hasCssSupports = 'CSS' in window && 'supports' in window.CSS\n return hasCssSupports ? window.CSS.supports(property, value) : true\n}\n\nexport default cssSupports\n","const cssTimeToMs = (time: string): number => {\n const match = time.match(/^([\\d.]+)(m?s)$/)\n if (!match) {\n return 0\n }\n const [, amount, unit] = match\n return Number(amount) * (unit === 'ms' ? 1 : 1000)\n}\n\nexport default cssTimeToMs\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This function debounce the received function\n * @param { function } \tfunc\t\t\t\tFunction to be debounced\n * @param { number } \t\twait\t\t\t\tTime to wait before execut the function\n * @param { boolean } \timmediate\t\tParam to define if the function will be executed immediately\n */\nconst debounce = <T, A extends any[]>(\n func: (...args: A) => void,\n wait?: number,\n immediate?: boolean,\n) => {\n let timeout: NodeJS.Timeout | null = null\n\n const debounced = function debounced(this: T, ...args: A): void {\n const later = () => {\n timeout = null\n if (!immediate) {\n func.apply(this, args)\n }\n }\n\n if (immediate && !timeout) {\n /**\n * there's no need to clear the timeout\n * since we expect it to resolve and set `timeout = null`\n */\n func.apply(this, args)\n timeout = setTimeout(later, wait)\n }\n\n if (!immediate) {\n if (timeout) {\n clearTimeout(timeout)\n }\n timeout = setTimeout(later, wait)\n }\n }\n\n debounced.cancel = () => {\n /* c8 ignore start */\n if (!timeout) {\n return\n }\n /* c8 ignore end */\n clearTimeout(timeout)\n timeout = null\n }\n\n return debounced\n}\n\nexport default debounce\n","const isObject = (object: unknown): object is Record<string, unknown> => {\n return object !== null && !Array.isArray(object) && typeof object === 'object'\n}\n\nconst deepEqual = (object1: unknown, object2: unknown): boolean => {\n if (object1 === object2) {\n return true\n }\n\n if (Array.isArray(object1) && Array.isArray(object2)) {\n if (object1.length !== object2.length) {\n return false\n }\n return object1.every((val, index) => deepEqual(val, object2[index]))\n }\n\n if (Array.isArray(object1) !== Array.isArray(object2)) {\n return false\n }\n\n if (!isObject(object1) || !isObject(object2)) {\n return object1 === object2\n }\n\n const keys1 = Object.keys(object1)\n const keys2 = Object.keys(object2)\n if (keys1.length !== keys2.length) {\n return false\n }\n\n return keys1.every((key) => deepEqual(object1[key], object2[key]))\n}\n\nexport default deepEqual\n","const isScrollable = (node: Element) => {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return false\n }\n const style = getComputedStyle(node)\n return ['overflow', 'overflow-x', 'overflow-y'].some((propertyName) => {\n const value = style.getPropertyValue(propertyName)\n return value === 'auto' || value === 'scroll'\n })\n}\n\nconst getScrollParent = (node: Element | null) => {\n if (!node) {\n return null\n }\n let currentParent = node.parentElement\n while (currentParent) {\n if (isScrollable(currentParent)) {\n return currentParent\n }\n currentParent = currentParent.parentElement\n }\n return document.scrollingElement || document.documentElement\n}\n\nexport default getScrollParent\n","import { useLayoutEffect, useEffect } from 'react'\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","import React, { useEffect, useState, useRef, useCallback, useImperativeHandle } from 'react'\nimport { autoUpdate } from '@floating-ui/dom'\nimport clsx from 'clsx'\nimport {\n debounce,\n deepEqual,\n useIsomorphicLayoutEffect,\n getScrollParent,\n computeTooltipPosition,\n cssTimeToMs,\n} from 'utils'\nimport type { IComputedPosition } from 'utils'\nimport coreStyles from './core-styles.module.css'\nimport styles from './styles.module.css'\nimport type {\n AnchorCloseEvents,\n AnchorOpenEvents,\n GlobalCloseEvents,\n IPosition,\n ITooltip,\n TooltipImperativeOpenOptions,\n} from './TooltipTypes'\n\nconst Tooltip = ({\n // props\n forwardRef,\n id,\n className,\n classNameArrow,\n variant = 'dark',\n anchorSelect,\n place = 'top',\n offset = 10,\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n wrapper: WrapperElement,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style: externalStyles,\n position,\n afterShow,\n afterHide,\n // props handled by controller\n content,\n contentWrapperRef,\n isOpen,\n defaultIsOpen = false,\n setIsOpen,\n activeAnchor,\n setActiveAnchor,\n border,\n opacity,\n arrowColor,\n role = 'tooltip',\n}: ITooltip) => {\n const tooltipRef = useRef<HTMLElement>(null)\n const tooltipArrowRef = useRef<HTMLElement>(null)\n const tooltipShowDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const tooltipHideDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const missedTransitionTimerRef = useRef<NodeJS.Timeout | null>(null)\n const [computedPosition, setComputedPosition] = useState<IComputedPosition>({\n tooltipStyles: {},\n tooltipArrowStyles: {},\n place,\n })\n const [show, setShow] = useState(false)\n const [rendered, setRendered] = useState(false)\n const [imperativeOptions, setImperativeOptions] = useState<TooltipImperativeOpenOptions | null>(\n null,\n )\n const wasShowing = useRef(false)\n const lastFloatPosition = useRef<IPosition | null>(null)\n const hoveringTooltip = useRef(false)\n const [anchorElements, setAnchorElements] = useState<HTMLElement[]>([])\n const mounted = useRef(false)\n\n /**\n * useLayoutEffect runs before useEffect,\n * but should be used carefully because of caveats\n * https://beta.reactjs.org/reference/react/useLayoutEffect#caveats\n */\n useIsomorphicLayoutEffect(() => {\n mounted.current = true\n return () => {\n mounted.current = false\n }\n }, [])\n\n const handleShow = useCallback(\n (value: boolean) => {\n if (!mounted.current) {\n return\n }\n if (value) {\n setRendered(true)\n }\n /**\n * wait for the component to render and calculate position\n * before actually showing\n */\n setTimeout(() => {\n if (!mounted.current) {\n return\n }\n setIsOpen?.(value)\n if (isOpen === undefined) {\n setShow(value)\n }\n }, 10)\n },\n [isOpen, setIsOpen],\n )\n\n /**\n * this replicates the effect from `handleShow()`\n * when `isOpen` is changed from outside\n */\n useEffect(() => {\n if (isOpen === undefined) {\n return () => null\n }\n if (isOpen) {\n setRendered(true)\n }\n const timeout = setTimeout(() => {\n setShow(isOpen)\n }, 10)\n return () => {\n clearTimeout(timeout)\n }\n }, [isOpen])\n\n useEffect(() => {\n if (show === wasShowing.current) {\n return\n }\n if (missedTransitionTimerRef.current) {\n clearTimeout(missedTransitionTimerRef.current)\n }\n wasShowing.current = show\n if (show) {\n afterShow?.()\n } else {\n /**\n * see `onTransitionEnd` on tooltip wrapper\n */\n const style = getComputedStyle(document.body)\n const transitionShowDelay = cssTimeToMs(style.getPropertyValue('--rt-transition-show-delay'))\n missedTransitionTimerRef.current = setTimeout(() => {\n /**\n * if the tooltip switches from `show === true` to `show === false` too fast\n * the transition never runs, so `onTransitionEnd` callback never gets fired\n */\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n // +25ms just to make sure `onTransitionEnd` (if it gets fired) has time to run\n }, transitionShowDelay + 25)\n }\n }, [afterHide, afterShow, show])\n\n const handleComputedPosition = (newComputedPosition: IComputedPosition) => {\n setComputedPosition((oldComputedPosition) =>\n deepEqual(oldComputedPosition, newComputedPosition)\n ? oldComputedPosition\n : newComputedPosition,\n )\n }\n\n const handleShowTooltipDelayed = useCallback(\n (delay = delayShow) => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n\n if (rendered) {\n // if the tooltip is already rendered, ignore delay\n handleShow(true)\n return\n }\n\n tooltipShowDelayTimerRef.current = setTimeout(() => {\n handleShow(true)\n }, delay)\n },\n [delayShow, handleShow, rendered],\n )\n\n const handleHideTooltipDelayed = useCallback(\n (delay = delayHide) => {\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n\n tooltipHideDelayTimerRef.current = setTimeout(() => {\n if (hoveringTooltip.current) {\n return\n }\n handleShow(false)\n }, delay)\n },\n [delayHide, handleShow],\n )\n\n const handleTooltipPosition = useCallback(\n ({ x, y }: IPosition) => {\n const virtualElement = {\n getBoundingClientRect() {\n return {\n x,\n y,\n width: 0,\n height: 0,\n top: y,\n left: x,\n right: x,\n bottom: y,\n }\n },\n } as Element\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: virtualElement,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n handleComputedPosition(computedStylesData)\n })\n },\n [imperativeOptions?.place, place, offset, positionStrategy, middlewares, border],\n )\n\n const updateTooltipPosition = useCallback(() => {\n const actualPosition = imperativeOptions?.position ?? position\n if (actualPosition) {\n // if `position` is set, override regular and `float` positioning\n handleTooltipPosition(actualPosition)\n return\n }\n\n if (float) {\n if (lastFloatPosition.current) {\n /*\n Without this, changes to `content`, `place`, `offset`, ..., will only\n trigger a position calculation after a `mousemove` event.\n\n To see why this matters, comment this line, run `yarn dev` and click the\n \"Hover me!\" anchor.\n */\n handleTooltipPosition(lastFloatPosition.current)\n }\n // if `float` is set, override regular positioning\n return\n }\n\n if (!activeAnchor?.isConnected) {\n return\n }\n\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: activeAnchor,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n if (!mounted.current) {\n // invalidate computed positions after remount\n return\n }\n handleComputedPosition(computedStylesData)\n })\n }, [\n imperativeOptions?.position,\n imperativeOptions?.place,\n position,\n float,\n activeAnchor,\n place,\n offset,\n positionStrategy,\n middlewares,\n border,\n handleTooltipPosition,\n ])\n\n useEffect(() => {\n /**\n * TODO(V6): break this effect down into callbacks for clarity\n * - `handleKeyboardEvents()`\n * - `handleMouseEvents()`\n * - `handleGlobalCloseEvents()`\n * - `handleAnchorEvents()`\n * - ...\n */\n\n const handlePointerMove = (event?: Event) => {\n if (!event) {\n return\n }\n const mouseEvent = event as MouseEvent\n const mousePosition = {\n x: mouseEvent.clientX,\n y: mouseEvent.clientY,\n }\n handleTooltipPosition(mousePosition)\n lastFloatPosition.current = mousePosition\n }\n\n const handleClickOutsideAnchors = (event: MouseEvent) => {\n if (!show) {\n return\n }\n const target = event.target as HTMLElement\n if (!target.isConnected) {\n return\n }\n if (tooltipRef.current?.contains(target)) {\n return\n }\n if (anchorElements.some((anchor) => anchor?.contains(target))) {\n return\n }\n handleShow(false)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n const handleShowTooltip = (event?: Event) => {\n if (!event) {\n return\n }\n const target = (event.currentTarget ?? event.target) as HTMLElement | null\n if (!target?.isConnected) {\n /**\n * this happens when the target is removed from the DOM\n * at the same time the tooltip gets triggered\n */\n setActiveAnchor(null)\n return\n }\n if (delayShow) {\n handleShowTooltipDelayed()\n } else {\n handleShow(true)\n }\n setActiveAnchor(target)\n\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n\n const handleHideTooltip = () => {\n if (clickable) {\n // allow time for the mouse to reach the tooltip, in case there's a gap\n handleHideTooltipDelayed(delayHide || 100)\n } else if (delayHide) {\n handleHideTooltipDelayed()\n } else {\n handleShow(false)\n }\n\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n // debounce handler to prevent call twice when\n // mouse enter and focus events being triggered toggether\n const internalDebouncedHandleShowTooltip = debounce(handleShowTooltip, 50, true)\n const internalDebouncedHandleHideTooltip = debounce(handleHideTooltip, 50, true)\n // If either of the functions is called while the other is still debounced,\n // reset the timeout. Otherwise if there is a sub-50ms (leave A, enter B, leave B)\n // sequence of events, the tooltip will stay open because the hide debounce\n // from leave A prevented the leave B event from calling it, leaving the\n // tooltip visible.\n const debouncedHandleShowTooltip = (e?: Event) => {\n internalDebouncedHandleHideTooltip.cancel()\n internalDebouncedHandleShowTooltip(e)\n }\n const debouncedHandleHideTooltip = () => {\n internalDebouncedHandleShowTooltip.cancel()\n internalDebouncedHandleHideTooltip()\n }\n\n const handleScrollResize = () => {\n handleShow(false)\n }\n\n const hasClickEvent =\n openOnClick || openEvents?.click || openEvents?.dblclick || openEvents?.mousedown\n const actualOpenEvents: AnchorOpenEvents = openEvents\n ? { ...openEvents }\n : {\n mouseenter: true,\n focus: true,\n click: false,\n dblclick: false,\n mousedown: false,\n }\n if (!openEvents && openOnClick) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: true,\n })\n }\n const actualCloseEvents: AnchorCloseEvents = closeEvents\n ? { ...closeEvents }\n : {\n mouseleave: true,\n blur: true,\n click: false,\n dblclick: false,\n mouseup: false,\n }\n if (!closeEvents && openOnClick) {\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n })\n }\n const actualGlobalCloseEvents: GlobalCloseEvents = globalCloseEvents\n ? { ...globalCloseEvents }\n : {\n escape: false,\n scroll: false,\n resize: false,\n clickOutsideAnchor: hasClickEvent || false,\n }\n\n if (imperativeModeOnly) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: false,\n dblclick: false,\n mousedown: false,\n })\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n click: false,\n dblclick: false,\n mouseup: false,\n })\n Object.assign(actualGlobalCloseEvents, {\n escape: false,\n scroll: false,\n resize: false,\n clickOutsideAnchor: false,\n })\n }\n\n const tooltipElement = tooltipRef.current\n const tooltipScrollParent = getScrollParent(tooltipRef.current)\n const anchorScrollParent = getScrollParent(activeAnchor)\n\n if (actualGlobalCloseEvents.scroll) {\n window.addEventListener('scroll', handleScrollResize)\n anchorScrollParent?.addEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.addEventListener('scroll', handleScrollResize)\n }\n let updateTooltipCleanup: null | (() => void) = null\n if (actualGlobalCloseEvents.resize) {\n window.addEventListener('resize', handleScrollResize)\n } else if (activeAnchor && tooltipRef.current) {\n updateTooltipCleanup = autoUpdate(\n activeAnchor as HTMLElement,\n tooltipRef.current as HTMLElement,\n updateTooltipPosition,\n {\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n },\n )\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return\n }\n handleShow(false)\n }\n if (actualGlobalCloseEvents.escape) {\n window.addEventListener('keydown', handleEsc)\n }\n\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.addEventListener('click', handleClickOutsideAnchors)\n }\n\n const enabledEvents: { event: string; listener: (event?: Event) => void }[] = []\n\n const handleClickOpenTooltipAnchor = (event?: Event) => {\n if (show && event?.target === activeAnchor) {\n /**\n * ignore clicking the anchor that was used to open the tooltip.\n * this avoids conflict with the click close event.\n */\n return\n }\n handleShowTooltip(event)\n }\n const handleClickCloseTooltipAnchor = (event?: Event) => {\n if (!show || event?.target !== activeAnchor) {\n /**\n * ignore clicking the anchor that was NOT used to open the tooltip.\n * this avoids closing the tooltip when clicking on a\n * new anchor with the tooltip already open.\n */\n return\n }\n handleHideTooltip()\n }\n\n const regularEvents = ['mouseenter', 'mouseleave', 'focus', 'blur']\n const clickEvents = ['click', 'dblclick', 'mousedown', 'mouseup']\n\n Object.entries(actualOpenEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleShowTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickOpenTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n Object.entries(actualCloseEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleHideTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickCloseTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n if (float) {\n enabledEvents.push({\n event: 'pointermove',\n listener: handlePointerMove,\n })\n }\n\n const handleMouseEnterTooltip = () => {\n hoveringTooltip.current = true\n }\n const handleMouseLeaveTooltip = () => {\n hoveringTooltip.current = false\n handleHideTooltip()\n }\n\n if (clickable && !hasClickEvent) {\n // used to keep the tooltip open when hovering content.\n // not needed if using click events.\n tooltipElement?.addEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipElement?.addEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n\n enabledEvents.forEach(({ event, listener }) => {\n anchorElements.forEach((anchor) => {\n anchor.addEventListener(event, listener)\n })\n })\n\n return () => {\n if (actualGlobalCloseEvents.scroll) {\n window.removeEventListener('scroll', handleScrollResize)\n anchorScrollParent?.removeEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.removeEventListener('scroll', handleScrollResize)\n }\n if (actualGlobalCloseEvents.resize) {\n window.removeEventListener('resize', handleScrollResize)\n } else {\n updateTooltipCleanup?.()\n }\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.removeEventListener('click', handleClickOutsideAnchors)\n }\n if (actualGlobalCloseEvents.escape) {\n window.removeEventListener('keydown', handleEsc)\n }\n if (clickable && !hasClickEvent) {\n tooltipElement?.removeEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipElement?.removeEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n enabledEvents.forEach(({ event, listener }) => {\n anchorElements.forEach((anchor) => {\n anchor.removeEventListener(event, listener)\n })\n })\n }\n /**\n * rendered is also a dependency to ensure anchor observers are re-registered\n * since `tooltipRef` becomes stale after removing/adding the tooltip to the DOM\n */\n }, [\n activeAnchor,\n anchorElements,\n clickable,\n closeEvents,\n delayHide,\n delayShow,\n float,\n globalCloseEvents,\n handleHideTooltipDelayed,\n handleShow,\n handleShowTooltipDelayed,\n handleTooltipPosition,\n imperativeModeOnly,\n openEvents,\n openOnClick,\n setActiveAnchor,\n show,\n updateTooltipPosition,\n ])\n\n useEffect(() => {\n /**\n * TODO(V6): break down observer callback for clarity\n * - `handleAddedAnchors()`\n * - `handleRemovedAnchors()`\n */\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect ?? ''\n if (!selector && id) {\n selector = `[data-tooltip-id='${id.replace(/'/g, \"\\\\'\")}']`\n }\n const documentObserverCallback: MutationCallback = (mutationList) => {\n const addedAnchors = new Set<HTMLElement>()\n const removedAnchors = new Set<HTMLElement>()\n mutationList.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-id') {\n const target = mutation.target as HTMLElement\n const newId = target.getAttribute('data-tooltip-id')\n if (newId === id) {\n addedAnchors.add(target)\n } else if (mutation.oldValue === id) {\n // data-tooltip-id has now been changed, so we need to remove this anchor\n removedAnchors.add(target)\n }\n }\n if (mutation.type !== 'childList') {\n return\n }\n const removedNodes = [...mutation.removedNodes].filter((node) => node.nodeType === 1)\n if (activeAnchor) {\n removedNodes.some((node) => {\n /**\n * TODO(V6)\n * - isn't `!activeAnchor.isConnected` better?\n * - maybe move to `handleDisconnectedAnchor()`\n */\n if (node?.contains?.(activeAnchor)) {\n setRendered(false)\n handleShow(false)\n setActiveAnchor(null)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n return true\n }\n return false\n })\n }\n if (!selector) {\n return\n }\n try {\n removedNodes.forEach((node) => {\n const element = node as HTMLElement\n if (element.matches(selector)) {\n // the element itself is an anchor\n removedAnchors.add(element)\n } else {\n /**\n * TODO(V6): do we care if an element which is an anchor,\n * has children which are also anchors?\n * (i.e. should we remove `else` and always do this)\n */\n // the element has children which are anchors\n element\n .querySelectorAll<HTMLElement>(selector)\n .forEach((innerNode) => removedAnchors.add(innerNode))\n }\n })\n } catch {\n /* c8 ignore start */\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n }\n /* c8 ignore end */\n }\n try {\n const addedNodes = [...mutation.addedNodes].filter((node) => node.nodeType === 1)\n addedNodes.forEach((node) => {\n const element = node as HTMLElement\n if (element.matches(selector)) {\n // the element itself is an anchor\n addedAnchors.add(element)\n } else {\n /**\n * TODO(V6): do we care if an element which is an anchor,\n * has children which are also anchors?\n * (i.e. should we remove `else` and always do this)\n */\n // the element has children which are anchors\n element\n .querySelectorAll<HTMLElement>(selector)\n .forEach((innerNode) => addedAnchors.add(innerNode))\n }\n })\n } catch {\n /* c8 ignore start */\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n }\n /* c8 ignore end */\n }\n })\n if (addedAnchors.size || removedAnchors.size) {\n setAnchorElements((anchors) => [\n ...anchors.filter((anchor) => !removedAnchors.has(anchor)),\n ...addedAnchors,\n ])\n }\n }\n const documentObserver = new MutationObserver(documentObserverCallback)\n // watch for anchor being removed from the DOM\n documentObserver.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-tooltip-id'],\n // to track the prev value if we need to remove anchor when data-tooltip-id gets changed\n attributeOldValue: true,\n })\n return () => {\n documentObserver.disconnect()\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect, activeAnchor, handleShow, setActiveAnchor])\n\n useEffect(() => {\n updateTooltipPosition()\n }, [updateTooltipPosition])\n\n useEffect(() => {\n if (!contentWrapperRef?.current) {\n return () => null\n }\n const contentObserver = new ResizeObserver(() => {\n setTimeout(() => updateTooltipPosition())\n })\n contentObserver.observe(contentWrapperRef.current)\n return () => {\n contentObserver.disconnect()\n }\n }, [content, contentWrapperRef, updateTooltipPosition])\n\n useEffect(() => {\n if (!activeAnchor || !anchorElements.includes(activeAnchor)) {\n /**\n * if there is no active anchor,\n * or if the current active anchor is not amongst the allowed ones,\n * reset it\n */\n setActiveAnchor(anchorElements[0] ?? null)\n }\n }, [anchorElements, activeAnchor, setActiveAnchor])\n\n useEffect(() => {\n if (defaultIsOpen) {\n handleShow(true)\n }\n return () => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n }, [defaultIsOpen, handleShow])\n\n useEffect(() => {\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect\n if (!selector && id) {\n selector = `[data-tooltip-id='${id.replace(/'/g, \"\\\\'\")}']`\n }\n if (!selector) {\n return\n }\n try {\n const anchors = Array.from(document.querySelectorAll<HTMLElement>(selector))\n setAnchorElements(anchors)\n } catch {\n // warning was already issued in the controller\n setAnchorElements([])\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect])\n\n useEffect(() => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n handleShowTooltipDelayed(delayShow)\n }\n }, [delayShow, handleShowTooltipDelayed])\n\n const actualContent = imperativeOptions?.content ?? content\n const canShow = show && Object.keys(computedPosition.tooltipStyles).length > 0\n\n useImperativeHandle(forwardRef, () => ({\n open: (options) => {\n if (options?.anchorSelect) {\n try {\n document.querySelector(options.anchorSelect)\n } catch {\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${options.anchorSelect}\" is not a valid CSS selector`)\n }\n return\n }\n }\n setImperativeOptions(options ?? null)\n if (options?.delay) {\n handleShowTooltipDelayed(options.delay)\n } else {\n handleShow(true)\n }\n },\n close: (options) => {\n if (options?.delay) {\n handleHideTooltipDelayed(options.delay)\n } else {\n handleShow(false)\n }\n },\n activeAnchor,\n place: computedPosition.place,\n isOpen: Boolean(rendered && !hidden && actualContent && canShow),\n }))\n\n return rendered && !hidden && actualContent ? (\n <WrapperElement\n id={id}\n role={role}\n className={clsx(\n 'react-tooltip',\n coreStyles['tooltip'],\n styles['tooltip'],\n styles[variant],\n className,\n `react-tooltip__place-${computedPosition.place}`,\n coreStyles[canShow ? 'show' : 'closing'],\n canShow ? 'react-tooltip__show' : 'react-tooltip__closing',\n positionStrategy === 'fixed' && coreStyles['fixed'],\n clickable && coreStyles['clickable'],\n )}\n onTransitionEnd={(event: TransitionEvent) => {\n if (missedTransitionTimerRef.current) {\n clearTimeout(missedTransitionTimerRef.current)\n }\n if (show || event.propertyName !== 'opacity') {\n return\n }\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n }}\n style={{\n ...externalStyles,\n ...computedPosition.tooltipStyles,\n opacity: opacity !== undefined && canShow ? opacity : undefined,\n }}\n ref={tooltipRef}\n >\n {actualContent}\n <WrapperElement\n className={clsx(\n 'react-tooltip-arrow',\n coreStyles['arrow'],\n styles['arrow'],\n classNameArrow,\n noArrow && coreStyles['noArrow'],\n )}\n style={{\n ...computedPosition.tooltipArrowStyles,\n background: arrowColor\n ? `linear-gradient(to right bottom, transparent 50%, ${arrowColor} 50%)`\n : undefined,\n }}\n ref={tooltipArrowRef}\n />\n </WrapperElement>\n ) : null\n}\n\nexport default Tooltip\n","import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { Tooltip } from 'components/Tooltip'\nimport type {\n PositionStrategy,\n PlacesType,\n VariantType,\n WrapperType,\n DataAttribute,\n ITooltip,\n TooltipRefProps,\n} from 'components/Tooltip/TooltipTypes'\nimport { cssSupports } from 'utils'\nimport clsx from 'clsx'\nimport type { ITooltipController } from './TooltipControllerTypes'\n\nconst TooltipController = React.forwardRef<TooltipRefProps, ITooltipController>(\n (\n {\n id,\n anchorSelect,\n content,\n render,\n className,\n classNameArrow,\n variant = 'dark',\n place = 'top',\n offset = 10,\n wrapper = 'div',\n children = null,\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly = false,\n style,\n position,\n isOpen,\n defaultIsOpen = false,\n disableStyleInjection = false,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n role = 'tooltip',\n }: ITooltipController,\n ref,\n ) => {\n const [tooltipContent, setTooltipContent] = useState(content)\n const [tooltipPlace, setTooltipPlace] = useState(place)\n const [tooltipVariant, setTooltipVariant] = useState(variant)\n const [tooltipOffset, setTooltipOffset] = useState(offset)\n const [tooltipDelayShow, setTooltipDelayShow] = useState(delayShow)\n const [tooltipDelayHide, setTooltipDelayHide] = useState(delayHide)\n const [tooltipFloat, setTooltipFloat] = useState(float)\n const [tooltipHidden, setTooltipHidden] = useState(hidden)\n const [tooltipWrapper, setTooltipWrapper] = useState<WrapperType>(wrapper)\n const [tooltipPositionStrategy, setTooltipPositionStrategy] = useState(positionStrategy)\n const [tooltipClassName, setTooltipClassName] = useState<string | null>(null)\n const [activeAnchor, setActiveAnchor] = useState<HTMLElement | null>(null)\n const styleInjectionRef = useRef(disableStyleInjection)\n\n const getDataAttributesFromAnchorElement = (elementReference: HTMLElement) => {\n const dataAttributes = elementReference?.getAttributeNames().reduce(\n (acc, name) => {\n if (name.startsWith('data-tooltip-')) {\n const parsedAttribute = name.replace(/^data-tooltip-/, '') as DataAttribute\n acc[parsedAttribute] = elementReference?.getAttribute(name) ?? null\n }\n return acc\n },\n {} as Record<DataAttribute, string | null>,\n )\n\n return dataAttributes\n }\n\n const applyAllDataAttributesFromAnchorElement = useCallback(\n (dataAttributes: Record<string, string | null>) => {\n const handleDataAttributes: Record<DataAttribute, (value: string | null) => void> = {\n place: (value) => {\n setTooltipPlace((value as PlacesType) ?? place)\n },\n content: (value) => {\n setTooltipContent(value ?? content)\n },\n variant: (value) => {\n setTooltipVariant((value as VariantType) ?? variant)\n },\n offset: (value) => {\n setTooltipOffset(value === null ? offset : Number(value))\n },\n wrapper: (value) => {\n setTooltipWrapper((value as WrapperType) ?? wrapper)\n },\n 'position-strategy': (value) => {\n setTooltipPositionStrategy((value as PositionStrategy) ?? positionStrategy)\n },\n 'delay-show': (value) => {\n setTooltipDelayShow(value === null ? delayShow : Number(value))\n },\n 'delay-hide': (value) => {\n setTooltipDelayHide(value === null ? delayHide : Number(value))\n },\n float: (value) => {\n setTooltipFloat(value === null ? float : value === 'true')\n },\n hidden: (value) => {\n setTooltipHidden(value === null ? hidden : value === 'true')\n },\n 'class-name': (value) => {\n setTooltipClassName(value)\n },\n }\n // reset unset data attributes to default values\n // without this, data attributes from the last active anchor will still be used\n Object.values(handleDataAttributes).forEach((handler) => handler(null))\n Object.entries(dataAttributes).forEach(([key, value]) => {\n handleDataAttributes[key as DataAttribute]?.(value)\n })\n },\n [\n content,\n delayHide,\n delayShow,\n float,\n hidden,\n offset,\n place,\n positionStrategy,\n variant,\n wrapper,\n ],\n )\n\n useEffect(() => {\n setTooltipContent(content)\n }, [content])\n\n useEffect(() => {\n setTooltipPlace(place)\n }, [place])\n\n useEffect(() => {\n setTooltipVariant(variant)\n }, [variant])\n\n useEffect(() => {\n setTooltipOffset(offset)\n }, [offset])\n\n useEffect(() => {\n setTooltipDelayShow(delayShow)\n }, [delayShow])\n\n useEffect(() => {\n setTooltipDelayHide(delayHide)\n }, [delayHide])\n\n useEffect(() => {\n setTooltipFloat(float)\n }, [float])\n\n useEffect(() => {\n setTooltipHidden(hidden)\n }, [hidden])\n\n useEffect(() => {\n setTooltipPositionStrategy(positionStrategy)\n }, [positionStrategy])\n\n useEffect(() => {\n if (styleInjectionRef.current === disableStyleInjection) {\n return\n }\n /* c8 ignore start */\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not change `disableStyleInjection` dynamically.')\n }\n /* c8 ignore end */\n }, [disableStyleInjection])\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n window.dispatchEvent(\n new CustomEvent('react-tooltip-inject-styles', {\n detail: {\n disableCore: disableStyleInjection === 'core',\n disableBase: disableStyleInjection,\n },\n }),\n )\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n const observerCallback: MutationCallback = (mutationList) => {\n mutationList.forEach((mutation) => {\n if (\n !activeAnchor ||\n mutation.type !== 'attributes' ||\n !mutation.attributeName?.startsWith('data-tooltip-')\n ) {\n return\n }\n // make sure to get all set attributes, since all unset attributes are reset\n const dataAttributes = getDataAttributesFromAnchorElement(activeAnchor)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n })\n }\n\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(observerCallback)\n\n // do not check for subtree and childrens, we only want to know attribute changes\n // to stay watching `data-attributes-*` from anchor element\n const observerConfig = { attributes: true, childList: false, subtree: false }\n\n if (activeAnchor) {\n const dataAttributes = getDataAttributesFromAnchorElement(activeAnchor)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n // Start observing the target node for configured mutations\n observer.observe(activeAnchor, observerConfig)\n }\n\n return () => {\n // Remove the observer when the tooltip is destroyed\n observer.disconnect()\n }\n }, [activeAnchor, anchorSelect, applyAllDataAttributesFromAnchorElement])\n\n useEffect(() => {\n /* c8 ignore start */\n if (process.env.NODE_ENV === 'production') {\n return\n }\n /* c8 ignore end */\n if (style?.border) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.border`. Use `border` prop instead.')\n }\n if (border && !cssSupports('border', `${border}`)) {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${border}\" is not a valid \\`border\\`.`)\n }\n if (style?.opacity) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.')\n }\n if (opacity && !cssSupports('opacity', `${opacity}`)) {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${opacity}\" is not a valid \\`opacity\\`.`)\n }\n }, [border, opacity, style?.border, style?.opacity])\n\n /**\n * content priority: children < render or content < html\n * children should be lower priority so that it can be used as the \"default\" content\n */\n let renderedContent = children\n const contentWrapperRef = useRef<HTMLDivElement>(null)\n if (render) {\n const actualContent =\n activeAnchor?.getAttribute('data-tooltip-content') || tooltipContent || null\n const rendered = render({ content: actualContent, activeAnchor }) as React.ReactNode\n renderedContent = rendered ? (\n <div ref={contentWrapperRef} className=\"react-tooltip-content-wrapper\">\n {rendered}\n </div>\n ) : null\n } else if (tooltipContent) {\n renderedContent = tooltipContent\n }\n\n const props: ITooltip = {\n forwardRef: ref,\n id,\n anchorSelect,\n className: clsx(className, tooltipClassName),\n classNameArrow,\n content: renderedContent,\n contentWrapperRef,\n place: tooltipPlace,\n variant: tooltipVariant,\n offset: tooltipOffset,\n wrapper: tooltipWrapper,\n openOnClick,\n positionStrategy: tooltipPositionStrategy,\n middlewares,\n delayShow: tooltipDelayShow,\n delayHide: tooltipDelayHide,\n float: tooltipFloat,\n hidden: tooltipHidden,\n noArrow,\n clickable,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style,\n position,\n isOpen,\n defaultIsOpen,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n activeAnchor,\n setActiveAnchor,\n role,\n }\n\n return <Tooltip {...props} />\n },\n)\n\nexport default TooltipController\n","import './tokens.css'\n\nimport { injectStyle } from 'utils/handle-style'\n\nimport type {\n DataAttribute,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n IPosition,\n Middleware,\n TooltipRefProps,\n} from './components/Tooltip/TooltipTypes'\nimport type { ITooltipController } from './components/TooltipController/TooltipControllerTypes'\n\n// those content will be replaced in build time with the `react-tooltip.css` builded content\nconst TooltipCoreStyles = 'react-tooltip-core-css-placeholder'\nconst TooltipStyles = 'react-tooltip-css-placeholder'\n\nif (typeof window !== 'undefined') {\n window.addEventListener('react-tooltip-inject-styles', ((\n event: CustomEvent<{ disableCore: boolean; disableBase: boolean }>,\n ) => {\n if (!event.detail.disableCore) {\n injectStyle({ css: TooltipCoreStyles, type: 'core' })\n }\n if (!event.detail.disableBase) {\n injectStyle({ css: TooltipStyles, type: 'base' })\n }\n }) as EventListener)\n}\n\nexport { TooltipController as Tooltip } from './components/TooltipController'\nexport type {\n DataAttribute,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n ITooltipController as ITooltip,\n IPosition,\n Middleware,\n TooltipRefProps,\n}\n"],"names":["offset","flip","shift","arrow","computePosition","useLayoutEffect","useEffect","useRef","useState","useCallback","autoUpdate","useImperativeHandle"],"mappings":"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"}
1
+ {"version":3,"file":"react-tooltip.cjs","sources":["../src/utils/handle-style.ts","../src/utils/compute-tooltip-position.ts","../src/utils/css-time-to-ms.ts","../src/utils/debounce.ts","../src/utils/deep-equal.ts","../src/utils/get-scroll-parent.ts","../src/utils/use-isomorphic-layout-effect.ts","../src/utils/clear-timeout-ref.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/TooltipController/TooltipController.tsx","../src/index.tsx"],"sourcesContent":["// This is the ID for the core styles of ReactTooltip\nconst REACT_TOOLTIP_CORE_STYLES_ID = 'react-tooltip-core-styles'\n// This is the ID for the visual styles of ReactTooltip\nconst REACT_TOOLTIP_BASE_STYLES_ID = 'react-tooltip-base-styles'\n\nconst injected = {\n core: false,\n base: false,\n}\n\nfunction injectStyle({\n css,\n id = REACT_TOOLTIP_BASE_STYLES_ID,\n type = 'base',\n ref,\n}: {\n css: string\n id?: string\n type?: 'core' | 'base'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref?: any\n}) {\n if (!css || typeof document === 'undefined' || injected[type]) {\n return\n }\n\n if (\n type === 'core' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_CORE_STYLES\n ) {\n return\n }\n\n if (\n type !== 'base' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_BASE_STYLES\n ) {\n return\n }\n\n if (type === 'core') {\n // eslint-disable-next-line no-param-reassign\n id = REACT_TOOLTIP_CORE_STYLES_ID\n }\n\n if (!ref) {\n // eslint-disable-next-line no-param-reassign\n ref = {}\n }\n const { insertAt } = ref\n\n if (document.getElementById(id)) {\n // this could happen in cases the tooltip is imported by multiple js modules\n return\n }\n\n const head = document.head || document.getElementsByTagName('head')[0]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const style: any = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n\n injected[type] = true\n}\n\nexport { injectStyle }\n","import { computePosition, offset, shift, arrow, flip } from '@floating-ui/dom'\nimport type { IComputePositionArgs } from './compute-tooltip-position-types'\n\nconst computeTooltipPosition = async ({\n elementReference = null,\n tooltipReference = null,\n tooltipArrowReference = null,\n place = 'top',\n offset: offsetValue = 10,\n strategy = 'absolute',\n middlewares = [\n offset(Number(offsetValue)),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift({ padding: 5 }),\n ],\n border,\n}: IComputePositionArgs) => {\n if (!elementReference) {\n // elementReference can be null or undefined and we will not compute the position\n // eslint-disable-next-line no-console\n // console.error('The reference element for tooltip was not defined: ', elementReference)\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n if (tooltipReference === null) {\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n const middleware = middlewares\n\n if (tooltipArrowReference) {\n middleware.push(arrow({ element: tooltipArrowReference as HTMLElement, padding: 5 }))\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: place,\n strategy,\n middleware,\n }).then(({ x, y, placement, middlewareData }) => {\n const styles = { left: `${x}px`, top: `${y}px`, border }\n\n /* c8 ignore start */\n const { x: arrowX, y: arrowY } = middlewareData.arrow ?? { x: 0, y: 0 }\n\n const staticSide =\n {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]] ?? 'bottom'\n /* c8 ignore end */\n\n const borderSide = border && {\n borderBottom: border,\n borderRight: border,\n }\n\n let borderWidth = 0\n if (border) {\n const match = `${border}`.match(/(\\d+)px/)\n if (match?.[1]) {\n borderWidth = Number(match[1])\n } else {\n /**\n * this means `border` was set without `width`,\n * or non-px value (such as `medium`, `thick`, ...)\n */\n borderWidth = 1\n }\n }\n\n /* c8 ignore start */\n const arrowStyle = {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n ...borderSide,\n [staticSide]: `-${4 + borderWidth}px`,\n }\n /* c8 ignore end */\n\n return { tooltipStyles: styles, tooltipArrowStyles: arrowStyle, place: placement }\n })\n }\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: 'bottom',\n strategy,\n middleware,\n }).then(({ x, y, placement }) => {\n const styles = { left: `${x}px`, top: `${y}px` }\n\n return { tooltipStyles: styles, tooltipArrowStyles: {}, place: placement }\n })\n}\n\nexport default computeTooltipPosition\n","const cssTimeToMs = (time: string): number => {\n const match = time.match(/^([\\d.]+)(m?s)$/)\n if (!match) {\n return 0\n }\n const [, amount, unit] = match\n return Number(amount) * (unit === 'ms' ? 1 : 1000)\n}\n\nexport default cssTimeToMs\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This function debounce the received function\n * @param { function } \tfunc\t\t\t\tFunction to be debounced\n * @param { number } \t\twait\t\t\t\tTime to wait before execut the function\n * @param { boolean } \timmediate\t\tParam to define if the function will be executed immediately\n */\nconst debounce = <T, A extends any[]>(\n func: (...args: A) => void,\n wait?: number,\n immediate?: boolean,\n) => {\n let timeout: NodeJS.Timeout | null = null\n\n const debounced = function debounced(this: T, ...args: A): void {\n const later = () => {\n timeout = null\n if (!immediate) {\n func.apply(this, args)\n }\n }\n\n if (immediate && !timeout) {\n /**\n * there's no need to clear the timeout\n * since we expect it to resolve and set `timeout = null`\n */\n func.apply(this, args)\n timeout = setTimeout(later, wait)\n }\n\n if (!immediate) {\n if (timeout) {\n clearTimeout(timeout)\n }\n timeout = setTimeout(later, wait)\n }\n }\n\n debounced.cancel = () => {\n /* c8 ignore start */\n if (!timeout) {\n return\n }\n /* c8 ignore end */\n clearTimeout(timeout)\n timeout = null\n }\n\n return debounced\n}\n\nexport default debounce\n","const isObject = (object: unknown): object is Record<string, unknown> => {\n return object !== null && !Array.isArray(object) && typeof object === 'object'\n}\n\nconst deepEqual = (object1: unknown, object2: unknown): boolean => {\n if (object1 === object2) {\n return true\n }\n\n if (Array.isArray(object1) && Array.isArray(object2)) {\n if (object1.length !== object2.length) {\n return false\n }\n return object1.every((val, index) => deepEqual(val, object2[index]))\n }\n\n if (Array.isArray(object1) !== Array.isArray(object2)) {\n return false\n }\n\n if (!isObject(object1) || !isObject(object2)) {\n return object1 === object2\n }\n\n const keys1 = Object.keys(object1)\n const keys2 = Object.keys(object2)\n if (keys1.length !== keys2.length) {\n return false\n }\n\n return keys1.every((key) => deepEqual(object1[key], object2[key]))\n}\n\nexport default deepEqual\n","const isScrollable = (node: Element) => {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return false\n }\n const style = getComputedStyle(node)\n return ['overflow', 'overflow-x', 'overflow-y'].some((propertyName) => {\n const value = style.getPropertyValue(propertyName)\n return value === 'auto' || value === 'scroll'\n })\n}\n\nconst getScrollParent = (node: Element | null) => {\n if (!node) {\n return null\n }\n let currentParent = node.parentElement\n while (currentParent) {\n if (isScrollable(currentParent)) {\n return currentParent\n }\n currentParent = currentParent.parentElement\n }\n return document.scrollingElement || document.documentElement\n}\n\nexport default getScrollParent\n","import { useLayoutEffect, useEffect } from 'react'\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","const clearTimeoutRef = (ref: React.MutableRefObject<NodeJS.Timeout | null>) => {\n if (ref.current) {\n clearTimeout(ref.current)\n // eslint-disable-next-line no-param-reassign\n ref.current = null\n }\n}\n\nexport default clearTimeoutRef\n","import React, { useEffect, useState, useRef, useCallback, useImperativeHandle } from 'react'\nimport { autoUpdate } from '@floating-ui/dom'\nimport clsx from 'clsx'\nimport {\n debounce,\n deepEqual,\n useIsomorphicLayoutEffect,\n getScrollParent,\n computeTooltipPosition,\n cssTimeToMs,\n clearTimeoutRef,\n} from 'utils'\nimport type { IComputedPosition } from 'utils'\nimport coreStyles from './core-styles.module.css'\nimport styles from './styles.module.css'\nimport type {\n AnchorCloseEvents,\n AnchorOpenEvents,\n GlobalCloseEvents,\n IPosition,\n ITooltip,\n TooltipImperativeOpenOptions,\n} from './TooltipTypes'\n\nconst Tooltip = ({\n // props\n forwardRef,\n id,\n className,\n classNameArrow,\n variant = 'dark',\n anchorSelect,\n place = 'top',\n offset = 10,\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n wrapper: WrapperElement,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style: externalStyles,\n position,\n afterShow,\n afterHide,\n // props handled by controller\n content,\n contentWrapperRef,\n isOpen,\n defaultIsOpen = false,\n setIsOpen,\n activeAnchor,\n setActiveAnchor,\n border,\n opacity,\n arrowColor,\n role = 'tooltip',\n}: ITooltip) => {\n const tooltipRef = useRef<HTMLElement>(null)\n const tooltipArrowRef = useRef<HTMLElement>(null)\n const tooltipShowDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const tooltipHideDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const missedTransitionTimerRef = useRef<NodeJS.Timeout | null>(null)\n const [computedPosition, setComputedPosition] = useState<IComputedPosition>({\n tooltipStyles: {},\n tooltipArrowStyles: {},\n place,\n })\n const [show, setShow] = useState(false)\n const [rendered, setRendered] = useState(false)\n const [imperativeOptions, setImperativeOptions] = useState<TooltipImperativeOpenOptions | null>(\n null,\n )\n const wasShowing = useRef(false)\n const lastFloatPosition = useRef<IPosition | null>(null)\n const hoveringTooltip = useRef(false)\n const [anchorElements, setAnchorElements] = useState<HTMLElement[]>([])\n const mounted = useRef(false)\n\n /**\n * useLayoutEffect runs before useEffect,\n * but should be used carefully because of caveats\n * https://beta.reactjs.org/reference/react/useLayoutEffect#caveats\n */\n useIsomorphicLayoutEffect(() => {\n mounted.current = true\n return () => {\n mounted.current = false\n }\n }, [])\n\n const handleShow = useCallback(\n (value: boolean) => {\n if (!mounted.current) {\n return\n }\n if (value) {\n setRendered(true)\n }\n /**\n * wait for the component to render and calculate position\n * before actually showing\n */\n setTimeout(() => {\n if (!mounted.current) {\n return\n }\n setIsOpen?.(value)\n if (isOpen === undefined) {\n setShow(value)\n }\n }, 10)\n },\n [isOpen, setIsOpen],\n )\n\n /**\n * this replicates the effect from `handleShow()`\n * when `isOpen` is changed from outside\n */\n useEffect(() => {\n if (isOpen === undefined) {\n return () => null\n }\n if (isOpen) {\n setRendered(true)\n }\n const timeout = setTimeout(() => {\n setShow(isOpen)\n }, 10)\n return () => {\n clearTimeout(timeout)\n }\n }, [isOpen])\n\n useEffect(() => {\n if (show === wasShowing.current) {\n return\n }\n clearTimeoutRef(missedTransitionTimerRef)\n wasShowing.current = show\n if (show) {\n afterShow?.()\n } else {\n /**\n * see `onTransitionEnd` on tooltip wrapper\n */\n const style = getComputedStyle(document.body)\n const transitionShowDelay = cssTimeToMs(style.getPropertyValue('--rt-transition-show-delay'))\n missedTransitionTimerRef.current = setTimeout(() => {\n /**\n * if the tooltip switches from `show === true` to `show === false` too fast\n * the transition never runs, so `onTransitionEnd` callback never gets fired\n */\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n // +25ms just to make sure `onTransitionEnd` (if it gets fired) has time to run\n }, transitionShowDelay + 25)\n }\n }, [afterHide, afterShow, show])\n\n const handleComputedPosition = (newComputedPosition: IComputedPosition) => {\n setComputedPosition((oldComputedPosition) =>\n deepEqual(oldComputedPosition, newComputedPosition)\n ? oldComputedPosition\n : newComputedPosition,\n )\n }\n\n const handleShowTooltipDelayed = useCallback(\n (delay = delayShow) => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n\n if (rendered) {\n // if the tooltip is already rendered, ignore delay\n handleShow(true)\n return\n }\n\n tooltipShowDelayTimerRef.current = setTimeout(() => {\n handleShow(true)\n }, delay)\n },\n [delayShow, handleShow, rendered],\n )\n\n const handleHideTooltipDelayed = useCallback(\n (delay = delayHide) => {\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n\n tooltipHideDelayTimerRef.current = setTimeout(() => {\n if (hoveringTooltip.current) {\n return\n }\n handleShow(false)\n }, delay)\n },\n [delayHide, handleShow],\n )\n\n const handleTooltipPosition = useCallback(\n ({ x, y }: IPosition) => {\n const virtualElement = {\n getBoundingClientRect() {\n return {\n x,\n y,\n width: 0,\n height: 0,\n top: y,\n left: x,\n right: x,\n bottom: y,\n }\n },\n } as Element\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: virtualElement,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n handleComputedPosition(computedStylesData)\n })\n },\n [imperativeOptions?.place, place, offset, positionStrategy, middlewares, border],\n )\n\n const updateTooltipPosition = useCallback(() => {\n const actualPosition = imperativeOptions?.position ?? position\n if (actualPosition) {\n // if `position` is set, override regular and `float` positioning\n handleTooltipPosition(actualPosition)\n return\n }\n\n if (float) {\n if (lastFloatPosition.current) {\n /*\n Without this, changes to `content`, `place`, `offset`, ..., will only\n trigger a position calculation after a `mousemove` event.\n\n To see why this matters, comment this line, run `yarn dev` and click the\n \"Hover me!\" anchor.\n */\n handleTooltipPosition(lastFloatPosition.current)\n }\n // if `float` is set, override regular positioning\n return\n }\n\n if (!activeAnchor?.isConnected) {\n return\n }\n\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: activeAnchor,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n if (!mounted.current) {\n // invalidate computed positions after remount\n return\n }\n handleComputedPosition(computedStylesData)\n })\n }, [\n imperativeOptions?.position,\n imperativeOptions?.place,\n position,\n float,\n activeAnchor,\n place,\n offset,\n positionStrategy,\n middlewares,\n border,\n handleTooltipPosition,\n ])\n\n useEffect(() => {\n /**\n * TODO(V6): break this effect down into callbacks for clarity\n * - `handleKeyboardEvents()`\n * - `handleMouseEvents()`\n * - `handleGlobalCloseEvents()`\n * - `handleAnchorEvents()`\n * - ...\n */\n\n const handlePointerMove = (event?: Event) => {\n if (!event) {\n return\n }\n const mouseEvent = event as MouseEvent\n const mousePosition = {\n x: mouseEvent.clientX,\n y: mouseEvent.clientY,\n }\n handleTooltipPosition(mousePosition)\n lastFloatPosition.current = mousePosition\n }\n\n const handleClickOutsideAnchors = (event: MouseEvent) => {\n if (!show) {\n return\n }\n const target = event.target as HTMLElement\n if (!target.isConnected) {\n return\n }\n if (tooltipRef.current?.contains(target)) {\n return\n }\n if (anchorElements.some((anchor) => anchor?.contains(target))) {\n return\n }\n handleShow(false)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n const handleShowTooltip = (event?: Event) => {\n if (!event) {\n return\n }\n const target = (event.currentTarget ?? event.target) as HTMLElement | null\n if (!target?.isConnected) {\n /**\n * this happens when the target is removed from the DOM\n * at the same time the tooltip gets triggered\n */\n setActiveAnchor(null)\n return\n }\n if (delayShow) {\n handleShowTooltipDelayed()\n } else {\n handleShow(true)\n }\n setActiveAnchor(target)\n\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n\n const handleHideTooltip = () => {\n if (clickable) {\n // allow time for the mouse to reach the tooltip, in case there's a gap\n handleHideTooltipDelayed(delayHide || 100)\n } else if (delayHide) {\n handleHideTooltipDelayed()\n } else {\n handleShow(false)\n }\n\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n // debounce handler to prevent call twice when\n // mouse enter and focus events being triggered toggether\n const internalDebouncedHandleShowTooltip = debounce(handleShowTooltip, 50, true)\n const internalDebouncedHandleHideTooltip = debounce(handleHideTooltip, 50, true)\n // If either of the functions is called while the other is still debounced,\n // reset the timeout. Otherwise if there is a sub-50ms (leave A, enter B, leave B)\n // sequence of events, the tooltip will stay open because the hide debounce\n // from leave A prevented the leave B event from calling it, leaving the\n // tooltip visible.\n const debouncedHandleShowTooltip = (e?: Event) => {\n internalDebouncedHandleHideTooltip.cancel()\n internalDebouncedHandleShowTooltip(e)\n }\n const debouncedHandleHideTooltip = () => {\n internalDebouncedHandleShowTooltip.cancel()\n internalDebouncedHandleHideTooltip()\n }\n\n const handleScrollResize = () => {\n handleShow(false)\n }\n\n const hasClickEvent =\n openOnClick || openEvents?.click || openEvents?.dblclick || openEvents?.mousedown\n const actualOpenEvents: AnchorOpenEvents = openEvents\n ? { ...openEvents }\n : {\n mouseenter: true,\n focus: true,\n click: false,\n dblclick: false,\n mousedown: false,\n }\n if (!openEvents && openOnClick) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: true,\n })\n }\n const actualCloseEvents: AnchorCloseEvents = closeEvents\n ? { ...closeEvents }\n : {\n mouseleave: true,\n blur: true,\n click: false,\n dblclick: false,\n mouseup: false,\n }\n if (!closeEvents && openOnClick) {\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n })\n }\n const actualGlobalCloseEvents: GlobalCloseEvents = globalCloseEvents\n ? { ...globalCloseEvents }\n : {\n escape: false,\n scroll: false,\n resize: false,\n clickOutsideAnchor: hasClickEvent || false,\n }\n\n if (imperativeModeOnly) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: false,\n dblclick: false,\n mousedown: false,\n })\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n click: false,\n dblclick: false,\n mouseup: false,\n })\n Object.assign(actualGlobalCloseEvents, {\n escape: false,\n scroll: false,\n resize: false,\n clickOutsideAnchor: false,\n })\n }\n\n const tooltipElement = tooltipRef.current\n const tooltipScrollParent = getScrollParent(tooltipRef.current)\n const anchorScrollParent = getScrollParent(activeAnchor)\n\n if (actualGlobalCloseEvents.scroll) {\n window.addEventListener('scroll', handleScrollResize)\n anchorScrollParent?.addEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.addEventListener('scroll', handleScrollResize)\n }\n let updateTooltipCleanup: null | (() => void) = null\n if (actualGlobalCloseEvents.resize) {\n window.addEventListener('resize', handleScrollResize)\n } else if (activeAnchor && tooltipRef.current) {\n updateTooltipCleanup = autoUpdate(\n activeAnchor as HTMLElement,\n tooltipRef.current as HTMLElement,\n updateTooltipPosition,\n {\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n },\n )\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return\n }\n handleShow(false)\n }\n if (actualGlobalCloseEvents.escape) {\n window.addEventListener('keydown', handleEsc)\n }\n\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.addEventListener('click', handleClickOutsideAnchors)\n }\n\n const enabledEvents: { event: string; listener: (event?: Event) => void }[] = []\n\n const handleClickOpenTooltipAnchor = (event?: Event) => {\n if (show && event?.target === activeAnchor) {\n /**\n * ignore clicking the anchor that was used to open the tooltip.\n * this avoids conflict with the click close event.\n */\n return\n }\n handleShowTooltip(event)\n }\n const handleClickCloseTooltipAnchor = (event?: Event) => {\n if (!show || event?.target !== activeAnchor) {\n /**\n * ignore clicking the anchor that was NOT used to open the tooltip.\n * this avoids closing the tooltip when clicking on a\n * new anchor with the tooltip already open.\n */\n return\n }\n handleHideTooltip()\n }\n\n const regularEvents = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'focus', 'blur']\n const clickEvents = ['click', 'dblclick', 'mousedown', 'mouseup']\n\n Object.entries(actualOpenEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleShowTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickOpenTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n Object.entries(actualCloseEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleHideTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickCloseTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n if (float) {\n enabledEvents.push({\n event: 'pointermove',\n listener: handlePointerMove,\n })\n }\n\n const handleMouseEnterTooltip = () => {\n hoveringTooltip.current = true\n }\n const handleMouseLeaveTooltip = () => {\n hoveringTooltip.current = false\n handleHideTooltip()\n }\n\n if (clickable && !hasClickEvent) {\n // used to keep the tooltip open when hovering content.\n // not needed if using click events.\n tooltipElement?.addEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipElement?.addEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n\n enabledEvents.forEach(({ event, listener }) => {\n anchorElements.forEach((anchor) => {\n anchor.addEventListener(event, listener)\n })\n })\n\n return () => {\n if (actualGlobalCloseEvents.scroll) {\n window.removeEventListener('scroll', handleScrollResize)\n anchorScrollParent?.removeEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.removeEventListener('scroll', handleScrollResize)\n }\n if (actualGlobalCloseEvents.resize) {\n window.removeEventListener('resize', handleScrollResize)\n } else {\n updateTooltipCleanup?.()\n }\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.removeEventListener('click', handleClickOutsideAnchors)\n }\n if (actualGlobalCloseEvents.escape) {\n window.removeEventListener('keydown', handleEsc)\n }\n if (clickable && !hasClickEvent) {\n tooltipElement?.removeEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipElement?.removeEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n enabledEvents.forEach(({ event, listener }) => {\n anchorElements.forEach((anchor) => {\n anchor.removeEventListener(event, listener)\n })\n })\n }\n /**\n * rendered is also a dependency to ensure anchor observers are re-registered\n * since `tooltipRef` becomes stale after removing/adding the tooltip to the DOM\n */\n }, [\n activeAnchor,\n anchorElements,\n clickable,\n closeEvents,\n delayHide,\n delayShow,\n float,\n globalCloseEvents,\n handleHideTooltipDelayed,\n handleShow,\n handleShowTooltipDelayed,\n handleTooltipPosition,\n imperativeModeOnly,\n openEvents,\n openOnClick,\n setActiveAnchor,\n show,\n updateTooltipPosition,\n ])\n\n useEffect(() => {\n /**\n * TODO(V6): break down observer callback for clarity\n * - `handleAddedAnchors()`\n * - `handleRemovedAnchors()`\n */\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect ?? ''\n if (!selector && id) {\n selector = `[data-tooltip-id='${id.replace(/'/g, \"\\\\'\")}']`\n }\n const documentObserverCallback: MutationCallback = (mutationList) => {\n const addedAnchors = new Set<HTMLElement>()\n const removedAnchors = new Set<HTMLElement>()\n mutationList.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-id') {\n const target = mutation.target as HTMLElement\n const newId = target.getAttribute('data-tooltip-id')\n if (newId === id) {\n addedAnchors.add(target)\n } else if (mutation.oldValue === id) {\n // data-tooltip-id has now been changed, so we need to remove this anchor\n removedAnchors.add(target)\n }\n }\n if (mutation.type !== 'childList') {\n return\n }\n const removedNodes = [...mutation.removedNodes].filter((node) => node.nodeType === 1)\n if (activeAnchor) {\n removedNodes.some((node) => {\n /**\n * TODO(V6)\n * - isn't `!activeAnchor.isConnected` better?\n * - maybe move to `handleDisconnectedAnchor()`\n */\n if (node?.contains?.(activeAnchor)) {\n setRendered(false)\n handleShow(false)\n setActiveAnchor(null)\n clearTimeoutRef(tooltipShowDelayTimerRef)\n clearTimeoutRef(tooltipHideDelayTimerRef)\n return true\n }\n return false\n })\n }\n if (!selector) {\n return\n }\n try {\n removedNodes.forEach((node) => {\n const element = node as HTMLElement\n if (element.matches(selector)) {\n // the element itself is an anchor\n removedAnchors.add(element)\n } else {\n /**\n * TODO(V6): do we care if an element which is an anchor,\n * has children which are also anchors?\n * (i.e. should we remove `else` and always do this)\n */\n // the element has children which are anchors\n element\n .querySelectorAll<HTMLElement>(selector)\n .forEach((innerNode) => removedAnchors.add(innerNode))\n }\n })\n } catch {\n /* c8 ignore start */\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n }\n /* c8 ignore end */\n }\n try {\n const addedNodes = [...mutation.addedNodes].filter((node) => node.nodeType === 1)\n addedNodes.forEach((node) => {\n const element = node as HTMLElement\n if (element.matches(selector)) {\n // the element itself is an anchor\n addedAnchors.add(element)\n } else {\n /**\n * TODO(V6): do we care if an element which is an anchor,\n * has children which are also anchors?\n * (i.e. should we remove `else` and always do this)\n */\n // the element has children which are anchors\n element\n .querySelectorAll<HTMLElement>(selector)\n .forEach((innerNode) => addedAnchors.add(innerNode))\n }\n })\n } catch {\n /* c8 ignore start */\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n }\n /* c8 ignore end */\n }\n })\n if (addedAnchors.size || removedAnchors.size) {\n setAnchorElements((anchors) => [\n ...anchors.filter((anchor) => !removedAnchors.has(anchor)),\n ...addedAnchors,\n ])\n }\n }\n const documentObserver = new MutationObserver(documentObserverCallback)\n // watch for anchor being removed from the DOM\n documentObserver.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-tooltip-id'],\n // to track the prev value if we need to remove anchor when data-tooltip-id gets changed\n attributeOldValue: true,\n })\n return () => {\n documentObserver.disconnect()\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect, activeAnchor, handleShow, setActiveAnchor])\n\n useEffect(() => {\n updateTooltipPosition()\n }, [updateTooltipPosition])\n\n useEffect(() => {\n if (!contentWrapperRef?.current) {\n return () => null\n }\n const contentObserver = new ResizeObserver(() => {\n setTimeout(() => updateTooltipPosition())\n })\n contentObserver.observe(contentWrapperRef.current)\n return () => {\n contentObserver.disconnect()\n }\n }, [content, contentWrapperRef, updateTooltipPosition])\n\n useEffect(() => {\n if (!activeAnchor || !anchorElements.includes(activeAnchor)) {\n /**\n * if there is no active anchor,\n * or if the current active anchor is not amongst the allowed ones,\n * reset it\n */\n setActiveAnchor(anchorElements[0] ?? null)\n }\n }, [anchorElements, activeAnchor, setActiveAnchor])\n\n useEffect(() => {\n if (defaultIsOpen) {\n handleShow(true)\n }\n return () => {\n clearTimeoutRef(tooltipShowDelayTimerRef)\n clearTimeoutRef(tooltipHideDelayTimerRef)\n }\n }, [defaultIsOpen, handleShow])\n\n useEffect(() => {\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect\n if (!selector && id) {\n selector = `[data-tooltip-id='${id.replace(/'/g, \"\\\\'\")}']`\n }\n if (!selector) {\n return\n }\n try {\n const anchors = Array.from(document.querySelectorAll<HTMLElement>(selector))\n setAnchorElements(anchors)\n } catch {\n // warning was already issued in the controller\n setAnchorElements([])\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect])\n\n useEffect(() => {\n if (tooltipShowDelayTimerRef.current) {\n /**\n * if the delay changes while the tooltip is waiting to show,\n * reset the timer with the new delay\n */\n clearTimeoutRef(tooltipShowDelayTimerRef)\n handleShowTooltipDelayed(delayShow)\n }\n }, [delayShow, handleShowTooltipDelayed])\n\n const actualContent = imperativeOptions?.content ?? content\n const canShow = show && Object.keys(computedPosition.tooltipStyles).length > 0\n\n useImperativeHandle(forwardRef, () => ({\n open: (options) => {\n if (options?.anchorSelect) {\n try {\n document.querySelector(options.anchorSelect)\n } catch {\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${options.anchorSelect}\" is not a valid CSS selector`)\n }\n return\n }\n }\n setImperativeOptions(options ?? null)\n if (options?.delay) {\n handleShowTooltipDelayed(options.delay)\n } else {\n handleShow(true)\n }\n },\n close: (options) => {\n if (options?.delay) {\n handleHideTooltipDelayed(options.delay)\n } else {\n handleShow(false)\n }\n },\n activeAnchor,\n place: computedPosition.place,\n isOpen: Boolean(rendered && !hidden && actualContent && canShow),\n }))\n\n return rendered && !hidden && actualContent ? (\n <WrapperElement\n id={id}\n role={role}\n className={clsx(\n 'react-tooltip',\n coreStyles['tooltip'],\n styles['tooltip'],\n styles[variant],\n className,\n `react-tooltip__place-${computedPosition.place}`,\n coreStyles[canShow ? 'show' : 'closing'],\n canShow ? 'react-tooltip__show' : 'react-tooltip__closing',\n positionStrategy === 'fixed' && coreStyles['fixed'],\n clickable && coreStyles['clickable'],\n )}\n onTransitionEnd={(event: TransitionEvent) => {\n clearTimeoutRef(missedTransitionTimerRef)\n if (show || event.propertyName !== 'opacity') {\n return\n }\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n }}\n style={{\n ...externalStyles,\n ...computedPosition.tooltipStyles,\n opacity: opacity !== undefined && canShow ? opacity : undefined,\n }}\n ref={tooltipRef}\n >\n {actualContent}\n <WrapperElement\n className={clsx(\n 'react-tooltip-arrow',\n coreStyles['arrow'],\n styles['arrow'],\n classNameArrow,\n noArrow && coreStyles['noArrow'],\n )}\n style={{\n ...computedPosition.tooltipArrowStyles,\n background: arrowColor\n ? `linear-gradient(to right bottom, transparent 50%, ${arrowColor} 50%)`\n : undefined,\n }}\n ref={tooltipArrowRef}\n />\n </WrapperElement>\n ) : null\n}\n\nexport default Tooltip\n","import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { Tooltip } from 'components/Tooltip'\nimport type {\n PositionStrategy,\n PlacesType,\n VariantType,\n WrapperType,\n DataAttribute,\n ITooltip,\n TooltipRefProps,\n} from 'components/Tooltip/TooltipTypes'\nimport clsx from 'clsx'\nimport type { ITooltipController } from './TooltipControllerTypes'\n\nconst TooltipController = React.forwardRef<TooltipRefProps, ITooltipController>(\n (\n {\n id,\n anchorSelect,\n content,\n render,\n className,\n classNameArrow,\n variant = 'dark',\n place = 'top',\n offset = 10,\n wrapper = 'div',\n children = null,\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly = false,\n style,\n position,\n isOpen,\n defaultIsOpen = false,\n disableStyleInjection = false,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n role = 'tooltip',\n }: ITooltipController,\n ref,\n ) => {\n const [tooltipContent, setTooltipContent] = useState(content)\n const [tooltipPlace, setTooltipPlace] = useState(place)\n const [tooltipVariant, setTooltipVariant] = useState(variant)\n const [tooltipOffset, setTooltipOffset] = useState(offset)\n const [tooltipDelayShow, setTooltipDelayShow] = useState(delayShow)\n const [tooltipDelayHide, setTooltipDelayHide] = useState(delayHide)\n const [tooltipFloat, setTooltipFloat] = useState(float)\n const [tooltipHidden, setTooltipHidden] = useState(hidden)\n const [tooltipWrapper, setTooltipWrapper] = useState<WrapperType>(wrapper)\n const [tooltipPositionStrategy, setTooltipPositionStrategy] = useState(positionStrategy)\n const [tooltipClassName, setTooltipClassName] = useState<string | null>(null)\n const [activeAnchor, setActiveAnchor] = useState<HTMLElement | null>(null)\n const styleInjectionRef = useRef(disableStyleInjection)\n\n const getDataAttributesFromAnchorElement = (elementReference: HTMLElement) => {\n const dataAttributes = elementReference?.getAttributeNames().reduce(\n (acc, name) => {\n if (name.startsWith('data-tooltip-')) {\n const parsedAttribute = name.replace(/^data-tooltip-/, '') as DataAttribute\n acc[parsedAttribute] = elementReference?.getAttribute(name) ?? null\n }\n return acc\n },\n {} as Record<DataAttribute, string | null>,\n )\n\n return dataAttributes\n }\n\n const applyAllDataAttributesFromAnchorElement = useCallback(\n (dataAttributes: Record<string, string | null>) => {\n const handleDataAttributes: Record<DataAttribute, (value: string | null) => void> = {\n place: (value) => {\n setTooltipPlace((value as PlacesType) ?? place)\n },\n content: (value) => {\n setTooltipContent(value ?? content)\n },\n variant: (value) => {\n setTooltipVariant((value as VariantType) ?? variant)\n },\n offset: (value) => {\n setTooltipOffset(value === null ? offset : Number(value))\n },\n wrapper: (value) => {\n setTooltipWrapper((value as WrapperType) ?? wrapper)\n },\n 'position-strategy': (value) => {\n setTooltipPositionStrategy((value as PositionStrategy) ?? positionStrategy)\n },\n 'delay-show': (value) => {\n setTooltipDelayShow(value === null ? delayShow : Number(value))\n },\n 'delay-hide': (value) => {\n setTooltipDelayHide(value === null ? delayHide : Number(value))\n },\n float: (value) => {\n setTooltipFloat(value === null ? float : value === 'true')\n },\n hidden: (value) => {\n setTooltipHidden(value === null ? hidden : value === 'true')\n },\n 'class-name': (value) => {\n setTooltipClassName(value)\n },\n }\n // reset unset data attributes to default values\n // without this, data attributes from the last active anchor will still be used\n Object.values(handleDataAttributes).forEach((handler) => handler(null))\n Object.entries(dataAttributes).forEach(([key, value]) => {\n handleDataAttributes[key as DataAttribute]?.(value)\n })\n },\n [\n content,\n delayHide,\n delayShow,\n float,\n hidden,\n offset,\n place,\n positionStrategy,\n variant,\n wrapper,\n ],\n )\n\n useEffect(() => {\n setTooltipContent(content)\n }, [content])\n\n useEffect(() => {\n setTooltipPlace(place)\n }, [place])\n\n useEffect(() => {\n setTooltipVariant(variant)\n }, [variant])\n\n useEffect(() => {\n setTooltipOffset(offset)\n }, [offset])\n\n useEffect(() => {\n setTooltipDelayShow(delayShow)\n }, [delayShow])\n\n useEffect(() => {\n setTooltipDelayHide(delayHide)\n }, [delayHide])\n\n useEffect(() => {\n setTooltipFloat(float)\n }, [float])\n\n useEffect(() => {\n setTooltipHidden(hidden)\n }, [hidden])\n\n useEffect(() => {\n setTooltipPositionStrategy(positionStrategy)\n }, [positionStrategy])\n\n useEffect(() => {\n if (styleInjectionRef.current === disableStyleInjection) {\n return\n }\n /* c8 ignore start */\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not change `disableStyleInjection` dynamically.')\n }\n /* c8 ignore end */\n }, [disableStyleInjection])\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n window.dispatchEvent(\n new CustomEvent('react-tooltip-inject-styles', {\n detail: {\n disableCore: disableStyleInjection === 'core',\n disableBase: disableStyleInjection,\n },\n }),\n )\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n const observerCallback: MutationCallback = (mutationList) => {\n mutationList.forEach((mutation) => {\n if (\n !activeAnchor ||\n mutation.type !== 'attributes' ||\n !mutation.attributeName?.startsWith('data-tooltip-')\n ) {\n return\n }\n // make sure to get all set attributes, since all unset attributes are reset\n const dataAttributes = getDataAttributesFromAnchorElement(activeAnchor)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n })\n }\n\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(observerCallback)\n\n // do not check for subtree and childrens, we only want to know attribute changes\n // to stay watching `data-attributes-*` from anchor element\n const observerConfig = { attributes: true, childList: false, subtree: false }\n\n if (activeAnchor) {\n const dataAttributes = getDataAttributesFromAnchorElement(activeAnchor)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n // Start observing the target node for configured mutations\n observer.observe(activeAnchor, observerConfig)\n }\n\n return () => {\n // Remove the observer when the tooltip is destroyed\n observer.disconnect()\n }\n }, [activeAnchor, anchorSelect, applyAllDataAttributesFromAnchorElement])\n\n useEffect(() => {\n /* c8 ignore start */\n if (process.env.NODE_ENV === 'production') {\n return\n }\n /* c8 ignore end */\n if (style?.border) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.border`. Use `border` prop instead.')\n }\n if (style?.opacity) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.')\n }\n }, [border, opacity, style?.border, style?.opacity])\n\n /**\n * content priority: children < render or content < html\n * children should be lower priority so that it can be used as the \"default\" content\n */\n let renderedContent = children\n const contentWrapperRef = useRef<HTMLDivElement>(null)\n if (render) {\n const actualContent =\n activeAnchor?.getAttribute('data-tooltip-content') || tooltipContent || null\n const rendered = render({ content: actualContent, activeAnchor }) as React.ReactNode\n renderedContent = rendered ? (\n <div ref={contentWrapperRef} className=\"react-tooltip-content-wrapper\">\n {rendered}\n </div>\n ) : null\n } else if (tooltipContent) {\n renderedContent = tooltipContent\n }\n\n const props: ITooltip = {\n forwardRef: ref,\n id,\n anchorSelect,\n className: clsx(className, tooltipClassName),\n classNameArrow,\n content: renderedContent,\n contentWrapperRef,\n place: tooltipPlace,\n variant: tooltipVariant,\n offset: tooltipOffset,\n wrapper: tooltipWrapper,\n openOnClick,\n positionStrategy: tooltipPositionStrategy,\n middlewares,\n delayShow: tooltipDelayShow,\n delayHide: tooltipDelayHide,\n float: tooltipFloat,\n hidden: tooltipHidden,\n noArrow,\n clickable,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style,\n position,\n isOpen,\n defaultIsOpen,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n activeAnchor,\n setActiveAnchor,\n role,\n }\n\n return <Tooltip {...props} />\n },\n)\n\nexport default TooltipController\n","import './tokens.css'\n\nimport { injectStyle } from 'utils/handle-style'\n\nimport type {\n DataAttribute,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n IPosition,\n Middleware,\n TooltipRefProps,\n} from './components/Tooltip/TooltipTypes'\nimport type { ITooltipController } from './components/TooltipController/TooltipControllerTypes'\n\n// those content will be replaced in build time with the `react-tooltip.css` builded content\nconst TooltipCoreStyles = 'react-tooltip-core-css-placeholder'\nconst TooltipStyles = 'react-tooltip-css-placeholder'\n\nif (typeof window !== 'undefined') {\n window.addEventListener('react-tooltip-inject-styles', ((\n event: CustomEvent<{ disableCore: boolean; disableBase: boolean }>,\n ) => {\n if (!event.detail.disableCore) {\n injectStyle({ css: TooltipCoreStyles, type: 'core' })\n }\n if (!event.detail.disableBase) {\n injectStyle({ css: TooltipStyles, type: 'base' })\n }\n }) as EventListener)\n}\n\nexport { TooltipController as Tooltip } from './components/TooltipController'\nexport type {\n DataAttribute,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n ITooltipController as ITooltip,\n IPosition,\n Middleware,\n TooltipRefProps,\n}\n"],"names":["offset","flip","shift","arrow","computePosition","useLayoutEffect","useEffect","useRef","useState","useCallback","autoUpdate","useImperativeHandle"],"mappings":"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"}
@@ -82,6 +82,7 @@ interface TooltipRefProps {
82
82
  type AnchorOpenEvents = {
83
83
  mouseenter?: boolean
84
84
  focus?: boolean
85
+ mouseover?: boolean
85
86
  click?: boolean
86
87
  dblclick?: boolean
87
88
  mousedown?: boolean
@@ -89,6 +90,7 @@ type AnchorOpenEvents = {
89
90
  type AnchorCloseEvents = {
90
91
  mouseleave?: boolean
91
92
  blur?: boolean
93
+ mouseout?: boolean
92
94
  click?: boolean
93
95
  dblclick?: boolean
94
96
  mouseup?: boolean