{"version":3,"file":"index.all.js","sources":["../src/browser.ts","../src/props.ts","../src/ponyfills.ts","../src/constants.ts","../src/bindGlobalEventListeners.ts","../src/reference.ts","../src/utils.ts","../src/popper.ts","../src/createTippy.ts","../src/group.ts","../src/index.ts","../src/css.ts","../build/all.js"],"sourcesContent":["export const isBrowser =\n typeof window !== 'undefined' && typeof document !== 'undefined'\n\nconst ua = isBrowser ? navigator.userAgent : ''\n\nexport const isIE = /MSIE |Trident\\//.test(ua)\nexport const isUCBrowser = /UCBrowser\\//.test(ua)\nexport const isIOS =\n isBrowser &&\n /iPhone|iPad|iPod/.test(navigator.platform) &&\n !(window as any).MSStream\n","import { Props } from './types'\n\nexport const defaultProps: Props = {\n a11y: true,\n allowHTML: true,\n animateFill: true,\n animation: 'shift-away',\n appendTo: () => document.body,\n aria: 'describedby',\n arrow: false,\n arrowType: 'sharp',\n boundary: 'scrollParent',\n content: '',\n delay: 0,\n distance: 10,\n duration: [325, 275],\n flip: true,\n flipBehavior: 'flip',\n flipOnUpdate: false,\n followCursor: false,\n hideOnClick: true,\n ignoreAttributes: false,\n inertia: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n lazy: true,\n maxWidth: 350,\n multiple: false,\n offset: 0,\n onHidden() {},\n onHide() {},\n onMount() {},\n onShow() {},\n onShown() {},\n onTrigger() {},\n placement: 'top',\n popperOptions: {},\n role: 'tooltip',\n showOnInit: false,\n size: 'regular',\n sticky: false,\n target: '',\n theme: 'dark',\n touch: true,\n touchHold: false,\n trigger: 'mouseenter focus',\n triggerTarget: null,\n updateDuration: 0,\n wait: null,\n zIndex: 9999,\n}\n\n/**\n * If the set() method encounters one of these, the popperInstance must be\n * recreated\n */\nexport const POPPER_INSTANCE_DEPENDENCIES: Array = [\n 'arrow',\n 'arrowType',\n 'boundary',\n 'distance',\n 'flip',\n 'flipBehavior',\n 'flipOnUpdate',\n 'offset',\n 'placement',\n 'popperOptions',\n]\n","import { isBrowser } from './browser'\n\nconst elementProto: Record = isBrowser ? Element.prototype : {}\n\nexport const matches =\n elementProto.matches ||\n elementProto.matchesSelector ||\n elementProto.webkitMatchesSelector ||\n elementProto.mozMatchesSelector ||\n elementProto.msMatchesSelector\n\n/**\n * Ponyfill for Array.from - converts iterable values to an array\n */\nexport function arrayFrom(value: ArrayLike): any[] {\n return [].slice.call(value)\n}\n\n/**\n * Ponyfill for Element.prototype.closest\n */\nexport function closest(element: Element, selector: string): Element | null {\n return closestCallback(element, (el: Element) => matches.call(el, selector))\n}\n\n/**\n * Works like Element.prototype.closest, but uses a callback instead\n */\nexport function closestCallback(\n element: Element | null,\n callback: Function,\n): Element | null {\n while (element) {\n if (callback(element)) {\n return element\n }\n\n element = element.parentElement\n }\n\n return null\n}\n","// Passive event listener config\nexport const PASSIVE = { passive: true }\n\n// Popper `preventOverflow` padding\nexport const PADDING = 4\n\n// Popper attributes\n// In Popper v2 these will be `data-*` instead of `x-*` to adhere to HTML5 spec\nexport const PLACEMENT_ATTRIBUTE = 'x-placement'\nexport const OUT_OF_BOUNDARIES_ATTRIBUTE = 'x-out-of-boundaries'\n\n// Classes\nexport const IOS_CLASS = `__NAMESPACE_PREFIX__-iOS`\nexport const ACTIVE_CLASS = `__NAMESPACE_PREFIX__-active`\nexport const POPPER_CLASS = `__NAMESPACE_PREFIX__-popper`\nexport const TOOLTIP_CLASS = `__NAMESPACE_PREFIX__-tooltip`\nexport const CONTENT_CLASS = `__NAMESPACE_PREFIX__-content`\nexport const BACKDROP_CLASS = `__NAMESPACE_PREFIX__-backdrop`\nexport const ARROW_CLASS = `__NAMESPACE_PREFIX__-arrow`\nexport const ROUND_ARROW_CLASS = `__NAMESPACE_PREFIX__-roundarrow`\n\n// Selectors\nexport const POPPER_SELECTOR = `.${POPPER_CLASS}`\nexport const TOOLTIP_SELECTOR = `.${TOOLTIP_CLASS}`\nexport const CONTENT_SELECTOR = `.${CONTENT_CLASS}`\nexport const BACKDROP_SELECTOR = `.${BACKDROP_CLASS}`\nexport const ARROW_SELECTOR = `.${ARROW_CLASS}`\nexport const ROUND_ARROW_SELECTOR = `.${ROUND_ARROW_CLASS}`\n","import { isIOS } from './browser'\nimport { PASSIVE, IOS_CLASS } from './constants'\n\nexport let isUsingTouch = false\n\nexport function onDocumentTouch(): void {\n if (isUsingTouch) {\n return\n }\n\n isUsingTouch = true\n\n if (isIOS) {\n document.body.classList.add(IOS_CLASS)\n }\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove)\n }\n}\n\nlet lastMouseMoveTime = 0\nexport function onDocumentMouseMove(): void {\n const now = performance.now()\n\n // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n if (now - lastMouseMoveTime < 20) {\n isUsingTouch = false\n\n document.removeEventListener('mousemove', onDocumentMouseMove)\n\n if (!isIOS) {\n document.body.classList.remove(IOS_CLASS)\n }\n }\n\n lastMouseMoveTime = now\n}\n\nexport function onWindowBlur(): void {\n const { activeElement }: { activeElement: any } = document\n\n if (activeElement && activeElement.blur && activeElement._tippy) {\n activeElement.blur()\n }\n}\n\n/**\n * Adds the needed global event listeners\n */\nexport default function bindGlobalEventListeners(): void {\n document.addEventListener('touchstart', onDocumentTouch, PASSIVE)\n window.addEventListener('blur', onWindowBlur)\n}\n","import { Props, VirtualReference, ReferenceElement } from './types'\nimport { defaultProps } from './props'\n\nconst keys = Object.keys(defaultProps)\n\n/**\n * Returns an object of optional props from data-tippy-* attributes\n */\nexport function getDataAttributeOptions(\n reference: ReferenceElement | VirtualReference,\n): Props {\n return keys.reduce((acc: any, key) => {\n const valueAsString = (\n reference.getAttribute(`data-tippy-${key}`) || ''\n ).trim()\n\n if (!valueAsString) {\n return acc\n }\n\n if (key === 'content') {\n acc[key] = valueAsString\n } else {\n try {\n acc[key] = JSON.parse(valueAsString)\n } catch (e) {\n acc[key] = valueAsString\n }\n }\n\n return acc\n }, {})\n}\n\n/**\n * Polyfills the virtual reference (plain object) with Element.prototype props\n * Mutating because DOM elements are mutated, adds `_tippy` property\n */\nexport function polyfillElementPrototypeProperties(\n virtualReference: VirtualReference & Record,\n): void {\n const polyfills: Record = {\n isVirtual: true,\n attributes: virtualReference.attributes || {},\n contains() {},\n setAttribute(key: string, value: any) {\n virtualReference.attributes[key] = value\n },\n getAttribute(key: string) {\n return virtualReference.attributes[key]\n },\n removeAttribute(key: string) {\n delete virtualReference.attributes[key]\n },\n hasAttribute(key: string) {\n return key in virtualReference.attributes\n },\n addEventListener() {},\n removeEventListener() {},\n classList: {\n classNames: {},\n add(key: string) {\n virtualReference.classList.classNames[key] = true\n },\n remove(key: string) {\n delete virtualReference.classList.classNames[key]\n },\n contains(key: string) {\n return key in virtualReference.classList.classNames\n },\n },\n }\n\n for (const key in polyfills) {\n virtualReference[key] = polyfills[key]\n }\n}\n","import {\n Options,\n Props,\n ReferenceElement,\n Targets,\n VirtualReference,\n} from './types'\nimport { arrayFrom, matches } from './ponyfills'\nimport { isUCBrowser } from './browser'\nimport { getDataAttributeOptions } from './reference'\nimport { POPPER_SELECTOR } from './constants'\n\n/**\n * Determines if a value is a \"bare\" virtual element (before mutations done\n * by `polyfillElementPrototypeProperties()`). JSDOM elements show up as\n * [object Object], we can check if the value is \"element-like\" if it has\n * `addEventListener`\n */\nexport function isBareVirtualElement(value: any): boolean {\n return (\n {}.toString.call(value) === '[object Object]' && !value.addEventListener\n )\n}\n\n/**\n * Determines if the value is a reference element\n */\nexport function isReferenceElement(value: any): value is ReferenceElement {\n return !!value._tippy && !matches.call(value, POPPER_SELECTOR)\n}\n\n/**\n * Safe .hasOwnProperty check, for prototype-less objects\n */\nexport function hasOwnProperty(obj: object, key: string): boolean {\n return {}.hasOwnProperty.call(obj, key)\n}\n\n/**\n * Returns an array of elements based on the value\n */\nexport function getArrayOfElements(value: Targets): Element[] {\n if (isSingular(value)) {\n // TODO: VirtualReference is not compatible to type Element\n return [value as Element]\n }\n\n if (value instanceof NodeList) {\n return arrayFrom(value)\n }\n\n if (Array.isArray(value)) {\n return value\n }\n\n try {\n return arrayFrom(document.querySelectorAll(value))\n } catch (e) {\n return []\n }\n}\n\n/**\n * Returns a value at a given index depending on if it's an array or number\n */\nexport function getValue(value: any, index: number, defaultValue: any): any {\n if (Array.isArray(value)) {\n const v = value[index]\n return v == null ? defaultValue : v\n }\n\n return value\n}\n\n/**\n * Debounce utility. To avoid bloating bundle size, we're only passing 1\n * argument here, a more generic function would pass all arguments. Only\n * `onMouseMove` uses this which takes the event object for now.\n */\nexport function debounce(\n fn: (arg: T) => void,\n ms: number,\n): (arg: T) => void {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn\n }\n\n let timeout: any\n\n return (arg): void => {\n clearTimeout(timeout)\n timeout = setTimeout((): void => {\n fn(arg)\n }, ms)\n }\n}\n\n/**\n * Prevents errors from being thrown while accessing nested modifier objects\n * in `popperOptions`\n */\nexport function getModifier(obj: any, key: string): any {\n return obj && obj.modifiers && obj.modifiers[key]\n}\n\n/**\n * Determines if an array or string includes a value\n */\nexport function includes(a: any[] | string, b: any): boolean {\n return a.indexOf(b) > -1\n}\n\n/**\n * Determines if the value is a real element\n */\nexport function isRealElement(value: any): value is Element {\n return value instanceof Element\n}\n\n/**\n * Determines if the value is singular-like\n */\nexport function isSingular(value: any): value is VirtualReference | Element {\n return !!(value && hasOwnProperty(value, 'isVirtual')) || isRealElement(value)\n}\n\n/**\n * Firefox extensions don't allow setting .innerHTML directly, this will trick it\n */\nexport function innerHTML(): 'innerHTML' {\n return 'innerHTML'\n}\n\n/**\n * Evaluates a function if one, or returns the value\n */\nexport function invokeWithArgsOrReturn(value: any, args: any[]): any {\n return typeof value === 'function' ? value.apply(null, args) : value\n}\n\n/**\n * Sets a popperInstance `flip` modifier's enabled state\n */\nexport function setFlipModifierEnabled(modifiers: any[], value: any): void {\n modifiers.filter(m => m.name === 'flip')[0].enabled = value\n}\n\n/**\n * Determines if an element can receive focus\n * Always returns true for virtual objects\n */\nexport function canReceiveFocus(element: Element | VirtualReference): boolean {\n return isRealElement(element)\n ? matches.call(\n element,\n 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]',\n ) && !element.hasAttribute('disabled')\n : true\n}\n\n/**\n * Returns a new `div` element\n */\nexport function div(): HTMLDivElement {\n return document.createElement('div')\n}\n\n/**\n * Applies a transition duration to a list of elements\n */\nexport function setTransitionDuration(\n els: (HTMLDivElement | null)[],\n value: number,\n): void {\n els.forEach(el => {\n if (el) {\n el.style.transitionDuration = `${value}ms`\n }\n })\n}\n\n/**\n * Sets the visibility state to elements so they can begin to transition\n */\nexport function setVisibilityState(\n els: (HTMLDivElement | null)[],\n state: 'visible' | 'hidden',\n): void {\n els.forEach(el => {\n if (el) {\n el.setAttribute('data-state', state)\n }\n })\n}\n\n/**\n * Evaluates the props object by merging data attributes and\n * disabling conflicting options where necessary\n */\nexport function evaluateProps(\n reference: ReferenceElement | VirtualReference,\n props: Props,\n): Props {\n const out = {\n ...props,\n content: invokeWithArgsOrReturn(props.content, [reference]),\n ...(props.ignoreAttributes ? {} : getDataAttributeOptions(reference)),\n }\n\n if (out.arrow || isUCBrowser) {\n out.animateFill = false\n }\n\n return out\n}\n\n/**\n * Validates an object of options with the valid default props object\n */\nexport function validateOptions(options: Options, defaultProps: Props): void {\n Object.keys(options).forEach(option => {\n if (!hasOwnProperty(defaultProps, option)) {\n throw new Error(`[tippy]: \\`${option}\\` is not a valid option`)\n }\n })\n}\n","import {\n PopperElement,\n Props,\n PopperChildren,\n HideAllOptions,\n BasicPlacement,\n} from './types'\nimport { arrayFrom } from './ponyfills'\nimport { innerHTML, div, isReferenceElement, isRealElement } from './utils'\nimport { isUCBrowser } from './browser'\nimport {\n POPPER_CLASS,\n TOOLTIP_CLASS,\n BACKDROP_CLASS,\n CONTENT_CLASS,\n ARROW_CLASS,\n ROUND_ARROW_CLASS,\n POPPER_SELECTOR,\n TOOLTIP_SELECTOR,\n BACKDROP_SELECTOR,\n CONTENT_SELECTOR,\n ARROW_SELECTOR,\n ROUND_ARROW_SELECTOR,\n PLACEMENT_ATTRIBUTE,\n} from './constants'\n\n/**\n * Sets the innerHTML of an element\n */\nexport function setInnerHTML(element: Element, html: string | Element): void {\n element[innerHTML()] = isRealElement(html) ? html[innerHTML()] : html\n}\n\n/**\n * Sets the content of a tooltip\n */\nexport function setContent(\n contentEl: PopperChildren['content'],\n props: Props,\n): void {\n if (isRealElement(props.content)) {\n setInnerHTML(contentEl, '')\n contentEl.appendChild(props.content)\n } else if (typeof props.content !== 'function') {\n const key: 'innerHTML' | 'textContent' = props.allowHTML\n ? 'innerHTML'\n : 'textContent'\n contentEl[key] = props.content\n }\n}\n\n/**\n * Returns the child elements of a popper element\n */\nexport function getChildren(popper: PopperElement): PopperChildren {\n return {\n tooltip: popper.querySelector(TOOLTIP_SELECTOR) as HTMLDivElement,\n backdrop: popper.querySelector(BACKDROP_SELECTOR),\n content: popper.querySelector(CONTENT_SELECTOR) as HTMLDivElement,\n arrow:\n popper.querySelector(ARROW_SELECTOR) ||\n popper.querySelector(ROUND_ARROW_SELECTOR),\n }\n}\n\n/**\n * Adds `data-inertia` attribute\n */\nexport function addInertia(tooltip: PopperChildren['tooltip']): void {\n tooltip.setAttribute('data-inertia', '')\n}\n\n/**\n * Removes `data-inertia` attribute\n */\nexport function removeInertia(tooltip: PopperChildren['tooltip']): void {\n tooltip.removeAttribute('data-inertia')\n}\n\n/**\n * Creates an arrow element and returns it\n */\nexport function createArrowElement(\n arrowType: Props['arrowType'],\n): HTMLDivElement {\n const arrow = div()\n if (arrowType === 'round') {\n arrow.className = ROUND_ARROW_CLASS\n setInnerHTML(\n arrow,\n '',\n )\n } else {\n arrow.className = ARROW_CLASS\n }\n return arrow\n}\n\n/**\n * Creates a backdrop element and returns it\n */\nexport function createBackdropElement(): HTMLDivElement {\n const backdrop = div()\n backdrop.className = BACKDROP_CLASS\n backdrop.setAttribute('data-state', 'hidden')\n return backdrop\n}\n\n/**\n * Adds interactive-related attributes\n */\nexport function addInteractive(\n popper: PopperElement,\n tooltip: PopperChildren['tooltip'],\n): void {\n popper.setAttribute('tabindex', '-1')\n tooltip.setAttribute('data-interactive', '')\n}\n\n/**\n * Removes interactive-related attributes\n */\nexport function removeInteractive(\n popper: PopperElement,\n tooltip: PopperChildren['tooltip'],\n): void {\n popper.removeAttribute('tabindex')\n tooltip.removeAttribute('data-interactive')\n}\n\n/**\n * Add/remove transitionend listener from tooltip\n */\nexport function updateTransitionEndListener(\n tooltip: PopperChildren['tooltip'],\n action: 'add' | 'remove',\n listener: (event: TransitionEvent) => void,\n): void {\n // UC Browser hasn't adopted the `transitionend` event despite supporting\n // unprefixed transitions...\n const eventName =\n isUCBrowser && document.body.style.webkitTransition !== undefined\n ? 'webkitTransitionEnd'\n : 'transitionend'\n tooltip[\n (action + 'EventListener') as 'addEventListener' | 'removeEventListener'\n ](eventName, listener as EventListener)\n}\n\n/**\n * Returns the popper's placement, ignoring shifting (top-start, etc)\n */\nexport function getBasicPlacement(popper: PopperElement): BasicPlacement {\n const fullPlacement = popper.getAttribute(PLACEMENT_ATTRIBUTE)\n return (fullPlacement ? fullPlacement.split('-')[0] : '') as BasicPlacement\n}\n\n/**\n * Triggers reflow\n */\nexport function reflow(popper: PopperElement): void {\n void popper.offsetHeight\n}\n\n/**\n * Adds/removes theme from tooltip's classList\n */\nexport function updateTheme(\n tooltip: PopperChildren['tooltip'],\n action: 'add' | 'remove',\n theme: Props['theme'],\n): void {\n theme.split(' ').forEach(themeName => {\n tooltip.classList[action](themeName + '-theme')\n })\n}\n\n/**\n * Constructs the popper element and returns it\n */\nexport function createPopperElement(id: number, props: Props): PopperElement {\n const popper = div()\n popper.className = POPPER_CLASS\n popper.id = `__NAMESPACE_PREFIX__-${id}`\n popper.style.zIndex = '' + props.zIndex\n popper.style.position = 'absolute'\n popper.style.top = '0'\n popper.style.left = '0'\n\n if (props.role) {\n popper.setAttribute('role', props.role)\n }\n\n const tooltip = div()\n tooltip.className = TOOLTIP_CLASS\n tooltip.style.maxWidth =\n props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : '')\n tooltip.setAttribute('data-size', props.size)\n tooltip.setAttribute('data-animation', props.animation)\n tooltip.setAttribute('data-state', 'hidden')\n updateTheme(tooltip, 'add', props.theme)\n\n const content = div()\n content.className = CONTENT_CLASS\n content.setAttribute('data-state', 'hidden')\n\n if (props.interactive) {\n addInteractive(popper, tooltip)\n }\n\n if (props.arrow) {\n tooltip.appendChild(createArrowElement(props.arrowType))\n }\n\n if (props.animateFill) {\n tooltip.appendChild(createBackdropElement())\n tooltip.setAttribute('data-animatefill', '')\n }\n\n if (props.inertia) {\n addInertia(tooltip)\n }\n\n setContent(content, props)\n\n tooltip.appendChild(content)\n popper.appendChild(tooltip)\n\n return popper\n}\n\n/**\n * Updates the popper element based on the new props\n */\nexport function updatePopperElement(\n popper: PopperElement,\n prevProps: Props,\n nextProps: Props,\n): void {\n const { tooltip, content, backdrop, arrow } = getChildren(popper)\n\n popper.style.zIndex = '' + nextProps.zIndex\n tooltip.setAttribute('data-size', nextProps.size)\n tooltip.setAttribute('data-animation', nextProps.animation)\n tooltip.style.maxWidth =\n nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : '')\n\n if (nextProps.role) {\n popper.setAttribute('role', nextProps.role)\n } else {\n popper.removeAttribute('role')\n }\n\n if (prevProps.content !== nextProps.content) {\n setContent(content, nextProps)\n }\n\n // animateFill\n if (!prevProps.animateFill && nextProps.animateFill) {\n tooltip.appendChild(createBackdropElement())\n tooltip.setAttribute('data-animatefill', '')\n } else if (prevProps.animateFill && !nextProps.animateFill) {\n tooltip.removeChild(backdrop!)\n tooltip.removeAttribute('data-animatefill')\n }\n\n // arrow\n if (!prevProps.arrow && nextProps.arrow) {\n tooltip.appendChild(createArrowElement(nextProps.arrowType))\n } else if (prevProps.arrow && !nextProps.arrow) {\n tooltip.removeChild(arrow!)\n }\n\n // arrowType\n if (\n prevProps.arrow &&\n nextProps.arrow &&\n prevProps.arrowType !== nextProps.arrowType\n ) {\n tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow!)\n }\n\n // interactive\n if (!prevProps.interactive && nextProps.interactive) {\n addInteractive(popper, tooltip)\n } else if (prevProps.interactive && !nextProps.interactive) {\n removeInteractive(popper, tooltip)\n }\n\n // inertia\n if (!prevProps.inertia && nextProps.inertia) {\n addInertia(tooltip)\n } else if (prevProps.inertia && !nextProps.inertia) {\n removeInertia(tooltip)\n }\n\n // theme\n if (prevProps.theme !== nextProps.theme) {\n updateTheme(tooltip, 'remove', prevProps.theme)\n updateTheme(tooltip, 'add', nextProps.theme)\n }\n}\n\n/**\n * Hides all visible poppers on the document\n */\nexport function hideAll({\n exclude: excludedReferenceOrInstance,\n duration,\n}: HideAllOptions = {}): void {\n arrayFrom(document.querySelectorAll(POPPER_SELECTOR)).forEach(\n (popper: PopperElement) => {\n const instance = popper._tippy\n\n if (instance) {\n let isExcluded = false\n if (excludedReferenceOrInstance) {\n isExcluded = isReferenceElement(excludedReferenceOrInstance)\n ? instance.reference === excludedReferenceOrInstance\n : popper === excludedReferenceOrInstance.popper\n }\n\n if (!isExcluded) {\n instance.hide(duration)\n }\n }\n },\n )\n}\n\n/**\n * Determines if the mouse cursor is outside of the popper's interactive border\n * region\n */\nexport function isCursorOutsideInteractiveBorder(\n popperPlacement: BasicPlacement,\n popperRect: ClientRect,\n event: MouseEvent,\n props: Props,\n): boolean {\n if (!popperPlacement) {\n return true\n }\n\n const { clientX: x, clientY: y } = event\n const { interactiveBorder, distance } = props\n\n const exceedsTop =\n popperRect.top - y >\n (popperPlacement === 'top'\n ? interactiveBorder + distance\n : interactiveBorder)\n\n const exceedsBottom =\n y - popperRect.bottom >\n (popperPlacement === 'bottom'\n ? interactiveBorder + distance\n : interactiveBorder)\n\n const exceedsLeft =\n popperRect.left - x >\n (popperPlacement === 'left'\n ? interactiveBorder + distance\n : interactiveBorder)\n\n const exceedsRight =\n x - popperRect.right >\n (popperPlacement === 'right'\n ? interactiveBorder + distance\n : interactiveBorder)\n\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight\n}\n\n/**\n * Returns the distance offset, taking into account the default offset due to\n * the transform: translate() rule (10px) in CSS\n */\nexport function getOffsetDistanceInPx(distance: number): string {\n return -(distance - 10) + 'px'\n}\n","import Popper from 'popper.js'\nimport {\n ReferenceElement,\n PopperInstance,\n Props,\n Options,\n Instance,\n Content,\n Listener,\n VirtualReference,\n} from './types'\nimport { isIE } from './browser'\nimport { closest, closestCallback, arrayFrom } from './ponyfills'\nimport {\n PASSIVE,\n PADDING,\n PLACEMENT_ATTRIBUTE,\n OUT_OF_BOUNDARIES_ATTRIBUTE,\n ACTIVE_CLASS,\n POPPER_SELECTOR,\n} from './constants'\nimport { isUsingTouch } from './bindGlobalEventListeners'\nimport { defaultProps, POPPER_INSTANCE_DEPENDENCIES } from './props'\nimport {\n createPopperElement,\n updatePopperElement,\n getChildren,\n getBasicPlacement,\n updateTransitionEndListener,\n isCursorOutsideInteractiveBorder,\n getOffsetDistanceInPx,\n reflow,\n} from './popper'\nimport {\n hasOwnProperty,\n debounce,\n getValue,\n getModifier,\n includes,\n invokeWithArgsOrReturn,\n setFlipModifierEnabled,\n canReceiveFocus,\n validateOptions,\n evaluateProps,\n setTransitionDuration,\n setVisibilityState,\n isRealElement,\n} from './utils'\n\nlet idCounter = 1\n// Workaround for IE11's lack of new MouseEvent constructor\nlet mouseMoveListeners: ((event: MouseEvent) => void)[] = []\n\n/**\n * Creates and returns a Tippy object. We're using a closure pattern instead of\n * a class so that the exposed object API is clean without private members\n * prefixed with `_`.\n */\nexport default function createTippy(\n reference: ReferenceElement | VirtualReference,\n collectionProps: Props,\n): Instance | null {\n const props = evaluateProps(reference, collectionProps)\n\n // If the reference shouldn't have multiple tippys, return null early\n if (!props.multiple && reference._tippy) {\n return null\n }\n\n /* ======================= 🔒 Private members 🔒 ======================= */\n let lastTriggerEventType: string\n let lastMouseMoveEvent: MouseEvent\n let showTimeoutId: number\n let hideTimeoutId: number\n let scheduleHideAnimationFrameId: number\n let isScheduledToShow = false\n let isBeingDestroyed = false\n let previousPlacement: string\n let wasVisibleDuringPreviousUpdate = false\n let hasMountCallbackRun = false\n let currentMountCallback: () => void\n let currentTransitionEndListener: (event: TransitionEvent) => void\n let listeners: Listener[] = []\n let currentComputedPadding: {\n top: number\n bottom: number\n left: number\n right: number\n [key: string]: number\n }\n let debouncedOnMouseMove = debounce(onMouseMove, props.interactiveDebounce)\n\n /* ======================= 🔑 Public members 🔑 ======================= */\n const id = idCounter++\n const popper = createPopperElement(id, props)\n const popperChildren = getChildren(popper)\n const popperInstance: PopperInstance | null = null\n\n const state = {\n // Is the instance currently enabled?\n isEnabled: true,\n // Is the tippy currently showing and not transitioning out?\n isVisible: false,\n // Has the instance been destroyed?\n isDestroyed: false,\n // Is the tippy currently mounted to the DOM?\n isMounted: false,\n // Has the tippy finished transitioning in?\n isShown: false,\n }\n\n const instance: Instance = {\n // properties\n id,\n reference,\n popper,\n popperChildren,\n popperInstance,\n props,\n state,\n // methods\n clearDelayTimeouts,\n set,\n setContent,\n show,\n hide,\n enable,\n disable,\n destroy,\n }\n\n /* ==================== Initial instance mutations =================== */\n reference._tippy = instance\n popper._tippy = instance\n\n addTriggersToReference()\n\n if (!props.lazy) {\n createPopperInstance()\n }\n\n if (props.showOnInit) {\n scheduleShow()\n }\n\n // Ensure the event listeners target can receive focus\n if (\n props.a11y &&\n !props.target &&\n !canReceiveFocus(getEventListenersTarget())\n ) {\n getEventListenersTarget().setAttribute('tabindex', '0')\n }\n\n // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n popper.addEventListener('mouseenter', (event: MouseEvent) => {\n if (\n instance.props.interactive &&\n instance.state.isVisible &&\n lastTriggerEventType === 'mouseenter'\n ) {\n // We don't want props.onTrigger() to be called here, since the `event`\n // object is not related to the reference element\n scheduleShow(event, true)\n }\n })\n popper.addEventListener('mouseleave', () => {\n if (instance.props.interactive && lastTriggerEventType === 'mouseenter') {\n document.addEventListener('mousemove', debouncedOnMouseMove)\n }\n })\n\n return instance\n\n /* ======================= 🔒 Private methods 🔒 ======================= */\n /**\n * Removes the follow cursor listener\n */\n function removeFollowCursorListener(): void {\n document.removeEventListener(\n 'mousemove',\n positionVirtualReferenceNearCursor,\n )\n }\n\n /**\n * Cleans up interactive mouse listeners\n */\n function cleanupInteractiveMouseListeners(): void {\n document.body.removeEventListener('mouseleave', scheduleHide)\n document.removeEventListener('mousemove', debouncedOnMouseMove)\n mouseMoveListeners = mouseMoveListeners.filter(\n (listener): boolean => listener !== debouncedOnMouseMove,\n )\n }\n\n /**\n * Returns correct target used for event listeners\n */\n function getEventListenersTarget(): ReferenceElement | VirtualReference {\n return instance.props.triggerTarget || reference\n }\n\n /**\n * Adds the document click event listener for the instance\n */\n function addDocumentClickListener(): void {\n document.addEventListener('click', onDocumentClick, true)\n }\n\n /**\n * Removes the document click event listener for the instance\n */\n function removeDocumentClickListener(): void {\n document.removeEventListener('click', onDocumentClick, true)\n }\n\n /**\n * Returns transitionable inner elements used in show/hide methods\n */\n function getTransitionableElements(): (HTMLDivElement | null)[] {\n return [\n instance.popperChildren.tooltip,\n instance.popperChildren.backdrop,\n instance.popperChildren.content,\n ]\n }\n\n /**\n * Determines if the instance is in `followCursor` mode.\n * NOTE: in v5, touch devices will use `initial` behavior no matter the value.\n */\n function getIsInLooseFollowCursorMode(): boolean {\n const { followCursor } = instance.props\n return (\n (followCursor && lastTriggerEventType !== 'focus') ||\n (isUsingTouch && followCursor === 'initial')\n )\n }\n\n /**\n * Updates the tooltip's position on each animation frame\n */\n function makeSticky(): void {\n setTransitionDuration([popper], isIE ? 0 : instance.props.updateDuration)\n\n let prevRefRect = reference.getBoundingClientRect()\n\n function updatePosition(): void {\n const currentRefRect = reference.getBoundingClientRect()\n\n // Only schedule an update if the reference rect has changed\n if (\n prevRefRect.top !== currentRefRect.top ||\n prevRefRect.right !== currentRefRect.right ||\n prevRefRect.bottom !== currentRefRect.bottom ||\n prevRefRect.left !== currentRefRect.left\n ) {\n instance.popperInstance!.scheduleUpdate()\n }\n\n prevRefRect = currentRefRect\n\n if (instance.state.isMounted) {\n requestAnimationFrame(updatePosition)\n }\n }\n\n updatePosition()\n }\n\n /**\n * Invokes a callback once the tooltip has fully transitioned out\n */\n function onTransitionedOut(duration: number, callback: () => void): void {\n onTransitionEnd(duration, () => {\n if (\n !instance.state.isVisible &&\n popper.parentNode &&\n popper.parentNode.contains(popper)\n ) {\n callback()\n }\n })\n }\n\n /**\n * Invokes a callback once the tooltip has fully transitioned in\n */\n function onTransitionedIn(duration: number, callback: () => void): void {\n onTransitionEnd(duration, callback)\n }\n\n /**\n * Invokes a callback once the tooltip's CSS transition ends\n */\n function onTransitionEnd(duration: number, callback: () => void): void {\n const { tooltip } = instance.popperChildren\n\n /**\n * Listener added as the `transitionend` handler\n */\n function listener(event: TransitionEvent): void {\n if (event.target === tooltip) {\n updateTransitionEndListener(tooltip, 'remove', listener)\n callback()\n }\n }\n\n // Make callback synchronous if duration is 0\n // `transitionend` won't fire otherwise\n if (duration === 0) {\n return callback()\n }\n\n updateTransitionEndListener(tooltip, 'remove', currentTransitionEndListener)\n updateTransitionEndListener(tooltip, 'add', listener)\n\n currentTransitionEndListener = listener\n }\n\n /**\n * Adds an event listener to the reference and stores it in `listeners`\n */\n function on(\n eventType: string,\n handler: EventListener,\n options: boolean | object = false,\n ): void {\n getEventListenersTarget().addEventListener(eventType, handler, options)\n listeners.push({ eventType, handler, options })\n }\n\n /**\n * Adds event listeners to the reference based on the `trigger` prop\n */\n function addTriggersToReference(): void {\n if (instance.props.touchHold && !instance.props.target) {\n on('touchstart', onTrigger, PASSIVE)\n on('touchend', onMouseLeave as EventListener, PASSIVE)\n }\n\n instance.props.trigger\n .trim()\n .split(' ')\n .forEach(eventType => {\n if (eventType === 'manual') {\n return\n }\n\n // Non-delegates\n if (!instance.props.target) {\n on(eventType, onTrigger)\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave as EventListener)\n break\n case 'focus':\n on(isIE ? 'focusout' : 'blur', onBlur as EventListener)\n break\n }\n } else {\n // Delegates\n switch (eventType) {\n case 'mouseenter':\n on('mouseover', onDelegateShow)\n on('mouseout', onDelegateHide)\n break\n case 'focus':\n on('focusin', onDelegateShow)\n on('focusout', onDelegateHide)\n break\n case 'click':\n on(eventType, onDelegateShow)\n break\n }\n }\n })\n }\n\n /**\n * Removes event listeners from the reference\n */\n function removeTriggersFromReference(): void {\n listeners.forEach(({ eventType, handler, options }: Listener) => {\n getEventListenersTarget().removeEventListener(eventType, handler, options)\n })\n listeners = []\n }\n\n /**\n * Positions the virtual reference near the cursor\n */\n function positionVirtualReferenceNearCursor(event: MouseEvent): void {\n const { clientX: x, clientY: y } = (lastMouseMoveEvent = event)\n\n // Gets set once popperInstance `onCreate` has been called\n if (!currentComputedPadding) {\n return\n }\n\n // If the instance is interactive, avoid updating the position unless it's\n // over the reference element\n const isCursorOverReference = closestCallback(\n event.target as Element,\n (el: Element): boolean => el === reference,\n )\n\n const rect = reference.getBoundingClientRect()\n const { followCursor } = instance.props\n const isHorizontal = followCursor === 'horizontal'\n const isVertical = followCursor === 'vertical'\n\n // The virtual reference needs some size to prevent itself from overflowing\n const isVerticalPlacement = includes(\n ['top', 'bottom'],\n getBasicPlacement(popper),\n )\n const fullPlacement = popper.getAttribute(PLACEMENT_ATTRIBUTE)\n const isVariation = fullPlacement ? !!fullPlacement.split('-')[1] : false\n const size = isVerticalPlacement ? popper.offsetWidth : popper.offsetHeight\n const halfSize = size / 2\n const verticalIncrease = isVerticalPlacement\n ? 0\n : isVariation\n ? size\n : halfSize\n const horizontalIncrease = isVerticalPlacement\n ? isVariation\n ? size\n : halfSize\n : 0\n\n if (isCursorOverReference || !instance.props.interactive) {\n instance.popperInstance!.reference = {\n ...instance.popperInstance!.reference,\n // This will exist in next Popper.js feature release to fix #532\n // @ts-ignore\n referenceNode: reference,\n // These `client` values don't get used by Popper.js if they are 0\n clientWidth: 0,\n clientHeight: 0,\n getBoundingClientRect: (): DOMRect | ClientRect => ({\n width: isVerticalPlacement ? size : 0,\n height: isVerticalPlacement ? 0 : size,\n top: (isHorizontal ? rect.top : y) - verticalIncrease,\n bottom: (isHorizontal ? rect.bottom : y) + verticalIncrease,\n left: (isVertical ? rect.left : x) - horizontalIncrease,\n right: (isVertical ? rect.right : x) + horizontalIncrease,\n }),\n }\n\n instance.popperInstance!.update()\n }\n\n if (followCursor === 'initial' && instance.state.isVisible) {\n removeFollowCursorListener()\n }\n }\n\n /**\n * Creates the tippy instance for a delegate when it's been triggered\n */\n function createDelegateChildTippy(event?: Event): void {\n if (event) {\n const targetEl: ReferenceElement | null = closest(\n event.target as Element,\n instance.props.target,\n )\n\n if (targetEl && !targetEl._tippy) {\n createTippy(targetEl, {\n ...instance.props,\n content: invokeWithArgsOrReturn(collectionProps.content, [targetEl]),\n appendTo: collectionProps.appendTo,\n target: '',\n showOnInit: true,\n })\n }\n }\n }\n\n /**\n * Event listener invoked upon trigger\n */\n function onTrigger(event: Event): void {\n if (!instance.state.isEnabled || isEventListenerStopped(event)) {\n return\n }\n\n if (!instance.state.isVisible) {\n lastTriggerEventType = event.type\n\n if (event instanceof MouseEvent) {\n lastMouseMoveEvent = event\n\n // If scrolling, `mouseenter` events can be fired if the cursor lands\n // over a new target, but `mousemove` events don't get fired. This\n // causes interactive tooltips to get stuck open until the cursor is\n // moved\n mouseMoveListeners.forEach((listener): void => listener(event))\n }\n }\n\n // Toggle show/hide when clicking click-triggered tooltips\n if (\n event.type === 'click' &&\n instance.props.hideOnClick !== false &&\n instance.state.isVisible\n ) {\n scheduleHide()\n } else {\n scheduleShow(event)\n }\n }\n\n /**\n * Event listener used for interactive tooltips to detect when they should\n * hide\n */\n function onMouseMove(event: MouseEvent): void {\n const isCursorOverPopper =\n closest(event.target as Element, POPPER_SELECTOR) === popper\n const isCursorOverReference = closestCallback(\n event.target as Element,\n (el: Element) => el === reference,\n )\n\n if (isCursorOverPopper || isCursorOverReference) {\n return\n }\n\n if (\n isCursorOutsideInteractiveBorder(\n getBasicPlacement(popper),\n popper.getBoundingClientRect(),\n event,\n instance.props,\n )\n ) {\n cleanupInteractiveMouseListeners()\n scheduleHide()\n }\n }\n\n /**\n * Event listener invoked upon mouseleave\n */\n function onMouseLeave(event: MouseEvent): void {\n if (isEventListenerStopped(event)) {\n return\n }\n\n if (instance.props.interactive) {\n document.body.addEventListener('mouseleave', scheduleHide)\n document.addEventListener('mousemove', debouncedOnMouseMove)\n mouseMoveListeners.push(debouncedOnMouseMove)\n\n return\n }\n\n scheduleHide()\n }\n\n /**\n * Event listener invoked upon blur\n */\n function onBlur(event: FocusEvent): void {\n if (event.target !== getEventListenersTarget()) {\n return\n }\n\n if (\n instance.props.interactive &&\n event.relatedTarget &&\n popper.contains(event.relatedTarget as Element)\n ) {\n return\n }\n\n scheduleHide()\n }\n\n /**\n * Event listener invoked when a child target is triggered\n */\n function onDelegateShow(event: Event): void {\n if (closest(event.target as Element, instance.props.target)) {\n scheduleShow(event)\n }\n }\n\n /**\n * Event listener invoked when a child target should hide\n */\n function onDelegateHide(event: Event): void {\n if (closest(event.target as Element, instance.props.target)) {\n scheduleHide()\n }\n }\n\n /**\n * Determines if an event listener should stop further execution due to the\n * `touchHold` option\n */\n function isEventListenerStopped(event: Event): boolean {\n const supportsTouch = 'ontouchstart' in window\n const isTouchEvent = includes(event.type, 'touch')\n const { touchHold } = instance.props\n\n return (\n (supportsTouch && isUsingTouch && touchHold && !isTouchEvent) ||\n (isUsingTouch && !touchHold && isTouchEvent)\n )\n }\n\n /**\n * Runs the mount callback\n */\n function runMountCallback(): void {\n if (!hasMountCallbackRun && currentMountCallback) {\n hasMountCallbackRun = true\n reflow(popper)\n currentMountCallback()\n }\n }\n\n /**\n * Creates the popper instance for the instance\n */\n function createPopperInstance(): void {\n const { popperOptions } = instance.props\n const { tooltip, arrow } = instance.popperChildren\n const preventOverflowModifier = getModifier(\n popperOptions,\n 'preventOverflow',\n )\n\n function applyMutations(data: Popper.Data): void {\n if (instance.props.flip && !instance.props.flipOnUpdate) {\n if (data.flipped) {\n instance.popperInstance!.options.placement = data.placement\n }\n\n setFlipModifierEnabled(instance.popperInstance!.modifiers, false)\n }\n\n // Apply all of the popper's attributes to the tootip node as well.\n // Allows users to avoid using the .tippy-popper selector for themes.\n tooltip.setAttribute(PLACEMENT_ATTRIBUTE, data.placement)\n\n if (data.attributes[OUT_OF_BOUNDARIES_ATTRIBUTE] !== false) {\n tooltip.setAttribute(OUT_OF_BOUNDARIES_ATTRIBUTE, '')\n } else {\n tooltip.removeAttribute(OUT_OF_BOUNDARIES_ATTRIBUTE)\n }\n\n // Prevents a transition when changing placements (while tippy is visible)\n // for scroll/resize updates\n if (\n previousPlacement &&\n previousPlacement !== data.placement &&\n wasVisibleDuringPreviousUpdate\n ) {\n tooltip.style.transition = 'none'\n requestAnimationFrame(() => {\n tooltip.style.transition = ''\n })\n }\n previousPlacement = data.placement\n wasVisibleDuringPreviousUpdate = instance.state.isVisible\n\n const basicPlacement = getBasicPlacement(popper)\n const styles = tooltip.style\n\n // Account for the `distance` offset\n styles.top = styles.bottom = styles.left = styles.right = ''\n styles[basicPlacement] = getOffsetDistanceInPx(instance.props.distance)\n\n const padding =\n preventOverflowModifier && preventOverflowModifier.padding !== undefined\n ? preventOverflowModifier.padding\n : PADDING\n const isPaddingNumber = typeof padding === 'number'\n\n const computedPadding = {\n top: isPaddingNumber ? padding : padding.top,\n bottom: isPaddingNumber ? padding : padding.bottom,\n left: isPaddingNumber ? padding : padding.left,\n right: isPaddingNumber ? padding : padding.right,\n ...(!isPaddingNumber && padding),\n }\n\n computedPadding[basicPlacement] = isPaddingNumber\n ? padding + instance.props.distance\n : (padding[basicPlacement] || 0) + instance.props.distance\n\n instance.popperInstance!.modifiers.filter(\n m => m.name === 'preventOverflow',\n )[0].padding = computedPadding\n\n currentComputedPadding = computedPadding\n }\n\n const config = {\n eventsEnabled: false,\n placement: instance.props.placement,\n ...popperOptions,\n modifiers: {\n ...(popperOptions ? popperOptions.modifiers : {}),\n preventOverflow: {\n boundariesElement: instance.props.boundary,\n padding: PADDING,\n ...preventOverflowModifier,\n },\n arrow: {\n element: arrow,\n enabled: !!arrow,\n ...getModifier(popperOptions, 'arrow'),\n },\n flip: {\n enabled: instance.props.flip,\n // The tooltip is offset by 10px from the popper in CSS,\n // we need to account for its distance\n padding: instance.props.distance + PADDING,\n behavior: instance.props.flipBehavior,\n ...getModifier(popperOptions, 'flip'),\n },\n offset: {\n offset: instance.props.offset,\n ...getModifier(popperOptions, 'offset'),\n },\n },\n onCreate(data: Popper.Data) {\n applyMutations(data)\n runMountCallback()\n\n if (popperOptions && popperOptions.onCreate) {\n popperOptions.onCreate(data)\n }\n },\n onUpdate(data: Popper.Data) {\n applyMutations(data)\n runMountCallback()\n\n if (popperOptions && popperOptions.onUpdate) {\n popperOptions.onUpdate(data)\n }\n },\n }\n\n instance.popperInstance = new Popper(\n reference,\n popper,\n config,\n ) as PopperInstance\n }\n\n /**\n * Mounts the tooltip to the DOM\n */\n function mount(): void {\n hasMountCallbackRun = false\n\n const isInLooseFollowCursorMode = getIsInLooseFollowCursorMode()\n\n if (instance.popperInstance) {\n setFlipModifierEnabled(\n instance.popperInstance.modifiers,\n instance.props.flip,\n )\n\n if (!isInLooseFollowCursorMode) {\n instance.popperInstance.reference = reference\n instance.popperInstance.enableEventListeners()\n }\n\n instance.popperInstance.scheduleUpdate()\n } else {\n createPopperInstance()\n\n if (!isInLooseFollowCursorMode) {\n instance.popperInstance!.enableEventListeners()\n }\n }\n\n const { appendTo } = instance.props\n const parentNode =\n appendTo === 'parent'\n ? reference.parentNode\n : invokeWithArgsOrReturn(appendTo, [reference])\n\n if (!parentNode.contains(popper)) {\n parentNode.appendChild(popper)\n instance.props.onMount(instance)\n instance.state.isMounted = true\n }\n }\n\n /**\n * Setup before show() is invoked (delays, etc.)\n */\n function scheduleShow(\n event?: Event,\n shouldAvoidCallingOnTrigger?: boolean,\n ): void {\n clearDelayTimeouts()\n\n if (instance.state.isVisible) {\n return\n }\n\n // Is a delegate, create an instance for the child target\n if (instance.props.target) {\n return createDelegateChildTippy(event)\n }\n\n isScheduledToShow = true\n\n if (event && !shouldAvoidCallingOnTrigger) {\n instance.props.onTrigger(instance, event)\n }\n\n if (instance.props.wait) {\n return instance.props.wait(instance, event)\n }\n\n // If the tooltip has a delay, we need to be listening to the mousemove as\n // soon as the trigger event is fired, so that it's in the correct position\n // upon mount.\n // Edge case: if the tooltip is still mounted, but then scheduleShow() is\n // called, it causes a jump.\n if (getIsInLooseFollowCursorMode() && !instance.state.isMounted) {\n if (!instance.popperInstance) {\n createPopperInstance()\n }\n\n document.addEventListener('mousemove', positionVirtualReferenceNearCursor)\n }\n\n addDocumentClickListener()\n\n const delay = getValue(instance.props.delay, 0, defaultProps.delay)\n\n if (delay) {\n showTimeoutId = setTimeout(() => {\n show()\n }, delay)\n } else {\n show()\n }\n }\n\n /**\n * Setup before hide() is invoked (delays, etc.)\n */\n function scheduleHide(): void {\n clearDelayTimeouts()\n\n if (!instance.state.isVisible) {\n removeFollowCursorListener()\n removeDocumentClickListener()\n return\n }\n\n isScheduledToShow = false\n\n const delay = getValue(instance.props.delay, 1, defaultProps.delay)\n\n if (delay) {\n hideTimeoutId = setTimeout(() => {\n if (instance.state.isVisible) {\n hide()\n }\n }, delay)\n } else {\n // Fixes a `transitionend` problem when it fires 1 frame too\n // late sometimes, we don't want hide() to be called.\n scheduleHideAnimationFrameId = requestAnimationFrame(() => {\n hide()\n })\n }\n }\n\n /**\n * Listener to handle clicks on the document to determine if the\n * instance should hide\n */\n function onDocumentClick(event: MouseEvent): void {\n // Clicked on interactive popper\n if (\n instance.props.interactive &&\n popper.contains(event.target as Element)\n ) {\n return\n }\n\n // Clicked on the event listeners target\n if (getEventListenersTarget().contains(event.target as Element)) {\n if (isUsingTouch) {\n return\n }\n\n if (\n instance.state.isVisible &&\n includes(instance.props.trigger, 'click')\n ) {\n return\n }\n }\n\n if (instance.props.hideOnClick === true) {\n clearDelayTimeouts()\n hide()\n }\n }\n\n /* ======================= 🔑 Public methods 🔑 ======================= */\n /**\n * Enables the instance to allow it to show or hide\n */\n function enable(): void {\n instance.state.isEnabled = true\n }\n\n /**\n * Disables the instance to disallow it to show or hide\n */\n function disable(): void {\n instance.state.isEnabled = false\n }\n\n /**\n * Clears pending timeouts related to the `delay` prop if any\n */\n function clearDelayTimeouts(): void {\n clearTimeout(showTimeoutId)\n clearTimeout(hideTimeoutId)\n cancelAnimationFrame(scheduleHideAnimationFrameId)\n }\n\n /**\n * Sets new props for the instance and redraws the tooltip\n */\n function set(options: Options): void {\n // Backwards-compatible after TypeScript change\n options = options || {}\n\n validateOptions(options, defaultProps)\n\n removeTriggersFromReference()\n\n const prevProps = instance.props\n const nextProps = evaluateProps(reference, {\n ...instance.props,\n ...options,\n ignoreAttributes: true,\n })\n nextProps.ignoreAttributes = hasOwnProperty(options, 'ignoreAttributes')\n ? options.ignoreAttributes || false\n : prevProps.ignoreAttributes\n instance.props = nextProps\n\n addTriggersToReference()\n\n cleanupInteractiveMouseListeners()\n debouncedOnMouseMove = debounce(onMouseMove, nextProps.interactiveDebounce)\n\n updatePopperElement(popper, prevProps, nextProps)\n instance.popperChildren = getChildren(popper)\n\n if (instance.popperInstance) {\n if (\n POPPER_INSTANCE_DEPENDENCIES.some(prop => {\n return (\n hasOwnProperty(options, prop) && options[prop] !== prevProps[prop]\n )\n })\n ) {\n instance.popperInstance.destroy()\n createPopperInstance()\n\n if (instance.state.isVisible) {\n instance.popperInstance.enableEventListeners()\n }\n\n if (instance.props.followCursor && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent)\n }\n } else {\n instance.popperInstance.update()\n }\n }\n }\n\n /**\n * Shortcut for .set({ content: newContent })\n */\n function setContent(content: Content): void {\n set({ content })\n }\n\n /**\n * Shows the tooltip\n */\n function show(\n duration: number = getValue(\n instance.props.duration,\n 0,\n (defaultProps.duration as [number, number])[1],\n ),\n ): void {\n if (\n instance.state.isDestroyed ||\n !instance.state.isEnabled ||\n (isUsingTouch && !instance.props.touch)\n ) {\n return\n }\n\n // Standardize `disabled` behavior across browsers.\n // Firefox allows events on disabled elements, but Chrome doesn't.\n // Using a wrapper element (i.e. ) is recommended.\n if (getEventListenersTarget().hasAttribute('disabled')) {\n return\n }\n\n if (instance.props.onShow(instance) === false) {\n return\n }\n\n addDocumentClickListener()\n\n popper.style.visibility = 'visible'\n instance.state.isVisible = true\n\n if (instance.props.interactive) {\n getEventListenersTarget().classList.add(ACTIVE_CLASS)\n }\n\n // Prevent a transition if the popper is at the opposite placement\n const transitionableElements = getTransitionableElements()\n setTransitionDuration(transitionableElements.concat(popper), 0)\n\n currentMountCallback = (): void => {\n if (!instance.state.isVisible) {\n return\n }\n\n const isInLooseFollowCursorMode = getIsInLooseFollowCursorMode()\n\n if (isInLooseFollowCursorMode && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent)\n } else if (!isInLooseFollowCursorMode) {\n // Double update will apply correct mutations\n instance.popperInstance!.update()\n }\n\n if (instance.popperChildren.backdrop) {\n instance.popperChildren.content.style.transitionDelay =\n Math.round(duration / 12) + 'ms'\n }\n\n if (instance.props.sticky) {\n makeSticky()\n }\n\n setTransitionDuration([popper], instance.props.updateDuration)\n setTransitionDuration(transitionableElements, duration)\n setVisibilityState(transitionableElements, 'visible')\n\n onTransitionedIn(\n duration,\n (): void => {\n if (instance.props.aria) {\n getEventListenersTarget().setAttribute(\n `aria-${instance.props.aria}`,\n popper.id,\n )\n }\n\n instance.props.onShown(instance)\n instance.state.isShown = true\n },\n )\n }\n\n mount()\n }\n\n /**\n * Hides the tooltip\n */\n function hide(\n duration: number = getValue(\n instance.props.duration,\n 1,\n (defaultProps.duration as [number, number])[1],\n ),\n ): void {\n if (\n instance.state.isDestroyed ||\n (!instance.state.isEnabled && !isBeingDestroyed)\n ) {\n return\n }\n\n if (instance.props.onHide(instance) === false && !isBeingDestroyed) {\n return\n }\n\n removeDocumentClickListener()\n\n popper.style.visibility = 'hidden'\n instance.state.isVisible = false\n instance.state.isShown = false\n wasVisibleDuringPreviousUpdate = false\n\n if (instance.props.interactive) {\n getEventListenersTarget().classList.remove(ACTIVE_CLASS)\n }\n\n const transitionableElements = getTransitionableElements()\n setTransitionDuration(transitionableElements, duration)\n setVisibilityState(transitionableElements, 'hidden')\n\n onTransitionedOut(duration, () => {\n if (!isScheduledToShow) {\n removeFollowCursorListener()\n }\n\n if (instance.props.aria) {\n getEventListenersTarget().removeAttribute(`aria-${instance.props.aria}`)\n }\n\n instance.popperInstance!.disableEventListeners()\n instance.popperInstance!.options.placement = instance.props.placement\n\n popper.parentNode!.removeChild(popper)\n instance.props.onHidden(instance)\n instance.state.isMounted = false\n })\n }\n\n /**\n * Destroys the tooltip\n */\n function destroy(destroyTargetInstances?: boolean): void {\n if (instance.state.isDestroyed) {\n return\n }\n\n isBeingDestroyed = true\n\n // If the popper is currently mounted to the DOM, we want to ensure it gets\n // hidden and unmounted instantly upon destruction\n if (instance.state.isMounted) {\n hide(0)\n }\n\n removeTriggersFromReference()\n\n delete reference._tippy\n\n const { target } = instance.props\n if (target && destroyTargetInstances && isRealElement(reference)) {\n arrayFrom(reference.querySelectorAll(target)).forEach(\n (child: ReferenceElement) => {\n if (child._tippy) {\n child._tippy.destroy()\n }\n },\n )\n }\n\n if (instance.popperInstance) {\n instance.popperInstance.destroy()\n }\n\n isBeingDestroyed = false\n instance.state.isDestroyed = true\n }\n}\n","import { GroupedInstance, GroupOptions } from './types'\n\n/**\n * Groups an array of instances by taking control of their props during\n * certain lifecycles.\n */\nexport default function group(\n instances: GroupedInstance[],\n { delay = instances[0].props.delay, duration = 0 }: GroupOptions = {},\n): void {\n let isAnyTippyOpen = false\n\n instances.forEach(instance => {\n if (instance._originalProps) {\n instance.set(instance._originalProps)\n } else {\n instance._originalProps = { ...instance.props }\n }\n })\n\n function setIsAnyTippyOpen(value: boolean): void {\n isAnyTippyOpen = value\n updateInstances()\n }\n\n function onShow(instance: GroupedInstance): void {\n instance._originalProps.onShow(instance)\n\n instances.forEach(instance => {\n instance.set({ duration })\n\n if (instance.state.isVisible) {\n instance.hide()\n }\n })\n\n setIsAnyTippyOpen(true)\n }\n\n function onHide(instance: GroupedInstance): void {\n instance._originalProps.onHide(instance)\n setIsAnyTippyOpen(false)\n }\n\n function onShown(instance: GroupedInstance): void {\n instance._originalProps.onShown(instance)\n instance.set({ duration: instance._originalProps.duration })\n }\n\n function updateInstances(): void {\n instances.forEach(instance => {\n instance.set({\n onShow,\n onShown,\n onHide,\n delay: isAnyTippyOpen\n ? [0, Array.isArray(delay) ? delay[1] : delay]\n : delay,\n duration: isAnyTippyOpen ? duration : instance._originalProps.duration,\n })\n })\n }\n\n updateInstances()\n}\n","import { version } from '../package.json'\nimport { isBrowser } from './browser'\nimport { defaultProps } from './props'\nimport createTippy from './createTippy'\nimport bindGlobalEventListeners from './bindGlobalEventListeners'\nimport group from './group'\nimport { polyfillElementPrototypeProperties } from './reference'\nimport { arrayFrom } from './ponyfills'\nimport { hideAll } from './popper'\nimport {\n isSingular,\n isBareVirtualElement,\n getArrayOfElements,\n validateOptions,\n} from './utils'\nimport { Options, Props, Instance, Targets, VirtualReference } from './types'\n\nlet globalEventListenersBound = false\n\n/**\n * Exported module\n */\nfunction tippy(targets: Targets, options?: Options): Instance | Instance[] {\n validateOptions(options || {}, defaultProps)\n\n if (!globalEventListenersBound) {\n bindGlobalEventListeners()\n globalEventListenersBound = true\n }\n\n const props: Props = { ...defaultProps, ...options }\n\n // If they are specifying a virtual positioning reference, we need to polyfill\n // some native DOM props\n if (isBareVirtualElement(targets)) {\n polyfillElementPrototypeProperties(targets as VirtualReference)\n }\n\n const instances = getArrayOfElements(targets).reduce(\n (acc, reference) => {\n const instance = reference && createTippy(reference, props)\n\n if (instance) {\n acc.push(instance)\n }\n\n return acc\n },\n [],\n )\n\n return isSingular(targets) ? instances[0] : instances\n}\n\n/**\n * Static props\n */\ntippy.version = version\ntippy.defaults = defaultProps\n\n/**\n * Static methods\n */\ntippy.setDefaults = (partialDefaults: Options) => {\n Object.keys(partialDefaults).forEach(key => {\n // @ts-ignore\n defaultProps[key] = partialDefaults[key]\n })\n}\ntippy.hideAll = hideAll\ntippy.group = group\n\n/**\n * Auto-init tooltips for elements with a `data-tippy=\"...\"` attribute\n */\nexport function autoInit(): void {\n arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(el => {\n const content = el.getAttribute('data-tippy')\n\n if (content) {\n tippy(el, { content })\n }\n })\n}\n\nif (isBrowser) {\n setTimeout(autoInit)\n}\n\nexport default tippy\n","import { isBrowser } from './browser'\n\n/**\n * Injects a string of CSS styles to a style node in \n */\nexport function injectCSS(css: string): void {\n if (isBrowser) {\n const style = document.createElement('style')\n style.type = 'text/css'\n style.textContent = css\n style.setAttribute('data-__NAMESPACE_PREFIX__-stylesheet', '')\n const head = document.head\n const firstStyleOrLinkTag = head.querySelector('style,link')\n\n if (firstStyleOrLinkTag) {\n head.insertBefore(style, firstStyleOrLinkTag)\n } else {\n head.appendChild(style)\n }\n }\n}\n","import css from '../index.css'\nimport tippy from '../src/index.ts'\nimport { injectCSS } from '../src/css'\n\ninjectCSS(css)\n\nexport default tippy\n"],"names":["isBrowser","window","document","ua","navigator","userAgent","isIE","test","isUCBrowser","isIOS","platform","MSStream","defaultProps","a11y","allowHTML","animateFill","animation","appendTo","body","aria","arrow","arrowType","boundary","content","delay","distance","duration","flip","flipBehavior","flipOnUpdate","followCursor","hideOnClick","ignoreAttributes","inertia","interactive","interactiveBorder","interactiveDebounce","lazy","maxWidth","multiple","offset","onHidden","onHide","onMount","onShow","onShown","onTrigger","placement","popperOptions","role","showOnInit","size","sticky","target","theme","touch","touchHold","trigger","triggerTarget","updateDuration","wait","zIndex","POPPER_INSTANCE_DEPENDENCIES","elementProto","Element","prototype","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","arrayFrom","value","slice","call","closest","element","selector","closestCallback","el","callback","parentElement","PASSIVE","passive","PADDING","PLACEMENT_ATTRIBUTE","OUT_OF_BOUNDARIES_ATTRIBUTE","IOS_CLASS","ACTIVE_CLASS","POPPER_CLASS","TOOLTIP_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","ROUND_ARROW_CLASS","POPPER_SELECTOR","TOOLTIP_SELECTOR","CONTENT_SELECTOR","BACKDROP_SELECTOR","ARROW_SELECTOR","ROUND_ARROW_SELECTOR","isUsingTouch","onDocumentTouch","classList","add","performance","addEventListener","onDocumentMouseMove","lastMouseMoveTime","now","removeEventListener","remove","onWindowBlur","activeElement","blur","_tippy","bindGlobalEventListeners","keys","Object","getDataAttributeOptions","reference","reduce","acc","key","valueAsString","getAttribute","trim","JSON","parse","e","polyfillElementPrototypeProperties","virtualReference","polyfills","isVirtual","attributes","contains","setAttribute","removeAttribute","hasAttribute","classNames","isBareVirtualElement","toString","isReferenceElement","hasOwnProperty","obj","getArrayOfElements","isSingular","NodeList","Array","isArray","querySelectorAll","getValue","index","defaultValue","v","debounce","fn","ms","timeout","arg","clearTimeout","setTimeout","getModifier","modifiers","includes","a","b","indexOf","isRealElement","innerHTML","invokeWithArgsOrReturn","args","apply","setFlipModifierEnabled","filter","m","name","enabled","canReceiveFocus","div","createElement","setTransitionDuration","els","forEach","style","transitionDuration","setVisibilityState","state","evaluateProps","props","out","validateOptions","options","option","Error","setInnerHTML","html","setContent","contentEl","appendChild","getChildren","popper","tooltip","querySelector","backdrop","addInertia","removeInertia","createArrowElement","className","createBackdropElement","addInteractive","removeInteractive","updateTransitionEndListener","action","listener","eventName","webkitTransition","undefined","getBasicPlacement","fullPlacement","split","reflow","offsetHeight","updateTheme","themeName","createPopperElement","id","position","top","left","updatePopperElement","prevProps","nextProps","removeChild","replaceChild","hideAll","excludedReferenceOrInstance","exclude","instance","isExcluded","hide","isCursorOutsideInteractiveBorder","popperPlacement","popperRect","event","x","clientX","y","clientY","exceedsTop","exceedsBottom","bottom","exceedsLeft","exceedsRight","right","getOffsetDistanceInPx","idCounter","mouseMoveListeners","createTippy","collectionProps","lastTriggerEventType","lastMouseMoveEvent","showTimeoutId","hideTimeoutId","scheduleHideAnimationFrameId","isScheduledToShow","isBeingDestroyed","previousPlacement","wasVisibleDuringPreviousUpdate","hasMountCallbackRun","currentMountCallback","currentTransitionEndListener","listeners","currentComputedPadding","debouncedOnMouseMove","onMouseMove","popperChildren","popperInstance","isEnabled","isVisible","isDestroyed","isMounted","isShown","clearDelayTimeouts","set","show","enable","disable","destroy","addTriggersToReference","createPopperInstance","scheduleShow","getEventListenersTarget","removeFollowCursorListener","positionVirtualReferenceNearCursor","cleanupInteractiveMouseListeners","scheduleHide","addDocumentClickListener","onDocumentClick","removeDocumentClickListener","getTransitionableElements","getIsInLooseFollowCursorMode","makeSticky","prevRefRect","getBoundingClientRect","updatePosition","currentRefRect","scheduleUpdate","requestAnimationFrame","onTransitionedOut","onTransitionEnd","parentNode","onTransitionedIn","on","eventType","handler","push","onMouseLeave","onBlur","onDelegateShow","onDelegateHide","removeTriggersFromReference","isCursorOverReference","rect","isHorizontal","isVertical","isVerticalPlacement","isVariation","offsetWidth","halfSize","verticalIncrease","horizontalIncrease","referenceNode","clientWidth","clientHeight","width","height","update","createDelegateChildTippy","targetEl","isEventListenerStopped","type","MouseEvent","isCursorOverPopper","relatedTarget","supportsTouch","isTouchEvent","runMountCallback","preventOverflowModifier","applyMutations","data","flipped","transition","basicPlacement","styles","padding","isPaddingNumber","computedPadding","config","eventsEnabled","preventOverflow","boundariesElement","behavior","onCreate","onUpdate","Popper","mount","isInLooseFollowCursorMode","enableEventListeners","shouldAvoidCallingOnTrigger","cancelAnimationFrame","some","prop","visibility","transitionableElements","concat","transitionDelay","Math","round","disableEventListeners","destroyTargetInstances","child","group","instances","isAnyTippyOpen","_originalProps","setIsAnyTippyOpen","updateInstances","globalEventListenersBound","tippy","targets","version","defaults","setDefaults","partialDefaults","autoInit","injectCSS","css","textContent","head","firstStyleOrLinkTag","insertBefore"],"mappings":"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"}