{"version":3,"file":"static/chunks/46638-11a5abfd7ed424ee.js","sources":["webpack://_N_E/./node_modules/tippy.js/dist/tippy.esm.js","webpack://_N_E/./node_modules/@tippyjs/react/dist/tippy-react.esm.js","webpack://_N_E/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js"],"sourceRoot":"","sourcesContent":["/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\nimport { createPopper, applyStyles } from '@popperjs/core';\n\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\nfunction isElement(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a have an ownerDocument with no reference to the body\n\n\n return element != null && (_element$ownerDocumen = element.ownerDocument) != null && _element$ownerDocumen.body ? element.ownerDocument : document;\n}\nfunction isCursorOutsideInteractiveBorder(popperTreeData, event) {\n var clientX = event.clientX,\n clientY = event.clientY;\n return popperTreeData.every(function (_ref) {\n var popperRect = _ref.popperRect,\n popperState = _ref.popperState,\n props = _ref.props;\n var interactiveBorder = props.interactiveBorder;\n var basePlacement = getBasePlacement(popperState.placement);\n var offsetData = popperState.modifiersData.offset;\n\n if (!offsetData) {\n return true;\n }\n\n var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;\n var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;\n var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;\n var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;\n var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;\n var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;\n var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;\n var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n });\n}\nfunction updateTransitionEndListener(box, action, listener) {\n var method = action + \"EventListener\"; // some browsers apparently support `transition` (unprefixed) but only fire\n // `webkitTransitionEnd`...\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n box[method](event, listener);\n });\n}\n/**\n * Compared to xxx.contains, this function works for dom structures with shadow\n * dom\n */\n\nfunction actualContains(parent, child) {\n var target = child;\n\n while (target) {\n var _target$getRootNode;\n\n if (parent.contains(target)) {\n return true;\n }\n\n target = target.getRootNode == null ? void 0 : (_target$getRootNode = target.getRootNode()) == null ? void 0 : _target$getRootNode.host;\n }\n\n return false;\n}\n\nvar currentInput = {\n isTouch: false\n};\nvar lastMouseMoveTime = 0;\n/**\n * When a `touchstart` event is fired, it's assumed the user is using touch\n * input. We'll bind a `mousemove` event listener to listen for mouse input in\n * the future. This way, the `isTouch` property is fully dynamic and will handle\n * hybrid devices that use a mix of touch + mouse input.\n */\n\nfunction onDocumentTouchStart() {\n if (currentInput.isTouch) {\n return;\n }\n\n currentInput.isTouch = true;\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\n/**\n * When two `mousemove` event are fired consecutively within 20ms, it's assumed\n * the user is using mouse input again. `mousemove` can fire on touch devices as\n * well, but very rarely that quickly.\n */\n\nfunction onDocumentMouseMove() {\n var now = performance.now();\n\n if (now - lastMouseMoveTime < 20) {\n currentInput.isTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n }\n\n lastMouseMoveTime = now;\n}\n/**\n * When an element is in focus and has a tippy, leaving the tab/window and\n * returning causes it to show again. For mouse users this is unexpected, but\n * for keyboard use it makes sense.\n * TODO: find a better technique to solve this problem\n */\n\nfunction onWindowBlur() {\n var activeElement = document.activeElement;\n\n if (isReferenceElement(activeElement)) {\n var instance = activeElement._tippy;\n\n if (activeElement.blur && !instance.state.isVisible) {\n activeElement.blur();\n }\n }\n}\nfunction bindGlobalEventListeners() {\n document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);\n window.addEventListener('blur', onWindowBlur);\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar isIE11 = isBrowser ? // @ts-ignore\n!!window.msCrypto : false;\n\nfunction createMemoryLeakWarning(method) {\n var txt = method === 'destroy' ? 'n already-' : ' ';\n return [method + \"() was called on a\" + txt + \"destroyed instance. This is a no-op but\", 'indicates a potential memory leak.'].join(' ');\n}\nfunction clean(value) {\n var spacesAndTabs = /[ \\t]{2,}/g;\n var lineStartWithSpaces = /^[ \\t]*/gm;\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n}\n\nfunction getDevMessage(message) {\n return clean(\"\\n %ctippy.js\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development-only message. It will be removed in production.\\n \");\n}\n\nfunction getFormattedMessage(message) {\n return [getDevMessage(message), // title\n 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message\n 'line-height: 1.5', // footer\n 'color: #a6a095;'];\n} // Assume warnings and errors never have the same message\n\nvar visitedMessages;\n\nif (process.env.NODE_ENV !== \"production\") {\n resetVisitedMessages();\n}\n\nfunction resetVisitedMessages() {\n visitedMessages = new Set();\n}\nfunction warnWhen(condition, message) {\n if (condition && !visitedMessages.has(message)) {\n var _console;\n\n visitedMessages.add(message);\n\n (_console = console).warn.apply(_console, getFormattedMessage(message));\n }\n}\nfunction errorWhen(condition, message) {\n if (condition && !visitedMessages.has(message)) {\n var _console2;\n\n visitedMessages.add(message);\n\n (_console2 = console).error.apply(_console2, getFormattedMessage(message));\n }\n}\nfunction validateTargets(targets) {\n var didPassFalsyValue = !targets;\n var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;\n errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));\n errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));\n}\n\nvar pluginProps = {\n animateFill: false,\n followCursor: false,\n inlinePositioning: false,\n sticky: false\n};\nvar renderProps = {\n allowHTML: false,\n animation: 'fade',\n arrow: true,\n content: '',\n inertia: false,\n maxWidth: 350,\n role: 'tooltip',\n theme: '',\n zIndex: 9999\n};\nvar defaultProps = Object.assign({\n appendTo: TIPPY_DEFAULT_APPEND_TO,\n aria: {\n content: 'auto',\n expanded: 'auto'\n },\n delay: 0,\n duration: [300, 250],\n getReferenceClientRect: null,\n hideOnClick: true,\n ignoreAttributes: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n moveTransition: '',\n offset: [0, 10],\n onAfterUpdate: function onAfterUpdate() {},\n onBeforeUpdate: function onBeforeUpdate() {},\n onCreate: function onCreate() {},\n onDestroy: function onDestroy() {},\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n onTrigger: function onTrigger() {},\n onUntrigger: function onUntrigger() {},\n onClickOutside: function onClickOutside() {},\n placement: 'top',\n plugins: [],\n popperOptions: {},\n render: null,\n showOnCreate: false,\n touch: true,\n trigger: 'mouseenter focus',\n triggerTarget: null\n}, pluginProps, renderProps);\nvar defaultKeys = Object.keys(defaultProps);\nvar setDefaultProps = function setDefaultProps(partialProps) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n validateProps(partialProps, []);\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (key) {\n defaultProps[key] = partialProps[key];\n });\n};\nfunction getExtendedPassedProps(passedProps) {\n var plugins = passedProps.plugins || [];\n var pluginProps = plugins.reduce(function (acc, plugin) {\n var name = plugin.name,\n defaultValue = plugin.defaultValue;\n\n if (name) {\n var _name;\n\n acc[name] = passedProps[name] !== undefined ? passedProps[name] : (_name = defaultProps[name]) != null ? _name : defaultValue;\n }\n\n return acc;\n }, {});\n return Object.assign({}, passedProps, pluginProps);\n}\nfunction getDataAttributeProps(reference, plugins) {\n var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, defaultProps, {\n plugins: plugins\n }))) : defaultKeys;\n var props = propKeys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute(\"data-tippy-\" + key) || '').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 return props;\n}\nfunction evaluateProps(reference, props) {\n var out = Object.assign({}, props, {\n content: invokeWithArgsOrReturn(props.content, [reference])\n }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));\n out.aria = Object.assign({}, defaultProps.aria, out.aria);\n out.aria = {\n expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,\n content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content\n };\n return out;\n}\nfunction validateProps(partialProps, plugins) {\n if (partialProps === void 0) {\n partialProps = {};\n }\n\n if (plugins === void 0) {\n plugins = [];\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (prop) {\n var nonPluginProps = removeProperties(defaultProps, Object.keys(pluginProps));\n var didPassUnknownProp = !hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`\n\n if (didPassUnknownProp) {\n didPassUnknownProp = plugins.filter(function (plugin) {\n return plugin.name === prop;\n }).length === 0;\n }\n\n warnWhen(didPassUnknownProp, [\"`\" + prop + \"`\", \"is not a valid prop. You may have spelled it incorrectly, or if it's\", 'a plugin, forgot to pass it in an array as props.plugins.', '\\n\\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));\n });\n}\n\nvar innerHTML = function innerHTML() {\n return 'innerHTML';\n};\n\nfunction dangerouslySetInnerHTML(element, html) {\n element[innerHTML()] = html;\n}\n\nfunction createArrowElement(value) {\n var arrow = div();\n\n if (value === true) {\n arrow.className = ARROW_CLASS;\n } else {\n arrow.className = SVG_ARROW_CLASS;\n\n if (isElement(value)) {\n arrow.appendChild(value);\n } else {\n dangerouslySetInnerHTML(arrow, value);\n }\n }\n\n return arrow;\n}\n\nfunction setContent(content, props) {\n if (isElement(props.content)) {\n dangerouslySetInnerHTML(content, '');\n content.appendChild(props.content);\n } else if (typeof props.content !== 'function') {\n if (props.allowHTML) {\n dangerouslySetInnerHTML(content, props.content);\n } else {\n content.textContent = props.content;\n }\n }\n}\nfunction getChildren(popper) {\n var box = popper.firstElementChild;\n var boxChildren = arrayFrom(box.children);\n return {\n box: box,\n content: boxChildren.find(function (node) {\n return node.classList.contains(CONTENT_CLASS);\n }),\n arrow: boxChildren.find(function (node) {\n return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);\n }),\n backdrop: boxChildren.find(function (node) {\n return node.classList.contains(BACKDROP_CLASS);\n })\n };\n}\nfunction render(instance) {\n var popper = div();\n var box = div();\n box.className = BOX_CLASS;\n box.setAttribute('data-state', 'hidden');\n box.setAttribute('tabindex', '-1');\n var content = div();\n content.className = CONTENT_CLASS;\n content.setAttribute('data-state', 'hidden');\n setContent(content, instance.props);\n popper.appendChild(box);\n box.appendChild(content);\n onUpdate(instance.props, instance.props);\n\n function onUpdate(prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n box = _getChildren.box,\n content = _getChildren.content,\n arrow = _getChildren.arrow;\n\n if (nextProps.theme) {\n box.setAttribute('data-theme', nextProps.theme);\n } else {\n box.removeAttribute('data-theme');\n }\n\n if (typeof nextProps.animation === 'string') {\n box.setAttribute('data-animation', nextProps.animation);\n } else {\n box.removeAttribute('data-animation');\n }\n\n if (nextProps.inertia) {\n box.setAttribute('data-inertia', '');\n } else {\n box.removeAttribute('data-inertia');\n }\n\n box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + \"px\" : nextProps.maxWidth;\n\n if (nextProps.role) {\n box.setAttribute('role', nextProps.role);\n } else {\n box.removeAttribute('role');\n }\n\n if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {\n setContent(content, instance.props);\n }\n\n if (nextProps.arrow) {\n if (!arrow) {\n box.appendChild(createArrowElement(nextProps.arrow));\n } else if (prevProps.arrow !== nextProps.arrow) {\n box.removeChild(arrow);\n box.appendChild(createArrowElement(nextProps.arrow));\n }\n } else if (arrow) {\n box.removeChild(arrow);\n }\n }\n\n return {\n popper: popper,\n onUpdate: onUpdate\n };\n} // Runtime check to identify if the render function is the default one; this\n// way we can apply default CSS transitions logic and it can be tree-shaken away\n\nrender.$$tippy = true;\n\nvar idCounter = 1;\nvar mouseMoveListeners = []; // Used by `hideAll()`\n\nvar mountedInstances = [];\nfunction createTippy(reference, passedProps) {\n var props = evaluateProps(reference, Object.assign({}, defaultProps, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================\n // 🔒 Private members\n // ===========================================================================\n\n var showTimeout;\n var hideTimeout;\n var scheduleHideAnimationFrame;\n var isVisibleFromClick = false;\n var didHideDueToDocumentMouseDown = false;\n var didTouchMove = false;\n var ignoreOnFirstUpdate = false;\n var lastTriggerEvent;\n var currentTransitionEndListener;\n var onFirstUpdate;\n var listeners = [];\n var debouncedOnMouseMove = debounce(onMouseMove, props.interactiveDebounce);\n var currentTarget; // ===========================================================================\n // 🔑 Public members\n // ===========================================================================\n\n var id = idCounter++;\n var popperInstance = null;\n var plugins = unique(props.plugins);\n var 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 var instance = {\n // properties\n id: id,\n reference: reference,\n popper: div(),\n popperInstance: popperInstance,\n props: props,\n state: state,\n plugins: plugins,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n setProps: setProps,\n setContent: setContent,\n show: show,\n hide: hide,\n hideWithInteractivity: hideWithInteractivity,\n enable: enable,\n disable: disable,\n unmount: unmount,\n destroy: destroy\n }; // TODO: Investigate why this early return causes a TDZ error in the tests —\n // it doesn't seem to happen in the browser\n\n /* istanbul ignore if */\n\n if (!props.render) {\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(true, 'render() function has not been supplied.');\n }\n\n return instance;\n } // ===========================================================================\n // Initial mutations\n // ===========================================================================\n\n\n var _props$render = props.render(instance),\n popper = _props$render.popper,\n onUpdate = _props$render.onUpdate;\n\n popper.setAttribute('data-tippy-root', '');\n popper.id = \"tippy-\" + instance.id;\n instance.popper = popper;\n reference._tippy = instance;\n popper._tippy = instance;\n var pluginsHooks = plugins.map(function (plugin) {\n return plugin.fn(instance);\n });\n var hasAriaExpanded = reference.hasAttribute('aria-expanded');\n addListeners();\n handleAriaExpandedAttribute();\n handleStyles();\n invokeHook('onCreate', [instance]);\n\n if (props.showOnCreate) {\n scheduleShow();\n } // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n\n\n popper.addEventListener('mouseenter', function () {\n if (instance.props.interactive && instance.state.isVisible) {\n instance.clearDelayTimeouts();\n }\n });\n popper.addEventListener('mouseleave', function () {\n if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {\n getDocument().addEventListener('mousemove', debouncedOnMouseMove);\n }\n });\n return instance; // ===========================================================================\n // 🔒 Private methods\n // ===========================================================================\n\n function getNormalizedTouchSettings() {\n var touch = instance.props.touch;\n return Array.isArray(touch) ? touch : [touch, 0];\n }\n\n function getIsCustomTouchBehavior() {\n return getNormalizedTouchSettings()[0] === 'hold';\n }\n\n function getIsDefaultRenderFn() {\n var _instance$props$rende;\n\n // @ts-ignore\n return !!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy);\n }\n\n function getCurrentTarget() {\n return currentTarget || reference;\n }\n\n function getDocument() {\n var parent = getCurrentTarget().parentNode;\n return parent ? getOwnerDocument(parent) : document;\n }\n\n function getDefaultTemplateChildren() {\n return getChildren(popper);\n }\n\n function getDelay(isShow) {\n // For touch or keyboard input, force `0` delay for UX reasons\n // Also if the instance is mounted but not visible (transitioning out),\n // ignore delay\n if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {\n return 0;\n }\n\n return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, defaultProps.delay);\n }\n\n function handleStyles(fromHide) {\n if (fromHide === void 0) {\n fromHide = false;\n }\n\n popper.style.pointerEvents = instance.props.interactive && !fromHide ? '' : 'none';\n popper.style.zIndex = \"\" + instance.props.zIndex;\n }\n\n function invokeHook(hook, args, shouldInvokePropsHook) {\n if (shouldInvokePropsHook === void 0) {\n shouldInvokePropsHook = true;\n }\n\n pluginsHooks.forEach(function (pluginHooks) {\n if (pluginHooks[hook]) {\n pluginHooks[hook].apply(pluginHooks, args);\n }\n });\n\n if (shouldInvokePropsHook) {\n var _instance$props;\n\n (_instance$props = instance.props)[hook].apply(_instance$props, args);\n }\n }\n\n function handleAriaContentAttribute() {\n var aria = instance.props.aria;\n\n if (!aria.content) {\n return;\n }\n\n var attr = \"aria-\" + aria.content;\n var id = popper.id;\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n var currentValue = node.getAttribute(attr);\n\n if (instance.state.isVisible) {\n node.setAttribute(attr, currentValue ? currentValue + \" \" + id : id);\n } else {\n var nextValue = currentValue && currentValue.replace(id, '').trim();\n\n if (nextValue) {\n node.setAttribute(attr, nextValue);\n } else {\n node.removeAttribute(attr);\n }\n }\n });\n }\n\n function handleAriaExpandedAttribute() {\n if (hasAriaExpanded || !instance.props.aria.expanded) {\n return;\n }\n\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n if (instance.props.interactive) {\n node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');\n } else {\n node.removeAttribute('aria-expanded');\n }\n });\n }\n\n function cleanupInteractiveMouseListeners() {\n getDocument().removeEventListener('mousemove', debouncedOnMouseMove);\n mouseMoveListeners = mouseMoveListeners.filter(function (listener) {\n return listener !== debouncedOnMouseMove;\n });\n }\n\n function onDocumentPress(event) {\n // Moved finger to scroll instead of an intentional tap outside\n if (currentInput.isTouch) {\n if (didTouchMove || event.type === 'mousedown') {\n return;\n }\n }\n\n var actualTarget = event.composedPath && event.composedPath()[0] || event.target; // Clicked on interactive popper\n\n if (instance.props.interactive && actualContains(popper, actualTarget)) {\n return;\n } // Clicked on the event listeners target\n\n\n if (normalizeToArray(instance.props.triggerTarget || reference).some(function (el) {\n return actualContains(el, actualTarget);\n })) {\n if (currentInput.isTouch) {\n return;\n }\n\n if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {\n return;\n }\n } else {\n invokeHook('onClickOutside', [instance, event]);\n }\n\n if (instance.props.hideOnClick === true) {\n instance.clearDelayTimeouts();\n instance.hide(); // `mousedown` event is fired right before `focus` if pressing the\n // currentTarget. This lets a tippy with `focus` trigger know that it\n // should not show\n\n didHideDueToDocumentMouseDown = true;\n setTimeout(function () {\n didHideDueToDocumentMouseDown = false;\n }); // The listener gets added in `scheduleShow()`, but this may be hiding it\n // before it shows, and hide()'s early bail-out behavior can prevent it\n // from being cleaned up\n\n if (!instance.state.isMounted) {\n removeDocumentPress();\n }\n }\n }\n\n function onTouchMove() {\n didTouchMove = true;\n }\n\n function onTouchStart() {\n didTouchMove = false;\n }\n\n function addDocumentPress() {\n var doc = getDocument();\n doc.addEventListener('mousedown', onDocumentPress, true);\n doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n }\n\n function removeDocumentPress() {\n var doc = getDocument();\n doc.removeEventListener('mousedown', onDocumentPress, true);\n doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n }\n\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {\n callback();\n }\n });\n }\n\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n\n function onTransitionEnd(duration, callback) {\n var box = getDefaultTemplateChildren().box;\n\n function listener(event) {\n if (event.target === box) {\n updateTransitionEndListener(box, 'remove', listener);\n callback();\n }\n } // Make callback synchronous if duration is 0\n // `transitionend` won't fire otherwise\n\n\n if (duration === 0) {\n return callback();\n }\n\n updateTransitionEndListener(box, 'remove', currentTransitionEndListener);\n updateTransitionEndListener(box, 'add', listener);\n currentTransitionEndListener = listener;\n }\n\n function on(eventType, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n node.addEventListener(eventType, handler, options);\n listeners.push({\n node: node,\n eventType: eventType,\n handler: handler,\n options: options\n });\n });\n }\n\n function addListeners() {\n if (getIsCustomTouchBehavior()) {\n on('touchstart', onTrigger, {\n passive: true\n });\n on('touchend', onMouseLeave, {\n passive: true\n });\n }\n\n splitBySpaces(instance.props.trigger).forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n }\n\n on(eventType, onTrigger);\n\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n\n case 'focus':\n on(isIE11 ? 'focusout' : 'blur', onBlurOrFocusOut);\n break;\n\n case 'focusin':\n on('focusout', onBlurOrFocusOut);\n break;\n }\n });\n }\n\n function removeListeners() {\n listeners.forEach(function (_ref) {\n var node = _ref.node,\n eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n node.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n function onTrigger(event) {\n var _lastTriggerEvent;\n\n var shouldScheduleClickHide = false;\n\n if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {\n return;\n }\n\n var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';\n lastTriggerEvent = event;\n currentTarget = event.currentTarget;\n handleAriaExpandedAttribute();\n\n if (!instance.state.isVisible && isMouseEvent(event)) {\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(function (listener) {\n return listener(event);\n });\n } // Toggle show/hide when clicking click-triggered tooltips\n\n\n if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {\n shouldScheduleClickHide = true;\n } else {\n scheduleShow(event);\n }\n\n if (event.type === 'click') {\n isVisibleFromClick = !shouldScheduleClickHide;\n }\n\n if (shouldScheduleClickHide && !wasFocused) {\n scheduleHide(event);\n }\n }\n\n function onMouseMove(event) {\n var target = event.target;\n var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper.contains(target);\n\n if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {\n return;\n }\n\n var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {\n var _instance$popperInsta;\n\n var instance = popper._tippy;\n var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;\n\n if (state) {\n return {\n popperRect: popper.getBoundingClientRect(),\n popperState: state,\n props: props\n };\n }\n\n return null;\n }).filter(Boolean);\n\n if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {\n cleanupInteractiveMouseListeners();\n scheduleHide(event);\n }\n }\n\n function onMouseLeave(event) {\n var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;\n\n if (shouldBail) {\n return;\n }\n\n if (instance.props.interactive) {\n instance.hideWithInteractivity(event);\n return;\n }\n\n scheduleHide(event);\n }\n\n function onBlurOrFocusOut(event) {\n if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {\n return;\n } // If focus was moved to within the popper\n\n\n if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {\n return;\n }\n\n scheduleHide(event);\n }\n\n function isEventListenerStopped(event) {\n return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;\n }\n\n function createPopperInstance() {\n destroyPopperInstance();\n var _instance$props2 = instance.props,\n popperOptions = _instance$props2.popperOptions,\n placement = _instance$props2.placement,\n offset = _instance$props2.offset,\n getReferenceClientRect = _instance$props2.getReferenceClientRect,\n moveTransition = _instance$props2.moveTransition;\n var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;\n var computedReference = getReferenceClientRect ? {\n getBoundingClientRect: getReferenceClientRect,\n contextElement: getReferenceClientRect.contextElement || getCurrentTarget()\n } : reference;\n var tippyModifier = {\n name: '$$tippy',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: function fn(_ref2) {\n var state = _ref2.state;\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh.box;\n\n ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {\n if (attr === 'placement') {\n box.setAttribute('data-placement', state.placement);\n } else {\n if (state.attributes.popper[\"data-popper-\" + attr]) {\n box.setAttribute(\"data-\" + attr, '');\n } else {\n box.removeAttribute(\"data-\" + attr);\n }\n }\n });\n state.attributes.popper = {};\n }\n }\n };\n var modifiers = [{\n name: 'offset',\n options: {\n offset: offset\n }\n }, {\n name: 'preventOverflow',\n options: {\n padding: {\n top: 2,\n bottom: 2,\n left: 5,\n right: 5\n }\n }\n }, {\n name: 'flip',\n options: {\n padding: 5\n }\n }, {\n name: 'computeStyles',\n options: {\n adaptive: !moveTransition\n }\n }, tippyModifier];\n\n if (getIsDefaultRenderFn() && arrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n element: arrow,\n padding: 3\n }\n });\n }\n\n modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);\n instance.popperInstance = createPopper(computedReference, popper, Object.assign({}, popperOptions, {\n placement: placement,\n onFirstUpdate: onFirstUpdate,\n modifiers: modifiers\n }));\n }\n\n function destroyPopperInstance() {\n if (instance.popperInstance) {\n instance.popperInstance.destroy();\n instance.popperInstance = null;\n }\n }\n\n function mount() {\n var appendTo = instance.props.appendTo;\n var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so\n // it's directly after the reference element so the elements inside the\n // tippy can be tabbed to\n // If there are clipping issues, the user can specify a different appendTo\n // and ensure focus management is handled correctly manually\n\n var node = getCurrentTarget();\n\n if (instance.props.interactive && appendTo === TIPPY_DEFAULT_APPEND_TO || appendTo === 'parent') {\n parentNode = node.parentNode;\n } else {\n parentNode = invokeWithArgsOrReturn(appendTo, [node]);\n } // The popper element needs to exist on the DOM before its position can be\n // updated as Popper needs to read its dimensions\n\n\n if (!parentNode.contains(popper)) {\n parentNode.appendChild(popper);\n }\n\n instance.state.isMounted = true;\n createPopperInstance();\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n // Accessibility check\n warnWhen(instance.props.interactive && appendTo === defaultProps.appendTo && node.nextElementSibling !== popper, ['Interactive tippy element may not be accessible via keyboard', 'navigation because it is not directly after the reference element', 'in the DOM source order.', '\\n\\n', 'Using a wrapper or
tag around the reference element', 'solves this by creating a new parentNode context.', '\\n\\n', 'Specifying `appendTo: document.body` silences this warning, but it', 'assumes you are using a focus management solution to handle', 'keyboard navigation.', '\\n\\n', 'See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity'].join(' '));\n }\n }\n\n function getNestedPopperTree() {\n return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));\n }\n\n function scheduleShow(event) {\n instance.clearDelayTimeouts();\n\n if (event) {\n invokeHook('onTrigger', [instance, event]);\n }\n\n addDocumentPress();\n var delay = getDelay(true);\n\n var _getNormalizedTouchSe = getNormalizedTouchSettings(),\n touchValue = _getNormalizedTouchSe[0],\n touchDelay = _getNormalizedTouchSe[1];\n\n if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {\n delay = touchDelay;\n }\n\n if (delay) {\n showTimeout = setTimeout(function () {\n instance.show();\n }, delay);\n } else {\n instance.show();\n }\n }\n\n function scheduleHide(event) {\n instance.clearDelayTimeouts();\n invokeHook('onUntrigger', [instance, event]);\n\n if (!instance.state.isVisible) {\n removeDocumentPress();\n return;\n } // For interactive tippies, scheduleHide is added to a document.body handler\n // from onMouseLeave so must intercept scheduled hides from mousemove/leave\n // events when trigger contains mouseenter and click, and the tip is\n // currently shown as a result of a click.\n\n\n if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {\n return;\n }\n\n var delay = getDelay(false);\n\n if (delay) {\n hideTimeout = setTimeout(function () {\n if (instance.state.isVisible) {\n instance.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 scheduleHideAnimationFrame = requestAnimationFrame(function () {\n instance.hide();\n });\n }\n } // ===========================================================================\n // 🔑 Public methods\n // ===========================================================================\n\n\n function enable() {\n instance.state.isEnabled = true;\n }\n\n function disable() {\n // Disabling the instance should also hide it\n // https://github.com/atomiks/tippy.js-react/issues/106\n instance.hide();\n instance.state.isEnabled = false;\n }\n\n function clearDelayTimeouts() {\n clearTimeout(showTimeout);\n clearTimeout(hideTimeout);\n cancelAnimationFrame(scheduleHideAnimationFrame);\n }\n\n function setProps(partialProps) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('setProps'));\n }\n\n if (instance.state.isDestroyed) {\n return;\n }\n\n invokeHook('onBeforeUpdate', [instance, partialProps]);\n removeListeners();\n var prevProps = instance.props;\n var nextProps = evaluateProps(reference, Object.assign({}, prevProps, removeUndefinedProps(partialProps), {\n ignoreAttributes: true\n }));\n instance.props = nextProps;\n addListeners();\n\n if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {\n cleanupInteractiveMouseListeners();\n debouncedOnMouseMove = debounce(onMouseMove, nextProps.interactiveDebounce);\n } // Ensure stale aria-expanded attributes are removed\n\n\n if (prevProps.triggerTarget && !nextProps.triggerTarget) {\n normalizeToArray(prevProps.triggerTarget).forEach(function (node) {\n node.removeAttribute('aria-expanded');\n });\n } else if (nextProps.triggerTarget) {\n reference.removeAttribute('aria-expanded');\n }\n\n handleAriaExpandedAttribute();\n handleStyles();\n\n if (onUpdate) {\n onUpdate(prevProps, nextProps);\n }\n\n if (instance.popperInstance) {\n createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,\n // and the nested ones get re-rendered first.\n // https://github.com/atomiks/tippyjs-react/issues/177\n // TODO: find a cleaner / more efficient solution(!)\n\n getNestedPopperTree().forEach(function (nestedPopper) {\n // React (and other UI libs likely) requires a rAF wrapper as it flushes\n // its work in one\n requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);\n });\n }\n\n invokeHook('onAfterUpdate', [instance, partialProps]);\n }\n\n function setContent(content) {\n instance.setProps({\n content: content\n });\n }\n\n function show() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('show'));\n } // Early bail-out\n\n\n var isAlreadyVisible = instance.state.isVisible;\n var isDestroyed = instance.state.isDestroyed;\n var isDisabled = !instance.state.isEnabled;\n var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;\n var duration = getValueAtIndexOrReturn(instance.props.duration, 0, defaultProps.duration);\n\n if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {\n return;\n } // Normalize `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\n\n if (getCurrentTarget().hasAttribute('disabled')) {\n return;\n }\n\n invokeHook('onShow', [instance], false);\n\n if (instance.props.onShow(instance) === false) {\n return;\n }\n\n instance.state.isVisible = true;\n\n if (getIsDefaultRenderFn()) {\n popper.style.visibility = 'visible';\n }\n\n handleStyles();\n addDocumentPress();\n\n if (!instance.state.isMounted) {\n popper.style.transition = 'none';\n } // If flipping to the opposite side after hiding at least once, the\n // animation will use the wrong placement without resetting the duration\n\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh2.box,\n content = _getDefaultTemplateCh2.content;\n\n setTransitionDuration([box, content], 0);\n }\n\n onFirstUpdate = function onFirstUpdate() {\n var _instance$popperInsta2;\n\n if (!instance.state.isVisible || ignoreOnFirstUpdate) {\n return;\n }\n\n ignoreOnFirstUpdate = true; // reflow\n\n void popper.offsetHeight;\n popper.style.transition = instance.props.moveTransition;\n\n if (getIsDefaultRenderFn() && instance.props.animation) {\n var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),\n _box = _getDefaultTemplateCh3.box,\n _content = _getDefaultTemplateCh3.content;\n\n setTransitionDuration([_box, _content], duration);\n setVisibilityState([_box, _content], 'visible');\n }\n\n handleAriaContentAttribute();\n handleAriaExpandedAttribute();\n pushIfUnique(mountedInstances, instance); // certain modifiers (e.g. `maxSize`) require a second update after the\n // popper has been positioned for the first time\n\n (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();\n invokeHook('onMount', [instance]);\n\n if (instance.props.animation && getIsDefaultRenderFn()) {\n onTransitionedIn(duration, function () {\n instance.state.isShown = true;\n invokeHook('onShown', [instance]);\n });\n }\n };\n\n mount();\n }\n\n function hide() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hide'));\n } // Early bail-out\n\n\n var isAlreadyHidden = !instance.state.isVisible;\n var isDestroyed = instance.state.isDestroyed;\n var isDisabled = !instance.state.isEnabled;\n var duration = getValueAtIndexOrReturn(instance.props.duration, 1, defaultProps.duration);\n\n if (isAlreadyHidden || isDestroyed || isDisabled) {\n return;\n }\n\n invokeHook('onHide', [instance], false);\n\n if (instance.props.onHide(instance) === false) {\n return;\n }\n\n instance.state.isVisible = false;\n instance.state.isShown = false;\n ignoreOnFirstUpdate = false;\n isVisibleFromClick = false;\n\n if (getIsDefaultRenderFn()) {\n popper.style.visibility = 'hidden';\n }\n\n cleanupInteractiveMouseListeners();\n removeDocumentPress();\n handleStyles(true);\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh4.box,\n content = _getDefaultTemplateCh4.content;\n\n if (instance.props.animation) {\n setTransitionDuration([box, content], duration);\n setVisibilityState([box, content], 'hidden');\n }\n }\n\n handleAriaContentAttribute();\n handleAriaExpandedAttribute();\n\n if (instance.props.animation) {\n if (getIsDefaultRenderFn()) {\n onTransitionedOut(duration, instance.unmount);\n }\n } else {\n instance.unmount();\n }\n }\n\n function hideWithInteractivity(event) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hideWithInteractivity'));\n }\n\n getDocument().addEventListener('mousemove', debouncedOnMouseMove);\n pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);\n debouncedOnMouseMove(event);\n }\n\n function unmount() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('unmount'));\n }\n\n if (instance.state.isVisible) {\n instance.hide();\n }\n\n if (!instance.state.isMounted) {\n return;\n }\n\n destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper\n // tree by default. This seems mainly for interactive tippies, but we should\n // find a workaround if possible\n\n getNestedPopperTree().forEach(function (nestedPopper) {\n nestedPopper._tippy.unmount();\n });\n\n if (popper.parentNode) {\n popper.parentNode.removeChild(popper);\n }\n\n mountedInstances = mountedInstances.filter(function (i) {\n return i !== instance;\n });\n instance.state.isMounted = false;\n invokeHook('onHidden', [instance]);\n }\n\n function destroy() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('destroy'));\n }\n\n if (instance.state.isDestroyed) {\n return;\n }\n\n instance.clearDelayTimeouts();\n instance.unmount();\n removeListeners();\n delete reference._tippy;\n instance.state.isDestroyed = true;\n invokeHook('onDestroy', [instance]);\n }\n}\n\nfunction tippy(targets, optionalProps) {\n if (optionalProps === void 0) {\n optionalProps = {};\n }\n\n var plugins = defaultProps.plugins.concat(optionalProps.plugins || []);\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n validateTargets(targets);\n validateProps(optionalProps, plugins);\n }\n\n bindGlobalEventListeners();\n var passedProps = Object.assign({}, optionalProps, {\n plugins: plugins\n });\n var elements = getArrayOfElements(targets);\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n var isSingleContentElement = isElement(passedProps.content);\n var isMoreThanOneReferenceElement = elements.length > 1;\n warnWhen(isSingleContentElement && isMoreThanOneReferenceElement, ['tippy() was passed an Element as the `content` prop, but more than', 'one tippy instance was created by this invocation. This means the', 'content element will only be appended to the last tippy instance.', '\\n\\n', 'Instead, pass the .innerHTML of the element, or use a function that', 'returns a cloned version of the element instead.', '\\n\\n', '1) content: element.innerHTML\\n', '2) content: () => element.cloneNode(true)'].join(' '));\n }\n\n var instances = elements.reduce(function (acc, reference) {\n var instance = reference && createTippy(reference, passedProps);\n\n if (instance) {\n acc.push(instance);\n }\n\n return acc;\n }, []);\n return isElement(targets) ? instances[0] : instances;\n}\n\ntippy.defaultProps = defaultProps;\ntippy.setDefaultProps = setDefaultProps;\ntippy.currentInput = currentInput;\nvar hideAll = function hideAll(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n excludedReferenceOrInstance = _ref.exclude,\n duration = _ref.duration;\n\n mountedInstances.forEach(function (instance) {\n var isExcluded = false;\n\n if (excludedReferenceOrInstance) {\n isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;\n }\n\n if (!isExcluded) {\n var originalDuration = instance.props.duration;\n instance.setProps({\n duration: duration\n });\n instance.hide();\n\n if (!instance.state.isDestroyed) {\n instance.setProps({\n duration: originalDuration\n });\n }\n }\n });\n};\n\n// every time the popper is destroyed (i.e. a new target), removing the styles\n// and causing transitions to break for singletons when the console is open, but\n// most notably for non-transform styles being used, `gpuAcceleration: false`.\n\nvar applyStylesModifier = Object.assign({}, applyStyles, {\n effect: function effect(_ref) {\n var state = _ref.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n } // intentionally return no cleanup function\n // return () => { ... }\n\n }\n});\n\nvar createSingleton = function createSingleton(tippyInstances, optionalProps) {\n var _optionalProps$popper;\n\n if (optionalProps === void 0) {\n optionalProps = {};\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(!Array.isArray(tippyInstances), ['The first argument passed to createSingleton() must be an array of', 'tippy instances. The passed value was', String(tippyInstances)].join(' '));\n }\n\n var individualInstances = tippyInstances;\n var references = [];\n var triggerTargets = [];\n var currentTarget;\n var overrides = optionalProps.overrides;\n var interceptSetPropsCleanups = [];\n var shownOnCreate = false;\n\n function setTriggerTargets() {\n triggerTargets = individualInstances.map(function (instance) {\n return normalizeToArray(instance.props.triggerTarget || instance.reference);\n }).reduce(function (acc, item) {\n return acc.concat(item);\n }, []);\n }\n\n function setReferences() {\n references = individualInstances.map(function (instance) {\n return instance.reference;\n });\n }\n\n function enableInstances(isEnabled) {\n individualInstances.forEach(function (instance) {\n if (isEnabled) {\n instance.enable();\n } else {\n instance.disable();\n }\n });\n }\n\n function interceptSetProps(singleton) {\n return individualInstances.map(function (instance) {\n var originalSetProps = instance.setProps;\n\n instance.setProps = function (props) {\n originalSetProps(props);\n\n if (instance.reference === currentTarget) {\n singleton.setProps(props);\n }\n };\n\n return function () {\n instance.setProps = originalSetProps;\n };\n });\n } // have to pass singleton, as it maybe undefined on first call\n\n\n function prepareInstance(singleton, target) {\n var index = triggerTargets.indexOf(target); // bail-out\n\n if (target === currentTarget) {\n return;\n }\n\n currentTarget = target;\n var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {\n acc[prop] = individualInstances[index].props[prop];\n return acc;\n }, {});\n singleton.setProps(Object.assign({}, overrideProps, {\n getReferenceClientRect: typeof overrideProps.getReferenceClientRect === 'function' ? overrideProps.getReferenceClientRect : function () {\n var _references$index;\n\n return (_references$index = references[index]) == null ? void 0 : _references$index.getBoundingClientRect();\n }\n }));\n }\n\n enableInstances(false);\n setReferences();\n setTriggerTargets();\n var plugin = {\n fn: function fn() {\n return {\n onDestroy: function onDestroy() {\n enableInstances(true);\n },\n onHidden: function onHidden() {\n currentTarget = null;\n },\n onClickOutside: function onClickOutside(instance) {\n if (instance.props.showOnCreate && !shownOnCreate) {\n shownOnCreate = true;\n currentTarget = null;\n }\n },\n onShow: function onShow(instance) {\n if (instance.props.showOnCreate && !shownOnCreate) {\n shownOnCreate = true;\n prepareInstance(instance, references[0]);\n }\n },\n onTrigger: function onTrigger(instance, event) {\n prepareInstance(instance, event.currentTarget);\n }\n };\n }\n };\n var singleton = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {\n plugins: [plugin].concat(optionalProps.plugins || []),\n triggerTarget: triggerTargets,\n popperOptions: Object.assign({}, optionalProps.popperOptions, {\n modifiers: [].concat(((_optionalProps$popper = optionalProps.popperOptions) == null ? void 0 : _optionalProps$popper.modifiers) || [], [applyStylesModifier])\n })\n }));\n var originalShow = singleton.show;\n\n singleton.show = function (target) {\n originalShow(); // first time, showOnCreate or programmatic call with no params\n // default to showing first instance\n\n if (!currentTarget && target == null) {\n return prepareInstance(singleton, references[0]);\n } // triggered from event (do nothing as prepareInstance already called by onTrigger)\n // programmatic call with no params when already visible (do nothing again)\n\n\n if (currentTarget && target == null) {\n return;\n } // target is index of instance\n\n\n if (typeof target === 'number') {\n return references[target] && prepareInstance(singleton, references[target]);\n } // target is a child tippy instance\n\n\n if (individualInstances.indexOf(target) >= 0) {\n var ref = target.reference;\n return prepareInstance(singleton, ref);\n } // target is a ReferenceElement\n\n\n if (references.indexOf(target) >= 0) {\n return prepareInstance(singleton, target);\n }\n };\n\n singleton.showNext = function () {\n var first = references[0];\n\n if (!currentTarget) {\n return singleton.show(0);\n }\n\n var index = references.indexOf(currentTarget);\n singleton.show(references[index + 1] || first);\n };\n\n singleton.showPrevious = function () {\n var last = references[references.length - 1];\n\n if (!currentTarget) {\n return singleton.show(last);\n }\n\n var index = references.indexOf(currentTarget);\n var target = references[index - 1] || last;\n singleton.show(target);\n };\n\n var originalSetProps = singleton.setProps;\n\n singleton.setProps = function (props) {\n overrides = props.overrides || overrides;\n originalSetProps(props);\n };\n\n singleton.setInstances = function (nextInstances) {\n enableInstances(true);\n interceptSetPropsCleanups.forEach(function (fn) {\n return fn();\n });\n individualInstances = nextInstances;\n enableInstances(false);\n setReferences();\n setTriggerTargets();\n interceptSetPropsCleanups = interceptSetProps(singleton);\n singleton.setProps({\n triggerTarget: triggerTargets\n });\n };\n\n interceptSetPropsCleanups = interceptSetProps(singleton);\n return singleton;\n};\n\nvar BUBBLING_EVENTS_MAP = {\n mouseover: 'mouseenter',\n focusin: 'focus',\n click: 'click'\n};\n/**\n * Creates a delegate instance that controls the creation of tippy instances\n * for child elements (`target` CSS selector).\n */\n\nfunction delegate(targets, props) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(!(props && props.target), ['You must specity a `target` prop indicating a CSS selector string matching', 'the target elements that should receive a tippy.'].join(' '));\n }\n\n var listeners = [];\n var childTippyInstances = [];\n var disabled = false;\n var target = props.target;\n var nativeProps = removeProperties(props, ['target']);\n var parentProps = Object.assign({}, nativeProps, {\n trigger: 'manual',\n touch: false\n });\n var childProps = Object.assign({\n touch: defaultProps.touch\n }, nativeProps, {\n showOnCreate: true\n });\n var returnValue = tippy(targets, parentProps);\n var normalizedReturnValue = normalizeToArray(returnValue);\n\n function onTrigger(event) {\n if (!event.target || disabled) {\n return;\n }\n\n var targetNode = event.target.closest(target);\n\n if (!targetNode) {\n return;\n } // Get relevant trigger with fallbacks:\n // 1. Check `data-tippy-trigger` attribute on target node\n // 2. Fallback to `trigger` passed to `delegate()`\n // 3. Fallback to `defaultProps.trigger`\n\n\n var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || defaultProps.trigger; // @ts-ignore\n\n if (targetNode._tippy) {\n return;\n }\n\n if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {\n return;\n }\n\n if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type]) < 0) {\n return;\n }\n\n var instance = tippy(targetNode, childProps);\n\n if (instance) {\n childTippyInstances = childTippyInstances.concat(instance);\n }\n }\n\n function on(node, eventType, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n node.addEventListener(eventType, handler, options);\n listeners.push({\n node: node,\n eventType: eventType,\n handler: handler,\n options: options\n });\n }\n\n function addEventListeners(instance) {\n var reference = instance.reference;\n on(reference, 'touchstart', onTrigger, TOUCH_OPTIONS);\n on(reference, 'mouseover', onTrigger);\n on(reference, 'focusin', onTrigger);\n on(reference, 'click', onTrigger);\n }\n\n function removeEventListeners() {\n listeners.forEach(function (_ref) {\n var node = _ref.node,\n eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n node.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n function applyMutations(instance) {\n var originalDestroy = instance.destroy;\n var originalEnable = instance.enable;\n var originalDisable = instance.disable;\n\n instance.destroy = function (shouldDestroyChildInstances) {\n if (shouldDestroyChildInstances === void 0) {\n shouldDestroyChildInstances = true;\n }\n\n if (shouldDestroyChildInstances) {\n childTippyInstances.forEach(function (instance) {\n instance.destroy();\n });\n }\n\n childTippyInstances = [];\n removeEventListeners();\n originalDestroy();\n };\n\n instance.enable = function () {\n originalEnable();\n childTippyInstances.forEach(function (instance) {\n return instance.enable();\n });\n disabled = false;\n };\n\n instance.disable = function () {\n originalDisable();\n childTippyInstances.forEach(function (instance) {\n return instance.disable();\n });\n disabled = true;\n };\n\n addEventListeners(instance);\n }\n\n normalizedReturnValue.forEach(applyMutations);\n return returnValue;\n}\n\nvar animateFill = {\n name: 'animateFill',\n defaultValue: false,\n fn: function fn(instance) {\n var _instance$props$rende;\n\n // @ts-ignore\n if (!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy)) {\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(instance.props.animateFill, 'The `animateFill` plugin requires the default render function.');\n }\n\n return {};\n }\n\n var _getChildren = getChildren(instance.popper),\n box = _getChildren.box,\n content = _getChildren.content;\n\n var backdrop = instance.props.animateFill ? createBackdropElement() : null;\n return {\n onCreate: function onCreate() {\n if (backdrop) {\n box.insertBefore(backdrop, box.firstElementChild);\n box.setAttribute('data-animatefill', '');\n box.style.overflow = 'hidden';\n instance.setProps({\n arrow: false,\n animation: 'shift-away'\n });\n }\n },\n onMount: function onMount() {\n if (backdrop) {\n var transitionDuration = box.style.transitionDuration;\n var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the\n // tooltip element. `clip-path` is the other alternative but is not\n // well-supported and is buggy on some devices.\n\n content.style.transitionDelay = Math.round(duration / 10) + \"ms\";\n backdrop.style.transitionDuration = transitionDuration;\n setVisibilityState([backdrop], 'visible');\n }\n },\n onShow: function onShow() {\n if (backdrop) {\n backdrop.style.transitionDuration = '0ms';\n }\n },\n onHide: function onHide() {\n if (backdrop) {\n setVisibilityState([backdrop], 'hidden');\n }\n }\n };\n }\n};\n\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = BACKDROP_CLASS;\n setVisibilityState([backdrop], 'hidden');\n return backdrop;\n}\n\nvar mouseCoords = {\n clientX: 0,\n clientY: 0\n};\nvar activeInstances = [];\n\nfunction storeMouseCoords(_ref) {\n var clientX = _ref.clientX,\n clientY = _ref.clientY;\n mouseCoords = {\n clientX: clientX,\n clientY: clientY\n };\n}\n\nfunction addMouseCoordsListener(doc) {\n doc.addEventListener('mousemove', storeMouseCoords);\n}\n\nfunction removeMouseCoordsListener(doc) {\n doc.removeEventListener('mousemove', storeMouseCoords);\n}\n\nvar followCursor = {\n name: 'followCursor',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference;\n var doc = getOwnerDocument(instance.props.triggerTarget || reference);\n var isInternalUpdate = false;\n var wasFocusEvent = false;\n var isUnmounted = true;\n var prevProps = instance.props;\n\n function getIsInitialBehavior() {\n return instance.props.followCursor === 'initial' && instance.state.isVisible;\n }\n\n function addListener() {\n doc.addEventListener('mousemove', onMouseMove);\n }\n\n function removeListener() {\n doc.removeEventListener('mousemove', onMouseMove);\n }\n\n function unsetGetReferenceClientRect() {\n isInternalUpdate = true;\n instance.setProps({\n getReferenceClientRect: null\n });\n isInternalUpdate = false;\n }\n\n function onMouseMove(event) {\n // If the instance is interactive, avoid updating the position unless it's\n // over the reference element\n var isCursorOverReference = event.target ? reference.contains(event.target) : true;\n var followCursor = instance.props.followCursor;\n var clientX = event.clientX,\n clientY = event.clientY;\n var rect = reference.getBoundingClientRect();\n var relativeX = clientX - rect.left;\n var relativeY = clientY - rect.top;\n\n if (isCursorOverReference || !instance.props.interactive) {\n instance.setProps({\n // @ts-ignore - unneeded DOMRect properties\n getReferenceClientRect: function getReferenceClientRect() {\n var rect = reference.getBoundingClientRect();\n var x = clientX;\n var y = clientY;\n\n if (followCursor === 'initial') {\n x = rect.left + relativeX;\n y = rect.top + relativeY;\n }\n\n var top = followCursor === 'horizontal' ? rect.top : y;\n var right = followCursor === 'vertical' ? rect.right : x;\n var bottom = followCursor === 'horizontal' ? rect.bottom : y;\n var left = followCursor === 'vertical' ? rect.left : x;\n return {\n width: right - left,\n height: bottom - top,\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n }\n });\n }\n }\n\n function create() {\n if (instance.props.followCursor) {\n activeInstances.push({\n instance: instance,\n doc: doc\n });\n addMouseCoordsListener(doc);\n }\n }\n\n function destroy() {\n activeInstances = activeInstances.filter(function (data) {\n return data.instance !== instance;\n });\n\n if (activeInstances.filter(function (data) {\n return data.doc === doc;\n }).length === 0) {\n removeMouseCoordsListener(doc);\n }\n }\n\n return {\n onCreate: create,\n onDestroy: destroy,\n onBeforeUpdate: function onBeforeUpdate() {\n prevProps = instance.props;\n },\n onAfterUpdate: function onAfterUpdate(_, _ref2) {\n var followCursor = _ref2.followCursor;\n\n if (isInternalUpdate) {\n return;\n }\n\n if (followCursor !== undefined && prevProps.followCursor !== followCursor) {\n destroy();\n\n if (followCursor) {\n create();\n\n if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {\n addListener();\n }\n } else {\n removeListener();\n unsetGetReferenceClientRect();\n }\n }\n },\n onMount: function onMount() {\n if (instance.props.followCursor && !wasFocusEvent) {\n if (isUnmounted) {\n onMouseMove(mouseCoords);\n isUnmounted = false;\n }\n\n if (!getIsInitialBehavior()) {\n addListener();\n }\n }\n },\n onTrigger: function onTrigger(_, event) {\n if (isMouseEvent(event)) {\n mouseCoords = {\n clientX: event.clientX,\n clientY: event.clientY\n };\n }\n\n wasFocusEvent = event.type === 'focus';\n },\n onHidden: function onHidden() {\n if (instance.props.followCursor) {\n unsetGetReferenceClientRect();\n removeListener();\n isUnmounted = true;\n }\n }\n };\n }\n};\n\nfunction getProps(props, modifier) {\n var _props$popperOptions;\n\n return {\n popperOptions: Object.assign({}, props.popperOptions, {\n modifiers: [].concat((((_props$popperOptions = props.popperOptions) == null ? void 0 : _props$popperOptions.modifiers) || []).filter(function (_ref) {\n var name = _ref.name;\n return name !== modifier.name;\n }), [modifier])\n })\n };\n}\n\nvar inlinePositioning = {\n name: 'inlinePositioning',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference;\n\n function isEnabled() {\n return !!instance.props.inlinePositioning;\n }\n\n var placement;\n var cursorRectIndex = -1;\n var isInternalUpdate = false;\n var triedPlacements = [];\n var modifier = {\n name: 'tippyInlinePositioning',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(_ref2) {\n var state = _ref2.state;\n\n if (isEnabled()) {\n if (triedPlacements.indexOf(state.placement) !== -1) {\n triedPlacements = [];\n }\n\n if (placement !== state.placement && triedPlacements.indexOf(state.placement) === -1) {\n triedPlacements.push(state.placement);\n instance.setProps({\n // @ts-ignore - unneeded DOMRect properties\n getReferenceClientRect: function getReferenceClientRect() {\n return _getReferenceClientRect(state.placement);\n }\n });\n }\n\n placement = state.placement;\n }\n }\n };\n\n function _getReferenceClientRect(placement) {\n return getInlineBoundingClientRect(getBasePlacement(placement), reference.getBoundingClientRect(), arrayFrom(reference.getClientRects()), cursorRectIndex);\n }\n\n function setInternalProps(partialProps) {\n isInternalUpdate = true;\n instance.setProps(partialProps);\n isInternalUpdate = false;\n }\n\n function addModifier() {\n if (!isInternalUpdate) {\n setInternalProps(getProps(instance.props, modifier));\n }\n }\n\n return {\n onCreate: addModifier,\n onAfterUpdate: addModifier,\n onTrigger: function onTrigger(_, event) {\n if (isMouseEvent(event)) {\n var rects = arrayFrom(instance.reference.getClientRects());\n var cursorRect = rects.find(function (rect) {\n return rect.left - 2 <= event.clientX && rect.right + 2 >= event.clientX && rect.top - 2 <= event.clientY && rect.bottom + 2 >= event.clientY;\n });\n var index = rects.indexOf(cursorRect);\n cursorRectIndex = index > -1 ? index : cursorRectIndex;\n }\n },\n onHidden: function onHidden() {\n cursorRectIndex = -1;\n }\n };\n }\n};\nfunction getInlineBoundingClientRect(currentBasePlacement, boundingRect, clientRects, cursorRectIndex) {\n // Not an inline element, or placement is not yet known\n if (clientRects.length < 2 || currentBasePlacement === null) {\n return boundingRect;\n } // There are two rects and they are disjoined\n\n\n if (clientRects.length === 2 && cursorRectIndex >= 0 && clientRects[0].left > clientRects[1].right) {\n return clientRects[cursorRectIndex] || boundingRect;\n }\n\n switch (currentBasePlacement) {\n case 'top':\n case 'bottom':\n {\n var firstRect = clientRects[0];\n var lastRect = clientRects[clientRects.length - 1];\n var isTop = currentBasePlacement === 'top';\n var top = firstRect.top;\n var bottom = lastRect.bottom;\n var left = isTop ? firstRect.left : lastRect.left;\n var right = isTop ? firstRect.right : lastRect.right;\n var width = right - left;\n var height = bottom - top;\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n\n case 'left':\n case 'right':\n {\n var minLeft = Math.min.apply(Math, clientRects.map(function (rects) {\n return rects.left;\n }));\n var maxRight = Math.max.apply(Math, clientRects.map(function (rects) {\n return rects.right;\n }));\n var measureRects = clientRects.filter(function (rect) {\n return currentBasePlacement === 'left' ? rect.left === minLeft : rect.right === maxRight;\n });\n var _top = measureRects[0].top;\n var _bottom = measureRects[measureRects.length - 1].bottom;\n var _left = minLeft;\n var _right = maxRight;\n\n var _width = _right - _left;\n\n var _height = _bottom - _top;\n\n return {\n top: _top,\n bottom: _bottom,\n left: _left,\n right: _right,\n width: _width,\n height: _height\n };\n }\n\n default:\n {\n return boundingRect;\n }\n }\n}\n\nvar sticky = {\n name: 'sticky',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference,\n popper = instance.popper;\n\n function getReference() {\n return instance.popperInstance ? instance.popperInstance.state.elements.reference : reference;\n }\n\n function shouldCheck(value) {\n return instance.props.sticky === true || instance.props.sticky === value;\n }\n\n var prevRefRect = null;\n var prevPopRect = null;\n\n function updatePosition() {\n var currentRefRect = shouldCheck('reference') ? getReference().getBoundingClientRect() : null;\n var currentPopRect = shouldCheck('popper') ? popper.getBoundingClientRect() : null;\n\n if (currentRefRect && areRectsDifferent(prevRefRect, currentRefRect) || currentPopRect && areRectsDifferent(prevPopRect, currentPopRect)) {\n if (instance.popperInstance) {\n instance.popperInstance.update();\n }\n }\n\n prevRefRect = currentRefRect;\n prevPopRect = currentPopRect;\n\n if (instance.state.isMounted) {\n requestAnimationFrame(updatePosition);\n }\n }\n\n return {\n onMount: function onMount() {\n if (instance.props.sticky) {\n updatePosition();\n }\n }\n };\n }\n};\n\nfunction areRectsDifferent(rectA, rectB) {\n if (rectA && rectB) {\n return rectA.top !== rectB.top || rectA.right !== rectB.right || rectA.bottom !== rectB.bottom || rectA.left !== rectB.left;\n }\n\n return true;\n}\n\ntippy.setDefaultProps({\n render: render\n});\n\nexport default tippy;\nexport { animateFill, createSingleton, delegate, followCursor, hideAll, inlinePositioning, ROUND_ARROW as roundArrow, sticky };\n//# sourceMappingURL=tippy.esm.js.map\n","import tippy, { createSingleton } from 'tippy.js';\nexport { default as tippy } from 'tippy.js';\nimport React, { useLayoutEffect, useEffect, useRef, useState, cloneElement, useMemo, forwardRef as forwardRef$1 } from 'react';\nimport { createPortal } from 'react-dom';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nfunction preserveRef(ref, node) {\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n }\n\n if ({}.hasOwnProperty.call(ref, 'current')) {\n ref.current = node;\n }\n }\n}\nfunction ssrSafeCreateDiv() {\n return isBrowser && document.createElement('div');\n}\nfunction toDataAttributes(attrs) {\n var dataAttrs = {\n 'data-placement': attrs.placement\n };\n\n if (attrs.referenceHidden) {\n dataAttrs['data-reference-hidden'] = '';\n }\n\n if (attrs.escaped) {\n dataAttrs['data-escaped'] = '';\n }\n\n return dataAttrs;\n}\n\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n } else if (typeof x === 'object' && x != null && typeof y === 'object' && y != null) {\n if (Object.keys(x).length !== Object.keys(y).length) {\n return false;\n }\n\n for (var prop in x) {\n if (y.hasOwnProperty(prop)) {\n if (!deepEqual(x[prop], y[prop])) {\n return false;\n }\n } else {\n return false;\n }\n }\n\n return true;\n } else {\n return false;\n }\n}\n\nfunction uniqueByShape(arr) {\n var output = [];\n arr.forEach(function (item) {\n if (!output.find(function (outputItem) {\n return deepEqual(item, outputItem);\n })) {\n output.push(item);\n }\n });\n return output;\n}\nfunction deepPreserveProps(instanceProps, componentProps) {\n var _instanceProps$popper, _componentProps$poppe;\n\n return Object.assign({}, componentProps, {\n popperOptions: Object.assign({}, instanceProps.popperOptions, componentProps.popperOptions, {\n modifiers: uniqueByShape([].concat(((_instanceProps$popper = instanceProps.popperOptions) == null ? void 0 : _instanceProps$popper.modifiers) || [], ((_componentProps$poppe = componentProps.popperOptions) == null ? void 0 : _componentProps$poppe.modifiers) || []))\n })\n });\n}\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nfunction useMutableBox(initialValue) {\n // Using refs instead of state as it's recommended to not store imperative\n // values in state due to memory problems in React(?)\n var ref = useRef();\n\n if (!ref.current) {\n ref.current = typeof initialValue === 'function' ? initialValue() : initialValue;\n }\n\n return ref.current;\n}\n\nfunction updateClassName(box, action, classNames) {\n classNames.split(/\\s+/).forEach(function (name) {\n if (name) {\n box.classList[action](name);\n }\n });\n}\n\nvar classNamePlugin = {\n name: 'className',\n defaultValue: '',\n fn: function fn(instance) {\n var box = instance.popper.firstElementChild;\n\n var isDefaultRenderFn = function isDefaultRenderFn() {\n var _instance$props$rende;\n\n return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);\n };\n\n function add() {\n if (instance.props.className && !isDefaultRenderFn()) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['@tippyjs/react: Cannot use `className` prop in conjunction with', '`render` prop. Place the className on the element you are', 'rendering.'].join(' '));\n }\n\n return;\n }\n\n updateClassName(box, 'add', instance.props.className);\n }\n\n function remove() {\n if (isDefaultRenderFn()) {\n updateClassName(box, 'remove', instance.props.className);\n }\n }\n\n return {\n onCreate: add,\n onBeforeUpdate: remove,\n onAfterUpdate: add\n };\n }\n};\n\nfunction TippyGenerator(tippy) {\n function Tippy(_ref) {\n var children = _ref.children,\n content = _ref.content,\n visible = _ref.visible,\n singleton = _ref.singleton,\n render = _ref.render,\n reference = _ref.reference,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$ignoreAttributes = _ref.ignoreAttributes,\n ignoreAttributes = _ref$ignoreAttributes === void 0 ? true : _ref$ignoreAttributes,\n __source = _ref.__source,\n __self = _ref.__self,\n restOfNativeProps = _objectWithoutPropertiesLoose(_ref, [\"children\", \"content\", \"visible\", \"singleton\", \"render\", \"reference\", \"disabled\", \"ignoreAttributes\", \"__source\", \"__self\"]);\n\n var isControlledMode = visible !== undefined;\n var isSingletonMode = singleton !== undefined;\n\n var _useState = useState(false),\n mounted = _useState[0],\n setMounted = _useState[1];\n\n var _useState2 = useState({}),\n attrs = _useState2[0],\n setAttrs = _useState2[1];\n\n var _useState3 = useState(),\n singletonContent = _useState3[0],\n setSingletonContent = _useState3[1];\n\n var mutableBox = useMutableBox(function () {\n return {\n container: ssrSafeCreateDiv(),\n renders: 1\n };\n });\n var props = Object.assign({\n ignoreAttributes: ignoreAttributes\n }, restOfNativeProps, {\n content: mutableBox.container\n });\n\n if (isControlledMode) {\n if (process.env.NODE_ENV !== 'production') {\n ['trigger', 'hideOnClick', 'showOnCreate'].forEach(function (nativeStateProp) {\n if (props[nativeStateProp] !== undefined) {\n console.warn([\"@tippyjs/react: Cannot specify `\" + nativeStateProp + \"` prop in\", \"controlled mode (`visible` prop)\"].join(' '));\n }\n });\n }\n\n props.trigger = 'manual';\n props.hideOnClick = false;\n }\n\n if (isSingletonMode) {\n disabled = true;\n }\n\n var computedProps = props;\n var plugins = props.plugins || [];\n\n if (render) {\n computedProps = Object.assign({}, props, {\n plugins: isSingletonMode && singleton.data != null ? [].concat(plugins, [{\n fn: function fn() {\n return {\n onTrigger: function onTrigger(instance, event) {\n var node = singleton.data.children.find(function (_ref2) {\n var instance = _ref2.instance;\n return instance.reference === event.currentTarget;\n });\n instance.state.$$activeSingletonInstance = node.instance;\n setSingletonContent(node.content);\n }\n };\n }\n }]) : plugins,\n render: function render() {\n return {\n popper: mutableBox.container\n };\n }\n });\n }\n\n var deps = [reference].concat(children ? [children.type] : []); // CREATE\n\n useIsomorphicLayoutEffect(function () {\n var element = reference;\n\n if (reference && reference.hasOwnProperty('current')) {\n element = reference.current;\n }\n\n var instance = tippy(element || mutableBox.ref || ssrSafeCreateDiv(), Object.assign({}, computedProps, {\n plugins: [classNamePlugin].concat(props.plugins || [])\n }));\n mutableBox.instance = instance;\n\n if (disabled) {\n instance.disable();\n }\n\n if (visible) {\n instance.show();\n }\n\n if (isSingletonMode) {\n singleton.hook({\n instance: instance,\n content: content,\n props: computedProps,\n setSingletonContent: setSingletonContent\n });\n }\n\n setMounted(true);\n return function () {\n instance.destroy();\n singleton == null ? void 0 : singleton.cleanup(instance);\n };\n }, deps); // UPDATE\n\n useIsomorphicLayoutEffect(function () {\n var _instance$popperInsta;\n\n // Prevent this effect from running on 1st render\n if (mutableBox.renders === 1) {\n mutableBox.renders++;\n return;\n }\n\n var instance = mutableBox.instance;\n instance.setProps(deepPreserveProps(instance.props, computedProps)); // Fixes #264\n\n (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.forceUpdate();\n\n if (disabled) {\n instance.disable();\n } else {\n instance.enable();\n }\n\n if (isControlledMode) {\n if (visible) {\n instance.show();\n } else {\n instance.hide();\n }\n }\n\n if (isSingletonMode) {\n singleton.hook({\n instance: instance,\n content: content,\n props: computedProps,\n setSingletonContent: setSingletonContent\n });\n }\n });\n useIsomorphicLayoutEffect(function () {\n var _instance$props$poppe;\n\n if (!render) {\n return;\n }\n\n var instance = mutableBox.instance;\n instance.setProps({\n popperOptions: Object.assign({}, instance.props.popperOptions, {\n modifiers: [].concat((((_instance$props$poppe = instance.props.popperOptions) == null ? void 0 : _instance$props$poppe.modifiers) || []).filter(function (_ref3) {\n var name = _ref3.name;\n return name !== '$$tippyReact';\n }), [{\n name: '$$tippyReact',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: function fn(_ref4) {\n var _state$modifiersData;\n\n var state = _ref4.state;\n var hideData = (_state$modifiersData = state.modifiersData) == null ? void 0 : _state$modifiersData.hide; // WARNING: this is a high-risk path that can cause an infinite\n // loop. This expression _must_ evaluate to false when required\n\n if (attrs.placement !== state.placement || attrs.referenceHidden !== (hideData == null ? void 0 : hideData.isReferenceHidden) || attrs.escaped !== (hideData == null ? void 0 : hideData.hasPopperEscaped)) {\n setAttrs({\n placement: state.placement,\n referenceHidden: hideData == null ? void 0 : hideData.isReferenceHidden,\n escaped: hideData == null ? void 0 : hideData.hasPopperEscaped\n });\n }\n\n state.attributes.popper = {};\n }\n }])\n })\n });\n }, [attrs.placement, attrs.referenceHidden, attrs.escaped].concat(deps));\n return /*#__PURE__*/React.createElement(React.Fragment, null, children ? /*#__PURE__*/cloneElement(children, {\n ref: function ref(node) {\n mutableBox.ref = node;\n preserveRef(children.ref, node);\n }\n }) : null, mounted && /*#__PURE__*/createPortal(render ? render(toDataAttributes(attrs), singletonContent, mutableBox.instance) : content, mutableBox.container));\n }\n\n return Tippy;\n}\n\nfunction useSingletonGenerator(createSingleton) {\n return function useSingleton(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$overrides = _ref.overrides,\n overrides = _ref$overrides === void 0 ? [] : _ref$overrides;\n\n var _useState = useState(false),\n mounted = _useState[0],\n setMounted = _useState[1];\n\n var mutableBox = useMutableBox({\n children: [],\n renders: 1\n });\n useIsomorphicLayoutEffect(function () {\n if (!mounted) {\n setMounted(true);\n return;\n }\n\n var children = mutableBox.children,\n sourceData = mutableBox.sourceData;\n\n if (!sourceData) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['@tippyjs/react: The `source` variable from `useSingleton()` has', 'not been passed to a component.'].join(' '));\n }\n\n return;\n }\n\n var instance = createSingleton(children.map(function (child) {\n return child.instance;\n }), Object.assign({}, sourceData.props, {\n popperOptions: sourceData.instance.props.popperOptions,\n overrides: overrides,\n plugins: [classNamePlugin].concat(sourceData.props.plugins || [])\n }));\n mutableBox.instance = instance;\n\n if (disabled) {\n instance.disable();\n }\n\n return function () {\n instance.destroy();\n mutableBox.children = children.filter(function (_ref2) {\n var instance = _ref2.instance;\n return !instance.state.isDestroyed;\n });\n };\n }, [mounted]);\n useIsomorphicLayoutEffect(function () {\n if (!mounted) {\n return;\n }\n\n if (mutableBox.renders === 1) {\n mutableBox.renders++;\n return;\n }\n\n var children = mutableBox.children,\n instance = mutableBox.instance,\n sourceData = mutableBox.sourceData;\n\n if (!(instance && sourceData)) {\n return;\n }\n\n var _sourceData$props = sourceData.props,\n content = _sourceData$props.content,\n props = _objectWithoutPropertiesLoose(_sourceData$props, [\"content\"]);\n\n instance.setProps(deepPreserveProps(instance.props, Object.assign({}, props, {\n overrides: overrides\n })));\n instance.setInstances(children.map(function (child) {\n return child.instance;\n }));\n\n if (disabled) {\n instance.disable();\n } else {\n instance.enable();\n }\n });\n return useMemo(function () {\n var source = {\n data: mutableBox,\n hook: function hook(data) {\n mutableBox.sourceData = data;\n mutableBox.setSingletonContent = data.setSingletonContent;\n },\n cleanup: function cleanup() {\n mutableBox.sourceData = null;\n }\n };\n var target = {\n hook: function hook(data) {\n var _mutableBox$instance, _mutableBox$instance2;\n\n mutableBox.children = mutableBox.children.filter(function (_ref3) {\n var instance = _ref3.instance;\n return data.instance !== instance;\n });\n mutableBox.children.push(data);\n\n if (((_mutableBox$instance = mutableBox.instance) == null ? void 0 : _mutableBox$instance.state.isMounted) && ((_mutableBox$instance2 = mutableBox.instance) == null ? void 0 : _mutableBox$instance2.state.$$activeSingletonInstance) === data.instance) {\n mutableBox.setSingletonContent == null ? void 0 : mutableBox.setSingletonContent(data.content);\n }\n\n if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {\n mutableBox.instance.setInstances(mutableBox.children.map(function (child) {\n return child.instance;\n }));\n }\n },\n cleanup: function cleanup(instance) {\n mutableBox.children = mutableBox.children.filter(function (data) {\n return data.instance !== instance;\n });\n\n if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {\n mutableBox.instance.setInstances(mutableBox.children.map(function (child) {\n return child.instance;\n }));\n }\n }\n };\n return [source, target];\n }, []);\n };\n}\n\nvar forwardRef = (function (Tippy, defaultProps) {\n return /*#__PURE__*/forwardRef$1(function TippyWrapper(_ref, _ref2) {\n var children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, [\"children\"]);\n\n return (\n /*#__PURE__*/\n // If I spread them separately here, Babel adds the _extends ponyfill for\n // some reason\n React.createElement(Tippy, Object.assign({}, defaultProps, props), children ? /*#__PURE__*/cloneElement(children, {\n ref: function ref(node) {\n preserveRef(_ref2, node);\n preserveRef(children.ref, node);\n }\n }) : null)\n );\n });\n});\n\nvar useSingleton = /*#__PURE__*/useSingletonGenerator(createSingleton);\nvar index = /*#__PURE__*/forwardRef( /*#__PURE__*/TippyGenerator(tippy));\n\nexport default index;\nexport { useSingleton };\n//# sourceMappingURL=tippy-react.esm.js.map\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n"],"names":["CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","passive","capture","TIPPY_DEFAULT_APPEND_TO","document","body","getValueAtIndexOrReturn","value","index","defaultValue","Array","isArray","v","isType","type","str","toString","call","indexOf","invokeWithArgsOrReturn","args","apply","debounce","fn","ms","arg","clearTimeout","timeout","setTimeout","normalizeToArray","concat","pushIfUnique","arr","push","getBasePlacement","placement","split","arrayFrom","slice","removeUndefinedProps","obj","Object","keys","reduce","acc","key","undefined","div","createElement","isElement","some","isMouseEvent","isReferenceElement","_tippy","reference","getArrayOfElements","isNodeList","querySelectorAll","setTransitionDuration","els","forEach","el","style","transitionDuration","setVisibilityState","state","setAttribute","getOwnerDocument","elementOrElements","_element$ownerDocumen","element","ownerDocument","updateTransitionEndListener","box","action","listener","method","event","actualContains","parent","child","target","_target$getRootNode","contains","getRootNode","host","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","window","performance","addEventListener","onDocumentMouseMove","now","removeEventListener","onWindowBlur","activeElement","instance","blur","isVisible","isIE11","msCrypto","pluginProps","animateFill","followCursor","inlinePositioning","sticky","defaultProps","assign","appendTo","aria","content","expanded","delay","duration","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveBorder","interactiveDebounce","moveTransition","offset","onAfterUpdate","onBeforeUpdate","onCreate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","onClickOutside","plugins","popperOptions","render","showOnCreate","touch","trigger","triggerTarget","allowHTML","animation","arrow","inertia","maxWidth","role","theme","zIndex","defaultKeys","getExtendedPassedProps","passedProps","plugin","_name","name","evaluateProps","props","out","valueAsString","getAttribute","trim","JSON","parse","e","getDataAttributeProps","dangerouslySetInnerHTML","html","createArrowElement","className","appendChild","setContent","textContent","getChildren","popper","firstElementChild","boxChildren","children","find","node","classList","backdrop","onUpdate","prevProps","nextProps","_getChildren","removeAttribute","removeChild","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","onFirstUpdate","currentTarget","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","listeners","debouncedOnMouseMove","onMouseMove","id","filter","item","popperInstance","isEnabled","isDestroyed","isMounted","isShown","clearDelayTimeouts","cancelAnimationFrame","setProps","partialProps","invokeHook","removeListeners","addListeners","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","handleStyles","createPopperInstance","getNestedPopperTree","nestedPopper","requestAnimationFrame","forceUpdate","show","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","getCurrentTarget","hasAttribute","getIsDefaultRenderFn","visibility","addDocumentPress","transition","_getDefaultTemplateCh2","getDefaultTemplateChildren","_instance$popperInsta2","offsetHeight","_getDefaultTemplateCh3","_box","_content","handleAriaContentAttribute","callback","onTransitionEnd","onTransitionedIn","parentNode","mount","hide","isAlreadyHidden","removeDocumentPress","_getDefaultTemplateCh4","onTransitionedOut","unmount","hideWithInteractivity","getDocument","enable","disable","destroyPopperInstance","i","destroy","_props$render","pluginsHooks","map","hasAriaExpanded","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","_instance$props$rende","getDelay","isShow","fromHide","pointerEvents","hook","shouldInvokePropsHook","_instance$props","pluginHooks","attr","currentValue","nextValue","replace","onDocumentPress","actualTarget","composedPath","onTouchMove","onTouchStart","doc","on","eventType","handler","options","onMouseLeave","Boolean","onBlurOrFocusOut","_ref","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","popperTreeData","_instance$popperInsta","popperRect","getBoundingClientRect","popperState","clientX","clientY","every","basePlacement","offsetData","modifiersData","topDistance","top","y","bottomDistance","bottom","leftDistance","left","x","rightDistance","right","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","relatedTarget","_instance$props2","computedReference","contextElement","tippyModifier","enabled","phase","requires","_ref2","attributes","modifiers","padding","adaptive","_getNormalizedTouchSe","touchValue","touchDelay","tippy","targets","optionalProps","instances","setDefaultProps","applyStyles","effect","initialStyles","position","strategy","margin","elements","styles","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","length","preserveRef","ref","hasOwnProperty","current","ssrSafeCreateDiv","deepEqual","prop","uniqueByShape","output","outputItem","deepPreserveProps","instanceProps","componentProps","_instanceProps$popper","_componentProps$poppe","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useMutableBox","initialValue","useRef","updateClassName","classNames","classNamePlugin","isDefaultRenderFn","add","TippyGenerator","visible","singleton","_ref$disabled","disabled","_ref$ignoreAttributes","restOfNativeProps","__source","__self","isControlledMode","isSingletonMode","_useState","useState","mounted","setMounted","_useState2","attrs","setAttrs","_useState3","singletonContent","setSingletonContent","mutableBox","container","renders","computedProps","data","$$activeSingletonInstance","deps","cleanup","_instance$props$poppe","_ref3","_ref4","_state$modifiersData","hideData","referenceHidden","isReferenceHidden","escaped","hasPopperEscaped","cloneElement","createPortal","dataAttrs","toDataAttributes","forwardRef","Tippy","MapShim","Map","getIndex","result","entry","class_1","this","__entries__","defineProperty","prototype","get","enumerable","configurable","set","delete","entries","splice","has","clear","ctx","_i","_a","isBrowser","global$1","g","Math","self","Function","requestAnimationFrame$1","bind","Date","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","childList","characterData","subtree","disconnect","_b","propertyName","getInstance","instance_","defineConfigurable","writable","getWindowOf","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","positions","arguments","size","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","width","height","boxSizing","round","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","create","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","TypeError","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","_this","observation","WeakMap","ResizeObserver"],"mappings":"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","debug_id":"a7c53d97-90a4-5e7f-ab12-c996cba3daf3"}